Any Interest in a Coding Camp Type Thread?

Uncle Kevin,

When we did things in VB programs, or MS Access, we could assign values to the form controls but that doesn’t seem to work in Classic or Kinetic. Do I need less :cheese: to solve my binding issues?

:thinking:

I’m going to refrain from trying to answer that in this thread obviously, but I don’t quite understand your question. Could you expand?

I just thought a discussion of how data binding in Classic and Kinetic forms works and how data views work into it. This is a popular theme that shows up time and time again. I, and many others here, are familiar with getting the value from a control by typing ControlName.value, where in classic, we have to get a reference to the control. And assigning a control a value is done through the data view. That kind of stuff. Kinetic has its own binding system too.

Apologies for being a smart :peach:

Please don’t. I’d have less respect for you.

Tie No Respect GIF by Rodney Dangerfield

I just really didn’t understand the question anyway.

I would add the importance of RowMod would make a nice wiki article, er, thread too.

Data Tables vs Data Sets too…

Literally, right now lol:

Here is some edited information from a private conversation that we decided to share, which may give more context to what is being proposed.

Oh but I want to lol, but seriously, please refrain. :rofl:

Just what I was thinking! I’d be surprised if it doesn’t already exist to some degree somewhere, but a prominent and hand-holdy “How to Function (for dummies!)” would be super useful to get more folks playing with functions.

3 Likes

There is really no reason we can’t link to already established topics or posts with relevant and well presented explanations.

In some cases, maybe some context could be added if needed. No need to re-invent the wheel, just show them where to find it.

I would imagine we would start the thread either in the coding corner, or the Kinetic forum, and as the quality and quantity of the information improved, we could eventually move it to the experts corner.

I can volunteer myself as a doc testing dummy! I confess, I haven’t invested the time to get familiar with functions. Dunno how much of a doozy that first step is, and I generally get free time to figure out stuff like that in half hour chunks, so never felt like I had a proper block of time to usefully commit. This thread just got me thinking, if I had such a How-To-Function thing I’d probably be functioning all over the place by now.

@klincecum , can you provide an example of what you are expecting this to look like? Do you expect it to be like @hmwillett compendium? Do you think it should be a separate Topic that only certain members have access to edit but everyone can view? Will it be a folder type structure?

I’m only asking as understanding what the end result might be may help users figure out what questions they may want to ask.

Whoa, whoa, whoa. Let’s keep it clean. :laughing:

I’ll tell you what, there is a really good, but older thread on here for that, that could probably use some updating and simplification, so I’ll attempt to do that one as my first volunteer assignment.

In the meantime: Let’s Get Funcy - Epicor Functions

1 Like

Yes, but not at the moment. This thread is my distraction for now, I have real work to do, can’t do anymore due to prior commitments.

Yes & No

Imagine a very nice curated list at the top, but the thread is a (limited) free for all. :dumpster_fire:

No, I think we can trust those who can edit, to only edit the curated list.

That’s part of what we’re here to discuss. Brainstorming etc.

Can’t answer that one yet. Let’s hammer it out.

surprised hammer GIF

Yes! As a non-developer who has to deal with code every so often this could be awesome.

When you say Coding Camp, is it specifically using the Custom C# Block or will it include how/when to use the widgets ?? ( Think Low Coder Corner ??)

Either way, I would be interested in using such a resource

1 Like

Yes! Get folks using functions! I just got my first functions working and it really opens up a lot of doors.
Here are some other ideas I had while reading this thread:

  1. I would like to see third party API integration and would offer my example as a case study. Timeclock Integration - Asure API

  2. I would also like to see more integration examples between API and functions.

  3. Lots of folks know how to make a BAQ and a UBAQ, and also how to make the BPM with a custom action inside that BAQ. What I recently learned is that there are other methods to program for besides CustomAction. in the integration above, I used the GetList method in my UBAQ/BPM. I would like to know when and how to use the other methods available. Kevin knew right away to tap into that GetList method for my particular case. How did he come to that conclusion?

  4. You cant sort there… When can you use sort by in a BAQ? When you can’t sort because of the rules in the BAQ, how do you get around it and still sort the results in the way you need? I know you can only sort the top level query, but there are tricks to getting your sort working even if it is in a subquery. (Having flag?)

  5. Variable variable types. Various variables have various ways to call them. Recently, I had to declare a bunch of variables inside my custom code block with a question mark (I think this make it nullable?). Normally, epicor is not very picky about these, but using a function and/or third-party APIs may make these variable declarations a bit more needy.

  6. Using a UBAQ without updating any tables. I often have to use UBAQs to perform some specific task. Falling back to my integration with Asure from above, that UBAQ doesn’t update any tables. I only use the updateable part of the BAQ to update a flag in the BAQ results to show the record has been processed and to allow the BPM to move to the next record. I do this in combination with the FirstOrDefault() records from the results set, that way I always have the next record. I have seen other folks do things this way too, but I can’t help but feel like it is a hack. When is it right to use a UBAQ?

  7. Usings? We often overlook the libraries that are needed to make a specific chunk of code work. Sometimes the error message can point to the right library to include, but when we can’t figure it out, what is the best way to learn which resource to include in the “Usings…”?

  8. Pro tips in BPM Designer. Working with widgets has been nice. It provides an easy way to see where the flow of the program is going. To that end I have a handful of tips and tricks that I use when creating or editing BPMs. As an example: if a looping BPM will not execute, and the error is not present, or not descriptive enough, then you need to break your BPM. Normally I would do this with code breaks, but we can’t do that here. Instead, once you identify the widget that you expect is the issue, remove the last arrow pointing to it, and point to a messagebox widget instead. Output all your relevant variables and table values to figure out where you messed up. then once you figure it out, reconnect your original widget, and hold that messagebox widget to the side to use later. BPMs wont complete or give you an error if one of the widgets fails. So, remove the failing widget and put in a messagebox temporarily to help debugging. I use this all the time!

  9. Custom Code Events. How do you setup custom events in a customization? I know I have made a custom event for .Leave. I had to add the code to the InitializeCustomCode and DestroyCustomCode parts of my customization script. Let’s learn more about custom events.

  10. Kinetic… ugghh… I guess we have to forget everything we know when moving to kinetic. So how do we do all the stuff listed in 1-9 in kinetic instead?

2 Likes

As in allowed, yes.

As in from me? Absolutely not!

Ice T No GIF by The Tonight Show Starring Jimmy Fallon

@JasonMcD

1 Like