BPM to set Lock Qty on Job

I could use some help. I want a BPM to set the Lock Qty Checkbox to true when the Job is firmed. When I checked the BO it calls “CheckToReschedule”. When I try to create a BPM I can’t just simply create one; almost like I am missing condition and action items.

Did I pick the wrong BO? I even tried on JobEntry.Update…no luck. Any direction would be helpful

  1. Disable your system monitor from the Windows tray.
  2. Enable UI tracing.
  3. Duplicate the behavior in the application (firm the job)
  4. Attach the UI trace and we can review.

here is my trace…TraceData2188.txt (5.3 KB)

What is the process for job creation? Is MRP creating unfirm jobs and you are using Job status maintenance to firm? Are you creating the jobs directly either using Job Entry, OE Job Wiz, or Planning workbench?

Yes MRP is creating MOST of our UnFirm Jobs. They are suppose to be using the Job Status Maintenance but I can’t promise they are…that has been a whole new battle.

For Job Status Maintenance you can use the method JobStatus.MassUpdate to build your directive on to set the Lock Qyt and this will work as it does not touch the Job BOs. You could potentially look at a data directive on JobHead as well. The trace you do should come from the action that is creating the job and this will help direct you on how/when to set the Lock Qty field.

I did a Data Directive on Job Head on the release of the job.

'If ttJobHead.JobReleased = True and ttJobHead.LockQty = False then

Assign ttJobHead.LockQty = True.


I have a condition ‘the method is not called by System Manager’.

I forgot why, I created this a while ago, it might have been with the help of this forum.

I don’t know how this works with unfirm MRP jobs.

Cathy, you may have done this to give yourself an “out” where an admin could create a job with an unlocked quantity.

Kimberley, I recommend Cathy’s approach. Here we have a similar data directive, only it’s a simple field setter:
Conditions: there is at least one added row in the ttJobHead table
Actions: set the JobHead.LockQty field of the added row to the true expression

Of course in your case you don’t want it locked on every single job, only on the firm (Released) ones. The only reservation I have about Cathy’s directive is that it will fire every time any change is made to the JobHead record. I would probably put in a condition like " The Released field has been changed from any to true" in order to prevent it from triggering unnecessarily.


If your System Manager runs MRP, then the DD would set the Lock Qty on every Unfirm Job. This will cause hiccups at times with MRP.

JobEntry.GetNewJobHead Post-Proc & JobEntry.Update PreProc.

For each ttjobhead no-lock:
Assign ttjobhead.lockqty = true.

I will add the condition ‘The Released field has been changed from any to true’. Haven’t had any problems with MRP running. I will also look at the BO’s JobEntry.GetNewJobHead Post-Proc & JobEntry.Update PreProc. Sometimes I have problems finding out exactly of BO to use.

i have had huge problems with MRP but i know it is how i have the BPM set up.