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

Similar Messages

  • 0(zero) or 1.1 charectored interface mapping should be ignore the values

    hi,
    0(zero) or 1.1 charectored interface mapping should be ignore the values
    bye
    suresh

    Hi Suresh,
    Please eloborate your question.
    Regards,
    UP

  • 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

  • Interface Mapping not supported in the JPA specification?

    Are there any plans to add Interface support in the JPA specification? It is not supported by JPA annotations, which seems quite disruptive to proper object oriented design. However, individual implementations of JPA seem to support this:
    http://docs.jboss.org/hibernate/stable/core/reference/en/html_single/#inheritance-tableperclass
    http://wiki.eclipse.org/Using_EclipseLink_JPA_Extensions_%28ELUG%29#How_to_Use_the_.40VariableOneToOne_Annotation
    There is visible interest in getting this implemented at an Annotation level for Hibernate also but the developers for Hibernate point out that this isn't even in the JPA specifications.
    http://opensource.atlassian.com/projects/hibernate/browse/ANN-9
    https://forum.hibernate.org/viewtopic.php?f=9&t=941363&sid=4abdbc72cbf04380f4a8e2cadd7dfada&start=15
    Is this being talked about/in the works for JPA? Why not include @VariableOneToOne in the spec? It would seem to be quite an essential feature for wide adoption.

    Hi,
    You can only choose the Interface mapping for the Enhanced recevier determination in the extended tab of Receiver determination. & I dont see the Interface mapping in the select list.
    Where do I have to check for the proper outbound message???
    Regards

  • Interface Mapping not listing in the Extended Reciever Determination

    Hi,
    The Interface Mapping is not shown in my Extended receiver determination. I have created and activated the IM & MM using the MT - Receivers within the SAP Basis.
    Regards
    Unni

    Hi,
    You can only choose the Interface mapping for the Enhanced recevier determination in the extended tab of Receiver determination. & I dont see the Interface mapping in the select list.
    Where do I have to check for the proper outbound message???
    Regards

  • Mapping constant values to the target data source columns

    Hi
    A Target data source has only two columns(RPT_NAME, RPT_LEVEL) and both of them are constants and mapped as follows
    WITH TEMP1 AS
    (select 'AS' as A from dual
    union
    select 'IS' as A from dual
    union
    select 'ED' as A from dual
    select t.A as RPT_NAME, 'INV' as RPT_LEVEL from TEMP1 t
    Here there is no source tabel involved for mapping and gnerating a from query.
    Kindly let me know hoto map this table.
    Thanks

    Hi Amit
    Is there a way we can create an intermediary staging table or model or view in ODI itself, the business requirements are such that the source and the target databases cannot change/include any other view or table .
    Thanks

  • Reg Mapping error cant produce the target element

    Hi gurus,
    I have a mapping requirement like
    sourceinput
    ||
    record
    ||
    Tab_id
    materialno
    condition type
    coustomergroup
    materialpricinggroup
    datefrom
    dateto
    uom
    amount
    in target side
    target input
    ||
    record----
    (0-1
    ||
    coustomergroup(1--unbound) if tab_id is R34
    ||
    Tab_ID
    coustomergroup
    UOM
    Materialno
    Materialpricinggroup(1--unbound) if the tab_id R346
    ||
    tab_id
    materialpricinggroup
    datefrom
    dateto
    based on the tab_id i need to create target node i.e if the tab_id is R345 then the fields which are under the node coustomer group
    will be populated
    if the tab_id is R346 then material pricing group node will populated
    i have tried like
    tab_id----
    | equalS--creatif--
    coustomergroup
    |
    constant(R345)----
    this mapping excute successfully if the occurence of the target node coustomergroup is 0---unbound
    if is 1----unbound the target gives error mapping exception
    my target structure is WSDL there giving as minoccurs=0 but while it is imported to xi it will come as 1---unbound
    please help out this
    let me know if anything is needed
    Edited by: katakoti on May 4, 2011 2:40 PM
    Edited by: katakoti on May 4, 2011 2:47 PM

    </xsd:sequence>
             </xsd:complexType>
             <xsd:complexType name="PRICING_MASTER_DATA">
                <xsd:sequence>
                   <xsd:element name="CUSTOMER_GRP" nillable="true" type="tns:ArrayOfCUSTOMER_GRP" minOccurs="0" />
                   <xsd:element name="SALES_ORG" nillable="true" type="tns:ArrayOfSALES_ORG" minOccurs="0" />
                   <xsd:element name="PRI_GRP" nillable="true" type="tns:ArrayOfPRI_GRP" minOccurs="0" />
                   <xsd:element name="MT_PRI_GRP" nillable="true" type="tns:ArrayOfMT_PRI_GRP" minOccurs="0" />
                   <xsd:element name="DIST_CHN" nillable="true" type="tns:ArrayOfDIST_CHN" minOccurs="0" />
                   <xsd:element name="INDUSTRIAL_CODE" nillable="true" type="tns:ArrayOfINDUSTRIAL_CODE" minOccurs="0" />
                   <xsd:element name="PRICING_TEMPLATES" nillable="true" type="tns:PRICING_TEMPLATES" minOccurs="0" />
                </xsd:sequence>
             </xsd:complexType>
             <xsd:complexType name="CUSTOMER_GRP">
                <xsd:sequence>
                   <xsd:element name="TABLE_ID" nillable="true" type="xsd:string" minOccurs="0" />
                   <xsd:element name="CUSTOMER_GROUP_NAME" nillable="true" type="xsd:string" minOccurs="0" />
                   <xsd:element name="CONDITION_DETAILS" nillable="true" type="tns:CONDITION_DETAILS" minOccurs="0" />
                   <xsd:element name="PRICING_DETAILS" nillable="true" type="tns:PRICING_DETAILS" minOccurs="0" />
                   <xsd:element name="BUSINESS_DETAILS" nillable="true" type="tns:BUSINESS_DETAILS" minOccurs="0" />
                </xsd:sequence>
             </xsd:complexType>
             <xsd:complexType name="CONDITION_DETAILS">
                <xsd:sequence>
                   <xsd:element name="CONDITION_TYPE_x0020_" nillable="true" type="xsd:string" minOccurs="0" />
                   <xsd:element name="VALID_DATE_FROM_x0020_" nillable="true" type="xsd:string" minOccurs="0" />
                   <xsd:element name="VALID_DATE_TO_x0020_" nillable="true" type="xsd:string" minOccurs="0" />
                </xsd:sequence>
             </xsd:complexType>
             <xsd:complexType name="PRICING_DETAILS">
                <xsd:sequence>
                   <xsd:element name="AMOUNT" nillable="true" type="xsd:string" minOccurs="0" />
                   <xsd:element name="RATE_UNIT" nillable="true" type="xsd:string" minOccurs="0" />
                   <xsd:element name="CONDITION_PRICING_UNIT" nillable="true" type="xsd:string" minOccurs="0" />
    from source side i wiil get the tab_id  based on that id. i need to populate the target node
    tab_id-=100  then coustomer_group
    tab_id = 200 then sal_org
    i got the source values like this
    tab_id     coustomer_group        sal_grp     pri_grp     condition_type   date_from     date_to          amount           rate_unit    
    100                c                                                                      c1             05/05/2011    06/05/2011   A                      R
    200                                                 s                                     c2              05/05/2011    06/05/2011   A1                    R1
    300                                                                 p                     c3              05/05/2001    06/05/2011   A3                    R3
    based on the tab_id i need to send the data to perticular node
    for this requirement i had follow the
    tab_id--
    -----------------------equalS-----------------creatif--------array of coustomer_group
    constant(100)
    its work fine when the arrayof coustomer_group is 0--unbound (i tried by creating the same target strucuture manually)
    it fails when the ocuurence is 1---unbound

  • Message Mapping - NewLine generation  in the target field

    Hi ,
    This is a File to SOAP scenario, where text file is picked by XI and posted to target using webservice in the xml format.In the message mapping, I am supposed perform a logic where 3 fields in the source structured are to be concatenated and sent to the target structure. This fields at the target structure are to be displayed with a newline character.
    So if I am sending : abc, 123 and xyz as input and  the output should be in one field as follows :
    <ns3:OutputField xmlns:ns3=abc
                                                  123
                                                   xyz</ns3:StreetAddressLine>
    I have used this "&#x0D;&#x0A;" as the seperator in the concat function, hoping this would produce a new line but was hopeless.
    Any ideas are appreicated.
    Thanks,
    Rag

    Hi Raghav,
    XML will never show new line or space characters.
    Try to open the message in notepad or wordpad and then check if you can see the new line character.
    -Supriya.

  • Interface or Class based on the Factory

    Hi,
    I want to write a Factory pattern to decide whether the passed parameter is an interface or class ?
    If an interface is passed then validate whether it is an interface using reflection and do the respective operation similarly for the class as well.
    Please provide your opinion on this.
    Thanks.

    Thanks.
    In the main class I am calling the below :-
    mockInterface("com.test.InterfaceTest");
    protected <T> T mockInterface(String className){
    <T> T interfaceObject = null;
    try {
    Class clazz = Class.forName(className);
    if (clazz.isInterface()) {
    interfaceObject = EasyMock.createMock(className.getClass());
    } catch (ClassNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    return interfaceObject;
    Here when I use EasyMock.createMock(className.getClass()) I am getting the below error :-
    "Type mismatch Error saying cannot convert capture#2 of ? extends String to T"
    Here createMock takes class as a parameter as shown below:-
    public static <T> T createMock(Class<T> toMock)
    /* 46 */ return createControl().createMock(toMock);
    What I am doing wrong here? Please clarify.

  • How  to update the R/3 tables with the target message??

    Hi All:
    I have one scenerio, that I am getting the data from Flat File and Mapping
    it to the target structure. Now from that target message I need to update
    few tables in R/3.Could any one give me a hint how I can achive it.
    It is possible with proxy??
    Thanks in advance.
    regards,
    Farooq.

    Also when ever I send the e-mail you peoples are able to read it..but
    I am unable to recieve the others mail in my mail box(Regarding the new blogs, forums etc). Can any one help
    me on this

  • Same interface name in alert for the synchronous messages

    Dear Friends,
       I have configured the alert for my interfaces. In the container i have added the message id, sender interface and receiver interface variables. While the error occurs, the alert is getting triggered. But in the alert long text in both the sender and receiver interface the Same 'is_Update'(receiver interface)  is only coming.
    But in the case of asynchronous interface alerts the sender and receiver interface are coming correctly in the long text of the alert.
    Please tell me what might me the problem.
    Thanks and Regards
    Prem

    thanks for ure reply....
       ya i have given the correct interrface names.... this problem is nt only for my interface. this is for all the developers over here...in long text the same interface name is coming for both the sender interface and in receiver interface

  • After installing Mavericks, I receive a prompt saying "To open Nexdef, you need a Java SE 6 runtime."  I select "Install" but the pop up returns.

    Tonight I upgraded from Mountain Lion to Mavericks.  After the upgrade I get a pop up for a software update.  After selecting "install" it downloads & completes the install.  But then the pop-up returns.  What's up?  Can somebody give a pointer.
    I'm running a Mid-2012 Mac Mini, but that probably doesn't matter for this discussion.

    Java is a third party runtime developed by Oracle, formerly Sun who Oracle purchased.
    Java 6 is near obsolete, Apple used to maintain Java 6 for OS X 10.6 and earlier, but stopped in OS X Lion and further.
    Java 7 is now a user optional download directly from Oracle, however your Nexdef will also have to be updated to use Java 7.
    Java has a very bad history of security issues, in fact Apple's entire Cupertino HQ  was compromised by Flashback malware which targeted flaws in Java.
    Perhaps by then they'll have a version for Mavericks.
    If you don't need Java 7 for anything else, then don't install it. This will keep your machine more secure.
    Perhaps the next Nexdef won't use Java at all, but if it does then it will either install it or demand that it does.
    If you do install it, try to limit it's use in your browsers, turning it on only for sites you trust.

  • Selection screen in the target query RRI

    Can I get a selection screen when I am drilling down from source to target query.
    Thanks,

    Dear Gokul,
    I would suggest you to go through Note 1053310 as this will answer your query.
    regards,
    arvind

  • In XPath routing  system is showing the Target message type

    hi all,
    while givine XPath condition at receiver determination, it system is giving source structure, but i want to select field from target structure.
    Plz help me its very very urgen.
    POINTS will BE REWARDED.
    regards
    sreeni

    Hi,
    Try to use Interfaces determination to put the codtion.
    Check some links on xpath.
    /people/shabarish.vijayakumar/blog/2005/08/03/xpath-to-show-the-path-multiple-receivers
    http://help.sap.com/saphelp_nw04/helpdata/en/43/a5f2066340332de10000000a11466f/content.htm
    http://www.w3schools.com/xpath/default.asp
    http://www.w3schools.com/xpath/xpath_operators.asp
    /people/shabarish.vijayakumar/blog/2006/06/07/customise-your-xpath-expressions-in-receiver-determination
    /people/suraj.sr/blog/2006/01/05/multiple-inbound-interfaces-within-a-service
    Regards,
    Phani
    Reward points if Helpful

  • The question about Interface Mapping in BPM

    Hello,
    I am a few confused about  an Interface Mapping in BPM at the Design step.
    I have a task to transmit and trasform two messages of two sender file adapter to  two IDOCs messages and then to send them to SAP system.
    I use BPM.
    But I don't understand what types of message interfaces should I use for source and target interfaces in Interface Mapping? As to the target interface I understand it must be abstract but which of interfaces exactly?
    Actually there are some questions here:
    1) If the source interface should be abstract or real in Interface Mapping?
    2) If the target interface should be  the abstract interface of Receive Step object or the abstract interface of Send Step object?
    3) And what the message types should I use for the source and target message interfaces in Interface Mapping? If I understand correctly that these message types

    hi igor,
    you have to import the IDOC Types under the imported objects in the integration repository objects,
    what are all the data that coming out from the file adapter, you design the datatype.
    the target IDOC should be real and you do the mapping for the all necessary fields.
    refer: --
    File to IDOC:
    Re: how to Sending XML data to idoc
    IDOC Mapping:
    http://help.sap.com/saphelp_crm40/helpdata/en/77/a1d48b1ce06d40932e0a26f3c117ce/frameset.htm

Maybe you are looking for