Multi-Mapping and Dynamic Configuration

Hello,
Is it possible to use dynamic configuration in mulltip-mapping? (message split?)
in a  proxy-mail scenario I am using a multi-mapping. The message gets splited by a specif field.
(Field of source message-SplitByValue(Value Change)-CollapseCOntext->Target Message(1..N)
WIthin the graphical mapping I have a dynamic configuration for the "Mail Subject"
DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey keySubj = DynamicConfigurationKey.create( "http://sap.com/xi/XI/System/Mail", "THeaderSUBJECT");
conf.put(keySubj,  pSubject);
return pSubject ;
I have mapped this field to a field in the target message.
The messages are being splitted as expected and the value of pSubject is also correct.
BUT when receiving emails the subject field has the same value for all splitted messages.
My Question is "conf.put(keySubj,  pSubject);" overwitting all splitted outgoing messages?
Thanks for the Help
EMW

As stated in http://help.sap.com/saphelp_nw70/helpdata/EN/43/09b16006526e72e10000000a422035/frameset.htm
Adapter-Specific Attributes and Multi-Mappings
In multi-mappings, there are multiple message headers with adapter-specific attributes. The mapping API can only access one message header. This has the following consequences depending on whether there are multiple source or target messages:
●     1:n Transformation
If there are multiple target messages, the header for the adapter-specific attributes is copied for each message. This means that you can only create one header for all adapter-specific attributes, and not individual headers.
●     n:1 Transformation
This variant is only possible for multi-mappings in integration processes. If there is more than one source message, read-access to the adapter-specific attributes of the various message headers is not possible at runtime.
●     m:n Transformation
All afore-mentioned restrictions apply here. Developers can at most write the same adapter-specific attributes for all target messages to the header, without read-access to the attributes of the source messages. m:n transformations are only supported within integration processes.
Regards,
Henrique.

Similar Messages

  • Variable Substitution and Dynamic Configuration

    Hi All,
    In Variable Substitution , the name that should be given the the receiver payload should be part of the Source Payload unlike the Dynamic Configuration wherein the file name can be generated dynamically during mapping.
    I have the following questions
    1.Dont we need to write the UDF for the Variable substitution?
    2.Cant we do the Dynamic configuration without writing UDF?If so then how?
    3.In Dynamic Configuration the file name is generated dynamically.But where does the file name come from if it is not the part of the source payload?
    Thanks in advance

    Hi Shwetha,
    1.Dont we need to write the UDF for the Variable substitution?
    No. Here we are accessing the contents of the payload to the target. So no UDF required.
    2.Cant we do the Dynamic configuration without writing UDF?If so then how?
    Yes and No.
    Because we can set only few Dynamic configuration  values without UDF.
    If both source and target are File, then check ASMA on both sender and receiver. Then u can get the source directory name and source file name for target also without any UDF.Also some other parameters.
    3.In Dynamic Configuration the file name is generated dynamically.But where does the file name come from if it is not the part of the source payload?
    The file name comes along with the source in the payload as a attribute in header. U can view this in SXMB_MONI, and Dynamic Configuration.
    In Dynamic Configuration the file name is generated dynamically.
    No the file name is taken as it is from the source, if u want to change dynamically that u have to do in a UDF.
    I hope this will clear all doubts,
    If nt pl post
    Babu

  • Multi-Mapping and Message Split using BPM

    Hi All,
    Could anyone pls let me know clearly how message mapping can be done for this weblog
    /people/sudharshan.aravamudan/blog/2005/12/01/illustration-of-multi-mapping-and-message-split-using-bpm-in-sap-exchange-infrastructure
    Thanks,
    Ram

    Hi,
    When you are doing Message mapping after adding the Messaget types for source and target messages. You can click on the "" button in the target message and add one more tab. You can go to Message tab as shown in the 5th image and click "" button to add one more message type. Then do the mapping as usual.
    <b>Based on the value of the element(name), the node of input(details)should be directed to one of the two message types</b>
    Here in this blog it is done based on the Name.
    You need to use IFTHENELSE boolean function and do the mapping.
    Thanks,
    Prakash

  • Multi mapping and message splitting in BPM

    Hi ,
    I am working with this scenario ...
    /people/sudharshan.aravamudan/blog/2005/12/01/illustration-of-multi-mapping-and-message-split-using-bpm-in-sap-exchange-infrastructure
    how many message interfaces i have to create .
    one outbound , one abstract  and two inbound .. is it correct.

    Hi
    Minimum you need to create three message interfaces i.e. Bpm_In_MI_Abstract,  aBpm_Out_MI_Abstract Bpm_Out1_MI_Abstract, because abstract interfaces can be use inbound and outbound as well.
    You can also use create implement it by using inbound and outbound message interfaces. In that case you have to use three additional interfaces(1 outbound and 2 inbound).
    Regards
    Sami
    Reward points if helpful.

  • Multi-Mapping and Message Split using BPM UDFs Error

    hi
    As per the below blog
    Illustration of Multi-Mapping and Message Split using BPM in SAP Exchange Infrastructure
    I have just modified the UDFs(1.selectnodeifA 2.selectNodeifB)
    1.selectnodeifA
    for(int i=0;i<=n;i++)
    if(Name<i>.equals("A"))
    result.addValue(Node<i>);
    2.selectNodeifB
    for(int i=0;i<=n;i++)
    if(Name<i>.equals("B"))
    result.addValue(Node<i>);
    while checking I am getting the following errors
    Source code has syntax error: 
    D:/usr/sap/D10/DVEBMGS01/j2ee/cluster/server0/./temp/classpath_resolver/Mapdc8fa4d0896011dd907d001cc01cef0d/source/com/sap/xi/tf/_bpm_mm_.java:132: cannot resolve symbol
    symbol : variable n
    location: class com.sap.xi.tf._bpm_mm_
    for(int i=0;i<=n;i++)
    ^
    D:/usr/sap/D10/DVEBMGS01/j2ee/cluster/server0/./temp/classpath_resolver/Mapdc8fa4d0896011dd907d001cc01cef0d/source/com/sap/xi/tf/_bpm_mm_.java:140: cannot resolve symbol symbol : variable n
    location: class com.sap.xi.tf._bpm_mm_
    for(int i=0;i<=n;i++)
    ^
    2 errors
    The source code given in the blog is correct ? I thought for loop has not completed
    pls help
    manian

    Hi manian,
    I was having a look to Illustration of Multi-Mapping and Message Split using BPM in SAP Exchange Infrastructure blog.
    The functions are not the same. I mean, yours and blogs functions.
    Each function has two parameters, Name and node. Furtheremore, in the blogs' functions is using arrays and you don't.
    So, the right code will be
    1.selectnodeifA
    for(int i=0;i<=node.length();i++)
    if(Name<i>.equals("A"))
    result.addValue(Node<i>);
    However, if you don't need an advance user defined function as you want to process just one element of the node's queue, you will not need to use for sentence.
    Something like:
    1.selectnodeifA
    // for(int i=0;i<=n;i++)
    if(Name.equals("A"))
    result.addValue(Node);
    Hope it is usefull for you.
    Carlos

  • What is the difference btwn Variable Substitution and Dynami Configuration

    Hi Gurus
    Could you please explain the difference between the Variable Substituion and Dynamic Configuration.
    whn shall we use them and in what scenarios?
    thanx in advance

    Please go through this blog
    /people/shabarish.vijayakumar/blog/2009/03/26/dynamic-configuration-vs-variable-substitution--the-ultimate-battle-for-the-file-name
    Also this
    /people/madanmohan.agrawal/blog/2009/05/20/combining-three-different-aspects-of-pi-asma-af-module-and-variable-substitution-in-one-shot
    Edited by: Baskar Gopal on Mar 31, 2011 9:04 AM

  • Value Mapping and Dynamic Value Mapping

    Hi Experts,
    Could you please give a example for Value Mapping and Dynamic Value Mapping?
    Regards
    Sara

    Sara,
    I am assuming that you are going to use the Receiver JDBC adapter to select the data from the database.
    In this case, take a look at this blog of mine to understand how te dataypes should be created for the request and response JDBC Select Query.
    /people/bhavesh.kantilal/blog/2006/07/03/jdbc-receiver-adapter--synchronous-select-150-step-by-step
    The only difference would be that in the mapping when you create the Request Message for the JDBC adapter, the columns you create would be determined from the Source,
    i.e, if value = 1 , only the required Columns should be mapped as Blank constants,
    likewise for the other requirement.
    the columns you do not want to select you should not create them in theoutput of your request mapping.
    Regards
    Bhavesh

  • Cascade 2 PLL_ADV in spartan-6 FPGA and dynamic configure

    Can I cascade 2 PLL_ADV in spartan-6(XC6SLX25T) FPGA  and dynamic configure them?

    Hi, , Of course the two PLL_ADV meet the requirements for VCO frequency. The output of first PLL_ADV connect to a BUFG and then to the CLKIN of the second PLL_ADV.
    You mean that if change the first PLL_ADV output with dynamic reconfigure, I must reset the second PLL_ADV and then dynamic reconfigure it ?

  • XSLT Mapping with Dynamic Configuration for Mail Adapter

    Hi Guys,
    I am wondering if somebody can help me please.
    I have a requirement in which I need to pick up the file from FTP and email it to the user as an attachment with the same file name and content.
    I know it is possible via 3 method either by deploying adapter module or via XSLT or JAVA Mapping.
    I preferred XSLT Mapping because it is easier to use and we don't need to compile the code like JAVA Mapping.
    I have done the XSLT Mapping but the only problem I am facing is that how to copy the file name which we get it from Dynamic Configuration to the Mail ContentDisposition.
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xmlns:map="java:java.util.Map"
      xmlns:dyn="java:com.sap.aii.mapping.api.DynamicConfiguration"
      xmlns:key="java:com.sap.aii.mapping.api.DynamicConfigurationKey">
    <xsl:output indent="no" />
    <xsl:param name="inputparam"/>
    <xsl:template match="/">
    <!-- change dynamic configuration -->
        <xsl:variable name="dynamic-conf" 
            select="map:get($inputparam, 'DynamicConfiguration')" />
        <xsl:variable name="dynamic-key"  
            select="key:create('http://sap.com/xi/XI/System/File', 'FileName')" />
        <xsl:variable name="dynamic-value"
            select="dyn:get($dynamic-conf, $dynamic-key)" />
        <xsl:variable name="dummy"
            select="dyn:put($dynamic-conf, $dynamic-key, $new-value)" />
        <!-- copy payload -->
    I tried many option but unfortunately none of them worked.
    <Content_Disposition>attachment;filename="$inputparam"</Content_Disposition>
    <Content_Disposition>attachment;filename="$dynamic-conf"</Content_Disposition>
    <Content_Disposition>attachment;filename="$dynamic-key"</Content_Disposition>
    <Content_Disposition>attachment;filename="$dynamic-value"</Content_Disposition>
    <Content_Disposition>attachment;filename="$dummy"</Content_Disposition>
             <Content_Disposition>
                attachment;filename=
                <xsl:value-of select="dynamic-key"/>
             </Content_Disposition>
    I really appreciate if someone can please provide some guidance.
    Thanks,

    Hi,
    Yes u r correct it will show error in operation mapping.. bcoz u cannot check the DynamicConfiguration in Operation mapping...
    It will throw Exception..
    The parameter to UDF depends on ur requirement.... Let us know ur requirements exactly...
    If u r doing for file to file means no UDF required,, just check ASMA on both sides....
    Babu

  • Multi mapping and File Content Conversion

    Hi,
    I've created a similar interface to the the one in this blog
    /people/jin.shin/blog/2006/02/07/multi-mapping-without-bpm--yes-it146s-possible
    In the Config, I receive a CSV and use FCC in the File Adapter to build the XML file. Because of the multimapping, XI adds the following to my Message Mapping
    <ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
       <ns0:Message1>
    Do I need to add this XML to the FCC??

    No,you dont need to add extra tags.
    Those tags are only for XI internal processing.
    Thanx
    Aamir

  • Problems with User Defines Mapping Objects - Dynamic Configuration

    We have a mapping object that takes data passed in from R3 and does an HTTP Post to another system using a URL and file name that is passed from the header record. We had a consultant set this up for us last year and in creating the new one we just pretty much copied what he did. The problem is, it is not working for us. We have the url and file name, we pass it to the user defined code that is supposed to pass it to the url and file name in the configuration. The java code looks like this:
    public String getPcurlOut(String pcurl,Container container){
    String ourSourceFileName = "START";
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    if (conf != null) {
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","Directory");
    conf.put(key, pcurl + ".xml");
    ourSourceFileName = conf.get(key);
    } else {
    ourSourceFileName = "conf == null";
    Basically we want to pass a url and file name to our communication channel based on values that come from our file in R3
    It is almost exactly like the one that works. Can anyone help with this?
    Thanks
    Mike
    Message was edited by:
            Michael Curtis

    Hi Michael
    <i>Basically we want to pass a url and file name to our communication channel based on values that come <b>from our file in R3</b></i>
    --> This means you have file as a sender adapter.
    Check adapter specific message properties in sender adapter.
    Please refer this blog , it is really worth.
    /people/michal.krawczyk2/blog/2005/11/10/xi-the-same-filename-from-a-sender-to-a-receiver-file-adapter--sp14
    Also
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","Directory")
    Try writing this as
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","<b>FileName</b>")
    Regards

  • Mapping error "Dynamic Configuration Is Empty"??

    Hi-
    we have a scenario where we map a SOAP message from a webservice to call a function module in SAP ECC via RFC and then map the returned parameters as response to the webservice.
    We have configured everything and I get the following error in the test configuration and I can't figure it out. I checked that the cache is up to date, but now i run out of ideas what to check.
    Any help is greatly appreciated.
    With kind regards
    Bj
    Interface Mapping
    java.lang.NullPointerException

    Hi,
    Check the URL specified when you define the webservice for your outbound interface. If you have specified the right business system/service and communication channel name.
    check it url
    http://solmgr:50000/XISOAPAdapter/MessageServlet?channel=:SOM_BS_SOAP2RFC_SOAPSEND:SOAPSENDER
    This is the URL which needs to be given, the colon needs to be there before the business system name
    See the below links
    Troubleshooting SOAP Message - XI - Troubleshooting  SOAP Message -  XI
    Troubleshooting - RFC and SOAP scenarios-Troubleshooting - RFC and SOAP scenarios *** Updated on 20/04/2009 ***
    Exposing BAPI as Web Services through SAP XI -Exposing BAPI as Web Services through SAP XI
    Consuming XI Web Services using Web Dynpro – Part II-/people/riyaz.sayyad/blog/2006/05/08/consuming-xi-web-services-using-web-dynpro-150-part-ii
    Consuming XI Web Services using Web Dynpro – Part I -/people/riyaz.sayyad/blog/2006/05/07/consuming-xi-web-services-using-web-dynpro-150-part-i
    Troubleshooting - RFC and SOAP scenarios *** Updated on 20/04/2009 ***
    RFC -> XI -> WebService - A Complete Walkthrough (Part 1)
    You dont need to use SOAP to keep your RPC clean ...
    RFC -> XI -> WebService - A Complete Walkthrough (Part 2)
    SOA vs RFC: it doesn't have to be Charles Bronson vs Henry Fonda
    The specified item was not found.
    Regards
    Surya

  • Graphical Multi Mapping and then XSLT Mapping

    Hi I have to do message Split. I'm doing this message split. Then I have use XSL Mapping where I'm basically sending the whole Source message into Target Node. Basically Graphical mapping splits one Source file into 2 target files and XSL Mapping should move these individual files to 2 target messages. How Can I refer the Individual messages in the Mapping ?.
    Since Actual message split takes place in Adapter Engine does XSLT Mapping acts on a Single message out of Graphical Mapping ( in my case Graphical mapping produces 2 messages  ) or It acts on both messages as no actaul split didn't took place yet in the Mapping runtime.
    No Guess work please ..let me know if you actually did it.Appreciate all your help.

    Message splits (1:n mappings) can be executed without BPMs. It will finally occur, as you said, at the Adapter Engine layer.
    When you deal with multimappings with graphical mapping, XI will automatically create two new tags surrounding your root tag(s) (tag in case you have multiple occurrence of 1 interface; tags in case your target messages are from different interfaces).
    But when creating multimappings with XSLT, ABAP or Java, you'll have to handle these two surrounding tags manually. So, in your xslt, your input will be like:
    > <ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
    >   <ns0:Message1>
    >     <ns1:Your_Message1 xmlns:ns1="http://your.namespace1">...</ns1:Your_Message1>
    >   </ns0:Message1>
    >   <ns0:Message2>
    >     <ns2:Your_Message2 xmlns:ns1="http://your.namespace2">...</ns2:Your_Message2>
    >   </ns0:Message2>
    >   ...
    > </ns0:Messages>
    (in case your target message is just 1 interface with multiple occurrence, you'll have only <Message1> tag with multiple occurence).
    So, the secret here is that you'll have to handle the <Messages> and <MessageX> tags in your xslt code.
    Regards,
    Henrique.

  • Multi mapping and correlation

    Hi there
    i have an File -->  PI --> Idocs  Scenario,
    the File structure is something like this:
    1  xxx yyy 9865
    1  zzz www 9834
    2  sss ttt 12392
    2  rrr eee 45323
    Basically they're deliveries with some additional info,
    I want to group them like this:
    Header info : 1
    Positions:
    xxx yyy 9865
    zzz www 9834
    Header info : 2
    Positions:
    sss ttt 12392
    rrr eee 45323
    To be mapped to SHIPPL Idoc ( External transportation documents)
    So basically i'd assume i have to split all those deliveries into individual message on BPM and then use correlation to build up the documents grouping all the deliveries??, can you guys help me on how to build up this process??, what goes outside or inside the BPM and how can i resolve all the mapping i need to do?
    Thank you Very Much
    Roberto.

    Hi,
    I beleive Multimapping will not work without BPM when we have Idoc as a receiver channel.
    You can do these steps:
    1) create XSLT mapping to group the data based on the key. (1st mapping)
       if your input after FCC conversion is (before xslt)
       <a1></a1>
      <a2></a2>
      <b1></b1>
       <b2></b2>
    Output of xslt should be : (grouping based on some key field or value)
    <Group>
        <a1></a1>
        <a2></a2>
    </Group>
    <Group>
      <b1></b1>
       <b2></b2>
    </Group>
    2) If you look at Idoc the occurence of Idoc field is one. Download the xsd of Idoc and change the occurence to 1 to unbounde. upload xsd as external definition and use it in mapping.
    3) now you can create a graphical mapping which will create the Idoc tag for each Group. It will create multiple Idocs in target system
    By using above method you can avoid BPM and there is no needd to use Multimapping also.
    Thanks
    Inder

  • File-name not being fetched in a multi-message mapping by Dynamic Conf

    In a scenario, i have a BPM which has a transformation step which contains a mutimapping ...means 2 messages mapped to 1 messgaes, here in the mapping i m using an UDF and written code to extract the file name from dynamic configuration.....
    the problem is ...the same BPM contains another transformation step which contains a message mapping (which is not multi mapping), and here the code (UDF) works to fetch the file name...
    the code is all correct....and it looks like
    DynamicConfiguration conf = (DynamicConfiguration)
    container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","FileName");
    String sourceFileName = conf.get(key);
    if (sourceFileName == null ){
    sourceFileName = "ErrorFile.xml";}
    return sourceFileName;

    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 receiver interfaces, one for each message.
    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:
    Operation Mapping
    Employee_Out_SI_To_Employee1_In_SI_AND_Employee2_In_SI_OM
    Name
    Employee_Out_SI_To_Employee1_In_SI_AND_Employee2_In_SI_OM
    Namespace
    http://accenture.com/1:N_multi-mapping
    Runtime error
    Split mapping created no messages
    Start tag ns0:Messages Add raw attribute xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge" Start tag ns0:Message1 Close tag ns0:Message1 Start tag ns0:Message2 Close tag ns0:Message2 Close tag ns0:Messages
    Could someone please help
    Cheers,
    S

Maybe you are looking for

  • My App store and itunes has disappeared from my iphone

    My app store and itunes apps have disappeared from my iphone. I suspect Apple is responsible and is trying to force an upgrade. Does anyone know if this is true? because if it is we should object to this. The upgrade on my ipad was such a horrible ex

  • Image Trace, high resolution

    What are some tips for getting a clean (high definition, full color) Image Trace on a photo?

  • How to create document whenever we enter F1

    hi guru. actually whenever we click f1 , we get the the regarding documents. how to create this things. is this possible by the help of se11 , we can create our document. with best regards. asis.

  • AD changes not replicating when I move a DC to the correct site

    I have created a site in AD Sites and Services for our branch office.  However, when i place the RWDC in the correct site replication stops.  New user accounts and changes made to that DC do not replicate back to us. I am pretty sure there is not a f

  • Sync Calendar Windows Live

    I cannot sync my Calendar on Curve 9300 with Windows Live Calendar or Yahoo Calendar. Keep getting message on Desktop Software "The organizer applications on you computer are not supported" Can any one help?