Sun B2B Suite HIPAA OTD Library User's Guide

Example Showing Delimiter Precedence

The following example method illustrates the precedence of delimiters set in the X12 ISA segment over delimiters set in the root level “com.stc.x12env.runtime.ic.ICEnv” object in an X12 interchange envelope OTD:


public String generateOutput() throws Exception {

     String encoding = "utf-8";

    // (1) Create a new instance of X12 Interchange Envelope OTD
    com.stc.x12env.runtime.ic.ICEnv icEnvOtd = new com.stc.x12env.runtime.ic.ICEnv();

    // (2) Set delimiters in the Interchange Envelope OTD
    icEnvOtd.setSegmentTerminator(’~’);
    icEnvOtd.setElementSeparator(’+’);
    icEnvOtd.setSubelementSeparator(’^’);

    // (3) Create a new ISA segment object
    com.stc.x12env.runtime.ic.ISA isaSegment = new com.stc.x12env.runtime.ic.ISA();

    // (4) Populate the fields inside the ISA
    isaSegment.setEI01_1_AuthInfoQual("00");
    isaSegment.setEI02_2_AuthInfo("          ");
    isaSegment.setEI03_3_SecuInfoQual("01");
    isaSegment.setEI04_4_SecuInfo("          ");
    isaSegment.setEI05_5_InteIDQual("13");
    isaSegment.setEI06_6_InteSendID("3105451234");
    isaSegment.setEI05_7_InteIDQual("16");
    isaSegment.setEI07_8_InteReceID("123456789");
    com.stc.runtime.dt.Date date = com.stc.otd.runtime.edi.EdiDate.parse8("20070115");
    isaSegment.setEI08_9_InteDate(date);
    com.stc.runtime.dt.Time time = com.stc.otd.runtime.edi.EdiTime.parse4("1647");
    isaSegment.setEI09_10_InteTime(time);
    isaSegment.setEI10_11_InteContStanIden("U");
    isaSegment.setEI11_12_InteContVersNumb("00301");
    isaSegment.setEI12_13_InteContNumb(905);
    isaSegment.setEI14_15_UsagIndi("T");
    isaSegment.setEI13_14_AcknRequ("1");
    isaSegment.setEI15_16_CompElemSepa(":");

    // (5) Set the rest of delimiters inside the ISA segment object
    isaSegment.setSegmentTerminator(’!’);
    isaSegment.setElementSeparator(’*’);

    // (6) Set the populated ISA segment object to the Interchange    
    //     Envelope OTD
    icEnvOtd.setISA_InteContHead(isaSegment);

    // (7) Get the IEA segment object inside the Interchange
    //     Envelope OTD; also creates the IEA segment instance
    com.stc.x12env.runtime.ic.IEA ieaSegment = icEnvOtd.getIEA_InteContTrai();

    // (8) Populate the fields inside the IEA
    ieaSegment.setEI12_2_InteContNumb(905);
    ieaSegment.setEI16_1_NumbOfInclFuncGrou(1);

    // (9) Provide the Functional Group data
    String funcGrp = " GS*FA*123*321*927003*1203*1112*T*004010!ST*997*0001!AK1*FA*1!
    AK2*997*0001!AK3*BEG*31**1!AK4*12:4*479*1*98382LKA!AK5*A*1*3*5*1*3!
    AK9*A*0*433*500006*1*2*5*1*2!SE*8*0001!GE*1*1112!";

    // (10) Set the functional group data inside the Interchange    
    //      Envelope OTD
     icEnvOtd.setFunctionalGroup(0, funcGrp.getBytes(encoding));

    // (11) Invoke API to generate serialized byte array output
    //      of the Interchange Envelope OTD
    byte[] results = icEnvOtd.marshalToBytes();

    // (12) return as a string
    return new String(results, encoding);

     }

The foregoing example method returns the following string as output:


ISA*00*          *01*          *13*3105451234     *16*123456789
*051215*1647*U*00301*000000905*1*T*:!
 GS*FA*123*321*927003*1203*1112*T*004010!ST*997*0001!AK1*FA*1!AK2*9
97*0001!AK3*BEG*31**1!AK4*12:4*479*1*98382LKA!AK5*A*1*3*5*1*3!AK9*
A*0*433*500006*1*2*5*1*2!SE*8*0001!GE*1*1112!IEA*1*000000905!