DMT - Add Memo Table Record - Unable to call method

,

Good morning,
I need to update the memo table using the DMT. I have a simple template file that does not give any errors. When I run the file I get “Unable to call method ERP.BO.Job.GetRows()”.
What am I missing here?


Thanks!
Nate

Does job 12345/6 exist? If so maybe DMT doesn’t like dealing with the forward slash?

Yes, all of our jobs are setup that way.

Looking at the required fields for Memo, I see that MemoNum is required. I had left that field out. If I want the system to fill in the next memo number, how can I tell it to do that if I have to define the MemoNum as a required field?

Edit: I misread. MemoNum is an optional field. So as long as I don’t include it in the upload, then it will be calculated automatically. I still can’t figure out why the DMT won’t save this memo.

I even tried the suggestions here: Unable to load Memo through DMT - ERP 10 - Epicor User Help Forum (epiusers.help) They suggest to add RelatedToSysRowID. Adding that field in does not seem to change the error I am getting.

You selected “Add” and not just “Update”? If so, try it again setting the MemoNum to 0 (zero).

And you’ve confirmed that you can add a memo to this Job through the regular UI?

Yes I can add memos through regular Job Entry UI. I just added in MemoNum =0, and the same error persists. I also tried with just Add, and just Update. Normally I keep both checked.

2022-08-12T13:30:42 Company:VTAERO, RelatedToFile:JobHead, Key1: 12345/6, Key2: and Key3: Table: Msg: Unable to call method ERP.BO.Job.GetRows()
Unable to call method ERP.BO.Job.GetRows()

Write a BAQ to display the values of the memo you manually entered… specifically the KeyX fields… see if they have any meaning and shouldn’t be left blank.

1 Like

Good advice. I already have a BAQ showing the memos for this job. I am duplicating everything except for the SysRowID.

Enable tracing then do an update/add by hand. Just to see if those other Keys (or other fields) actually have required data in them.

One last thing. I’v had some issues the data types for Key fields acting quirky. maybe a CAST is in order.

edit

one more thing. Are Memo’s actually part of Erp or Ice?

The other memo records for this job say Erp. I think maybe my job num was throwing it off. So I added a ’ in front to convert it to a text field in Excel. These didn’t solve the problem.

I will try tracing a manual entry. Good idea.

Don’t forget that you can enable tracing in DMT also. Be good to do a side by side comparison.

How do you trace DMT?

When I traced the manual entry I found that some fields are being updated that I didn’t include. Here are the relevant trace bits:

  <Memo>
          <Company>VTAERO</Company>
          <RelatedToSchemaName>Erp</RelatedToSchemaName>
          <RelatedToFile>JobHead</RelatedToFile>
          <Key1>27489/9</Key1>
          <Key2></Key2>
          <Key3></Key3>
          <MemoDate>2022-08-12T17:54:46.5-04:00</MemoDate>
          <MemoNum>1235399</MemoNum>
          <MemoUserID>NATHAN</MemoUserID>
          <Notify>false</Notify>
          <NotifyUserID></NotifyUserID>
          <MemoDesc>new teste title</MemoDesc>
          <MemoText>new test body</MemoText>
          <CategoryID></CategoryID>
          <RelatedToSysRowID>bb55aa02-d799-4fb2-aba3-345011938b2a</RelatedToSysRowID>
          <ChangeTrackChargeIDBtn>false</ChangeTrackChargeIDBtn>
          <ChangeTrackAmount>0.00000</ChangeTrackAmount>
          <ChangeTrackChargeID></ChangeTrackChargeID>
          <ChangeTrackChargeDesc></ChangeTrackChargeDesc>
          <ChangeTrackStatus></ChangeTrackStatus>
          <SysRevID>114931703</SysRevID>
          <SysRowID>3c823e19-c937-4ab3-b080-88c4e1b44c97</SysRowID>
          <CategoryDesc></CategoryDesc>
          <MemoCompanyDate>2022-08-12T13:54:46.5-04:00</MemoCompanyDate>
          <BitFlag>0</BitFlag>
          <RowMod></RowMod>
        </Memo>

As far as I can tell, the trace for the manual approach never calls BO.Job.GetRows(). So I am not sure why I am getting this error at all.

I tried again with values for Notify, ChangeTrackChargeIDBtn, ChangeTrackAmount, and RowMod. But I still get the same error. Why does Job.GetRows need to be part of this anyway?

Thanks everyone for pitching in. I love trying all your ideas! Keep em coming!
Nate

There’s a gear or settings in the lower right of the DMT window.

1 Like

