Wednesday, March 24, 2010

Epicor 9 Tracing Introduction

Epcior 9 has a debugging feature called Tracing. Because Epicor 9 is based on on a DNA archictecture (distributed internet archictecture), all requests from the Epicor client are first translated into an XML document, and the submitted to the business layer through a web service call. See Introduction to Microsoft DNA for a good explanation of this architecture.

To turn on tracing, in Epcior client, to to Options, Tracing Options...

As a developer, you can see exactly what is being sent. The trace example below was generated when saving an address change for a user:


<tracePacket>
<businessObject>Epicor.Mfg.BO.UserFile</businessObject>
<methodName>Update</methodName>
<returnType>void</returnType>
...
<parameters>
<parameter name='ds' type='Epicor.Mfg.BO.UserFileDataSet' ><UserFileDataSet xmlns="http://www.epicor.com/Mfg/100/BO.UserFile/UserFile">
<UserFile>
<XUserID>neilc</XUserID>
<Name>Neil</Name>
<Address1>123 Raccoon Holow</Address1>
...
</UserFile>
<UserComp>
...
</UserComp>
</UserFileDataSet></parameter>
</parameters>
<paramDataSetChanges>
<paramDataSet name='ds' useDataSetNbr='0' >
<changedValue tableName='UserFile' rowState='Modified' rowNum='0' colName='Address1' ><![CDATA[123 Raccoon Hollow]]></changedValue>
...
</paramDataSet>
</paramDataSetChanges>
</tracePacket>

Because of the common naming convention across Epicor's namespace, I can infer from the Epicor.Mfg.BO.UserFile business object with method Update, that the following things exist:
* a table in the database called "UserFile", whose non-logic fields match parameters in UserFileDataSet
* a web service called UserFileService, with method Update

No comments:

Post a Comment