Re: Problems splitting XML Schemas

From: Greg Forsythe (greg.forsythe_at_unisys.com)
Date: 02/21/05


Date: Tue, 22 Feb 2022 09:35:03 +1300

The XmlDisassembler will split out a message for each child node of the Body
Xpath node.
In you first example:
<CREMAS03>
         <IDOC>
             <BEGIN attribute field>
             <EDI_DC_40><any></EDI_DC_40> (record 1)
            <E1LFAIM><any></E1LFAIM> (record 2)
            </BEGIN>
        </IDOC>
</CREMAS03>

If you specify <BEGIN> as the Body Xpath, then you will get two documents
<EDI_DC_40> and <E1LFAIM>

You have need to handle both messages.
If a message is unwanted you can create a send port that subscribes to these
messages
i.e. Filter on BTS.MessageType = targetnamespace#EDI_DC_40

This send port could use the file adapter to write messages to a directory
and have a scheduled task to clean this directory
Another idea is to write a /dev/nul send adapter that simply throws things
away.

If you specify the Body Xpath to be <E1LFAIM> then you will get a message
for each child node of this node.

You could write a custom disassembler to process these messages, this should
not be two difficult.

Greg

"Garfield" <gboodie@hotmail-dot-com.no-spam.invalid> wrote in message
news:IP2dncj-t4scdIvfRVn_vQ@giganews.com...
> Hi,
>
> I am doing some work with SAP schemas within BTS 2004. I am using an
> envelope to split the schema into two messages,
> the first is not used and sent to a port.
>
> Example of the Schema in BTS, the envelope is defined from the node
> IDOC.
>
> >
> Question 1.
> Instead of sending the record 1 to a port is there a way to ignore it
> completely?
>
> The second part of my question concerns record 2. I have created the
> schema
> along the lines of
>
> <E1LFA1M>
> <field 1>
> <field 2>
> <field 3>
> <E1LFA1A> occurs 0 - 9999
> <field a>
> <field b>
> <field c>
> <E1LFB1M> occurs 0 -9999
> <field aa>
> <field bb>
> <field cc>
>
> The problem is that when BTS breaks out the schema it will not accept
> E1LFA1A as the root node, it takes field 1 as a root node and errors.
> To get
> around this
> I created schemas for the fields 1 - 3 and then BTS accepted E1LFA1A
> as the
> root node. If there were 25 fields instead of 3 then there would need
> to be
> 25 schemas with no real purpose.
>
> So, can somebody show me another way to approach this problem.
>
> Many thanks
> Garfield
>



Relevant Pages