XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Jon RobertsSubject: Converting from Edifact to SQL (Map via XML)
Author: Jon Roberts
Date: 23 Feb 2008 12:09 PM
We are trying to read Edifact EDI messages into our in-house application (written in VB.NET / Visual Studio 2005 / MS SQL 2005). I have an EDI data file, which I can read and convert to XML. However, when I read that XML file into our app (using DataSet.ReadXml) it creates a dataset containing some 58 tables. I can see the table names relate to the EDIFACT elements, but due to the EDI structure (these are DESADV) not all tables contain the same number of rows. For exanple, an Item Number (in GIR) may have two weights (Net & Gross). These are both QTY elements, so the QTY table has up to twice as many entries as the GIR table. How do I relate all these back to get one row per item number?

Maybe I'm coming from the wrong angle, so I tried using XQuery and Mapping the EDI source file to try and create a simple XML file (the goal is to import into a SQL table). I created an XML schema for a table (called Manifest) and - for testing - simply mapped a single field from the source XML file to this schema. This created the XQUERY below:
<a:ds_Stocks>
<a:Manifest>
<a:Item_No>
{/EDIFACT/DESADV/GROUP_10/GROUP_11/GROUP_13/GIR/GIR02/GIR0201/text()}
</a:Item_No>
</a:Manifest>
</a:ds_Stocks>
I can run this, but the output file just contains one 'record' that contains a concatenated version of all Item Codes in the source file.

I'm still trying to get my head around all this & have spend quite a while in the documentation, but am struggling somewhat. Any suggestion on how I should be approaching this? I'd really appreciate any help on offer.

Thanks

Postnext
Tony LavinioSubject: Converting from Edifact to SQL (Map via XML)
Author: Tony Lavinio
Date: 24 Feb 2008 10:35 AM
You need to tell the XQuery that you want a set of elements.
By drawing a single line from a non-repeating element, you
just invoked a 'copy'.

Somewhere above the element should be another element with
a repeating element icon (it splits from one to three blocks,
instead of having a single block on top and bottom). Draw a
line from that to a corresponding element in the schema that
also has the repeating property, and you should see a little
'FLWOR' block (with a flower on it) appear on the canvas.

Or, if you want, post a copy of the input file and output
schema, and we'll give you a hand. (Or email them to
stylus-field-report@progress.com)

Posttop
Jon RobertsSubject: Converting from Edifact to SQL (Map via XML)
Author: Jon Roberts
Date: 24 Feb 2008 02:15 PM
Originally Posted: 24 Feb 2008 02:08 PM
Hi Tony,

Thanks for your offer of assistance. I've emailed you with the sample files as requested. Any help you can offer will be very much appreciated.

Many Thanks

 
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.