I’m working on a BPM that looks to see if a part is reserved when someone tries to change another field (CustomHold) to True. I have the BPM looking at the correct field and popping a message.
Now they are asking if I can set CustomHold to false in addition to popping the message. In effect forcing them to have the part un-reserved before being able change CustomHold to True
How do I do set the CustomHold field back to False?
Do I add ‘Set Field’ after the message and just use ‘Set the specified field of the changed row to specified expression’ for the Action? I’ve never used it before.
Edit to add:
I’ve just tried adding the field setter after the condition and before the message. What do I enter in the expression editor? Just using false (by clicking the button for false) doesn’t work.
I found another thread that lead me to change from a Method Directive to a Data Directive (In-Transaction).
So…
Now I have a BPM that’s failing on the Condition shown below. The criteria on ERP.PartAlloc is ReservedQty >= 1 constant. But I get the Validation error shown (Condition #2. A non-existent table argument ‘ttPart’ is referenced in the query
‘reserved’.
Without that row of the Condition, my BPM is checking to see if I changed the CustomHold field from False to True, firing a message, changing the field back to False.
There was a good discussion on why you should not directly tie a tttable (such as ttPart) to a database table… if you search this forum, you will find multiple examples for why connecting the blue widget to the green widget is bad. Instead, you should create a variable in your BPM (called partNum?) and then use a setter to set it using ttPart.PartNum… THEN filter using that variable.