Inbound EDI Document Processing

This is basic query on the approach to be taken for processing a inbound edi document.

Inbound EDI document is usally processed by:

  1. importing the EDI documents(Document type identification)2. Processing rule for a document.

How do i proceed after this. How do i access the pipeline values of the document in the TN. Is this through BI process Model/ is there any other way of doing it.

Regards
Ravi

Ravi - I don’t know much EDI-specific processing in TN, but I’ll try to answer your query in a generic sort of way.

Every service invoked by a TN processing rule must have the specification defined by wm.tn.rec:ProcessingService. This is an input/output signature which ensures that you can access the document (via the ‘bizdoc’ record) within the pipeline of the processing service.

Once you have your bizdoc, you can call special WM functions to convert the bizdoc to an EDI record - (wm.b2b.editn:bizdocToRecord, I think)

Ravi,

Read the EDI Module Core Component User’s guide in the EDI package. Also check out the EDISamples package.
Essentially you need to do the following:
wm.b2b.edi:envelopeProcess
wm.b2b.edi.templateMgr:getTemplate
wm.b2b.edi.util:getEDIstring
wm.b2b.edi:convertToValues

This gets your EDI document into an Idata structure but you must load the standards first. The Docs and the EDISample packages are quite helpful.

Chris

Read the EDI Module: TN Component guide for a service that does all of the above that Chris lists for you. (bizdocToRecord). The EDI for TN and EDI guides provide some conflicting info as to where to place templates. Follow the EDI for TN guide.

Rob,

Good point about the conflicting docs. When I started this I ended up building 2 extra packages unnecessarily.

Also I wonder why the EDISamples example doesn’t use the
bizdocToRecord.

Chris

EDISamples pre-dates EDI for TN. Generally speaking, EDI for TN makes things much easier. FLOW developer’s don’t need to dork around with de-enveloping. TN does it for you.

Chris,Rob, Sonam

I have done the implementation for processing a inbound EDI document using Envelope process, getTemplate , getEDIString and then the converToValues. i have also done the validation with the 990 schema. The output EDIValues record also comes out properly.

I have a basic query in the way the processing should happen.

Actually my document is from a VAN source. The document is polled at regular interval. If a document is available the the processing starts.

Processing Type #1

So the sequnce must be getting the documnet using Scheduler service that invokes the VANFTP service. When a document arrives the scheduler will do the EDI conversion using the document. As all this process can be completed in the Developer as a service what should be the role of the TN.

Processing Type #2

Initially i thought that the scheduler service will pick up the doc from van and pass it to wm.tn.receive and proceess the document through TN . Then in the TN specify a processing action for each of the processing rule according to the specific case. Like proccess the EDI document and do mapping according to each document type.

But when i see the “content” object from the bizdoc object content type is same as the one submitted.

But it seems to me like it is a additionla step / layer for inound processing as we can also do a generic doument processing logic like the one specified for the “X12toEDI” service provided in the sample and then use 'invoke" to do a specific processing.

i regret if it is too much but i am new to to this area. I have gone through most of the documents. I could not get a clear picture how inbound documents should be generally processed. I have also gone through BI Process model for this type of processing.

As there are number of ways of implenetation i would like to know the optimal way of doing this.

Thanks for all your support.

Regards
Ravi

Having the scheduled service retrieve the doc via FTP and then submit the doc to TN is good approach. What you get by passing the doc to TN is 1) consistency of implementation; 2) the document is logged–supporting auditing, troubleshooting, retries, etc.

Rob,

As such only a scheduled delivery Queue is available in the TN. If i am correct a scheduled documnet pick up cannot happen from the TN. So the only way to pull in the doc would be to use FTP scheduled on the VAN folder.

So the TN should be used to do a reliability of handling the process and maintaining log details.

So following steps could be a standard way of processing in-bound.

  • Get the document from VAN using VANFTP scheduled service.

  • Submit the document to the wm.tn.receive.

  • Have processing rules for each document & sender receiver combinations.

  • Processing actions (Services to be executed) for each Processing Rule.

  • The processing actions Flow service (Services to execute: ) gets invoked will convert the EDI flat data to EDIValues (using envelope, getTemplate , getEDIString, converToValues) then do a Validation using validate service against the schema record of the EDI

  • Then perform the EDI segment mapping to the BackEnd system form.

Please also confirm that my understanding is correct.

It would be very helpful if any optimized/recommended way of processing is to be followed.

Regards
Ravi

Exactly right, except for:

  • The processing actions Flow service (Services to execute: ) gets invoked will convert the EDI flat data to EDIValues (using envelope, getTemplate , getEDIString, converToValues) then do a Validation using validate service against the schema record of the EDI

Use the EDI for TN bizdocToRecord service. Have the processing rule apply to the transaction set, not the X12 envelope. With this, you don’t need to do the steps you outlined “(using envelope, getTemplate , getEDIString, converToValues)”. Just do validation against the EDI record structure, not the schema.

HTH

Thanks rob,

I will try to reframe my impementaion according to your guidelines.

The information provided was very helpfull and also provided me lot of confidence in the way the inbound should be processed.

Regards
Ravi.

i am facing one problem ie one document has multiple records is there i am not able to get particular record from that document please send me any one this solution

ramakrishnaRao:

I’m sure someone can help you but your description of the issue is not detailed enough. Please review http://www.wmusers.com/wmusers/messages/100/87920.shtml?1132671565 for information on posting queries that will get the best response. You probably want to start a new thread too instead of using this old one.