cancel
Showing results for 
Search instead for 
Did you mean: 

XI Configuration Design questions with multi-mapping message mapping object

Former Member
0 Kudos

Hello,

I'm having trouble designing a particular scenario for multi-mapping. Currently i'm working with a Vendor create and change. BPM is not being used.

This is what i need:

I need a CREMDM04 to turn into one or multiple ADRMAS/CREMAS IDocs and potentially a CLFMAS IDoc based on the values in the inbound CREMDM04 IDoc.

This is what i currently have:

A CREMDM04 inbound idoc is multi-mapped to a CREMDM03 (1...9999), another CREMDM03 (0...9999), and a CLFMAS01 (0...9999). At a minimum only the first CREMDM03 IDoc will be created and at a maximum all three will be created. The parameters on creating the second CREMDM03 IDoc and the CLFMAS01 IDoc are based on the values in the inbound CREMDM04 IDoc, whereas the first CREMDM03 IDoc will always be created and the values will just be converted/mapped from the inbound CREMDM04 IDoc. This multi-mapping is currently set-up via a graphical message map and works successfully in the test-tab of the mapping object. It has a main message and has sub-messages which are the IDocs. I’m mapping the CREMDM04 to a CREMDM03 to then map it through an ABAP-Class and then to an XSL where the CREMDM03 inbound structure is expected to split into ADRMAS and CREMAS Outbound IDocs for Vendor Create/Change in the remote R/3 systems.

After the graphical map we have a necessary ABAP Class call that calls a BAPI to the remote system. This ABAP Class must come after the graphical map since the parameter for the BAPI is based on a converted value from the graphical multi-map.

After the ABAP Class call there is finally an XSL message split the CREMDM IDoc into an ADRMAS and CREMAS IDoc. There need to be two interface mappings (one per ADRMAS and CREMAS) since the ABAP classes and XSLs are specific to the ADRMAS and CREMAS.

The CLFMAS IDoc can go directly to the remote system, but since it’s within this one multi-map, I’m not sure if is possible? I’m not sure if it will fail once it tries entering the XSL mapping (this is the standard CREMDM message split offered from SAP).

There are three interface mapping scenarios I can think of, but cannot get to work:

CREMDM04 to ADRMAS02

CREMDM04 to CREMAS03

CREMDM04 to CLFMAS01

Currently I have the Interface Mapping structured as follows: (I cannot get this to activate as it appears it does not work)

Multi-Mapping ==> ABAP Class Call ==> Standard XSL Message Split

How should i design the interface mapping objects and the configuration objects for this scenario?

Any help is appreciated and I definitely will reward points (no need to include it in your response).

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi,

I suggest you may use multiple steps interface mapping. It's composited with 3 message mappings as step by step.

Mapping 1: One to one mapping. For the output schema, use a composition schema which includes those 3 IDOCs you want.

Mappign 2: ABAP Mapping. I am not sure the ABAP class you mentioned is an ABAP mapping or not. If it does, That's ok. If not,

call that ABAP class in your ABAP mapping and do corresponding change for your message. Return back the same structure as output.

Mapping 3: One to multiple mapping to split the message.

So basically as interface mapping, it's one to multiple mapping. And internally, you have 3 steps to realize the mapping.

And as my experience, for both one to multiple message mapping & multiple steps interface mapping, it works well in my project. And

in ID, you have to configure it via "advance" function in receiver determination or interface determination.

Let me know if any confusion.

Thanks

Nick

VijayKonam
Active Contributor
0 Kudos

Hi Jason,

What I understand is one IDoc needs to be split in to 1 or 3 IDocs with out BPM.

My assumption: You can map individual Idocs separately in separate mappings (graphical or xslt or Java).

Create 3 mapping programs and 3 interface mappings.

In configuration, in interface mapping, add the 3 receiving interfaces and associated mappings.

VJ

Former Member
0 Kudos

Is it that simple?

I'm already splitting my IDoc from a CREMDM into an ADRMAS and a CREMAS IDoc. That same CREMDM inbound message could need to be split into 2 SETS of ADRMAS/CREMAS IDocs. Technically they're the same interfaces with the same mapping, but the values and number of sets of the outbound IDocs will be different based on the input of inbound IDoc.

I was trying to get the Multi-Mapping to work, and i created a graphical message map to do this, however i cannot execute this in PI/XI because the multi-mapping feature without BPM only works for one Adapter Engine, so it will not work for IDocs.

The other, very clunky, idea i had was to map a File to File (1:N), then map a File to IDoc (1:1) to properly execute what i need to have done, but that seems like a very poor design and a maintenance nightmare. The other ideas were to write an ABAP or Java program that will perform these message splits

Does anyone have any ideas?