Setting UD Field value in BPM

Using a UD08 Update PreProcessing BPM to update HDCase data. Using Update Table By Query, I can set values for HDCase Fields, but the HDCase_UD Field setting won’t hold. The UD Field is not extended-extended, the Field is HDCase_UD.ShortChar05.

I’ve checked that the values I’m trying to set are not null, right before the Update By Table Query.

Is there a trick to setting a built-in UD Field with a BPM ?

Thanks,

Ken

The easiest way I have found is to join the tables based on HDCase_UD.ForeignSysRowID and HDCase.SysRowID. Alternatively, I believe you can use the .UserDefinedColumns[“Custom_c”] table row parameter, but ask the experts about that. :wink:

1 Like

For those finding this thread later, I have been trying to do the same in ERP 10.0 using a BPM and C#. Thanks to this post I got almost all the way there: https://epiusers.help/t/bpm-c-code-to-copy-from-ttparttran-to-partlot/35695/13. The trick when copying from a standard table to a temp table is to use the SetUDField method which looks like:
tempTableRow.SetUDField<System.String>(“myCustomProperty”, valueToWrite);

For reference (and searches), my context is this: The business method that copies an OpMaster row to JobOper in Job Entry > Engineering > Operation Master is JobEntryImpl.InsertOperationOP(). It doesn’t realize that I have UD fields on OpMaster that match UD fields in JobOper, so I have to copy them by hand. Within the BPM, I grab the source OpMaster row and set its UD values into ttJobOper’s UD columns so it will be written to JobOper on the commit.

Garrison, remember that there is a UD field mapping tool which sometimes, not always, can simplify this passing of UD fields from one entity to another for you. It could reduce the need for doing it in BPMs.

Best,
…Monty.

4 Likes

Mind blown. Had no idea that existed. Thank you so much for bringing it to my attention Monty!

Garrison