Currently I want to create a BPM, to restrict user for issuing shipment invoice from sales order if the sales order site is not equal to current login site. I found that there is no information of sales order site in AR Invoice Entry menu, unless Invoice Site which is not follow the SO site until the invoice issued (when invoice is issued, invoice site will be grayed out, and user cannot freely change it. but whenever invoice is not issued, user can freely change it).
How do I can solve this? I’ve tried to use a invoke BO Method, to invoke Sales Order dataset, take the SO site, and use a post-processing to override the Invoice Site and check it with the login site whenever the SO Number selected in AR Invoice Entry. But it’s not work, because when I tried to enabled the BPM, it show me error of type ‘ETCAddrValidationTableset’ exist in both AR Invoice BO and Sales Order BO.
What does it mean with work in separate directives? I have tried that, but still throw error of type ‘ETCAddrValidationTableset’ exist in both AR Invoice BO and Sales Order BO. Does it means that I need to work on separate directives with different BO? If so, not sure what BO can be used for AR Invoice Entry.
Same Method, separate directives. One after the other.
Reference one bo in the first, the second in the other, pass data down between them.
Could use call context and json for example.
If you’re in one of those situations where the built in reference is conflicting with what you need to use, you could write your code as you need it to work, and either figure out or ask here and we’ll show you how to convert the conflicting code to work via reflection.
I can’t remember at the moment if you can remove the default referenced assemblies from a method directive, but if you can, you can get around the above problem and use my first approach.