Stylus studio convert edifact message



Description:
United Nations/Electronic Data Interchange For Administration, Commerce and Transport (UN/EDIFACT) is the international EDI standard developed under the United Nations. The work of maintenance and further development of this standard is done through the United Nations Centre for Trade Facilitation and Electronic Business (UN/CEFACT) under the UN Economic Commission for Europe, in the Finance Domain working group UN CEFACT TBG5. EDIFACT has been adopted by the International Organization for Standardization (ISO) as the ISO standard ISO 9735.
The EDIFACT standard provides



  • A set of syntax rules to structure data,
  • An interactive exchange protocol (I-EDI),
  • Standard messages which allow multi-country and multi-industry exchange.
See below for an example of an EDIFACT message used to answer to a product availability request:
  • ' is a segment terminator
  • + is a data element separator
  •  : is a component data element separator
  •  ? is a release character
Note: The line breaks after each segment in this example have been added for readability. There are typically no line breaks in EDI data.
UNH+1+PAORES:93:1:IA'- This is the header segment which is required at the start of every message. This code specifies that the message name and version is PAORES 93 revision 1 and it was defined by the organisation IA (IATA).
IFT+3+NO MORE FLIGHTS' - This is an "Interactive Free Text" segment containing the text "NO MORE FLIGHTS".
UNT+13+1' - This is the tail segment. It indicated that the message sent contains 13 segments.

[edit] Structure

EDIFACT has a hierarchical structure where the top level is referred to as an interchange, and lower levels contain multiple messages which consist of segments, which in turn consist of composites. The final iteration is an element which is derived from the United Nations Trade Data Element Directory (UNTDED) and are normalised throughout the EDIFACT standard.
A group or segment can be mandatory (M) or conditional (C) and can be specified to repeat. For example, C99 indicates between 0 and 99 repetitions of a segment or group, while M99 signifies between 1 and 99 repetitions.
A group, like a message, is a sequence of segments or groups. The first segment or group beneath a group must be mandatory, and the group should be made conditional if the logic of the situation demands it.
            Service String Advice     UNA   Conditional
     _____  Interchange Header        UNB   Mandatory
    |  ___  Functional Group Header   UNG   Conditional
    | |  _  Message Header            UNH   Mandatory
    | | |   User Data Segments              As required
    | | |_  Message Trailer           UNT   Mandatory
    | |___  Functional Group Trailer  UNE   Conditional
    |_____  Interchange Trailer       UNZ   Mandatory

[edit] Current state of EDIFACT

There is an apparent battle between XML and EDIFACT. An equivalent XML message has a larger file size than an EDIFACT message, but it is easier for users to read (although this is not necessary because the contents are created to be read by computers). Another possible explanation is that compatibility is being favored over performance, since more tools exist to work with XML data than with EDIFACT. EDIFACT-messages can be as much as one tenth the size of XML-messages. That makes XML less attractive for very high volume applications.
An advantage of EDIFACT is the availability of agreed message-contents, which XML must leverage to develop its own similar agreed contents. RosettaNet is one of the emerging XML standards and is widely used in semiconductors and high tech industries.
UBL is another currently being adopted by Scandinavian governments as a legally required standard for sending invoices to governments, and was enforced in February 2005 that all invoices to the Danish government must be sent in an electronic format.
ebXML is another XML standard built by UN/CEFACT (along with EDIFACT), and is often seen as a standard best suited for small and medium enterprises.
However, EDIFACT is likely to remain the most widely used in high tech, civil aviation, retail and tourism industries, due to the amount of software that leverages the standard, and the need for integration between new systems and legacy systems.[citation needed]
Europe has a large EDIFACT installed base because it adopted the technology early, while the Asian region adopted B2B in later implementations and is therefore using more XML standards.
EDIFACT will grow further in Europe's energy market where it is a current requirement.
 For under standing of Edifact Message click below three link
For Example under standing 


How to do:
XMl to Java object and java object to xml creation using JAXB
So download
stylus-studio-enterprise-16-x64.exe 

After Install 





