Multi mapping - solution ??
HI
This is regarding a typical scenario where SAP XI 3.0 receives data through an outbound ABAP proxy , the output of these have to be files ...but the problem is :
a) There will be around 15 files - 5 of type .txt , 5 of type .CSV and 5 of .RTF all to placed on a single location , how to achieve this ? design wise . ..
b) all the files will have different formats i.e all txt files will be of a different format but the source data will be the same ,which means from the same incoming Xl different files need to be formed , We dont want to use BPM ...
does it mean we need 15 differenct Communication channels ??
and do we require 15 different mapping also ??
Kindly suggest if it can be done through multi mapping , i am unsure how
thanks
Dev
Hi,
>>a) These 15 files are of different out put formats( as in the 5 csv files have different layouts and so does the 5 txt files ) , so does it essentially mean 15 different mappings and 15 different file communication channels ?
No need of 15 mappings, one multimapping will do.. where from one source message type you are creating 15 target message type....
>>b) Enhance interface determination basically helps me in creating (n)Target interfaces from 1 source message, right ?
but then when i have 15 different mappings ... how does multi mapping help ? isnt itas good as 15 different interaces ??
i think you are confused.. do like this
1. Create a message mapping
2. Go to the signature tab and add one source message type and 15 target message type..
3. Come to definition tab and complete the mapping
4. You can see that lot of Message, Message0 etc are created, these help in doing multimapping and this is multimapping
1. Create interface mapping
2. Go to the signature tab and add one source message interface and 15 target message interface..
3. Do read interface and select the mapping done in above step
1. Create interface determination.
2. Provide the interface mapping created above there
3. Create 15 communication channel and 15 receiver agreement
Regards
Suraj
Similar Messages
-
Multi Mapping 1 to n. SP15
Hi All,
I have a plan to do a demo scenario 1 to n mapping without BPM.
I tried FAQS solution bit confused , so i tried designing following way.
I'm confusing in creating target messages ( i need to create 2 messages from 1)for message mapping.
can any one clarifies design steps approach for this scenario.
and what precautions i need to take care when designing this type scenario.
I'm using SP15.
Reagrds,
venu.Hi Venu,
To do a 1:N mapping, the follwoing things are essential.
1. In your message mapping, make the occurence of your destination message type unbounded
2.in your inetrace mapping, make the occurence of your destination message interface unbounded.
3. WHile doing your Interface determination, select the option extended and selected your mapping program.
Also, Multi mapping works only with adapters running on the j2ee engine and so, will not work if you are using an idoc adapter as the receiver adapter.
The number of source message type will only be one, just the occurence will change for the destination message types.
Regards,
Bhavesh -
How to achieve Java Multi-mapping in PI 7.31?
Hi,
I have a simple file to file scenario. Want to do 1:n transformation using java mapping.
Followed this link Multi-Mapping using Java Mapping - Process Integration - SCN Wiki . But the result was a single message with three root segments. where as the requirement is to get three messages each having one root segment. Please suggest how can we achieve this.
PS: Please suggest a solution specifically using java mapping.
ThanksHi Nisar,
I had the same issue when I was trying to achieve this. I am able to create the target structure with multiple subsegments but unable to get them in individual multiple messages.
Sumit -
Receiver Determination in multi mapping
Dear Folks,
I am facing a difficulty in implementing conditional receiver determination in my scenario. This is an IDOC to FILE scenario and requirement is IDOC needs to be split in multiple messages and specific messages to be delivered to different warehouses using FTP.
I have implemented multimapping 1:N and able to split the IDOC as per the requirement. But when I execute conditional receiver determination, all the splitted files are sent to all the warehouses.
The input is
<IDOC>
<Segment>
<warehouse_no>1</warehouse_no>
</Segment>
<Segment>
<warehouse_no>2</warehouse_no>
</Segment>
<Segment>
<warehouse_no>3</warehouse_no>
</Segment>
</IDOC>
and output I want as
File No 1
<MT_WarehouseDetails>
<warehouse_no>1</warehouse_no>
</MT_WarehouseDetails>
sent to warehouse 1
File No 2
<MT_WarehouseDetails>
<warehouse_no>2</warehouse_no>
</MT_WarehouseDetails>
sent to warehouse 2
File No 3
<MT_WarehouseDetails>
<warehouse_no>3</warehouse_no>
</MT_WarehouseDetails>
sent to warehouse 3
currently I am getting all the files in all the folders.
Your help will be appreciated.
- Shrihi,
it is indeed a nice solution here is what I propose:
define a new communication component called XI_BUS, define a sender comm soap channel SND_SOAP_IDOCTYPE and a receiver soap comm channel RCV_SOAP_IDoctype that points to the sender one. (you will need a service username and password in the pi system). check this link on how to configure your RCV comm channel to point back to your PI system [http://help.sap.com/saphelp_nw04/helpdata/en/2b/d5653fd1d3b81ae10000000a114084/frameset.htm]
source system -> XI (in this flow you do the multi mapping)-> XI_BUS (using RCV_SOAP_IDOCTYPE) (basically re-routing it back to XI)
XI_BUS(using SND_SOAP_IDOCTYPE) -> XI ( here you use your extended receiver determination) -> RCV_1
-> RCV_2
-> RCV_n
I hope this helps -
Multi Mapping to multi receiver
Hello all,
I having a req that incoming IDoc hac multiple files say,
<IDoc Name>
<IDoc>
<Field1>
<Field2>
<IDoc>
<Field1>
<Field2>
<IDoc>
<Field1>
<Field2>
Based on field 2 i need to send multiple receiver. For ex if my field2 is 10 i need to send receiver 1, if my field2 is 20 i need to send receiver 2, if my field2 is 30 i need to send receiver 3 and so on..
I searched google and unable to get solution. Please help out of this. This is in high priority.
Regards
AmarHi Amarnath,
You can achieve your requirement in two ways.
1)Multi mapping
2)Enhanced receiver determination , (map b/w sender structure,receiver1 structure),(map b/w sender structure,receiver2 structure),...
I personally prefer 2nd option because it looks very clean design and efficient than multi mapping.
2)In enhanced receiver determination use the below udf.
field2-->mapwithdefault-->remove context-->sort-->splitbyvalue (valuechange)-->collapsecontest-->udf-->receiver1,service1,receiver2,service2..............
for(int i=0;i<n;i++){
if(input[i].equals("10")){
receiver1.addValue("");
service1.addvalue("BSNAME");
else if(input[i].equals("20")){
receiver2.addValue("");
service2.addvalue("BSNAME");
In individual mappings just send those respective records
field2-->mapwithdefault-->remove context-->equals("10")-->if-->mt_receiver1
field2-->mapwithdefault-->remove context-->equals("20")-->if-->mt_receiver2
NOTE:We need to go for either of the above approach because we need to check record in sender structure .
Regards
Venkat -
Error when implementing Multi mapping
Hi all,
I am carrying out a scenario which invloves multi mapping. I have read both the interfaces in Interface mapping and I have chose extended interface determination. But the message is not getting processed successfully. I get an error in SXMB_MONI saying "NO_RECEIVER_FOUND". Could you plz help me regarding this?
Thank you
Indudharyou have to define a Receiver Determination for the Sender & Interface and specify the Receiver there. Furthermore, you will need an Interface Determination to determine the interface of the outgoing message and the mapping
Finally you will require a Receiver Agreement .
http://help.sap.com/saphelp_nw04/helpdata/en/19/8dba88b1db634f891622e909565f7a/frameset.htm
Note: reward points if solution found helpfull
Regards
Chandrakanth.k -
Hi,
Hopefully someone can answer this question in about 20 seconds and save me wasting days. I have a website and wish to set up some servlets which will access a database on the web server. However, i'd rather not use JDBC, but would prefer a relational mapping solution.
I have previously done this with EJB's (using middlegen to quickly generate all the EJB classes without any work from me!!) but i only have a cheap package with my web host so running an Application Container is out of the question. I am unfamiliar with other relational mapping products such as hibernate, JDO etc. but if someone could simply tell me if there is a solution out there that i can use without needing to have an Application Container i'd be most grateful,
Cheers,
DaveI cannot speak to JDO, but we do use Hibernate at my work. A few words of caution. Only use an O/R mapper for new or relatively new data models (or the rare case of a legacy data model that was properly designed and has not subsequently become bloated). Connecting an O/R mapper to a legacy database can (and has been) a nightmare.
You also have to consider the up-front cost of learning the technology. Though we may be there in 5-10 years, you cannot simply take these tools 'out of the box' and expect them to work. Just like SQL, there is a learning curve. And if you are in a multi-developer environment, many of them will already know SQL, further increasing the 'cost' of making this switch.
However, for new projects and well designed data models, I think these O/R mappers are just starting to come of age (though much work still needs to be done). A world of improvement over EJB CMP, but I think any good developer will be able to churn out more efficient SQL than the mapper. Where these tools do shine is in features that are cumbersome to implement globally, such as snapshoting updates and lazy loading.
If you want to go the HIbernate route and do not want a fully-featued container, the Spring Framework is gaining popularity and has excellent integration out of the box with Hibernate (though you still need to set-up the mappings yourself). Though, as above, beware of 'technology soup'. Too much gives indigestion.
- Saish -
Hi all,
I need a help on how to go about the following scenerio.
XI first performs a multi-mapping that creates two output messages:
One is the target message in Flat File Format. The mapping also generates the filename for the output message which should follow the format 11_<Unique ID>.txt. This filename is written into the XML Payload of the message. The File Adapter later does a flat file conversion on the message. In this step, the filename is not written into the flat file. Instead, it is used by the file adapter as the target filename.
The file should be placed in a specified directory.
The mapping also creates a second message, which only contains the same filename in the payload. This message goes to a second File Adapter, which also does a flat file conversion. Its output only contains the filename that was created by the mapping, followed by a line break. The output of this File Adapter is written into the same directory as the first file. The name of the output file is 11.catlg. If the file already exists in the target directory, the output needs to be appended to this file.
Thankyou.Shruthi,
It seems the payload contains the filename and this filename as to be used in the Communication Channel of file adapter.If my understanding is correct the problem can be solved by the Variable substitution. Refer the below link:[http://****************/Tutorials/XI/Variable/substitution.htm]
Regards,
Kiran Bobbala -
Hi,
I am required to have a IP recieve 3 IDOC types triggered from BD10 . It can trigger 3 or more IDOCs. For Eg.
1 ARTMAS (only 1) , 2 INFRECs and 1 LIKOND.
If anyone IDOC has come then after a waiting period of 1 minute it should come out of FORK.
My IP is like this.
In a FORK there are 4 branches.
1) ARTMAS receiver
2) Loop(infinite) with INFREC Receiver and a Container Operation to collect all IDOCs
3) Loop(infinite) with LIKOND Receiver and a Container Operation to collect all IDOCs
4) A wait Step with a container operation to initialize endtime variable
necesary branches: 4
The Fork Comes out when the end condition is met ie the End variable is Set or if all the IDOCS have come.
Corelation on MATNR.
Next I have the transormation and send step.
In the MM i have 3 Source and 1 Target.
Artmas 0-1 occurance
INFREC 0 - unbounded
LINKND 0-unbounded
I have created the Target with External Definition and have set the correct occurance in the XSD file
I have mapped the neceessary Segments from INFREC and LIKOND and all the Segments of ARTMAS to the Target structure.
In SXMBMONI it says error on Outbound side and
I see Mapping Exception when I seen in WORKFLOW.
Is my design Correct?
I have tested the Interface & Message Mapping they are correct
Request your help.
John Rajesh
<?xml version="1.0" encoding="utf-8" ?>
- <MappingTrace>
<Trace level="1" type="T">Mapping-Namespace:http://test.com/usa/SapRetail/ARTICLE_CLASSIFY/TESTDEMO</Trace>
<Trace level="1" type="T">Mapping-Name:IM_ARTMAS04_TO_ZARTMAS04_PUB01</Trace>
<Trace level="1" type="T">Mapping-SWCV:00000000000000000000000000000000</Trace>
<Trace level="1" type="T">Mapping-Type:JAVA</Trace>
<Trace level="1" type="T">Mapping-Program:com/sap/xi/tf/_MM_ARTMAS04_TO_ZARTMAS04_PUB_</Trace>
<Trace level="3" type="T">Multi mapping required.</Trace>
<Trace level="3" type="T">Creating Java mapping com/sap/xi/tf/_MM_ARTMAS04_TO_ZARTMAS04_PUB_.</Trace>
<Trace level="3" type="T">Load b8f12d30-2c45-11da-90af-ef160a892024, http://test.com/usa/SapRetail/ARTICLE_CLASSIFY/TESTDEMO, -1, com/sap/xi/tf/_MM_ARTMAS04_TO_ZARTMAS04_PUB_.class.</Trace>
<Trace level="3" type="T">Search com/sap/xi/tf/_MM_ARTMAS04_TO_ZARTMAS04_PUB_.class (http://test.com/usa/SapRetail/ARTICLE_CLASSIFY/TESTDEMO, -1) in swcv b8f12d30-2c45-11da-90af-ef160a892024.</Trace>
<Trace level="3" type="T">Loaded class com.sap.xi.tf._MM_ARTMAS04_TO_ZARTMAS04_PUB_</Trace>
<Trace level="2" type="T">Call method execute of the application Java mapping com.sap.xi.tf._MM_ARTMAS04_TO_ZARTMAS04_PUB_</Trace>
<Trace level="1" type="T">RuntimeException during appliction Java mapping com/sap/xi/tf/_MM_ARTMAS04_TO_ZARTMAS04_PUB_</Trace>
<Trace level="1" type="T">com.sap.aii.utilxi.misc.api.BaseRuntimeException: RuntimeException in Message-Mapping transformation: Cannot produce target element /ns4:Messages/ns4:Message1/ZARTMAS04_PUB/IDOC. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd at com.sap.aii.mappingtool.tf3.AMappingProgram.start(AMappingProgram.java:292) atCheck the following
1. Have u mapped the root level element?
2. Inside interface mapping, when u say read interface, is it diplaying both the interface.
Also check ur input
may be u r not providing proper input
Regards,
Prateek -
Duplicate Message ID issue in case of Multi mapping (without BPM)
Hi Experts,
I am doing one sample Example for my requirement of converting the single source message data into the multiple Target messages.
for example, when sender system is sending the 5 sale order details into a single message in PI then my Inbound proxy class of ECC R/3 receiver system must get this sale orders separately, that means inbound proxy class method must be triggered separately for 5 sale orders from sender system. for achieving this, I have used the Multi mapping concept in ESR (without BPM).
This scenario is in Asynchronous mode.
The below screen shots give the details on what I have configures so far.
IN ESR
IN ID
IN SXMB_MONI of PI
IN SXMB_MONI of ECC R/3 Receiver system (Error in Processing)
due to this error, inbound Proxy class method is not being triggered for the single Sale order details as well,
please let me know how to tackle this duplicate message ID issue when we have multiple payloads to process in a single message.
please also let me know if is there any other workaround to fulfil this requirement.
Thank you,
Regards,
JageshHi Nunu,
Check the below blog for restrictions.
Multi-Mapping without BPM - Yes, it’s possible!
Restrictions
Messages that result from the split in a mapping-based message split are sent using one AE. So only adapters running on the AE are supported. In particular, this means that target IDOC message splits are not supported since the IDOC adapter is not part of the AE.
Regards,
Praveen. -
SP14 Multi-mapping - error in receiver idoc adapter
Hi,
I have a scenario where a business service should send some XML to SAP CRM. I get the file via a sender JMS adapter and try to post it to CRM via a receiver IDOC adapter.
I have created a multimapping (1:N - 1 XML file to many Idocs) as should in the repository.
In the configuration under Interface Determination, I have chosen 'RB_SPLIT' and selected the interface multimapping.
It should be pointed out, that when testing both interface and message mapping i get no error. All idocs seem to be created as they should.
When testing the setup 'real life' the message fails. The error message in the monitor says:
- <!-- Call Adapter
-->
- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
<SAP:Category>XIAdapter</SAP:Category>
<SAP:Code area="IDOC_ADAPTER">ATTRIBUTE_WRONG_INTF</SAP:Code>
<SAP:P1>InterfaceCollection</SAP:P1>
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText />
<SAP:ApplicationFaultMessage namespace="" />
<SAP:Stack>Unable to interpret IDoc interface InterfaceCollection</SAP:Stack>
<SAP:Retry>M</SAP:Retry>
</SAP:Error>
Notice that the above error is when trying to send only 1 record, which in turn then should result in only 1 idoc.
If trying to send multiple XML records, i get the following error:
- <!-- Technical Routing
-->
- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
<SAP:Category>XIServer</SAP:Category>
<SAP:Code area="OUTBINDING">MMF_ENGINETYPE</SAP:Code>
<SAP:P1 />
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText />
<SAP:ApplicationFaultMessage namespace="" />
<SAP:Stack>A system error occurred in the outbound binding</SAP:Stack>
<SAP:Retry>M</SAP:Retry>
</SAP:Error>
In the monitor in the payload of 'Request message mapping' I see as many Maindocument, Submaindocument pairs as should be Idocs.
Now i really don't know how to interpret the error messages in both cases, so I'm a little lost here...
It should be pointed out that the idoc being used everywhere in this scenario, has not been modified - from all places it is being used (and only exists) in the 'Imported objects | Idocs' place.
Also the Idoc is also being used as Inbound interface - so no mistakes here either.
I really hope someone can help me here, as I'm otherwise pretty stuck in this case.
Best regards,
DanielHi Daniel,
I have exactly the same type of scenario (under SPS14 and now also SPS15), sending an XML message over JMS to XI and trying a multi-mapping to many IDocs (actually a list of orders in XML is mapped to n ORDERS Idocs).
I also face problems doing so, when I use the IDoc Adapter as outbound in the Receiver Agreement. I receive the following error:
<i>CO_TXT_MMF_ENGINETYPE
Messages in multi message format can be sent to one adapter engine only</i>
However, I tested the same scenario by just changing the Receiver Agreement to a File Communication Channel and - surprise, surprise - it works. One file per IDoc is created.
Of course, this is not what we want to accomplish, but when I checked this piece of documentation (sorry another link
http://help.sap.com/saphelp_nw04/helpdata/en/42/ed364cf8593eebe10000000a1553f7/content.htm
the IDoc adapter is not listed in the list of Adapters that are supported. Does that mean, that this feature is not supported for generating IDocs? Maybe that's a question for a SAP OSS Message?
I hope that helped you a little further - if you find out more I'd be happy to learn about it.
regards,
Peter -
HI ALL ,
I am trying to do multi mapping with out using BPM .I will get message from the sender and i need to send that to two different target system. I have defined the mapping in the IR . In ID i have created the configuration scenario and i have created the receiver determination .In receiver determination i have selected "EXTENDED" and when i select input help for mapping name it says "NO Object found". What else should i do get the mapping program here .
Regards,
Tarun.Bhavesh,
I'm sorry but if he needs 2 different receivers, then it's not the case of using Enhanced Interface Determination.
sapuser,
if you scenario is asynchronous, then it's easily implemented.
But it won't be achieved with multimapping.
You'll have 2 receivers in receiver determination (normal RD, not enhanced). For each of those, you'll have to create a separate simple mapping (that will generate the message expected at each receiver system) and refer that mapping in the interface determination of each receiver.
For example, you have input_message containing data1 and data 2. You'll have 2 simple mappings (not a multimapping), 1 generating output_message_1 containing data1 and the other generating output_message_2 containing data2. Then refer those mappings in the proper interface determinations.
Regards,
Henrique. -
Hi! All
It would be of great help if you provide your suggestions on:
Mapping one XML source file to 6 IDOC receivers, 2 of them are of the same type and 4 are distinct idoc types.
I tried multi-mapping and received the following error:
"Messages in multi-message format can only be sent to one Adapter Engine"
Looks like IDOC adapter does not support multi mapping...
Can you please suggest any other option apart from using BPM(since it consumes lot of resources).
Thanks a lot!!
Regards,
PatrickHey
its not possible to do Multimapping over IDOC's without BPM.
other way around can be to do a single -single scenario,suppose u have 6 IDOC's to post then u need to design 6 different scenarios for them.
without BPM you cant do multimapping for IDOC or HTTP
Thanx
Aamir
Message was edited by:
Aamir Suhail -
Hi ,
I am following this weblog
/people/jin.shin/blog/2006/02/07/multi-mapping-without-bpm--yes-it146s-possible
but stuck up with what are the fields contained by ID in target message2 ...
Please check this for your clarification
http://www.flickr.com/photos/11212307@N08/1135395357/
Thanks
dushanthID will have only ID under it. instead of creating flat structure like the one above Jin has changed the strucutre below . you will have only ID field in it or you want u can add other fields in it .
Regards
Sreeram.G.Reddy -
Multi-mapping 1:n - 1:1
Hi,
We are using multi-mapping in a file-to-file interface. When we have 1:n everything is ok, but when we have 1:1 we have this error:
Success The message status set to DLNG.
Error Unable to find channel ID
Error Delivery of the message to the application using connection AFW failed, due to: Couldn't find delivery channel for message: f285a9a0-4a74-11dc-b843-00145e1b2f3d.
We need this interface working for both 1:n and 1:1 situations.
Any idea?
Thanks for your help:)Hi Diana !!
Check this thread:
Re: Couldn't find delivery channel !!!
Regards,
Matias.
Maybe you are looking for
-
Itunes no longer works on ipad on version 6 software
My I tunes 10.6.1 no longer works with my upgraded software ipad 2 on version 6 stating my mac needs a higher operating system (currently on 10.5.8) to then upgrade I tunes 10.7. I can no longer use my ipad with itunes simply because I have an older
-
How to update the Sent Idoc Status based on the Response From Webservice
Hi All, I have to develop Idoc--SOAP Sync Process Scenario Using BPM . I have configured every thing using BPM and mapped MATMAS----SOAP Request SOAP Resp----STATUS.SYSTAT01 In R/3 the Main Idoc Number(MATMAS) Status needs to be update , but it is c
-
Remote Desktop Connection problem with multiple Lenovo machines
Hello, I've been running into issues with connecting to some of the latest Lenovos we purchased using RDP. It has happened with a batch of 3 x220s and a batch of 2 Thinkstation C20s (possibly others that I haven't yet had to remote into). The symptom
-
i can't install icloud on my pc i get this error:the file 'AOSKit.dll' cannot be installed because the file cannot be found in cabinet file 'iCloud.cab'.this could indicate a network error, an error reading from the CD-ROM, or a problem with this pa
-
Lightroom 3 does not start after hard drive replacement
I have just recently replaced the hard drive on my IMac. All files and applications have been re-installed from the time machine back up drive. LR shows up on the dock but when I open it it comes up with: "The Lightroom catalog named "Lightroom 3 Cat