This should be a very basic BPM. When a part number is changed on a sales order, I want the BPM to test whether or not the customer is in a specific customer group (zPL). The BPM fires when it’s supposed to, but gets the wrong results and I cannot figure out why…
Rows in query not less than 1 should evaluate to TRUE
When I re-create the query in a BAQ (adding a condition for the order number), it returns the row.
I have verified that the customer is assigned to the zPL customer group.
I have double checked that each message is associated with the matching condition outcome (true or false)
I have not figured out a way to identify why the condition is failing and to bring back whatever the customer group the BPM thinks it is. The Customer table is not part of the Sales Order BO, so those fields are not available to display in the message.
It seems like I am missing something very fundamental.
One of the things that you need to pay attention to on those auto joins is where there is more that one dictionary . There are actually 2 for this join.
BUT, since that didn’t fix your issue, did you try raising messages that show what you think should be in your dataset? Before you run the query, put your ttresult field that you are trying to join on to make sure you are actually getting that value in the TT record. Many times the TT records don’t have the full dataset filled out, so it seems like you should be able to get info from it, but it’s not actually populated.
So the challenge you are having is that when the ORder.Update is called, the TT record is only available for the one record that is being updated. it does not show the entire dataset of the OrderHed, OrderDtl, and OrderRel.
If there is ever a time where you need to access OrderHed data after an OrderDtl update, then you will need to read that record for yourself.
BUT you have already found a workaround in your case… in that the customer is available in the OrderDtl record.