Error creating PartTran

We are receiving an error in several different areas of Vista right now…anyone have any ideas what this is:

Error creating PartTran.

Exception caught in: Epicor.Mfg.BO.ReceiptsFromMfg

Error Detail

Message: Error creating PartTran.
Type: Error
Program: bo/ReceiptsFromMfg.p
Method: ReceiveMfgPartToInventory
Table: PartTran
Row:
Field:

Stack Trace

at Epicor.Mfg.Proxy.ReceiptsFromMfgImpl.ReceiveMfgPartToInventory(ReceiptsFromMfgDataSet ds, Decimal pdSerialNoQty, Boolean plNegQtyAction, String& pcMessage)
at Epicor.Mfg.UI.Adapters.ReceiptsFromMfgAdapter.ReceiveMfgPartToInventory(Decimal pdSerialNoQty, Boolean plNegQtyAction, String& pcMessage)
at Epicor.Mfg.UI.App.RcptToInvEntry.RcptToInvTransaction.Update(Boolean hardSave

Is there a BPM on ReceiptsFromMfg ?

Does this happen all the time, or just when trying to receive one particular job?

Not aware of a BPM for that.

No, it never happens. It also is just started happening when trying to issues parts to a job as well.

Can you check?

…not sure how to :thinking:

image

Then click the Method Code button

image

In the search box, just select the “Search by Directives” option, and leave Directive Group as “”

We’re just looking to see if a Method Directive for something like “ReceiveMfgPartToInventory”

But if you see it trying to do a Issue Materials (I assume the details of that error does not include “ReceiveMfgPartToInventory”), then it’s probably not a BPM . But doesn’t hurt to check.

Ok I did find a BPM called ReceiveMfgPartToInventory…what should I do now?

The other method in issuing materials is updatePartTran

If you select the Method Directive from the search, you can disable it (and is easily re-enabled) - #8 in the following screen. (make sure to save after changing this)

image

Note that each Method is of one of three types (Pre-Processing, Post-Processing, and Base). And can have multiple directives of each of those types.

Unfortunately Vista 8 doesn’t have the Enabled option from what I can tell. It also isn’t showing any info in Pre-Processiong, Post-Processing, and Base. The only thing I can see is when I click advanced, this comes up:

That’s the “front page”. See if there are specific directives on the Pre, Base, or Post tabs.

They are all blank, none of them have enabled selected:

Okay. Then no custom Method Directives are in play.

Does the error pop-up on any Part Transaction (things that affect the PartTran table) ? Or just some of the time?

Seems to just be some things that affect PartTran…for example we can do a normal PO Receipt.

We can’t issue parts to a job, we can’t receive parts to a job, and we can’t do a inventory transfer.

Checked the hard drive size on the database, we have plenty of available space.

Not even simply moving a qty of a part from one bin to another?

Yep, exactly. But we can do receipt entry on inventory items.

I’d look at using the Trace Log.

  1. Enable the Trace Logging
  2. Clear the log
  3. Apply settings and try to do the Inv Transfer
  4. Disable trace logging
  5. Look at the Trace Log

I don’t recall exctly what the trace log screen looks like in V8. But here it is in E10

To bring up tracing options:

image

Refering to the numbers above:

image

Ok, I did it for a Receipt to a Job. I have the .txt file but I’m not sure what to look for in it.

This doesn’t look good:

<businessObject>Epicor.Mfg.BO.ReceiptsFromMfg</businessObject>
<methodName>ReceiveMfgPartToJob</methodName>
<returnType>void</returnType>
<localTime>12/9/2019 16:18:43:7486053 PM</localTime>
<executionTime>52.5566</executionTime>
<parameters>
	<parameter name='ds' type='Epicor.Mfg.BO.ReceiptsFromMfgDataSet' ><ReceiptsFromMfgDataSet xmlns="http://www.epicor.com/Mfg/100/BO.ReceiptsFromMfg/ReceiptsFromMfg" /></parameter>
	<parameter name='pdSerialNoQty' type='System.Decimal' ><![CDATA[0]]></parameter>
	<parameter name='plNegQtyAction' type='System.Boolean' ><![CDATA[False]]></parameter>
	<parameter name='plIssuedComplete' type='System.Boolean' ><![CDATA[False]]></parameter>
	<parameter name='pcMessage' type='System.String' ><![CDATA[]]></parameter>
</parameters>

Hi Mark,

Did you do a server reboot? Back in our E9 days, this fixed up many a problem for us.

Nancy

@mmccl267 -

Do an Inv Transfer in your system that will cause the issue, with trace enabled. As a hint, clear the trace log just before clicking the don’t enable tracing until right before clicking the Transfer button. After the Transer completes (or errors out) disable tracing.

Here’s the trace from my E10, for an Inventory Transfer (STK-STK):
(Stocked Part, No serial or Lot, std bins)

I’ve broken it down into each trace packet. you should see a trace packet section for each method called see if you get the same methods, or if it errors out during a specific one.

Inv Transfer Trace Log - InvTransfer.MasterInventoryBinTests
<tracePacket>
  <businessObject>Erp.Proxy.BO.InvTransferImpl</businessObject>
  <methodName>MasterInventoryBinTests</methodName>
  <appServerUri>net.tcp://usdataps00122/MC-UAT/</appServerUri>
  <returnType>System.Void</returnType>
  <localTime>12/10/2019 09:21:36:1454556 AM</localTime>
  <executionTime>43</executionTime>
  <parameters>
    <parameter name="ds" type="InvTransferDataSet">
      <InvTransferDataSet xmlns="http://www.epicor.com/Ice/300/BO/InvTransfer/InvTransfer" />
    </parameter>
    <parameter name="pcNeqQtyAction" type="System.String"><![CDATA[]]></parameter>
    <parameter name="pcNeqQtyMessage" type="System.String"><![CDATA[]]></parameter>
    <parameter name="pcFromPCBinAction" type="System.String"><![CDATA[]]></parameter>
    <parameter name="pcFromPCBinMessage" type="System.String"><![CDATA[]]></parameter>
    <parameter name="pcToPCBinAction" type="System.String"><![CDATA[]]></parameter>
    <parameter name="pcToPCBinMessage" type="System.String"><![CDATA[]]></parameter>
  </parameters>
  <paramDataSetChanges>
    <paramDataSet name="ds" useDataSetNbr="0">
      <changedValue tableName="InvTrans" rowState="Modified" rowNum="0" colName="ToBinNum"><![CDATA[D0202]]></changedValue>
      <changedValue tableName="InvTrans" rowState="Modified" rowNum="0" colName="ToBinDesc"><![CDATA[ROW D, SECTION 02, LEVEL 02]]></changedValue>
      <changedValue tableName="InvTrans" rowState="Modified" rowNum="0" colName="ToOnHandQty"><![CDATA[1000.00000000]]></changedValue>
      <changedValue tableName="InvTrans" rowState="Modified" rowNum="0" colName="TransferQty"><![CDATA[500.00]]></changedValue>
      <changedValue tableName="InvTrans" rowState="Modified" rowNum="0" colName="TrackingQty"><![CDATA[500.00]]></changedValue>
      <changedValue tableName="InvTrans" rowState="Modified" rowNum="0" colName="RowMod"><![CDATA[U]]></changedValue>
    </paramDataSet>
  </paramDataSetChanges>
</tracePacket>
Inv Transfer Trace Log - InvTransfer.PreCommitTransfer
<tracePacket>
  <businessObject>Erp.Proxy.BO.InvTransferImpl</businessObject>
  <methodName>PreCommitTransfer</methodName>
  <appServerUri>net.tcp://usdataps00122/MC-UAT/</appServerUri>
  <returnType>System.Void</returnType>
  <localTime>12/10/2019 09:21:36:1923394 AM</localTime>
  <executionTime>10</executionTime>
  <parameters>
    <parameter name="ds" type="InvTransferDataSet">
      <InvTransferDataSet xmlns="http://www.epicor.com/Ice/300/BO/InvTransfer/InvTransfer" />
    </parameter>
    <parameter name="RequiresUserInput" type="System.Boolean"><![CDATA[False]]></parameter>
  </parameters>
  <paramDataSetChanges>
    <paramDataSet name="ds" useDataSetNbr="0">
      <changedValue tableName="InvTrans" rowState="Modified" rowNum="0" colName="ToBinNum"><![CDATA[D0202]]></changedValue>
      <changedValue tableName="InvTrans" rowState="Modified" rowNum="0" colName="ToBinDesc"><![CDATA[ROW D, SECTION 02, LEVEL 02]]></changedValue>
      <changedValue tableName="InvTrans" rowState="Modified" rowNum="0" colName="ToOnHandQty"><![CDATA[1000.00000000]]></changedValue>
      <changedValue tableName="InvTrans" rowState="Modified" rowNum="0" colName="TransferQty"><![CDATA[500.00]]></changedValue>
      <changedValue tableName="InvTrans" rowState="Modified" rowNum="0" colName="TrackingQty"><![CDATA[500.00]]></changedValue>
      <changedValue tableName="InvTrans" rowState="Modified" rowNum="0" colName="RowMod"><![CDATA[U]]></changedValue>
    </paramDataSet>
  </paramDataSetChanges>
</tracePacket>
Inv Transfer Trace Log - InvTransfer.CommitTransfer
<tracePacket>
  <businessObject>Erp.Proxy.BO.InvTransferImpl</businessObject>
  <methodName>CommitTransfer</methodName>
  <appServerUri>net.tcp://usdataps00122/MC-UAT/</appServerUri>
  <returnType>System.Void</returnType>
  <localTime>12/10/2019 09:21:36:2079521 AM</localTime>
  <executionTime>345</executionTime>
  <parameters>
    <parameter name="ds" type="InvTransferDataSet">
      <InvTransferDataSet xmlns="http://www.epicor.com/Ice/300/BO/InvTransfer/InvTransfer" />
    </parameter>
    <parameter name="LegalNumberMessage" type="System.String"><![CDATA[]]></parameter>
    <parameter name="partTranPKs" type="System.String"><![CDATA[]]></parameter>
  </parameters>
  <paramDataSetChanges>
    <paramDataSet name="ds" useDataSetNbr="0">
      <changedValue tableName="InvTrans" rowState="Modified" rowNum="0" colName="ToBinNum"><![CDATA[D0202]]></changedValue>
      <changedValue tableName="InvTrans" rowState="Modified" rowNum="0" colName="ToBinDesc"><![CDATA[ROW D, SECTION 02, LEVEL 02]]></changedValue>
      <changedValue tableName="InvTrans" rowState="Modified" rowNum="0" colName="ToOnHandQty"><![CDATA[1000.00000000]]></changedValue>
      <changedValue tableName="InvTrans" rowState="Modified" rowNum="0" colName="TransferQty"><![CDATA[500.00]]></changedValue>
      <changedValue tableName="InvTrans" rowState="Modified" rowNum="0" colName="TrackingQty"><![CDATA[500.00]]></changedValue>
      <changedValue tableName="InvTrans" rowState="Modified" rowNum="0" colName="RowMod"><![CDATA[U]]></changedValue>
    </paramDataSet>
  </paramDataSetChanges>
</tracePacket>
Inv Transfer Trace Log - InvTransfer.GetList
<tracePacket>
  <businessObject>Erp.Proxy.BO.PartImpl</businessObject>
  <methodName>GetList</methodName>
  <appServerUri>net.tcp://usdataps00122/MC-UAT/</appServerUri>
  <returnType>PartListTableset</returnType>
  <localTime>12/10/2019 09:21:36:5587170 AM</localTime>
  <executionTime>12</executionTime>
  <parameters>
    <parameter name="whereClause" type="System.String"><![CDATA[PartNum='CB-0001']]></parameter>
    <parameter name="pageSize" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="absolutePage" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="morePages" type="System.Boolean"><![CDATA[False]]></parameter>
  </parameters>
</tracePacket>
Inv Transfer Trace Log - InvTransfer.GetTransferRecord
<tracePacket>
  <businessObject>Erp.Proxy.BO.InvTransferImpl</businessObject>
  <methodName>GetTransferRecord</methodName>
  <appServerUri>net.tcp://usdataps00122/MC-UAT/</appServerUri>
  <returnType>InvTransferTableset</returnType>
  <localTime>12/10/2019 09:21:36:5743403 AM</localTime>
  <executionTime>25</executionTime>
  <parameters>
    <parameter name="iPartNum" type="System.String"><![CDATA[CB-0001]]></parameter>
    <parameter name="uomCode" type="System.String"><![CDATA[]]></parameter>
  </parameters>
</tracePacket>

EDIT

A little explanation of the above…

I transferred 500 FT of P/N CB-0001 from Bin D0201 to D0202

  • The PreCommitTransfer looks like it checks to see if what it is going to try to do will work.
  • The CommitTransfer actually does the transfer. I’d guess that the Part Tran records are created during this.
  • The GetList retirves the bin values afterwards, to refresh the screen