Override job number when firming an unfirm job?

Wondering if anyone has figured out a way to override the job number when firming up a job that MRP has created… example:

  1. mrp creates a job UJ00000001
  2. You firm the job, and the system auto assigns the next job number “0012345”.
  3. INSTEAD, I want to have a special job number “AB101” - This value is in a UD FIeld on the unfirm JobHead… i want to read this value and force the job number

Ideas?

You can create a BPM or customization that create this jobnum on that BO and auto increase for the next jobnum

What about creating a MRP firm job prefix? All our firmed MRP jobs start with T.

@Alex & @Kimberley, both your ideas are how I would normally recommend, but in this particular case, there the numbers are not sequential. They are assigned at the sales order level… but they are not the sales order number. They are a special type of identification number that the entire job uses for a complex large asset build. So the first job might be AB123, then next job might be xy321… So I cannot rely on how Epicor normally assigns numbers, but must override it.
(NOTE: One could ask “Why”… i already did the “Why” question many times with the customer… and I got back “Because we need it that way”).

Even easier create a BPM or Customization that works pulling that value the BPM will be post procesing connect jobprod to orderrel and from there to orderhed if needed pull the UDField and assign it to the JobEntry.JobNum

Yes I agree with Alex. Would a data directive on JobHead change job number work?

Nancy

Has anyone ever figured out how to do what the title asks? My scenario is different (I want to use the project number as the firm job number), but the idea is the same.

I made a data directive on JobHead. It worked. It worked so well that the JobHead was one job number, yet the JobMtl and JobOper and JobAsmbl were all still tied to the unfirm job number, so the head was disembodied, basically. :woozy_face:

So I guess the real question is, how do you change the job number for ALL of the job tables while firming? Probably need to consider JobProd as well…

I tried doing this on additional data directives, but I must be missing a step or just using bad logic.

I did a stack trace (full data set) and it references the unfirm job (UNFIRM-000001) every step of the way until the very end. (Snippet below; firm job is W116218.)

I don’t see any mention in the stack of the process of changing the job number. It’s like magic.

  <paramDataSetChanges>
    <paramDataSet name="ds" useDataSetNbr="0">
      <changedValue tableName="JobHead" rowState="Modified" rowNum="0" colName="JobFirm"><![CDATA[True]]></changedValue>
      <changedValue tableName="JobHead" rowState="Modified" rowNum="0" colName="UD_SysRevID"><![CDATA[System.Byte[]]]></changedValue>
    </paramDataSet>
  </paramDataSetChanges>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.JobEntryImpl</businessObject>
  <methodName>GetDatasetForTree</methodName>
  <appServerUri>net.tcp://[redacted]/TestServer/</appServerUri>
  <returnType>Erp.Tablesets.JobEntryTableset</returnType>
  <localTime>11/21/2019 08:00:46:1643652 AM</localTime>
  <threadID>1</threadID>
  <correlationId>47904e9f-24eb-48a1-9d99-ece757df284d</correlationId>
  <executionTime total="104" roundTrip="96" channel="0" bpm="0" other="8" />
  <retries>0</retries>
  <parameters>
    <parameter name="ipJobNum" type="System.String"><![CDATA[W116218]]></parameter>
    <parameter name="ipStartAssemblySeq" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="ipCurrentAssemblySeq" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="ipCompleteTree" type="System.Boolean"><![CDATA[False]]></parameter>
    <parameter name="ipJobTypeMode" type="System.String"><![CDATA[MFG,PRJ,SRV]]></parameter>
  </parameters>
</tracePacket>

@JasonMcD Have you figured it out? I have the same issue. I dunno how to make an ERP originated Job Unfirm while making sure respecting all the constraints!

No, this was as far as I got. Like I say, changing JobHead was easy. But if I can’t change JobMtl and JobAsmbl and JobOper, it’s all for naught.

So you have tried to change JobNum from JobMtl, JobAsmbl, JobOper and JobOperDtl but it didn’t allow you?? I though that would be my last option! There is a method in JobEntryImpl that gets you the next available JobNum btw…