What to do when a field won't set

,

What do people do when a field refuses to be set in a BPM?

I have a Pre-Process BPM on JobWizard that sets the Char19 field to “Pineapple”
I have an In-Transaction DD on JobHead with a condition that checks to see if Char19 = “Pineapple” and if true set Engineered on the JobHead to false on an added row.

I have pop-ups that show that Char19 = “Pineapple” and that the RowMod = A when I do CreateJob through the Job Wizard. However, Engineered always comes out true.

I struggle when all the supporting data says it should work but it does not. I’m wondering if anyone has any tips on what to do next when stuff like this happens.

Have you traced it to see if another BO is overwriting the Engineered flag after your BPM?

Yes. Nothing else running on a client trace.

I guess I should do a server trace too.

The popup is in the DD or the MD?

And you confirm that JobHead.Char19 is indeed set to “Pineapple” regardless of whether JobHead.Engineered gets set or not?

And you sure it’s not a UI “lag”, Where the DB is actually updated but the form is still showing the old value? Try refreshing the form’s data after the DD and MD run.

Both

Yes

Yes, I do not pull up the record in Job Entry until after everything has run.

Right now I am seeing if I need to call the ChangeJobHeadJobEngineered method to actually make the change stick.

I’d avoid using DD’s to set fields, beyond the simple changes (like substituting one PartClass for another, UD fields, and other “passive” fields). A lot of fields aren’t simply just set, but are set depending on other fields and datasets.

And vice-versa, those other fields may depend on this field’s state. That’s what BO’s do. the make sure everything is copesetic.

And the JobHead.Engineered flag sounds like it would be used to drive other functions, and isn’t just a status indicator.

1 Like