Code 1:
?
package com.kartik;

import java.io.FileOutputStream;
import java.io.OutputStream;

import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;

import com.ddtek.xmlconverter.ConvertFromXML;
import com.ddtek.xmlconverter.ConvertToXML;
import com.ddtek.xmlconverter.ConverterFactory;

public class XmlToEdi {
public static void main(String[] args) throws Throwable {
ConverterFactory cf = new ConverterFactory();
OutputStream os = null;
try {
ConvertToXML c2x = cf.newConvertToXML("EDI");
os = new FileOutputStream("d:\\SCC\\anodyne_edi_edi.xml");
c2x.convert(new StreamSource("d:\\SCC\\anodyne_edi.edi"), new StreamResult(os));
os.close();
System.out.println(" Converted ");
} catch (Exception e) {
}

try {
ConvertFromXML c2x = cf.newConvertFromXML("EDI");
os = new FileOutputStream("d:\\SCC\\anodyne_edi_new.edi");
c2x.convert(new StreamSource("d:\\SCC\\anodyne_edi_edi.xml"), new StreamResult(os));
os.close();
System.out.println(" Converted ");
} catch (Exception e) {
}
}
}




Input : anodyne_edi.edi
?
UNA:+.? '
UNB+UNOB:4+STYLUSSTUDIO:1+DATADIRECT:1+20051107:1159+6002'
UNH+SSDD1+ORDERS:D:03B:UN:EAN008'
BGM+220+BKOD99+9'
DTM+137:20051107:102'
NAD+BY+5412345000176::9'
NAD+SU+4012345000094::9'
LIN+1+1+0764569104:IB'
QTY+1:25'
FTX+AFM+1++XPath 2.0 Programmer?'s Reference'
LIN+2+1+0764569090:IB'
QTY+1:25'
FTX+AFM+1++XSLT 2.0 Programmer?'s Reference'
LIN+3+1+1861004656:IB'
QTY+1:16'
FTX+AFM+1++Java Server Programming'
LIN+4+1+0596006756:IB'
QTY+1:10'
FTX+AFM+1++Enterprise Service Bus'
UNS+S'
CNT+2:4'
UNT+22+SSDD1'
UNZ+1+6002'