Thanks for that! I didn’t get trained on that. :slight_smile:
However, running the trace on this failing memo DMT doesn’t give me much information:

<tracePacket>
  <businessObject>Ice.Proxy.BO.MemoImpl</businessObject>
  <methodName>GetRows</methodName>
  <appServerUri>https://centralusdtpilot01.epicorsaas.com/SaaS512Pilot/</appServerUri>
  <returnType>Ice.BO.MemoDataSet</returnType>
  <localTime>8/12/2022 14:07:00:4695360 PM</localTime>
  <threadID>26</threadID>
  <correlationId>77209c2e-e36c-41e0-9656-da82e780ce7d</correlationId>
  <executionTime total="280" roundTrip="262" channel="0" bpm="0" bpmDataForm="0" other="18" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClauseMemo" type="System.String"><![CDATA[Company='VTAERO' and RelatedToFile = 'JobHead' and Key1 = '27489/9' and Key2 = '' and Key3 = '' and MemoNum=0]]></parameter>
    <parameter name="pageSize" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="absolutePage" type="System.Int32"><![CDATA[1]]></parameter>
  </parameters>
  <returnValues>
    <returnParameter name="" type="Ice.BO.MemoDataSet">
      <MemoDataSet xmlns="http://www.epicor.com/Ice/300/BO/Memo/Memo" />
    </returnParameter>
    <returnParameter name="morePages" type="System.Boolean"><![CDATA[False]]></returnParameter>
  </returnValues>
</tracePacket>

<tracePacket>
  <businessObject>Ice.Proxy.BO.ZDataTableImpl</businessObject>
  <methodName>GetRows</methodName>
  <appServerUri>https://centralusdtpilot01.epicorsaas.com/SaaS512Pilot/</appServerUri>
  <returnType>Ice.BO.ZDataTableDataSet</returnType>
  <localTime>8/12/2022 14:07:00:7939385 PM</localTime>
  <threadID>26</threadID>
  <correlationId>b41b41b9-1863-4036-ae5f-af94d14a53bb</correlationId>
  <executionTime total="159" roundTrip="145" channel="0" bpm="0" bpmDataForm="0" other="14" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClauseZDataTable" type="System.String"><![CDATA[SystemCode='ERP' and DataTableID='JobHead']]></parameter>
    <parameter name="whereClauseZLookupLink" type="System.String"><![CDATA[1=0]]></parameter>
    <parameter name="whereClauseZLinkColumn" type="System.String"><![CDATA[1=0]]></parameter>
    <parameter name="whereClauseZLookupField" type="System.String"><![CDATA[1=0]]></parameter>
    <parameter name="whereClauseZDataField" type="System.String"><![CDATA[1=0]]></parameter>
    <parameter name="whereClauseZKey" type="System.String"><![CDATA[DataTableID='JobHead']]></parameter>
    <parameter name="whereClauseZKeyField" type="System.String"><![CDATA[DataTableID='JobHead']]></parameter>
    <parameter name="pageSize" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="absolutePage" type="System.Int32"><![CDATA[0]]></parameter>
  </parameters>
  <returnValues>
    <returnParameter name="" type="Ice.BO.ZDataTableDataSet">
      <ZDataTableDataSet xmlns="http://www.epicor.com/Ice/300/BO/ZDataTable/ZDataTable">
        <ZDataTable>
          <SystemCode>ERP</SystemCode>
          <DataTableID>JobHead</DataTableID>
          <Description>&lt;MemoMethod:Job&gt;              
