Trying to display a message if the product group is not correct when order line is saved. This is being implemented as a post-processing directive on Erp.SalesOrder.MasterUpdate.
In English (vs. BPM-ese), the condition is: if Customer Group = INT and Product Group does not begin with “Z,” then display a message. For testing purposes, I have a message for the true side as well.
Here’s the rub: Customer Group is not in the Sales Order business object.
I have tried a bunch of different things, none of which worked, and have the following observations / questions:
-
The issue is how to get an action to be executed based on the value in a field that is not actually in the current transaction / BO. The field value can be looked up based on a value that IS in the current transaction.
-
It seems like there should be a variable to hold the looked-up value to be used in the comparison, but…
-
It seems that variables can be populated only by values or formulas, but not by query results.
-
Query results can be used in the update actions, but I don’t want to actually update a field in the transaction.
Is there any reference material on BPMs? I found two examples in Epicor documentation, but neither quite describes this situation:
-
The Advanced BPM course has example of populating fields in the transaction values from a related table. I don’t want to actually populate anything.
-
The ICE 3.1 Tools User Guide (10.1.500) begins (p. 648) an example to “raise an exception when a customer used on a sales order does not have the State field specified in Customer Maintenance.” However, when it gets to the condition statement (p. 652), the condition has to do with looking for a hold. Seems like the front end of one example and the back end of another. This example, I think, would have been helpful, had the example been followed through all the way.
Thanks for whatever ideas you may have. I suspect the solution is fairly straightforward; but I have not stumbled across it yet.