@MIR that’s what I was getting at, what you just did is sweet! Thanks for sharing with us all and taking the time to do note all this out and work it out.
How are you doing that, would you care to show us? I’d have to re-read this thread probably cause you’ve iterated through a lot. Is it that kit components can’t be marked as make-to-order on the order release in the normal UI and you’re using a data directive to override that?
You got it @utaylor!
I’m overwriting the Make Direct check box on the order release that Epicor made read-only for parts entered as Sales Kit components. By doing so, the Job Wizard gets activated enabling me to create jobs for those components.
Below is the summary of my findings.
I believe now I have 2 answers to my own question about the Sales Kit functionality in Epicor.
To utilize hiding of some parts from SSRS reports, we can either create a scenario that mimics Sales Kits or change existing Sales Kits to our needs (I’m not sure of consequences yet and this is why I’m posting it so maybe somebody will warn me before anything explodes).
Mimicking the Sales Kits by introducing UD fields in OrderDtl table and adjusting SSRS reports (such as SOA, P/S, AR Invoice). This entire process is discussed earlier in this post.
Sales Kits (at this moment) do not support manufactured parts that need jobs. To “fix” this, I created a Data Directive that marks Sales Kit’s component parts (child parts) as Make Direct in the Order Release (our component parts are all “non-stock items” that require job travelers). As mentioned in my question, currently Epicor has designed Sales Kits in such a way that no jobs can be created for the parts. Below is my Data Directive:
Personally, I like the second solution better, since it is well functional inside Epicor. As long as I can get away with it, that’s the route I would like to consider.
@MIR, I don’t have anything new to add. When I asked @hmwillett one time about how to know if a customization is truly ready to be implemented in production I think I got a response like, “you just have to implement it and find out.” Paraphrasing now as that was like 8+ years ago.
@Chris_Conn has made many a customization so maybe he can weigh in on this too.
Like @Randy, I think all you can do is test the crap out of it in your pilot environment. Everything from running MRP against it, shipping against it. What happens when you want to un-ship it, create a credit memo, RMA, etc.
Whoa! Going to try this out, but for Drop Ship. Also, since you’re able to write to the field with a BPM, has me wondering if in Kinetic there’s simply a data rule or two setting those fields (Make, Drop Ship, etc.) for the kit components to read only that I can hijack and make them editable in the UI.
I have no specific warnings, other than sometimes it is exceedingly difficult to test all the edge cases for changes like this.
This is for several reasons, but mainly due to the footprint of the logic. For example, even if you were to decompile the entire logic for something like the Sales Order screen related to your goals - it can also touch quotes, shipments, MRP. You can certainly test all avenues, but just knowing WHAT\WHERE all to test is challenging.
I dont say that as a way to scare you aware from it, but to just be cognizant of the potential impact.
Also, even if you do catch all the edge cases for a particular cfg\setup, if your internal process (or Epicor’s underlying logic) changes in the future, you can find yourself in a pickle.
@josecgomez and @utaylor are you saying that it isn’t a good practice to user a ttOrderRel in my Data Directive Query?
Would it be better to use ERP.OrderRel instead?
No, the issue is joining a ttTable to a non ttTable see that post that was refered here.
In summary the LINQ doesn’t know how to do a SQL join between an in memory table and a Db table. So the better approach is to get variables which contain the filters you need and then just use the DB Tables with Criteria to return the data you want.