cancel
Showing results for 
Search instead for 
Did you mean: 

Mapping Issue (Multiple to Single)

Former Member
0 Kudos

Hi,

We have an HR->XI->JMS scenario and the idoc to be managed contain all trips in the same Idoc HRTRPR01. However, we want to send only one trip per idoc.

My question is, how can I within XI, when receiving all trips, perform a selection of all idoc segment's record that belongs to a trip and send it on the same idoc structure, but only one trip per idoc.

Example:

IDOC RECEIVED:

Segment_A:

trip_1 - header

trip_2 - header

trip_3 - header

Segment_B:

trip_1 - line 1

trip_1 - line 2

trip_2 - line 1

trip_3 - line 1

FINAL IDOC:

Message_01

Segment_A:

trip_1 - header

Segment_B:

trip_1 - line 1

trip_1 - line 2

Message_02

Segment_A:

trip_2 - header

Segment_B:

trip_2 - line 1

I hope I've been clear enough.

Can you guys give me some tips how can I perform it?

Thanks in advance,

Luis

Accepted Solutions (0)

Answers (1)

Answers (1)

moorthy
Active Contributor
0 Kudos

Hi,

Use Java Mapping for the segregating the trips.

Regards,

Moorthy

Former Member
0 Kudos

Hi Please see if this is of some use:

<b>Source Structure:</b>

......<IDOC> Occurance (1..1)

.........<Segment_A> Occurance (1..1)

............<TRIP> Occurance (1..unbounded)

...............<Header> Occurance (1..1)

.........<Segment_B> Occurance (1..1)

............<TRIP>Occurance (1..unbounded)

...............<Line>Occurance (1..unbounded)

<b>Target Structure</b>

......<IDOC> Occurance (1..1)

.........<Segment_A> Occurance (1..1)

............<Header> Occurance (1..1)

.........<Segment_B> Occurance (1..1)

............<Line>Occurance (1..unbounded)

<b>Mapping:</b>

<b>Note:</b>

While doing mapping go to Message Tab chnage the Target Message occurance to (0..unbounded). This will give you extra Message and Messagea1 nodes in the Mapping(Design tab).

<b>Rules:</b>

<TRIP>(of Segment_A with context as IDOC) --><IDOC>

<Header>(NO CONTEXT CHANGE)--><Header>

<Line>(NO CONTEXT CHANGE)--><Line>

<b>Offline Test Data(Duirng mapping):</b>

<b>Input:</b>

<?xml version="1.0" encoding="UTF-8"?>

<Messages>

<Message1>

<IDOC>

<Segment_A>

<TRIP>

<Header>trip1_H</Header>

</TRIP>

<TRIP>

<Header>trip2_H</Header>

</TRIP>

</Segment_A>

<Segment_B>

<TRIP1>

<Line>tirp1_L1</Line>

<Line>tirp1_L2</Line>

</TRIP1>

<TRIP1>

<Line>tirp2_L</Line>

</TRIP1>

</Segment_B>

</IDOC>

</Message1>

</Messages>

<b>Output:</b>

<?xml version="1.0" encoding="UTF-8"?>

<Messages>

<Message1>

<IDOC>

<Segment_A>

<Header>trip1_H</Header>

</Segment_A>

<Segment_B>

<Line>tirp1_L1</Line>

<Line>tirp1_L2</Line>

</Segment_B>

</IDOC>

<IDOC>

<Segment_A>

<Header>trip2_H</Header>

</Segment_A>

<Segment_B>

<Line>tirp2_L</Line>

</Segment_B>

</IDOC>

</Message1>

</Messages>

<b>Example Realtime testdata:</b>

<?xml version="1.0" encoding="UTF-8"?>

<IDOC>

<Segment_A>

<TRIP>

<Header>trip1_H</Header>

</TRIP>

<TRIP>

<Header>trip2_H</Header>

</TRIP>

</Segment_A>

<Segment_B>

<TRIP1>

<Line>tirp1_L1</Line>

<Line>tirp1_L2</Line>

</TRIP1>

<TRIP1>

<Line>tirp2_L</Line>

</TRIP1>

</Segment_B>

</IDOC>

<b>Note:</b>

During Interface Mapping in design tab you have to change the occurane of the target interface to (0..Unbounded)

During Interface Determination in Integration Directory, you have to choose Extended(radio button) if you are in SP 14. If you are less than sp14 you have to choose the BPM to collect the multiple messages coming out of Mapping and then send each message one after another using a Block(for-each).

Regards,

KNS Kumar.