Dynamically change Receiver Business system in message mapping

Dear all,
I would like to change the receiver business system in the message mapping that is used in the interface determination. I do understand there is an enhanced receiver determination where I can use a mapping but that is not what I am looking for.
I think this should be possible if we can change the appropriate value in the SOAP(message) header.
Possible candidates I can think of by looking at the SOAP header in SXMB_MONI are
1. SOAP:Header- SAP:Main- SAP:Receiver- SAP:Service
2. SOAP:Header- SAP:OutboundBinding - SAP:OutboundBindingEntry - SAP:ToServiceName
Q1. Which one of the above is relevant while identifying the receiver agreement ?
Q2. What is the best way to access them from the mapping(preferably from a UDF) ?
Thanks in advance.
Cheers
danus
PS: I have tried to set "http://sap.com/xi/XI/System","ReceiverService" in Dynamic config & ReceiverService, BusinessSystemReceiver and ReceiverSystem in the Container’s Transformation Parameters, but didn't get the expected result.

Chidambaram,
You use an enhanced receiver determination to have a mapping program determine the receivers of the message dynamically at runtime. Instead of creating the receivers in the receiver determination manually, you assign a mapping to the receiver determination and this returns a list of receivers at runtime.
A typical usage case is if you do not yet know the names of the receivers at configuration time. In this case, you can define a mapping program, for example, which reads a list of receivers from a table or from the payload of the message at runtime.
Go through the following link:
[Receiver Determination enhancement|http://www.****************/Tutorials/XI/RecvDetermination/Enhancement.htm]
Hope your problem gets resolved.
Regards,
Kiran Bobbala
Edited by: kiran Bobbala on May 7, 2008 5:47 PM

Similar Messages

  • Interface getting failed after changing the Business system to that service

    Hello All,
    Our Env... is XI 3.0 and this is related to produciton env.
    Based on our client requirment to change the business system from client 871 to 100 for  one of the R3 system which is reciever type(rfc).
    After doing all the necessary changes , that particular service is getting failed and in the CC monitoring for that service I can see the log as "RFC_ERROR_LOGIN_FAILURE" mandate 871 (earlier client) does not exist in  the system.
    The steps which I have followed to change the Business system.
    1>I loged into the SLD of PRD system and clicked on businsess landscape .then i have clicked on the specified system to be changed (RY1 ) and then clicked on change mode and selected the required client (100) and saved the settings.
    2>I have logged into ID(Integration Directory) and selected the service (RY1) which need to be changed .Under service -->Adaper specific -->compare sld configurations and then clicked on apply changes.
    3>Now selected that communication channel of service (RY1) RFCRecieverR3 and changed the client 871 to 100 and the password of user XIRFCUSER ...
    Then i saved the changes and after that i have activated that interface.
    After that when i logged into CC monitoring and viewed that service channels and see the following errors:
    Receiver channel 'RFCReceiverR3' for party '', service 'RY1'
    Error can not instantiate RfcPool caused by:
    com.sap.aii.af.rfc.RfcAdapterException: error initializing RfcClientPool:com.sap.aii.af.rfc.core.repository.RfcRepositoryException: can not connect to destination system due to: com.sap.mw.jco.JCO$Exception: (103) RFC_ERROR_LOGON_FAILURE: Mandante 871 não existente no sistema (selecionar mandante existente)
    Can any one help me out of this situation , and i need to fix this ASAP as this is production system.
    Awaiting for your reply.
    Best Regards
    Rakesh Reddy

    Hello Nisar
    Thanks for the update,
    Let me say few points  about this particular problem:
    1>The interface "XX" from XI sends data to two systems( R3 -->RP1 & RY1), some thing like branched (same data is passed to both the reciever systems).
    And the second RY1 is copy of First system RP1 (Production sys) which is used for data loading purpose and every week there will be a refresh from First sys (RP1) to Second(RY1).
    2>Now the first sys(RP1) is recieving the data successfully from XI , and the second one (RY1) is getting failed .And this started after changing the Business system 871 to 100 .
    3>As mentioned by you , I have checked all the points mentioned
        i)In SM59 for XI (ABAP part) two rfc's are maintained (LCRSAPRFC & SAPSLDAPI) and the test connection is also fine...But I did not find these two connections in reciever systems(RP1 & RY1 too).
       ii)In reciever system RY1 ,when i went to RZ70 , i did not noticed any special settings and SLD Bridge :Gateway Information is not maitained over there .and the same thing in other reciever system(RP1) , with this can we confirm that there is nothing wrong in RZ70 settings.
       iii)In SLDAPICUST at recievers end for both systems nothing is mantained , where as in XI system all the details are maintained(Host name,port, user & password).
    I have translated the error log into english from the CC monitoring for this interface which is in portuguese language .
    It says that:
    RFC_ERROR_LOGON_FAILURE: 871 Mandante not in the system (select principal existing)
    Kindly advise me what to do ..for fixing this problem(this is pretty urgent and it is production env...)..
    If any information required , I can provide that.
    Best Regards
    Rakesh Reddy

  • Dynamic config for attachment without any message mapping in mail adapter

    Hi,
    In our scenario, we are not using any message mapping as a specification.A fixed length file is sent from source via proxy as an attachment to the mail.
    here the issue is with the file name of the attachment. how do we configure the attachment file name dynamically with out using any message maping.
    Regards,
    Divya

    Hi Divya,
    I understand you want to set name for mail attachment.
    SAP Note: Mail Adapter sapnote_0000856599
    Q: Can I choose the name of an attachment in the mail?
    A: Yes. Most mail clients use some heuristics based on some *MIME headers to derive the name of an attachment.* The MIME headers involved in most heuristics are Content-Type, Content-Description,and Content-Disposition. When you create an XI message, the XI payload name is automatically set in the Content-Description. If you want to change or set all of these headers, you can use the MessageTransformBean module (Note 793922) [Link|http://help.sap.com/saphelp_nwpi711/helpdata/en/57/0b2c4142aef623e10000000a155106/frameset.htm]
    in the adapter framework.
    Q: How can I set the file name of a mail attachment?
    There are several MIME headers that play a role in how the client retrieves the file name of an attachment. Unfortunately, this behavior differs among various mail clients. The reason for this inconsistent behavior comes from the fact that this mechanism has been extended incrementally. The old way is to use the name parameter in the Content-Type header as specified in RFC1341. For example, you can set the content type of an XML attachment as:
    Content-Type: application/xml; name="abc.xml"
    RFC1521 discourages the use of this name parameter in anticipation of the new header Content-Disposition, which is defined in RFC1806.
    With this Content-Disposition header, you can set the file name as:
    Content-Disposition: attachment; filename="abc.xml"
    Some clients may show the Content-Description value as the file name. The Content-Description header is typically used to associate some descriptive information to an attachment (RFC1341) as in
    Content-Description: my xml file
    To avoid potential interpretation problems, it is recommended to combine the use of these headers.
    Regards,
    Raghu_Vamsee
    Edited by: Raghu Vamsee on Feb 3, 2011 12:23 PM

  • FILE TO IDOC SCENARIO-Receiver Business system ECC showing Red

    HI
         In File-idoc scenario Business system showing red status in RWB .And i have given the role for the business system as application server and configure related integrated server . But the error in a RWB  for the ping and self-test is as follows
         Unable to log on to system buss_ecc_200 in language en with user PIRWBUSER .
    I thing from XI side every thing is ok. But for bussiness system side ECC might miss some configuration .
           could any help in this issue:
    regards..

    Hi
    Please try one of the followings:
    1) In Configuration --> Business service --> Service --> Adapter specific identifiers. Give logical system name for the sender system (e.g XI_00_800)
    2) In Design --> mapping objects. Give all information of sender n receiver in EDIDC40 segment and
       In configuration --> receiver communication channel in that enable the checkbox take sender from payload.
    3) In configuration --> Receiver Agreement --> Header mapping --> Sender Service (Give XI1 i.e ur sender system).
    Also check the RFC destination that is the major problem with idoc...

  • Change in Business System

    Hi Friends,
    I've done the change to an Existing Business System and saved.
    How to know whether this change is reflected or not.
    Next what all steps i need to take care..
    please suggest.
    Thanks in advance!!!
    Best Regards
    Prasad

    hi,
    Many Thanks...
    I'm able to compare...and found that changes not reflected
    I've chagned the Logical system name in the Business System and that chagnge is not reflected...in the ID buisness system...
    If you have changed logical system name you need to clear sld data cache in ID and also check in the adapter specific settings of business system and synchronize with sld.
    Please let me know how i can clear and do the above chagnes
    Thanks a lot!!!
    Awaiting your reply!!!
    Regards,
    Prasad

  • How can ID automatically change the business system while importing?

    Hi gurus,
    There are many scenarios in our PI system. It will be a tedious work if we don't use transport system(CTS+).
    You know we have to create the scenarios manually in Integration Directory since the business system is different.
    The question is as below (BTW:We are using local SLD for dev,qas,prd separately):
    If we don't use transport system, and only use export and import functionality, and create business system group, can we make the ID automatically change the name of business system while importing?

    Hi Xinjiang,
    You can follow below method.
    In Quality system transport targets will be DEV(Dev pi system) ---> QEA(Quality PI system)
    In Production system transport targets will be DEV(Dev pi system) ---> PEA(Production PI system)
    This will ensure that you does not need to create separate request in Quality system. You can use the same request created in Dev to transport to production system. This will reduce your efforts of transportation. This is the same type of approach that is followed in ECC system as well or next solution is creating transport target in each sld system as you mentioned below,
    we have three local SLD, so we need to create TS and BS for PI DEV in SLD QAS, and create TS and BS for PI QAS in SLD PRD,
    Following link will help you for defining transport target.
    http://help.sap.com/saphelp_nwpi71/helpdata/en/ef/a21e3e0987760be10000000a114084/content.htm

  • Content Based Routing, but same receiver Business System

    Hello experts,
    I'm working with SAP PI 7.11 and I need to process different incoming EDI messages.
    These EDI messages have the same name (except for the timestamp), so I really need to read the files.
    Based on 2 fields in the message, a different ABAP mapping must be chosen. The final receiver is always the same, the SAP backend system.
    So I checked the Receiver Determination, but adding receiver rules doesn't make any sense because the sender is always the same and only 1 interface determination can be created in that case. Thus only 1 ABAP mapping can be referenced.
    Please advice.
    Thanks a lot
    Dimitri

    Thanks for the tip!
    I moved my xpath expression from my receiver determination to my interface determination because there I cannot should the source structure.
    Did a quick test and it looks fine. I my trace I see different ABAP mappings are being taken.
    Thanks again.
    Dimitri

  • Dynamic Config Troubles in 2:1 Message Mapping

    I am using PI 7.1, and I have a 2:1 mapping that takes two input messages and combines them.  The mapping itself is very simple: it takes message A, adds two values from message B and creates message C.
    This mapping is in a transformation step in a BPM.  Message A has several values stored in its dynamic configuration, but after the transformation step, the dynamic configuration values are no longer available (message C has no DynamicConfiguration object in the SOAP Header).
    I tried adding a UDF to the mapping that attempts to read and print one of the dc values contained in message A, but I get a null value.  It's as if the dc values that came in with message A are destroyed once the 2:1 mapping begins.  How can I pass on these original dc values?
    I would appreciate any help you could offer!
    Thanks,
    David

    Hi Abhishek,
    Thanks for the response.  I don't understand when you say that DC does not work in a BPM.  I tried removing the second input message (just making it a 1:1 mapping inside the BPM as a test), and the DC values were read and passed successfully.  I also have a mapping in the exception branch in the BPM that reads a value in from DC without problems.  It would appear that the problem is the fact that the problem mapping is 2:1 rather than that it's in a BPM, right?
    Thanks!
    David

  • Receiver Business System Connot find Inbound Interface - IDoc to File

    Hi Everyone,
    I am doing IDoc to File Scenario.....Idoc got triggered from SAP system and successfully posted to SAP PI.
    Now when I check in T-Code IDX5 in PI, I got one message. When I double click that I am getting following error:
      <SAP:Category>XIServer</SAP:Category>
      <SAP:Code area="RCVR_DETERMINATION">NO_RECEIVER_CASE_ASYNC</SAP:Code>
      <SAP:P1 />
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:Stack>No receiver could be determined</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    Also When I am selecting Receiving Inbound interface for Receiver system, I am not getting any interface by default.
    Please help me out.
    Thanks & Regards,
    Sudheer

    Hi everyone,
    Thanks for your quick responses.
    Actually I am doing IDoc to File Scenario from blog which consists of Conditional Receiver Determination
    "SNDPFC"
    Here is the Explanation given in that blog:
    In most instances, a new Receiver Determination would be created. However, given that in this scenario the combination of the sender service (i.e. u201CGL1u201D) and interface (i.e. u201CMATMAS.MATMAS04u201D) will be used by every student, each student will instead be adding their receiver service to an existing Receiver Determination
    11. In the Condition column on that same line, left click on the question mark help icon
    12. In the following Condition Editor pop-up window, left click on the help icon in the u201CLeft Operandu201D field
    13. In the following Expression Editor pop-up window, select the u201CContext Objectu201D radio button
    14. Use the drop drown to locate and select the u201CSNDPFCu201D field and u201COKu201D
    15. Back in the Expression Editor, leave the u201C=u201D Operand as is
    16. Enter your group number in the u201CRight Operandu201D and u201COKu201D
    17. u201CSaveu201D and validate your u201CConfigured Receiversu201D as seen below:
    I did not understood this Conditional RD.
    Apart from this all configuration are correct.
    Thanks,
    Sudheer

  • Accessing XI logical system in message mapping

    Hi All,
    How can I retrieve the current PI logical system name in my mapping. I need to map it as part of the payload.
    Is there a java api that I can use?
    Thanks,
    Harsh

    Hi
      Glad to know that it helped you..
      we used this in one of our scenarios earlier.. but I dont know if there is any good doc on this.
    check if this helps
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/72e26432-0701-0010-19ba-abc05de7360b
    Our scenario was something like this.
    The customer had only Two systems (one Prod + other for dev/test/QA etc). since we cannot adjust mappings other than Dev, we used the above way & looked up values to generate the exact target location.
    I shall update this link for better doc, if I find any. (also for client info)
    - just try "SAPSYSTEM" if it works
    Cheers
    Regards
    Vishnu

  • How to get the message ID generated by the PI system during message mapping

    Hi All,
    I have a file to file scenario, where during the mapping, I want to map and send the Message ID generated by PI.
    Can anyone please help me with this?
    Kind regards,
    Joe

    Hi,
    You have write UDF for this.
    Please see the below code .
    java.util.Map map = container.getTransformationParameters();
    String MesID = (String)map.get(StreamTransformationConstants.MESSAGE_ID);
    return MesID;
    Hope this helps to you.
    Regards,
    P.Rajesh

  • Java Message Mapping : Dynamic FileName and Directory for ASMA

    How to Put Dynamic FileName and Directory for ASMA Properties of File Receiver adapter in Java Message Mapping ???
    I know How to Do this in UDF , But In Java Type Message Mapping . How to do this ????
    Regards
    PS.

    Hi
    chk this:
    http://wiki.sdn.sap.com/wiki/pages/viewpage.action?pageId=95093307
    Thanks
    Amit

  • [RFC to File]Problem about Changing file name in message mapping.

    Hi,
    my problem:
        Type:RFC to File
        I change the file name in message mapping.
    when I call the RFC to send the data twice at the same time, both of the output file names are changed while I only want to change the second output file name.
        thanks
    Sam

    In my MM, the input values to these variables (var1, var2 and var3) are (<ZZCOMBI>array,G499999,END_FIFC0029) ,
    var1 is an array of input <ZZCOMBI> item list;
    var2 is get from a property file by call another UDF;
    var3 is constant value.
    the test input data :
    I send the data for the first time:
    - <rfc:Z_IFCFR821_ZIFCTT82100010 xmlns:rfc="urn:sap-com:document:sap:rfc:functions">
    - <T_ZIFCTS82100010>
    - <item>
    <ZZCOMBI>G000002G000002</ZZCOMBI>
    <ZZKYKBN>*</ZZKYKBN>
    <ENAME_VE />
    <ENAME_Z5 />
    </item>
    </T_ZIFCTS82100010>
    </rfc:Z_IFCFR821_ZIFCTT82100010>
    so the input values to these variables (var1, var2 and var3) are (G000002G000002,G499999,END_FIFC0029)
    the output file name(File1) :END_FIFC002920090413-171534-053.dat
    output record: G000002G000002
    because the data what I send is the last record, the system send the dummy data for the second time by program.
    - <rfc:Z_IFCFR821_ZIFCTT82100010 xmlns:rfc="urn:sap-com:document:sap:rfc:functions">
    - <T_ZIFCTS82100010>
    - <item>
    <ZZCOMBI>G499999</ZZCOMBI>
    <ZZKYKBN />
    <ENAME_VE />
    <ENAME_Z5 />
    </item>
    </T_ZIFCTS82100010>
    </rfc:Z_IFCFR821_ZIFCTT82100010>
    so the input values to these variables (var1, var2 and var3) are (G499999,G499999,END_FIFC0029)
    the output file name(File2) :END_FIFC002920090413-171533-928.dat
    output record: G499999
    I find that File2(20090413-171533-928) was ouput before File1(20090413-171534-053 ) from the time stamp.
    I am not sure about that "XI will create a message ID for each message and the messages are independent." as you mentioned above.
    Best regards
    Sam
    Edited by: YONGHE ZHOU on Apr 15, 2009 3:59 AM

  • Changes done in message mapping is not reflecting in output

    Hi all,
    i have created one scenario XML to XML and i before i had done 1 to 1 mapping, i got the output also.
    but when i changed few calculation in the message mapping
    there is one node "name" and "Description" in source and target in both places.
    i am having name in SOURCE XML as "something" but i want to change this name to "Xsomething" and in description i have something in source but i want to pass constant value "ZSUBHODIP".i did mapping in message mapping, and when i did the testing in message mapping then in target in message mapping
    i got "XCOPC_C03" and "ZSUBHODIP" but when it takes the XML file which is in my system then in output XML name value "XCOPC_C03" and description "ZSUBHODIP" is not coming.
    i activated it too.
    even i tried with the same FILE to FILE scenario also but in this scenario also problem is same like one one mapping only then when i changed it in message mapping then previous output is coming.
    is there server problem, if yes then how to fix it??
    please tell me what to do
    thanks

    Hi,
    can you test it like this:
    /people/michal.krawczyk2/blog/2005/09/16/xi-how-to-test-your-mapping-in-real-life-scenarios
    Regards,
    Michal Krawczyk

  • Transport does not map business systems

    Hello,
    we have a problem when transporting XI configuration objects (via normal file export/import, not CMS). In the SLD, we have configured business systems
    T01CLNT010, belongs to group dev  and has transport target PROCLNT010
    T01CLNT020, belongs to group dev  and has transport target PROCLNT020
    the strange thing is the first business system is not converted correctly to the prod business system after transporting the XI config from XI dev to XI Prod. For the second business system, that works fine. I compared the entries in the SLD, both look fine. But one does not work, the other does.
    For the one that does not work, the transport goes fine, does not show any error, but just does not convert the name. (which of course will lead to an error when trying to activate the objects, because T01CLNT010 does not exist in XI prod). So it seems it cannot find the SLD transport target for that object.
    Does anyone know how XI exactly finds out how to convert the business system while transporting it to production ? How does it find the connection between the XI business system object and the corresponding SLD entry ? Just by name ? Or is some kind of internal GUID used which may have been broken ? Can I see that anywhere ?
    Is it safe to re-associate the SLD business system to the XI business system in the XI integration builder ? Or are dependent objects (e.g. receiver det.) then lost ?
    CSY

    Does anyone know how XI exactly finds out how to convert the business system while transporting it to production ?
    The only thing that matters here is properly defining the Transport Targets.
    How does it find the connection between the XI business system object and the corresponding SLD entry?
    Not sure about this but I think the name in the transport target would suffice for this requirement. Also, make sure that the groups are properly defined and target SLD has all business systems properly maintained.
    Is it safe to re-associate the SLD business system to the XI business system in the XI integration builder ?
    How will you be doing this re-association? If you are thinking of changing the Business system name in ID manually, then it would mean almost complete development in ID.
    Regards,
    Prateek

Maybe you are looking for