EDIFACT MSCONS Format

Hi,

I am currently trying to send/receive MSCONS EDI messages, but am having problems due to the segment structure.

UNH
BGM
DTM
RFF

  • DTM
    NAD
    UNS
    NAD
  • LOC
    -…
    -…
    UNT

I have downloaded the template from the WebMethods website, but have problems when trying to import the EDI string into an IData object.

The problem seems to be that the Integrator cannot handle the fact that there are 2 NAD segments at the same level.

When i process the EDI message using the service convertToValues, it groups all of the NAD segments together (independent of whether they come before or after the UNS Segment)

Has anybody seen this problem or better have a solution!?

Regards,
Mark

We also faced the same problem for EDIFACT(DELFOR 96A)message.

The Resolution is modifying the schema (Record structure) manually and forcing the separation of 2 NAD segments into different level.This solves the problem and we are now able to grab all the values from convertToValues.

hope you will also try this out.

We had a similar problem with OSTRPT. We solve’t
editing the scheme, you have to look for this code:

<xsd:element name="UNH" type="typeUNH"/>
<xsd:complexType name="typeUNH" content="elementOnly">
<xsd:sequence>
    <xsd:element name="UNH01" type="Type0062" minOccurs="1"/>
    <xsd:element name="UNH02" type="cTypeS009" minOccurs="1"/>
    <xsd:element name="UNH03" type="Type0068" minOccurs="0"/>
    <xsd:element name="UNH04" type="cTypeS010" minOccurs="0"/>
    <xsd:element name="unDefData" type="xsd:string" minOccurs="0" maxOccurs="1"/>
    <xsd:element name="segmentCount" type="xsd:string" minOccurs="0" maxOccurs="1"/>
    <xsd:element name="BGM" type="typeBGM" minOccurs="1" maxOccurs="1"/>
    <xsd:element name="DTM" type="typeDTM" minOccurs="1" maxOccurs="9"/>
    <xsd:element name="RFF" type="typeRFF_UNH" minOccurs="0" maxOccurs="9"/>
    <xsd:element name="NAD" type="typeNAD_UNH" minOccurs="0" maxOccurs="99"/>
    <xsd:element name="UNS" type="typeUNS" minOccurs="1" maxOccurs="1"/>
    <xsd:element name="NAD" type="typeNAD_UNH" minOccurs="1" maxOccurs="99999"/>
    <xsd:element name="CNT" type="typeCNT" minOccurs="0" maxOccurs="99"/>
    <xsd:element name="UNT" type="typeUNT" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
    <xsd:attribute name="loops-id" type="xsd:string"/>
    <xsd:attribute name="segment-id" type="xsd:string"/>
    <xsd:attribute name="position" type="xsd:string"/>
    <xsd:attribute name="ARRAY" type="xsd:string"/>
    <xsd:attribute name="area" type="xsd:string"/>
</xsd:complexType>

And ensure that typeNAD_UNH has set:
maxOccurs=“99”

may be you have set this value to “1”.

hope this helps…

Sebasti�Miranda
Barcelona, Spain

OK, this don’t works…

Sorry,

Sebasti�Miranda

Hi,

i changed the template and schema, renaming the second NAD segment NA2. This seems to work fine and the system can now split the two types of NAD segments.

Now i have the following problem(!).The segment QTY has a number of DTM child segments. Where a typical entry looks like:

DATEQUALIFIER: 164
DATE: 200302040100+01
FORMAT: 303

When converted into EDIFACT format, it looks like this:
DTM+164:200302041730+01:303

As we are using + as the field seperator, the + in the Date field (used for implying the difference to UTC time) thus confuses things when re-converting back into an IData object using convertToValues.

How can i get the convertToString function to generate the correct EDIFACT data, i.e. using the RELEASE INDICATOR:
DTM+164:200302041730?+01:303

Any help would be much appreciated.

Regards,
Mark

The problem might be with delimeters that causes sometimes mess up or may be not.

check your input data you are converting to values.

Opps!

Sorry you are trying to convertToString (outbound EDIFACT).So it might be some thing issue related to template or record structure.Try to follow up with webmethods support.

ignore my earlier message I thought inbound.

Hi,

after trying out a couple of things, i’ve got it to work. I think with SP6 for the EDI module, there is a new parameter to the service convertToString (Release_character). Filling this seemed to sort it out.

When converting back using convertToValues it is then possible to give the parameter Release_character as input (in the delimeter structure).

Thanks everybody for the help/suggestions

Mark