Cannot firm MRP Job

We have an MRP job the looks to our scheduler like any other MRP job. Here usual process is to go to Job Status Maintenance, look for unfirm jobs for the part number, open it in job entry and click the box to firm the job. Epicor then makes a firm job with a real part number, deleting the MRP… job.

When we open the job in part entry and click the checkbox to firm it, we get this message: Update not allowed, Job Not Firm.

Well, we know that… she has firmed up other MRP jobs earlier today, so it must be specific to this job. Any idea what to look for?

Do you have any BPM’s related tot he job tables?

Nope. do have a custom field on Job Entry, but that’s it.

Are there more details behind the error message?

Actually, I just re-read your OP again. Can I ask why you aren’t firming the job directly from Job Status Maintenance? Why go to Job Entry to do it? Do you get the same results in both places?

I just tried in Job Status Maintenance to Firm All (all = 1 one record), but nothing happened.

There is something specific to the job or the part.

MRP ran yesterday morning and we (well, she) could firm other MRP jobs for similar parts. When this one would not work, she let it go. MRP ran this morning and we are in the same place.

I suppose I could use DMT to change the record but is not going to tell us why it happened and how to prevent it.

The full error message (which appears when the Unfirm checkbox is checked) is:

Update not allowed, Job Not Firm.

Exception caught in: Epicor.ServiceModel

Error Detail

Correlation ID: af2d8af6-c5b5-4184-8805-b9a02fec5af0
Description: Update not allowed, Job Not Firm.
Program: Erp.Services.BO.JobEntry.dll
Method: JobHeadBeforeUpdate
Line Number: 24363
Column Number: 29
Table: JobHead
Field: PartDescription

Client Stack Trace

at Ice.Cloud.ProxyBase1.CallWithCommunicationFailureRetry(String methodName, ProxyValuesIn valuesIn, ProxyValuesOut valuesOut, RestRpcValueSerializer serializer) at Ice.Cloud.ProxyBase1.CallWithMultistepBpmHandling(String methodName, ProxyValuesIn valuesIn, ProxyValuesOut valuesOut, Boolean useSparseCopy)
at Ice.Cloud.ProxyBase`1.Call(String methodName, ProxyValuesIn valuesIn, ProxyValuesOut valuesOut, Boolean useSparseCopy)
at Erp.Proxy.BO.JobEntryImpl.Update(JobEntryDataSet ds)
at Erp.Adapters.JobEntryAdapter.OnUpdate()
at Ice.Lib.Framework.EpiBaseAdapter.Update()
at Erp.UI.App.JobEntry.Transaction.Update()

This looks like you might have a BPM on JobHead that’s changing the Part Description.

Edit: Well, a Method Directive on JobEntry I should say.

Hmmm. Let me look.

The only BP we have on the JobHead table is one that sends an email when the job is marked complete. I disabled the BPM and saved it, but still cannot convert the job in Job Entry.

Sorry, I said that badly. The message appears to indicate a Method Directive and I did say on JobHead which implies Data Directive.

Do you have any Method Directives on JobEntry?

The other thing I will try sometimes when getting weird things happening in JSM is just go manually create a job in Job Entry/Quick Job Entry and see if you get a better error message.

That one is a method directive on Update. Will try to manually create a job for the part and see what happens. Thanks.

I can create a job in Quick Job Entry for the part. We will go that route.

Thanks.

I would also take a look at what’s going on in the JobEntry.Update Method. Adding a condition of JobFirm=true would probably make your problem go away.

Will do. Thanks so much.