cancel
Showing results for 
Search instead for 
Did you mean: 

Split mapping created no messages(External definition vs Datatype)

0 Kudos

Hi Gurus,

I was stuck up with an error "split mapping created no messages". I referred many posts, but couldn't get resolution to my issue.

My scenario is file(XML) to IDoc multi mapping. When I'm using external XSD definition, my scenario is working. But when I used data type it is giving mentioned error.

I checked my data type definition, and it is perfectly fine. I thought problem could be in namespaces, and for that I followed blog http://scn.sap.com/people/sameer.shadab/blog/2005/12/05/how-to-remove-namespaces-in-mapping--xi. But still I'm facing same error. Please help me out in solving this problem. Is there any problem in XML file? If there is any problem, then why it is working with external definition? If we use data types, do we need to add any extra tags in source xml?

Even though my scenario is working with external definition, I cannot use this approach. Because in my source XML, there are some tags which starts with 'xml'. So I'm going with data types.

Thanks

Sreedhar

Accepted Solutions (1)

Accepted Solutions (1)

former_member189440
Participant
0 Kudos

Hi,

In the Message type what you have created please use the XML namespace which was in external definition XSD, then your issue will be resolved.

or else please paste the name space of both Data type as well as XSD. 

Thanks & Regards

Uday.s

0 Kudos

Thanks Uday...

This is name space of my external definition.

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

<ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">

   <ns0:Message1>

     .

     .

      .

</ns0:Message1>

</ns0:Messages>

Name space for my data type.

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

<ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">

   <ns0:Message1>

      <MT_HOT_SHEET_SENDER>                   (This is extra tag for message type)

         .

          .

          .

</MT_HOT_SHEET_SENDER>

   </ns0:Message1>

</ns0:Messages>

Thanks

Sreedhar

former_member189440
Participant
0 Kudos

Hi Shreedar,

From this below sentence i can under stand that you are add the unwanted tag like messages and message 1 in the xml please remove those from the input file and do a end to end test.

And other interesting thing is when I tested the xml file including the extra tags in message mapping, it created target messages and mapping is perfect. But, When I'm passing same xml in real time, it is throwing error.

for example if you paste the same thing in mapping it will work , but u cannot process the same thing for end to end test it will fail.

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

<ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">

   <ns0:Message1>

      <ns1:MaterialRequest xmlns:ns1="urn:*****.com:pi:A_TEST_SUK:SOAP">

         <MaterialCode>12</MaterialCode>

         <Language>121</Language>

      </ns1:MaterialRequest>

  </ns0:Message1>

   <ns0:Message2>

      <ns1:MaterialResponse xmlns:ns1="urn:*****.com:pi:A_TEST_SUK:SOAP">

         <MaterialCode>212</MaterialCode>

         <MaterialDescription>212</MaterialDescription>

      </ns1:MaterialResponse>

   </ns0:Message2>

</ns0:Messages>

Just remove the bold info and try to trigger the message it will work.

This is what you have to trigger from file adapter.

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

      <MT_HOT_SHEET_SENDER>                  

         .

          .

          .

</MT_HOT_SHEET_SENDER>

Thanks & Regards

Uday S

0 Kudos

Thanks a lot Uday....Your answers helped me....

Finally, my problem got solved..

I just changed message type name as the starting tag of my xml file. And it started working

Answers (3)

Answers (3)

ambrish_mishra
Active Contributor
0 Kudos

Hi,

Error "split mapping created no messages" comes when the source records could not generate the target message.

Can you attach your source structure and mapping screenshot and what is the difference between your external definition and data type. I assume you are talking about source data type.

Ambrish

0 Kudos

Hi Ambarish,

I cannot post complete mapping, as it is very big.

In message mapping I'm able to generate target messages. Whereas in real time it is not working.

Thanks

Sreedhar

anupam_ghosh2
Active Contributor
0 Kudos

Hi Sreedhar,

                     Open the external definition in a browser and open the XSD of the data type you created in message mapping. Look and compare carefully the namespace and occurrence region of both the XSD. Since you are using multi-mapping, I feel here the min and max field occurrence is causing the trouble. Please check this thread http://scn.sap.com/message/13960292 .

Regards

Anupam

0 Kudos

Hi Anupam,

I checked two XSDs.

Only difference I could see is in the XSD created using data type, there is an extra tag for data type.

Whereas in external definition, there is no such tag.

Regards,

Sreedhar

anupam_ghosh2
Active Contributor
0 Kudos

Hi Sreedhar,

                  Then from your created XSD remove the data type and import the same as external definition as your target XSD. Check if this works.

Regards

Anupam  

0 Kudos

Thanks Anupam,

But, If I upload this xsd as external definition, it will throw error saying "xml tags are starting with string 'xml'". This is the problem with external definition.

I tried removing that tag by following blog  http://scn.sap.com/people/sameer.shadab/blog/2005/12/05/how-to-remove-namespaces-in-mapping--xi.

But it removed the namespace and other tag is there.

And other interesting thing is when I tested the xml file including the extra tags in message mapping, it created target messages and mapping is perfect. But, When I'm passing same xml in real time, it is throwing error.

As I'm relatively new to SAP PI. Please let me know, If I am missing any basic thing!!!


Thanks

Sreedhar

former_member190624
Active Contributor
0 Kudos

Hi Sreedhar,

What is the Error you are getting ??

Regards

Hari.

0 Kudos

Hi Hari,

My error is "Split mapping created no messages".

But, this error is coming only, when I use data type. If I use external definition, there is no prolem.

Thanks

Sreedhar