cancel
Showing results for 
Search instead for 
Did you mean: 

Problems with mapping after bundling messages into one XML-file

Former Member
0 Kudos

Hi all,

Case 1: one DebMas IDoc ==> XI ==> one XML-file : no problems with mapping.

Case 2: several DebMas IDoc's ==> XI ==> one XML-file : problems with mapping.

Explanation:

Incoming DebMas IDoc's:

Businesspartner 1 : no Customer Master Partner Functions (E1KNVPM).

Businesspartner 2 : Customer Master Partner Functions (E1KNVPM).

Businesspartner 3 : Customer Master Partner Functions (E1KNVPM).

Businesspartner 4 : Customer Master Partner Functions (E1KNVPM).

After bundling into one XML-file:

Businesspartner 1 : no Customer Master Partner Functions (E1KNVPM).

Businesspartner 2 : no Customer Master Partner Functions (E1KNVPM) !!!!

Businesspartner 3 : Customer Master Partner Functions of Bp 2 (E1KNVPM) !!!!.

Businesspartner 4 : Customer Master Partner Functions of Bp 3 (E1KNVPM) !!!!.

All the payloads of the IDoc's are correct.

In the message mapping we use a Container for the Partner Functions (shown as below)

Is this a serious bug in the mapping of SAP XI ?

Does anyone knows how to solve this serious problem.

E1KNVVM -


> Partner_Container

E1KNVPM -


> Partner

PARVW -


> ParnerRole

KUNN2 -


> PartnerNumber

Regards,

Theo Pijlman

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi,

When there is no data for a particular occurence of the field, the value is populated as [], i.e a context change.

You need to use collapse contexts, to ensure that the order of the values in the source is maintained in the target.

Use the display queue, option(in message mapping) for the field in question to look at the values in the queue.

This might give you a better idea of the context changes that I am talking about.

Regards,

Smitha.

Former Member
0 Kudos

Hi Smitha,

At which level I have to use CollapseContext:

Partner_Container, Partner or ....

Can you give me a kind of example.

Regards,

Theo

Former Member
0 Kudos

Hi,

Example:

Input idoc has field F1 with occurence 0..unbnd

My input values for field F1 is

1

none

2

3

Say, I have a mapping, F1---->TargetF1

In the target only 3 TargetF1s will be created for the values 1,2,3 and nothing will be created for the field F1 with no value.

To overcome this, use collapse contexts.

F1->collapsecontexts>TargetF1

This way, the TargetF1 fields created will have the following values:

1

blank

2

3

Collapse contexts makes sure that a target is created, even if there is a context change specified at the source.

Hope this is clear.

Regards,

Smitha.

Answers (1)

Answers (1)

Former Member
0 Kudos

The solution for this problem:

After a lot of try_and_error I used node function "exists" in the message mapping between E1KNVVM <==> Partner_Container and the problem was solved.

Regards,

Theo Pijlman