Refreshing a Service Reference to Update Metadata Information
Software Type: Epicor ERP version 9
As an Epicor partner, we do a lot of customizing and extending of the default Epicor instance. Our Datix Connect technology, which is based on Scribe integration technology, is a prime example of when this is necessary. Datix Connect provides Data Integration and Synchronization from disparate systems to Epicor, such as Salesforce to Epicor, Microsoft Dynamics to Epicor, and many other enterprise systems to Epicor.
A popular way to extend Epicor is by the use of its WCF Services. Service endpoints, for example CustomerService.svc, are used to generate metadata for the entity that you plan on working with.
We were recently doing data integration for a client when we realized that they modified their database schema and our connector was not seeing the new fields as they came in. The troubleshooting was frustrating, but it turns out the solution was simple!
Our initial troubleshooting consisted of:
- 1. Confirming the ServiceURL was correct
- 2. Using BusinessLogic Tester to confirm the fields are attached to a Customer GetById request
- 3. Confirming that the fields were populated in Datix Connect
Once we were able to verify all that information, our attention turned to how our Datix Connect determines what fields belong to what entity.
Looking through the Datix Connect integration code we determined that there’s a method call which supplies Datix Connect with the metadata. That method simply returns a DataSetType of the entity, and that DataSetType contains the fields. We then determined that the DataSetType fields are auto-generated when a Service Reference is added or updated.
The metadata of our customer’s custom schema was different than the default Epicor Instance which we use to generate all the entities’ metadata, so the fix was as simple as deleting our old service reference, and adding a new service reference to our customer’s web service for their specific, modified entity.
If you change your table schema for your Epicor System you’ll simply need to right click on the WCF Service Reference and select “Update Service Reference.”
If you’re changing it to a new service reference, like we were, you need to either select “Configure Service Reference” and provide the new URL or delete the old service reference and add a new one with the correct URL.
Do you have experience or challenges customizing Epicor data and integrating with other systems? Was this helpful? Let me know in the comments below.