on 06-27-2008 9:46 AM
Hi,
I am a new-bie to SAP PI and am trying out the following scenario without BPM.
Make multiple files based on Age received from input file.Input File contains Name,DOB and Output File contains Name, Age.
I want to create 2 files, one containing details of people with Age <21 and the other output file containing details of people with Age >= 21.
To acheive this,
In IR, I created 2 DT and 3 MT,1 MM with 2 Target MT,both having occurences 0..unbounded, 1 IM with 2 Target MI,both having occurences 0..unbounded
And in ID, 1 Sender Agreement, 2 Receiver Agreement, 1 Receiver Determination, 1 Interface Determination using Enhanced Interface Determination.
When i run this scenario, I am getting the following error "Split mapping created no messages"
Please let me know how can I resolve it.
Hi Swapna,
Chcek in the sxmb_moni if the inbound message has an extra tag similar to this:
<ns0:Messages xmlns:ns0="http://abcd/efgh/SplitAndMerge">
<ns0:Message1>
Remove it and closing tag too and test the scenario once again. It will work.
Regards,
Sanjeev.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Swapna,
While sending the file itself you will have to edit your input xml and remove the tags and then send keep the file in the directory. That is remove the tags before sending the file. I dont think you can edit the message once its picked up by XI. Hope its clearer now.
Regards,
Sanjeev.
Oops, I did not know that.
Thanks for that information. uhuuuuuuuuuuu, atlast the message is processed and I am seeing output files created.
But, there is still one problem. My output files are created with just the following content
<?xml version="1.0" encoding="utf-8" ?>
<ns1:MT_2OP_File_Out xmlns:ns1="http://POC_Sec1_1IP2OP2" />
In MM, I see the output message as follows:
Message
Message1
MT_2OP_File_Out
Employee
Name
Age
Message2
MT_2OP_File_Out1
Employee1
Name
Age
The mapping done:
MT_2OP_File_Out and MT_2OP_File_Out with the Message Type element on source end.
Employee and Employee1 are mapped as
Age -> removeContext -> SplitByValue[Each Value] < 21, Map Employee
Age -> removeContext -> SplitByValue[Each Value] >= 21, Map Employee1 resp
The fields are straight maps.
Is there any basic mapping error that I am making. Please help.
Hi Swapna,
As per your requirment, you need to create file1 if age is less than 21 and file 2 if age is greater than 21. In mapping Map the MT_2OP_File_Out and MT_2OP_File_Out1 files like this:
MT_2OP_File_Out-> createIf-> Age->Greater Than(Standard Function)-> Consatant(21). This way the Messages will be created only if the criteria is satisfied.
Hope it helps.
Regards,
Sanjeev.
Hi Sanjeev,
I did as suggested. I guess the condition check is occuring just once and the remaining records also are getting mapped to the same one.
Say, I give a input file with records having age 23 and 20 resp. Both records are going to ouput file location of records of age >21
and
if I give a input file with records having age 20 and 23 resp. Both records are going to ouput file location of records of age <21
Please suggest
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Vijaya,
I tried my scenario using the mentioned blog, is there anythign specific in terms of Receiver Agreements.Currently, I have 2 Receiver Agreements and also, I created 2 Communication Channels for the 2 Receivers under the same Business System.
The post says "The solutions is : have changed my MM such a way that a dummy message gets created without the contents of the message."
Can you please let me know how can I create a dummy message.
User | Count |
---|---|
96 | |
11 | |
11 | |
10 | |
9 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.