Multi-Mapping, only want to create target messages sometimes.

Hi,
I have a Multi-Mapping interface which maps a single incoming message to 3 target messages.
Based on the contents of the incoming message I only want to create a single instance of the outgoing messages.
The incoming message can have a repeating node of 3 types A, B or C. If there are multiple nodes of Type A then i need to create a single instance of one of the target messages and map the data in node A to this message, likewise for node B and node C.
I cant figure out how to do this. If I map a constant to the MT level of the target message and there are no type C nodes then the message type for this is created blank. But if I try and use the CreateIf tool then I get a MT created for each type C node.
Can anyone help with this?
If this isn't clear I will try to explain more.
Thanks

Hi,
Thanks for your answer, I tried what you suggested and while it is creating the MT for type A nodes correctly it is not creating the MT for type B or C nodes. I have tried messing with the context on the incoming field and not getting anywhere.
I always seem to get almost there with this mapping but never what I am looking for.
Gareth

Similar Messages

  • Runtime interface mapping selection based on the target message. SYNCHRNOUS

    Hi,
    X system sends the data to SAP PI through SOAP. SAP PI determines the target operation after performing the RFC look in ECC whether to create/change/update master data in ECC. So SAP PI has to execute different mapping program bsed on the response from RFC lookup. This can be achieved through Enhanced Receiver Determination. My question is here the X system needs the final response...i.e SYNCHRONOUS interface. How can we implement this requirement ?
    Thanks in advance,

    Hi Mythree,
    >>Can we handle the response (synchronous interface) using enhanced interface determination.
    No.. But if you choose to use Enhanced Receiver Determination then your scenario might work!!! (Hoping that you are in PI7.1 or I7.0 SPS23. Check this link http://help.sap.com/saphelp_nw04/helpdata/en/43/a5f2066340332de10000000a11466f/frameset.htm)
    If you have doubt in creating the Enhanced RD then check this wiki page http://wiki.sdn.sap.com/wiki/display/XI/EnhancedReceiverDeterminationinSAP+XI
    Now once the Receivers are identified in Runtime, you can use a normal  (sync to sync interface ) interface determination and get back the response.
    Regards
    Suraj

  • How do I rid my contacts list of unwanted addresses that only display when creating a message. These contacts are not in my normal contacts list.

    When using my contacts list to address a message, I have unwanted addresses NOT created or entered/saved by me in my contacts list. These addresses do not appear in my contacts database/list.

    Restore the backup

  • Need to create Target substructure if invoice number node has a value.

    I only want to create Target substructure if Source node <Invoice Number> has a value and is not blank. Can not use Exists function because <Invoice Number> node is 1..1 so it will always be there but it may be empty. Thank you.

    Hi Glenn,
    If you are getting the source from idoc and if you dont have invoice number from idoc then you will not at all have the field. So it will not be empty until unless somebody manually sends from we19. So you should not run into those kind of issues.
    Anyways you can check both blank and length. So check lenght greater than zero and equal to blank which is a space. It should work.
    Regards,
    ---Satish

  • Multi Mapping issue - *Split mapping created no messages*

    Hi,
    The scenario I am trying to test is a multi mapping scenario where I am trying to split one source message and create two target messages by using two different inbound service interfaces, one for each message type.
    I am on PI 7.1 and when I test message mapping and operation mapping using the payload from SXMB_MONI, it is successful. Whereas when I test the scenario end to end I am getting the following error messages:
    Runtime error
    *Split mapping created no messages*
      Start tag ns0:MessagesStart tag ns0:Message1Close tag ns0:Message1Start tag ns0:Message2Close tag ns0:Message2Close tag ns0:Messages
    Could someone please help
    Cheers,
    S

    Hi,
    (1)First change the occurrence of target message to 0..unbounded.
    (2) Do the mapping and test it under test tab of mapping whether your mapping is working fine creating target records.
    (3) Copy the source code from mapping and remove the unwanted tags "as Mark said " those were created due to multimapping.
    Then test that file and that will work.
    You can follow this link .
    Link :Message Splitting
    Thanks
    Rabi
    Edited by: RabiPanda on Nov 17, 2011 8:42 AM

  • XI Configuration Design questions with multi-mapping message mapping object

    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).

    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

  • Multi mapping & seeburger Message Tracking (Filestore module)

    Hello,
    For the people who knows seeburger archiving...
    Anybody make the scenario using multi mapping (split in the receiver) with message Tracking seeburger (File Store module in the Receiver Channel)?

    Hi,
    before these steps  you need to have MT installer file based on your database and some settings needs to be done at database level.
    if you have seeburger manuals there is one pdf 'SAPXI_Archiving_en.pdf' which talks about MT.
    Suresh

  • Multi-mapping activate changes error

    Good afternoon!
    I want to use multi-mapping to split one IDoc(WBBDLD04) to some xml documents.I want XI to create one xml document per segment E1WBB01 of WBBDLD04 IDoc. I set Occurrence = 0..unbounded for target interface in interface mapping . Then I try to activate changes. IX generate errors:
    MaterialMasterRequestMapping | http://sap.com/xi/SBO:
    A multi-mapping with multiple source or target interface instances is only recommended with asynchronous interfaces, since only a mapping of this type can be used in the process editor. IDoc WBBDLD.WBBDLD04 | urn:sap-com:document:sap:idoc:messages are not asynchronous abstract interfaces
    Mapping program Message Mapping MaterialMaster2SBO_GT2 | http://sap.com/xi/SBO does not match the interface mapping. The number or frequencies of source or target messages for the message mapping are not identical to the number or frequencies of source or target interfaces.
    Tell me please, what I do wrong?
    Thanks!
    Lositskiy Alexandr

    Alexandr,
    You need to create an Abstract from your IDoc (Message Interface).
    To use mutli mapping, you need to create a Business Process.  Then in your Business Scenario, use your Business Process and reference your multi map.
    Hope this helps.
    Regards,
    Simon

  • 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

  • Multi-Mapping in IDOC without using BPM ?

    Hi ,
    Please check ..
    Can below given blog can be used to achive Multi-mapping in IDOC without using BPM ?
    /people/jin.shin/blog/2006/02/07/multi-mapping-without-bpm--yes-it146s-possible
    Regards
    PS

    Solved .. Thx every one .
    Approache Used :
    1. Created mapping  with Change signature on target Message type(idoc) with 1..N Occurence.
    2. Operation mapping with change Occurence on Target Operation(1..Unbounded) .
    3. Used same Operation mapping in Interface Determination with 0..unbounded(Multiplicity).

  • Single source Multiple Target Messages

    Hi All,
    I have one Source DataType and 3 TargetDataTypes
    I did Mappping and IterfaceMapping successfully while Iam going to Activate the Objects, the follwoing error is showing. Help me to this run successfully,
    Error is
    Activation of the change list canceled Check result for Interface Mapping Micro_IM | http://MicrosoftDifferentMapping.com:  A multi-mapping with multiple source or target interface instances is only recommended with asynchronous interfaces, since only a mapping of this type can be used in the process editor. Message Interface Micro_OB_MI | http://MicrosoftDifferentMapping.com are not asynchronous abstract interfaces  A multi-mapping with multiple source or target interface instances is only recommended with asynchronous interfaces, since only a mapping of this type can be used in the process editor. Message Interface Micro_IB1_MI | http://MicrosoftDifferentMapping.com, Message Interface Micro_IB2_MI | http://MicrosoftDifferentMapping.com, Message Interface Micro_IB3_MI | http://MicrosoftDi
    Thanks & Regards,
    Ashok.

    Hi,
    What is the SP that you are using. If it is XI 3.0 and SP less than 14 then it is not possible. You need to use Abstract interface.
    And why do you need Multimapping in the first place. You can do a simple mapping and in the receiver determination you can add more Business Server/System. Each Service/System you will have seprate IB interface and a separate Interface mapping.
    Hope this solves your problem.
    Thanks,
    Prakash

  • Multi-mapping for ibound IDOC

    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,
    Patrick

    Hey
    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

  • UDF required !! Cannot create target element Values missing in queue context

    Dear Experts,
    I am getting the cannot create target element error with acknowledgement payload in response message mapping  in synchronous interface. I have shared the response payload2. Please suggest do I need write any UDF.
    Message mapping successful with below payload1:
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:updateOppResponse xmlns:ns0="http://soap.sforce.com/schemas/class/clientUpdateInqWebService">
       <ns0:result>
          <ns0:Description>Record Updated</ns0:Description>
          <ns0:SFDCId>006M0000007xjTrIAI</ns0:SFDCId>
          <ns0:Status>true</ns0:Status>
       </ns0:result>
    </ns0:updateOppResponse>
    With the below target system response message, Mapping failing with Cannot create target element /ns1:MT_InquiryUpdate_ECC_Ack. Values missing in queue context. Target XSD requires a value for this element, but the target-field mapping does not create one. Check whether the XML instance is valid for the source XSD, and whether the target-field mapping fulfils the requirement of the target XSD com.sap.aii.mappingtool.tf7.IllegalInstanceException:
    Actual acknowledgement reply from target system payload2:
    <?xml version="1.0" encoding="UTF-8"?>
    <soapenv:Envelope xmlns="http://soap.sforce.com/schemas/class/clientUpdateInqWebService" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
       <soapenv:Body>
          <updateOppResponse>
             <result>
                <Description>Record Updated</Description>
                <SFDCId>006M0000007xjTrIAI</SFDCId>
                <Status>true</Status>
             </result>
          </updateOppResponse>
       </soapenv:Body>
    </soapenv:Envelope>
    Regards
    RKN

    Hi
    The easiest solution will be , write an simple java map for your response mapping.
    Please provide your target structure , if you need any help on the java mapping.
    Sample code:
    Response message from web service
    target msg:
    java code:
    package com.sap;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.transform.Result;
    import javax.xml.transform.Source;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    import com.sap.aii.mapping.api.AbstractTransformation;
    import com.sap.aii.mapping.api.StreamTransformationException;
    import com.sap.aii.mapping.api.TransformationInput;
    import com.sap.aii.mapping.api.TransformationOutput;
    public class populateResponseMessage extends AbstractTransformation {
          public void transform(TransformationInput arg0, TransformationOutput arg1)
                      throws StreamTransformationException {
                try {
                      DocumentBuilderFactory tfactory = DocumentBuilderFactory
                                  .newInstance();
                      DocumentBuilder tbuilder = tfactory.newDocumentBuilder();
                      Document doc = tbuilder.parse(arg0.getInputPayload()
                                  .getInputStream());
                      Document newdoc = tbuilder.newDocument();
                      Element root = (Element) newdoc.createElementNS(
                                  "urn:sap-com:document:sap:rfc:functions",
                                  "ns1:ZTEST_FAULT_MESSAGE_DATA.Response");
                      newdoc.appendChild(root);
                      NodeList nlList = doc.getElementsByTagName("ConversionRateResult");
                      if (nlList.getLength() != 0 && nlList != null) {
                            Node data = nlList.item(0);
                            String sourceval = data.getTextContent();
                            Element rate = (Element) newdoc.createElement("RATE");
                            rate.setTextContent(sourceval);
                            root.appendChild(rate);
                      Transformer transformer = TransformerFactory.newInstance()
                                  .newTransformer();
                      Source source = new DOMSource(newdoc);
                      Result output = new StreamResult(arg1.getOutputPayload().getOutputStream());
                      transformer.transform(source, output);
                } catch (Exception e) {
                      e.printStackTrace();
          }// end of transform

  • How to create growl message in JavaFX

    I want to create Growl message in JavaFX similar to to this:
    http://translate.google.com/translate?sl=auto&tl=en&js=n&prev=_t&hl=en&ie=UTF-8&u=http%3A%2F%2Fd.hatena.ne.jp%2Fbluepapa…
    Can you tell me how I can do this or some basic instructions what I need to use to make this component.

    It is custom, but if you download the Ensemble sample from JavaFX Samples, you will find the code you want.
    I should clarify that the toolbar is just a Toolbar with Buttons and the "custom" part is just all CSS.

  • To create Warning Message in Infotype -10

    Dear Gurus,
    I want to create warning messages in IT0010,  when doing Actions. Any inputs plz .
    Thanks

    HI
    How r u Hope dong G8..... check the attributes of the Infotype
    Rajeshk

Maybe you are looking for

  • Drop Frame and Non Drop Frame

    Does QuickTime Pro 7 allow you to select between drop frame and non-drop frame?

  • Accessing photos in iPhoto

    I currently import photos from my iPhone into iPhoto. However when I want to select a photo to email to someone I have to copy it from iPhoto into a folder on my Mac and then upload it into email from there. This seems wrong. Is there a way that Find

  • What are the controlling parameters for a MRP run?

    Hello! SAP gurus, Can any one explain me about Control Parameters related to MRP Run. Thank you,

  • Snap vector shape points to pixels

    I'm trying to write a JS script in Photoshop CS5 which will snap all the points in a selected vector layer to the nearest whole pixel.  This is extremely useful when producing artwork for web pages, mobile phone apps etc. I've figured out how to obta

  • EBS Trusted recon

    Hi All, I am trying to run EBS Trusted recon and I am getting the following error. Can anybody help resolve this [2011-02-16T10:54:55.785-06:00] [wls_oim1] [ERROR] [IAM-5010000] [oracle.iam.reconciliation.impl] [tid: OIMQuartzScheduler_Worker-7] [use