Output 1: anodyne_edi_edi.xml
?
<?xml version="1.0" encoding="UTF-8"?>
<EDIFACT>
<UNB>
<UNB01>
<UNB0101><!--0001: Syntax identifier-->UNOB<!--UN/ECE level B--></UNB0101>
<UNB0102><!--0002: Syntax version number-->4<!--Version 4--></UNB0102>
</UNB01>
<UNB02>
<UNB0201><!--0004: Interchange sender identification-->STYLUSSTUDIO</UNB0201>
<UNB0202><!--0007: Identification code qualifier-->1<!--DUNS (Data Universal Numbering System)--></UNB0202>
</UNB02>
<UNB03>
<UNB0301><!--0010: Interchange recipient identification-->DATADIRECT</UNB0301>
<UNB0302><!--0007: Identification code qualifier-->1<!--DUNS (Data Universal Numbering System)--></UNB0302>
</UNB03>
<UNB04>
<UNB0401><!--0017: Date-->20051107</UNB0401>
<UNB0402><!--0019: Time-->1159</UNB0402>
</UNB04>
<UNB05><!--0020: Interchange control reference-->6002</UNB05>
</UNB>
<ORDERS>
<UNH>
<UNH01><!--0062: Message reference number-->SSDD1</UNH01>
<UNH02>
<UNH0201><!--0065: Message type-->ORDERS<!--Purchase order message--></UNH0201>
<UNH0202><!--0052: Message version number-->D<!--Draft version/UN/EDIFACT Directory--></UNH0202>
<UNH0203><!--0054: Message release number-->03B<!--Release 2003 - B--></UNH0203>
<UNH0204><!--0051: Controlling agency, coded-->UN<!--UN/CEFACT--></UNH0204>
<UNH0205><!--0057: Association assigned code-->EAN008</UNH0205>
</UNH02>
</UNH>
<BGM>
<BGM01>
<BGM0101><!--1001: Document name code-->220<!--Order--></BGM0101>
</BGM01>
<BGM02>
<BGM0201><!--1004: Document identifier-->BKOD99</BGM0201>
</BGM02>
<BGM03><!--1225: Message function code-->9<!--Original--></BGM03>
</BGM>
<DTM>
<DTM01>
<DTM0101><!--2005: Date or time or period function code qualifier-->137<!--Document/message date/time--></DTM0101>
<DTM0102><!--2380: Date or time or period text-->20051107</DTM0102>
<DTM0103><!--2379: Date or time or period format code-->102<!--CCYYMMDD--></DTM0103>
</DTM01>
</DTM>
<GROUP_2>
<NAD>
<NAD01><!--3035: Party function code qualifier-->BY<!--Buyer--></NAD01>
<NAD02>
<NAD0201><!--3039: Party identifier-->5412345000176</NAD0201>
<NAD0203><!--3055: Code list responsible agency code-->9<!--EAN International--></NAD0203>
</NAD02>
</NAD>
</GROUP_2>
<GROUP_2>
<NAD>
<NAD01><!--3035: Party function code qualifier-->SU<!--Supplier--></NAD01>
<NAD02>
<NAD0201><!--3039: Party identifier-->4012345000094</NAD0201>
<NAD0203><!--3055: Code list responsible agency code-->9<!--EAN International--></NAD0203>
</NAD02>
</NAD>
</GROUP_2>
<GROUP_28>
<LIN>
<LIN01><!--1082: LINE ITEM IDENTIFIER-->1</LIN01>
<LIN02><!--1229: ACTION REQUEST/NOTIFICATION DESCRIPTION CODE-->1<!--Added--></LIN02>
<LIN03>
<LIN0301><!--7140: Item identifier-->0764569104</LIN0301>
<LIN0302><!--7143: Item type identification code-->IB<!--ISBN (International Standard Book Number)--></LIN0302>
</LIN03>
</LIN>
<QTY>
<QTY01>
<QTY0101><!--6063: Quantity type code qualifier-->1<!--Discrete quantity--></QTY0101>
<QTY0102><!--6060: Quantity-->25</QTY0102>
</QTY01>
</QTY>
<FTX>
<FTX01><!--4451: TEXT SUBJECT CODE QUALIFIER-->AFM<!--Title--></FTX01>
<FTX02><!--4453: FREE TEXT FUNCTION CODE-->1<!--Text for subsequent use--></FTX02>
<FTX04>
<FTX0401><!--4440: Free text-->XPath 2.0 Programmer's Reference</FTX0401>
</FTX04>
</FTX>
</GROUP_28>
<GROUP_28>
<LIN>
<LIN01><!--1082: LINE ITEM IDENTIFIER-->2</LIN01>
<LIN02><!--1229: ACTION REQUEST/NOTIFICATION DESCRIPTION CODE-->1<!--Added--></LIN02>
<LIN03>
<LIN0301><!--7140: Item identifier-->0764569090</LIN0301>
<LIN0302><!--7143: Item type identification code-->IB<!--ISBN (International Standard Book Number)--></LIN0302>
</LIN03>
</LIN>
<QTY>
<QTY01>
<QTY0101><!--6063: Quantity type code qualifier-->1<!--Discrete quantity--></QTY0101>
<QTY0102><!--6060: Quantity-->25</QTY0102>
</QTY01>
</QTY>
<FTX>
<FTX01><!--4451: TEXT SUBJECT CODE QUALIFIER-->AFM<!--Title--></FTX01>
<FTX02><!--4453: FREE TEXT FUNCTION CODE-->1<!--Text for subsequent use--></FTX02>
<FTX04>
<FTX0401><!--4440: Free text-->XSLT 2.0 Programmer's Reference</FTX0401>
</FTX04>
</FTX>
</GROUP_28>
<GROUP_28>
<LIN>
<LIN01><!--1082: LINE ITEM IDENTIFIER-->3</LIN01>
<LIN02><!--1229: ACTION REQUEST/NOTIFICATION DESCRIPTION CODE-->1<!--Added--></LIN02>
<LIN03>
<LIN0301><!--7140: Item identifier-->1861004656</LIN0301>
<LIN0302><!--7143: Item type identification code-->IB<!--ISBN (International Standard Book Number)--></LIN0302>
</LIN03>
</LIN>
<QTY>
<QTY01>
<QTY0101><!--6063: Quantity type code qualifier-->1<!--Discrete quantity--></QTY0101>
<QTY0102><!--6060: Quantity-->16</QTY0102>
</QTY01>
</QTY>
<FTX>
<FTX01><!--4451: TEXT SUBJECT CODE QUALIFIER-->AFM<!--Title--></FTX01>
<FTX02><!--4453: FREE TEXT FUNCTION CODE-->1<!--Text for subsequent use--></FTX02>
<FTX04>
<FTX0401><!--4440: Free text-->Java Server Programming</FTX0401>
</FTX04>
</FTX>
</GROUP_28>
<GROUP_28>
<LIN>
<LIN01><!--1082: LINE ITEM IDENTIFIER-->4</LIN01>
<LIN02><!--1229: ACTION REQUEST/NOTIFICATION DESCRIPTION CODE-->1<!--Added--></LIN02>
<LIN03>
<LIN0301><!--7140: Item identifier-->0596006756</LIN0301>
<LIN0302><!--7143: Item type identification code-->IB<!--ISBN (International Standard Book Number)--></LIN0302>
</LIN03>
</LIN>
<QTY>
<QTY01>
<QTY0101><!--6063: Quantity type code qualifier-->1<!--Discrete quantity--></QTY0101>
<QTY0102><!--6060: Quantity-->10</QTY0102>
</QTY01>
</QTY>
<FTX>
<FTX01><!--4451: TEXT SUBJECT CODE QUALIFIER-->AFM<!--Title--></FTX01>
<FTX02><!--4453: FREE TEXT FUNCTION CODE-->1<!--Text for subsequent use--></FTX02>
<FTX04>
<FTX0401><!--4440: Free text-->Enterprise Service Bus</FTX0401>
</FTX04>
</FTX>
</GROUP_28>
<UNS>
<UNS01><!--0081: Section identification-->S<!--Detail/summary section separation--></UNS01>
</UNS>
<CNT>
<CNT01>
<CNT0101><!--6069: Control total type code qualifier-->2<!--Number of line items in message--></CNT0101>
<CNT0102><!--6066: Control total quantity-->4</CNT0102>
</CNT01>
</CNT>
<UNT>
<UNT01><!--0074: Number of segments in a message-->20</UNT01>
<UNT02><!--0062: Message reference number-->SSDD1</UNT02>
</UNT>
</ORDERS>
<UNZ>
<UNZ01><!--0036: Interchange control count-->1</UNZ01>
<UNZ02><!--0020: Interchange control reference-->6002</UNZ02>
</UNZ>
</EDIFACT>



Output 2: anodyne_edi_new.edi
?
UNA:+.? '
UNB+UNOB:4+STYLUSSTUDIO:1+DATADIRECT:1+20051107:1159+6002'
UNH+SSDD1+ORDERS:D:03B:UN:EAN008'
BGM+220+BKOD99+9'
DTM+137:20051107:102'
NAD+BY+5412345000176::9'
NAD+SU+4012345000094::9'
LIN+1+1+0764569104:IB'
QTY+1:25'
FTX+AFM+1++XPath 2.0 Programmer?'s Reference'
LIN+2+1+0764569090:IB'
QTY+1:25'
FTX+AFM+1++XSLT 2.0 Programmer?'s Reference'
LIN+3+1+1861004656:IB'
QTY+1:16'
FTX+AFM+1++Java Server Programming'
LIN+4+1+0596006756:IB'
QTY+1:10'
FTX+AFM+1++Enterprise Service Bus'
UNS+S'
CNT+2:4'
UNT+20+SSDD1'
UNZ+1+6002'



Previous
Next Post »