Subject:EDI delimeters when generating file, db lookups Author:Steve R Date:03 Apr 2006 08:36 PM
I can successfully convert EDI to XML with the EDI adapter. However, when I attempt to save an XML file back to EDI using the adapter, it doesn't appear that I can set the element and segment delimeters.
For example, the ISA segment of EDI file in looks like this:
ISA*00* *00* *ZZ*3216549870 *01*321654987 *060202*1136*U*00400*000002097*0*P*>
TD1**38
The file out looks like this:
ISA+00+ +00+ +ZZ+3216549870 +01+321654987 +060202+1136+U+0400+000002097+0+P'
TD1++38'
-the element delimeter should be an '*' instead of '+'
-the segment terminator ' should not be generated
-the ISA segment should end with '>'
Also, what is the best method to lookup values from a database to place a lookup value in an element? For example, I have a part ID and I need to lookup and use the supplier's part code instead.
If instead of a CR you want an LF to be your segment terminator, use
\n for the edi_segment PI. And since you are using a CR or LF as the
terminator, you'll want to change the URL option from &eol=yes to
&eol=no, otherwise you'll get extra linefeeds between each segment.
As to ending the segment with '>', that's the component separator,
and is specified as the value of the X12/ISA/ISA16 element. You
could do it just by changing the ISA16 value like this: ISA16>></ISA16>
Subject:EDI delimeters when generating file, db lookups Author:G Money Date:08 Apr 2006 11:38 PM
I'm not finding this last suggestion to work entirely. I'm using SS Enterprise to generate EDI files from XML files and have a hard time getting the lines to end with only an LF character.
I've got a project whereby I'm passing the EDI files onto a mainframe and MUST end my lines (segments with a ~ and a LF). I've tried changing the parameter in the "adpater:" URL but I still get CRLF's. I tried adding \n and \r to the PI and both cause a "Pipe Broken" error when I run the XSLT transform which saves via EDI using the adapter... So maybe I'm just making some mistake or is it really not working.
The suggestion to use the PI's to change the element delimiter to * and the segment delimiter to ~ worked like a charm and you have no idea how happy I am about that b/c the solution to that evaded me for weeks!!! (I've been working around it by post-processing the files with another program)
Just for reference, I'm generating an X12 844 in this case but the linefeed problem exists for every EDI file I try to generate.
SS rocks and thanks in advance for your help!!! :-)
Subject:EDI delimeters when generating file, db lookups Author:Tony Lavinio Date:10 Apr 2006 01:06 PM
I tried here with release 2, and it worked fine. Can you
post the first few lines of your XML file?
Also, how are you writing this? As output of XSLT or XQuery,
or just doing a File|Save As from the editor for testing?
Here's exactly what I used:
<?xml version="1.0" encoding="utf-8"?>
<?edi_segment \n?>
<?edi_element *?>
<X12>
As a side point, you may want to make sure that the encoding at
the next level knows the encoding of the EDI document; you might
want to set enc=ISO-8859-1 or even US-ASCII if that's what the
mainframe is expecting.
Subject:EDI delimeters when generating file, db lookups Author:G Money Date:10 Apr 2006 07:03 PM Originally Posted: 10 Apr 2006 07:01 PM
I'm using build 501f at the moment and I see there's a newer version out there so I'l try to pull that down to see if it works. I'll also take a stab at different encodings.
BTW, to answer your questions, I'm generating the XML as part of an XSLT transform scenario and the scenario is automatically saving to the EDI file using the EDI adapter. The scenerio is currently using the XalanJ 2.5.2 processor. The first couple of lines from the generated XML are:
<?xml version='1.0' ?>
<?edi_segment \n?>
<?edi_element *?>
I also generated:
<?xml version='1.0' ?>
<?edi_segment ~\n?>
<?edi_element *?>
Which was equally unsuccessful....
This works and is what I have in there currently but comes out with CRLF's at the end of segments (lines) instead of the desired LF only.
<?xml version='1.0' ?>
<?edi_segment ~?>
<?edi_element *?>
Thanks.. I'll write back again after trying to use Release 2 I suppose.
Subject:EDI delimeters when generating file, db lookups Author:G Money Date:10 Apr 2006 07:04 PM
I guess there's a problem with editing posts so I'm reposting hopefully with all of my carriage returns. :-)
I'm using build 501f at the moment and I see there's a newer version out there so I'l try to pull that down to see if it works. I'll also take a stab at different encodings.
BTW, to answer your questions, I'm generating the XML as part of an XSLT transform scenario and the scenario is automatically saving to the EDI file using the EDI adapter. The scenerio is currently using the XalanJ 2.5.2 processor. The first couple of lines from the generated XML are:
I also generated:
<?xml version='1.0' ?>
<?edi_segment ~\n?>
<?edi_element *?>
Which was equally unsuccessful....
This works and is what I have in there currently but comes out with CRLF's at the end of segments (lines) instead of the desired LF only.
<?xml version='1.0' ?>
<?edi_segment ~?>
<?edi_element *?>
Thanks.. I'll write back again after trying to use Release 2 I suppose.