I tend to prefer using Method directives for this sort of thing. I’d probably put something in the Preprocessing for SalesOrder.Update that checks to see if that OrderHed date field was changed, then set a flag in CallContextBPMData which says the details need to be updated.
Then in Postprocessing I’d see if that flag was set, then update the details accordingly. Similar to how we update the shipto for our details if the header was changed and the user wanted us to change the details.
foreach (var OH in ttOrderHed)
foreach (var OD in (from tOD in Db.OrderRel where
tOD.Company == OH.Company &&
tOD.OrderNum == OH.OrderNum
OD.ShipToCustNum = OH.ShipToCustNum;
OD.ShipToNum = OH.ShipToNum;
} // for each Order Detail
} // foreach Order