I have a recipe function that updates a SKU in SFDC whenever the part is changed in Epicor. This function uses a BAQ which has all the fields that would need to be updated.
but I have to create a recipe to call that function triggered by parts for the descriptions and PLM state etc and another Recipe to trigger by Parts inventory to update Qty on hand and Costs, and just learned that the lead times isn’t getting updated because that different object.
My Epicor prime was thinking she could write a BPM that would update a date field called SFDC Update or something and ONLY update that date field if an important field was changed that I care about in SFDC.
my concern is maintenance down the road if I add a field to the BAQ that needs to be synced to SFDC someone will have to remember to update this BPM, so me knowing nothing about BPMs, is there a way for a BPM or function to be written in Epicor that would update a field only if a field from a defined BPM was modified?
seems like this could be a pretty cool function but not sure how complex BPMs can get since I have never seen one.
I’m not tied to this, since we are a small company not to worried about running extra tasks (this idea would obviously help there) but more maintenance not having to maintain a bunch of recipes doing the same thing just being triggered by different objects
All these objects I’m talking about are in Epicor, the problem is I can’t trigger a recipe if Parts record changed, OR Parts Inventory Record changed OR …
I have a BAQ that has SKU’s, descriptions, PLM states (GA, MD EOL etc), if its active or inactive etc. all this is on the “Parts” object, but its also pully Qty on hand, Sales Demand, cost etc which is on the “Parts Inventory” object… So I have two recipes that do almost the exact same thing. Now just realized that we have Sales lead times which isn’t on either of these objects so will have to create a 3rd recipe to trigger if someone changes the lead time in that object.
the wish list is to create a field under parts called “SFDC Update” and have some code in Epicor datafill that date with todays timestamp and have the 1 recipe trigger if parts get updated and SFDC Update date is today or within 5 mites whatever.
if there are 25 fields in the BAQ that are being updated then that BPM would have to check every field to see if it changed to decide to data fill that new date field and thought an input to that code could be the BAQ so if the BAQ changed down the road this code wont have to change
BPM that creates a DATATAG for any parts that need to have an SFDC update run for it… Data Tags are a table that holds a a pointer to a table/record id. You can create a special datatag that has the “User” assigned as “SFDCUPDATE”.
Automation Studio, you could monitor the DATATAG table for additions where SFDCUPDATE is in the record. That is the trigger… then Automation Studio could use teh datatag data to lookup the part, partplant and partqty, OR it could execute a BAQ to retrieve all the data at once.
as the last step, automation Studio would simply delete the datatag since it is no longer needed.
Why not just create data directives with conditions that check if field has changed from any to any other (for the fields you care about) and call the recipe from each of those? You would only need one directive for each table that is getting changed.
I tried just using partplantsearches in the trigger that didn’t work I tried using Parts with a child class of Partplant etc and that’s not working… I’m being told some child tables won’t work for triggers