Header Information file for Manufacture Work Orders (Jobs).
DELETE: Not allowed if job has had activity. Referenced in LaborDtl or PartTran.</Description>
          <SchemaName>Erp</SchemaName>
          <DBTableName>JobHead</DBTableName>
          <WhereClause></WhereClause>
          <RestrictedByTer>false</RestrictedByTer>
          <RestrictedByPlant>false</RestrictedByPlant>
          <FullSync>true</FullSync>
          <TableType>DB</TableType>
          <SystemFlag>true</SystemFlag>
          <TableLabel>Job</TableLabel>
          <ChgLogID>JobHead</ChgLogID>
          <BOUpdate></BOUpdate>
          <UpdateMethod></UpdateMethod>
          <CGCCode></CGCCode>
          <Interface></Interface>
          <SysRevID>110331944</SysRevID>
          <SysRowID>931a11f2-7607-41c2-9d91-9f6c00f97c1e</SysRowID>
          <BitFlag>0</BitFlag>
          <RowMod></RowMod>
        </ZDataTable>
        <ZKey>
          <SystemCode>ERP</SystemCode>
          <DataTableID>JobHead</DataTableID>
          <KeyID>ExternalPrimaryKey</KeyID>
          <Description>External PK for JobHead</Description>
          <IsPrimaryKey>true</IsPrimaryKey>
          <SystemFlag>true</SystemFlag>
          <External>true</External>
          <SysRevID>109512635</SysRevID>
          <SysRowID>af479c5b-c4b1-4c83-8403-a22f0138abbd</SysRowID>
          <BitFlag>0</BitFlag>
          <RowMod></RowMod>
        </ZKey>
        <ZKeyField>
          <SystemCode>ERP</SystemCode>
          <DataTableID>JobHead</DataTableID>
          <KeyID>ExternalPrimaryKey</KeyID>
          <Seq>1</Seq>
          <FieldName>Company</FieldName>
          <SystemFlag>true</SystemFlag>
          <SysRevID>109693749</SysRevID>
          <SysRowID>b09155fd-a744-4025-8905-a22f0138abbf</SysRowID>
          <BitFlag>0</BitFlag>
          <RowMod></RowMod>
        </ZKeyField>
        <ZKeyField>
          <SystemCode>ERP</SystemCode>
          <DataTableID>JobHead</DataTableID>
          <KeyID>ExternalPrimaryKey</KeyID>
          <Seq>2</Seq>
          <FieldName>JobNum</FieldName>
          <SystemFlag>true</SystemFlag>
          <SysRevID>109693750</SysRevID>
          <SysRowID>cddf84f7-cd59-40d3-9f58-a22f0138abbf</SysRowID>
          <BitFlag>0</BitFlag>
          <RowMod></RowMod>
        </ZKeyField>
      </ZDataTableDataSet>
    </returnParameter>
    <returnParameter name="morePages" type="System.Boolean"><![CDATA[False]]></returnParameter>
  </returnValues>
</tracePacket>

<tracePacket>
  <businessObject>Ice.Proxy.Lib.BOReaderImpl</businessObject>
  <methodName>GetRows</methodName>
  <appServerUri>https://centralusdtpilot01.epicorsaas.com/SaaS512Pilot/</appServerUri>
  <returnType>System.Data.DataSet</returnType>
  <localTime>8/12/2022 14:07:00:9555731 PM</localTime>
  <threadID>26</threadID>
  <correlationId>113d0fdc-dedd-488d-8c34-c15e66ef8e9f</correlationId>
  <executionTime total="127" roundTrip="127" channel="0" bpm="0" bpmDataForm="0" other="0" />
  <retries>0</retries>
  <parameters>
    <parameter name="serviceNamespace" type="System.String"><![CDATA[ERP:BO:Job]]></parameter>
    <parameter name="whereClause" type="System.String"><![CDATA[Company='VTAERO' and JobNum='27489/9']]></parameter>
    <parameter name="columnList" type="System.String"><![CDATA[SysRowId]]></parameter>
  </parameters>
</tracePacket>

Does this tell you anything?

Is that a field in DMT? My guess is that it is the SysRowID of the JobHead record. Id’ think that this is something DMT would calc for you - like when you enter the CustID, DMT figures out the actual CustNum.

edit

Also, is there any Change Log set on the JobHeader table? I’m wondering what the fields that start with ChangeTrack... are for.

Yes, I saw that field in the DMT template, so I tried adding it in and copying the GUID from the other memo rows for this job. I don’t think the DMT can determine the sysrowid just from key1 (jobNum) but I can export the sysrow ID for the job when I export the data with my BAQ. Unfortunately that still says nothing about the error in DMT, or why I am getting it.

I dont see any change log records for this job in Job Entry.

I’m just talking out loud here…

But it looks like that first BO call in your DMT trace is trying to find the related record. I’m basing that on the fact that the values your pass are used in a WHERE clause. But the returned values looks empty

<returnValues>
    <returnParameter name="" type="Ice.BO.MemoDataSet">
      <MemoDataSet xmlns="http://www.epicor.com/Ice/300/BO/Memo/Memo" />
    </returnParameter>
    <returnParameter name="morePages" type="System.Boolean"><![CDATA[False]]></returnParameter>
  </returnValues>

Just now noticed “SaaS512Pilot” Maybe you’re trying to do something that coan’t be done in your type of hosting environment

:grimacing:
I posted the dilemma up to my Epicor Support guy. I will post back if I get a reply this time.

This thread won’t solve your problem, but does point to Memo being an Ice schema

maybe @utaylor can give you some insight

1 Like