Check for change of PO Release Due Date when cascading it by changing Header Due Date

,

Using a BPM on PO.Update, and Post Processing, I check with condition:
Method changed the ttPORelDueDate field of the ttPORel query from any to another.
Then I set another custom field.

But if you are at Header and change Due Date that way, let it cascade down to update all lines/releases, then it will not trigger that Condition in Post processing.

How to I trap the to see that if POREL.DueDate changes in this case?

Did you run a trace to see what BO and method are called when the Due Date is changed via the header?

Yes, I should have put that. It said BO.POImpl, but I don’t see anything like that in the method directives drop down.

Since its just that one field you’re looking at, have you thought about using In-Tran DD’s on PODetail and PORel?

Yes, the names in traces aren’t exact matches to names in directives.
BO.POImpl will correspond to Erp.PO
I might start with PO.Update - adding simple Pre and Post messageboxes and field(s) I’m interested in.

By coincidence I happen to be working on a date issue myself. Checking Dates on PO entry can be “interesting”, since there are many scenarios with different Method directives involved depending on entry sequence.
Why as Calvin mentioned, you might want to try a data directive instead.

Here are some of the methods I’ve been playing with.
image

Data directive perfect, thanks all. That picks up the change when Epicor wants to cascade change from Header or line down stream…

How in a condition do you check, “Is POREL.DueDate a valid date” ?

I’m trying to trap this:
PO Release Due Date changes from one valid date to another date.
Valid date to Valid date = TRUE
Empty date to Valid date = FALSE
Empty date to Empty date = FALSE

Null to Any doesn’t seem to trigger, so I’m guessing a date is not null?

I believe a date can only be NULL for the new record (RowMod A)
After it has been set/cleared, then it’s empty, not null

To catch these I have sometimes compared with a really old dates
e.g. proposed date >= 01/01/1900?

How you configure your condition statements could change depending on what you consider a “valid” date(s),

Using Data Directives, in-transaction, for POREL

TEST 1:
Condition:
ttPORel.DueDate field of the CHANGED row is more than 1/1/1900.
with a show message of TRUE for true and FALSE for false

I go to the PO, add a line, put a part and a qty, the line takes the header Due Date by default.
I save it and first pops up a TRUE message, i.e. the porel.duedate of all rows
click OK and get a second TRUE one.

TEST 2:
ttPORel.DueDate field of the ADDED row is more than 1/1/1900.
with a show message of TRUE for true and FALSE for false

Go to PO, add a line, put part and qty, line takes header Due Date by default
Save it and again a TRUE message, i.e. a valid due date > 1/1/1900.
Click OK and get a FALSE.

Why does the condition trigger twice?
I’m not adding more than one row.

Why does the Added reply first say true, your due date is > 1/1/1900
and then false that it does not?