Message mapping crashes only in INterface Mapping

hi guys,
i have an issue with one of my interface mapping. the message mapping crashes when i run the interface mapping. however when i run the message mapping separately it works fine.
any hints?
thanks,
ali.

Hi Ali,
If you are using try catch then in case of catch condition if you pass null to substring it will fail.. Either you call the substring inside your udf (so that you can make sure that the filename is available then only substring is called) else handle the null condition in message mapping before calling substring...
Also you can try looking into the display queue entry for substring in Message Mapping for further analysis. Here also you will not get any filename by dynamic configuration, but i am not sure why it was not failing there.. May be display queue will help you.
Regards
Suraj

Similar Messages

  • XI 7.0 ABAP-Mapping in Design Builder (Interface Mapping)

    Hi,
    in XI 3.0 there was the possibility to specify a ABAP-Mapping-Class in the Interface Mapping. In XI 7.0 the
    entry ABAP-Mapping is somehow missing in the drop-down-Box, there is a Message-Mapping, JAVA-Mapping and XSLT-Mapping but no ABAP-Mapping :-(.
    Did this move somewhere else or are ABAP-Mapping's not possible anymore ??
    Best Regards,
    Frank Marx

    Frank,
    You need to activate ABAP and XSLT mapping.
    Check this blog for the same,
    /people/ravikumar.allampallam/blog/2005/02/10/different-types-of-mapping-in-xi
    Regards,
    Bhavesh

  • UDF works in Message Mapping but not in Interface Mapping

    Hello,
    I have encountered a very strange problem. I use a simple UDF in a message mappings which imports a class that has been imported as "imported archive".
    This works perfectly fine when testing the message mapping itself.
    However when I execute the message mapping within a interface mapping I get a Java Error indicating that resources are missing (com.sap.aii.ib.core.mapping.ResourceNotFoundException) This error refers to a missing class.
    How can this be? Message mapping works but not when using it in a interface mapping.
    Do you have any idea?

    Hello,
    this is what I have already tried, with the same result. But now I have come to a conclusion. It is a little bit tricky, but maybe also helpful for others:
    A method of a class (part of the imported archived) itself calls a class which throws an exception. This exception however is handled by the method itself and does not affect the overall outcome.
    In the message mapping itself you do not see the error message, only in the interface mapping. Result however is the same.
    Maybe the trace level is set different for mesage and interface mapping.....

  • Mapping Problem: only constants are mapped the rest is missing

    Hi Community,
    I have a really strange problem. I mapped a message type and an external definition (a modified IDoc) in the repository. If I use the test function of the message mapping everything is fine. All values and constants are mapped correctly from source to target.
    So I configured the rest in the repository and the directory and activated it. But it does not work. SXI_MONITOR details show that the source flat file is converted correctly into XML format. But the mapping is incomplete. Only the target fields with a constant as source are mapped. The normal one-to-one mappings (source flat file to external definition) are missing. Somehow they are ignored. Not even an empty tag is mapped.
    What I am doing wrong?
    Thanks for you help,
    Udo

    Hi,
    Take the payload from SXMB_MONI and test it in message mapping editor.
    check the problem there..
    Thanks,
    Madhu

  • Two Message Mappings in one Interface Mapping without using BPM

    Hello Experts,
    I have this scenario, please help me
    I have to execute two mappings of which one is a java mapping and then the other is a message mapping sequentially.
    The mapping is something like below
    Message1  -> (java Mapping) -> Message2
    Message2
    Message1 -> (Message Mapping) -> Message3
    Based on the value in Message2 I have to map Message1 to Message3
    I am not an expert in java so please give me options that doesn't involve changing of java code.
    The above 2 mappings have to be implemented in only one interface mapping.
    Suggestions please.

    Hi Ravi!
    You say message2 dependes on message1 and message3 is mapped from message1 but using also values from message2? But this means, that whole mapping dependes only on message1!
    So change your mapping and use the one not based on message2, but message1. Put these as a condition in interface determination and based on these values use the correct mapping.
    Peter
    p.s. I'm not sure, if I got your requirement correctly, but your target message dependes only on message1 (since message2 dependes on it too), so this whole mapping can be done as 1. Unfortunately, you'll probably have to change your java part. Bur definetely, Raj is right.
    Edited by: Peter Jarunek on Feb 20, 2008 5:36 PM

  • Interface Mapping VS Message Mapping

    What is the meaning of Interface mapping and Message mapping in real business?
    I think it is something like the difference between the class and object. object is an instance of class.
    While talking about the mapping, there are the source interface and target interface. Can two source intefaces map to only one interface, and what about the vs verse? And how about the message mapping?
    Thanks a lot

    Hi -
    First, an Interface Mapping is not only linked with "Message Mappings" (which is the XI term for a mapping created with the XI graphical tool), but any other XI supported mapping type (e.g. XSLT, Java, or ABAP).  So basically, an Interface Mapping is used to link a source interface to a target interface via a mapping (of any of the supported types).  At runtime, you can't have an interface mapping without a mapping and a mapping without an interface mapping - they need each other.
    <i>>>>Can two source intefaces map to only one interface, and what about the vs verse? And how about the message mapping?</i>
    Yes, the ratio of source to target interfaces are n:m.  In those multiple cases, Multi-Mappings are typically involved as mentioned in the previous post.
    Also, remember that in one interface mapping, you are not limited to one mapping.  More than one mapping (of any type) can execute in the sequence you have set up in the Interface Mapping.  However, watch out for performance in these back-to-back(to-back) mappings.
    Regards,
    Jin

  • Two message mapping in one interface mapping

    hi,
    my scenario is idoc to file and i am using java mapping(not UDF) for some fields as well as graphical for rest of the fields.
    I want to add these two mapping program in one interface mapping to generate final target, but the problem is it is not creating final file structure, but when i add only one mapping(either one) it works fine. 
    I'm doing this because I have to add value mapping, after the value i get through java mapping or is it possible to use static value mapping within the java mapping itself.
    Please help.....

    Hi,
    In addition to what Moorthy said you first test mapping individually and see if it works fine. While testing you make sure you are giving the right input, I mean if Java mapping comes second you need to give the output XML of the Graphical mapping or vice versa.
    Hope in Java mapping is done properly and you are returning the expected structure as output. For example if you are using Java mapping as the first one your ouput should be exaclty like that of source structure with the values filled.
    Regards,
    Prakash

  • About interface mapping

    what are there case about interface mapping?
    i knew that the following:
    outbound to inbound
    abstract to abstract.
    what else the case?

    Hi joy zheng  ,
    These r the details about interface mapping :
    Interface Mappings
    You can define mappings for an interface pair (source and target interface) by using message interfaces and message types in the Integration Repository.You can also define the corresponding mappings when the source or target interface is an IDoc, an RFC, or another interface connected by an adapter.
    When defining mapping programs for request, response, or fault messages, the definition is first separated from the interfaces that reference the corresponding message types. Furthermore, you can reuse a message type for multiple interfaces. This means that the simple definition of a mapping program is not sufficient to establish a connection (that is based on the assignment of outbound and inbound interfaces).
    This role is undertaken by the interface mapping:
    &#9679;     An interface mapping specifies the corresponding mapping programs for request, response, or fault messages for a selected interface pair. You use an interface mapping to register mappings for an interface pair.
    &#9679;     You can also specify multiple mapping programs to be executed one after the other in the case of requests and responses for an interface mapping.
    You can also define multiple interface mappings for the same interface pair, to provide multiple variants in the Integration Repository. At configuration time, the customer can select the appropriate mapping in an interface determination and save it in the Integration Directory
    Use :
    Interface mappings register your mapping program for an interface pair in the Integration Repository. If you require a mapping at runtime, it is sufficient to select the interface mapping for the interface pair at configuration time . The Integration Server uses the interface mapping to identify associated mapping programs for request messages, response messages, fault messages, or all three.
    Features
    Executing Multiple Mapping Programs for One Direction
    By using an interface mapping you can execute multiple mapping programs consecutively for the transformation of a request or response message. In such cases, an interface mapping comprises multiple steps for which the following applies:
    &#9679;     The steps are executed in the sequence specified (from top to bottom). The result of the mapping program from the previous step is forwarded to the mapping program of the subsequent step.
    &#9679;     Each step can reference a mapping program that executes a 1:1, 1:n, n:1, or an m:n transformation. In the case of multi-mappings (1:n, n:1, or m:n), the previous step must create the same number of messages that the subsequent step expects.
    &#9679;     Multi-mappings use one envelope to put all messages in one structure. If one of the steps references a multi-mapping program, all subsequent steps must use the same envelope.
    The mapping for a request message comprises two message mapping programs: one 1:1 transformation and one 1:n transformation. Since the latter message mapping uses the multi-mapping envelope for both the target message and the source message, the message mapping for the 1:1 transformation must also create a transformation result with a multi-mapping envelope.
    You do not strictly need to divide up one direction of the whole mapping into different steps. However, this enables all the message formats in one system landscape to be mapped to a central message format, for example. This results in less mapping programs being required because you no longer need to be able to map all the different message formats to each other.
    Activities
           1.      Create your interface mapping on the design maintenance screen of the Integration Builder (see also: Creating an Object).
    You can also create multiple interface mappings for the same interface pair.
           2.      Enter the source and target interfaces that require a mapping of the request message, the response message, the fault message, or all three, in the table of the same name. The following restrictions apply:
    &#9675;     If you want to use the interface mapping in a transformation step in an integration process, you must only specify abstract message interfaces. Furthermore, all objects (integration process, interface mapping, and all objects referenced by the interface mapping) must be in the same software component version. If you want to reference objects from underlying software component versions, you must access the objects from the Basis Objects branch (in the navigation tree or using an input help) (see also: Underlying Software Component Versions).
    &#9675;     If you want to map multiple messages to each other by using a multi-mapping, you can only specify asynchronous interfaces (for further restrictions, see: Multi-Mappings). If any message interfaces are missing, you can also create them by using the functionCreate New Object ().
    If the interface cannot be imported or cannot be created in the Integration Repository (in the case of an external adapter, for example), you must enter the interface names manually. However, it is not possible to check the technical name in this case.
           3.      To import the properties of the interfaces, choose Read Interfaces. The table in the lower area displays tab pages for the request message, response message, and if available, for the fault message, for each mode of the interfaces (either synchronous or asynchronous).
           4.      To develop an external mapping program, export the XSD schema of the respective request or response message as a zip file after you have imported the interfaces. The zip file can contain multiple schema files that reference each other, for example in a multi-mapping. In this case, the schema with the global message element has the name MainSchema.
           5.      To reference a mapping program for the respective message, you have the following options:
    &#9675;     Select an existing mapping program from the Integration Repository by using the input help (). If this is a message mapping, the default setting of the input help only displays those message mappings that are found using the source and target message in the Integration Repository (in multi-mappings, the first source and target messages are used as the search criteria). However, you can also display any number of message mappings, for example, because you are constructing a mapping from several mapping programs with intermediate instances which have no message types.
    &#9675;     You can create message mappings directly from the interface mapping. To do this, select the mapping type Message Mapping in the Type column. Position the cursor in the Name column and choose the function Create New Message Mapping () in the Mapping Program frame. The Integration Builder copies the specifications of the messages and their occurrence directly from the interface mapping.
    An interface mapping can only reference mapping programs that belong to the same or an underlying software component version of the interface mapping. This ensures that the mapping program can be shipped together with the interface mapping (see: Software Logistics).
           6.      If you are not using a mapping for a fault message, you can execute multiple mapping programs in succession for request and response messages:
    &#9675;     To insert an additional line for a mapping program, choose .
    &#9675;     To delete the registration for a mapping program, choose .
    At runtime, the mapping programs are executed from top to bottom.
           7.      Save the interface mapping.
    The following web-site gives complete details about interface mapping :
    http://help.sap.com/saphelp_nw2004s/helpdata/en/12/05731a10264057badc32d3d3957015/content.htm
    **********Please reward points if u find this useful
    cheers,
    gyanaraj

  • Value mapping, interface mapping, standard funtions and user defined functi

    I like have more information abt live scenario's use of value mapping, interface mapping, standard funtions and user defined functions.
    How to create user defined funtions and how to use it in XI?
    thanks in advance
    shiva

    Hi,
    Interface mappings register your mapping program for an interface pair in the Integration Repository. If you require a mapping at runtime, it is sufficient to select the interface mapping for the interface pair at configuration time .The Integration Server uses the interface mapping to identify associated mapping programs for request messages, response messages, fault messages, or all three.
    Features
    Executing Multiple Mapping Programs for One DirectionBy using an interface mapping you can execute multiple mapping programs consecutively for the transformation of a request or response message. In such cases, an interface mapping comprises multiple steps for which the following applies:
    &#9679;     The steps are executed in the sequence specified (from top to bottom). The result of the mapping program from the previous step is forwarded to the mapping program of the subsequent step.
    &#9679;     Each step can reference a mapping program that executes a 1:1, 1:n, n:1, or an m:n transformation. In the case of multi-mappings (1:n, n:1, or m:n), the previous step must create the same number of messages that the subsequent step expects.
    &#9679;     Multi-mappings use one envelope to put all messages in one structure. If one of the steps references a multi-mapping program, all subsequent steps must use the same envelope.
    The mapping for a request message comprises two message mapping programs: one 1:1 transformation and one 1:n transformation. Since the latter message mapping uses the multi-mapping envelope for both the target message and the source message, the message mapping for the 1:1 transformation must also create a transformation result with a multi-mapping envelope.
    You do not strictly need to divide up one direction of the whole mapping into different steps. However, this enables all the message formats in one system landscape to be mapped to a central message format, for example. This results in less mapping programs being required because you no longer need to be able to map all the different message formats to each other
    Activities
           1.      Create a message mapping on the design maintenance screen of the Integration Builder (see also: Creating an Object).
    You can also create multiple interface mappings for the same interface pair.
           2.      Enter the source and target interfaces that require a mapping of the request message, the response message, the fault message, or all three, in the table of the same name. The following restrictions apply:
    &#9675;     If you want to use the interface mapping in a transformation step in an integration process, you must only specify abstract message interfaces. Furthermore, all objects (integration process, interface mapping, and all objects that reference the interface mapping) must be in the same software component version. If you want to reference objects from underlying software component versions, you must access the objects from the Basis Objects branch (in the navigation tree or using an input help).
    &#9675;     If you want to map multiple messages to each other by using a multi-mapping, you can only specify asynchronous interfaces (for further restrictions, see: Multi-Mappings). If any message interfaces are missing, you can also create them by using the function Create New Object ().
    If the interface cannot be imported or cannot be created in the Integration Repository (in the case of an external adapter, for example), you must enter the interface names manually. However, it is not possible to check the technical name in this case.
           3.      To import the properties of the interfaces, choose Read Interfaces. The table in the lower area displays tab pages for the request message, response message, and if available, for the fault message, for each mode of the interfaces (either synchronous or asynchronous).
           4.      To develop an external mapping program, export the XSD schema of the respective request or response message as a zip file after you have imported the interfaces. The zip file can contain multiple schema files that reference each other, for example in a multi-mapping. In this case, the schema with the global message element has the name MainSchema.
           5.      To reference a mapping program for the respective message, you have the following options:
    &#9675;     Select an existing mapping program from the Integration Repository by using the input help (). If this is a message mapping, the default setting of the input help only displays those message mappings that are found using the source and target message in the Integration Repository (in multi-mappings, the first source and target messages are used as the search criteria). However, you can also display any number of message mappings, for example, because you are constructing a mapping from several mapping programs with intermediate instances which have no message types.
    &#9675;     You can create message mappings directly from the interface mapping. To do this, select the mapping type Message Mapping in the Type column. Position the cursor in the Name column and choose the function Create New Message Mapping () in the Mapping Program frame. The Integration Builder copies the specifications of the messages and their occurrence directly from the interface mapping.
    An interface mapping can only reference mapping programs that belong to the same or an underlying software component version of the interface mapping. This ensures that the mapping program can be shipped together with the interface mapping (see: Software Logistics).
           6.      If it is not a mapping for a fault message, you can execute multiple mapping programs in succession for request and response messages:
    &#9675;     To insert an additional line for a mapping program, choose .
    &#9675;     To delete the registration for a mapping program, choose .
    At runtime, the mapping programs are executed from top to bottom.
           7.      Save the interface mapping.
    Regards
    Aashish Sinha
    PS : reward points if helpful

  • Interface mapping in Interface Determination??

    Hi friends..
    iam doing IDOC to File..
    in message mapping ,i changed the occurance of IDOC to unbounded and did the same in interface mapping also..
    but in intrerface determination i am not getting Interface mapping ,i tried Extended interface mapping also..
    please suggest me..
    thanks and regards
    Ram

    Hi,
    MultiMapping will not work for IDoc's.You need to use Idoc packaging for this,
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/877c0d53-0801-0010-3bb0-e38d5ecd352c
    Is this what you have done?
    Regards
    Bhavesh

  • Choose interface mapping based on flag

    Hello!
    How can I configure the following for a System_A (IDoc) -> XI -> (IDoc) System_B scenario?
    If System_A sends an X flag in the payload the X_Interface_Mapping needs to be executed, otherwise the Y_Interface_Mapping needs to be executed.
    Regards, Tanja

    Unfortunatelly, there is no way of doing this in standard. It'd be necessary a conditional mapping selection inside the interface mapping (if <condition> use this mapping program sequence) like you have inside receiver and interface determination.
    briefly: you have interface determination but not interface mapping determination.
    A possible workaround would be to create different dummy message interfaces refering to the same message type, and then you create a mapping for each of the dummy target interfaces in order to select them with condition inside interface determination.
    Or you could burn some brain cells and implement the conditional logic inside the mapping program itself. It is the right thing to do in this case (since you have same source and target structures, you implement conditional checks in the mapping logic itself).
    Regards,
    Henrique.

  • Interface Mapping

    I have an issue with my interface mapping
    I have an interface mapping between an Outbound Interface and an Abstract Interface.... Obviously this is for a mapping between the sender and BPM.
    Anyway Everything activates sucessfully in the Repository.
    However when I try to select it in the Interface Mapping in the Integration Directory I can't see anything...
    Anyone have any ideas as to where this could be? Where I am going wrong

    hi Mendez,
    this case happens mostly when your SCV (under which the interface is) is not installed on the particular business system.
    goto SLD and verify if the SC is installed on that particular Technical system/business system.
    The other reason may be the update of cache. u can also verify that in the transaction sxi_cache

  • Interface mapping Object _Doesn't exist in RuntimeCache_Error_SXMB_MONI

    Hi  EXperts ,
    Issue in XI --Dev System
    I have an simple IDOC  (DESADV.DELVRY03) ->Flat File Scenario . Mapping is done as per the Line of Business requirements .
    I have tested mapping and  I get the response as expected.
    We released the IDOC (Outbound Processing ) in SAP R/3 , but I get the mapping error in SXMB_MONI.
    Error:
    SAP:Category>XIServer</SAP:Category>
      <SAP:Code area="MAPPING">NO_MAPPINGPROGRAM_FOUND</SAP:Code>
      <SAP:P1>Object ID 61CFAE955F1A345ABEA3081C92818052 Software Component C31B3EB0F7B811DFC3F3ECDD0AE005A3</SAP:P1>
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>Interface mapping Object ID 61CFAE955F1A345ABEA3081C92818052 Software Component C31B3EB0F7B811DFC3F3ECDD0AE005A3 does not exist in runtime cache</SAP:Stack>
    Activtaed the Interfcae mapping and refeshed the  configurtaion Object :  Interface , Receiver Determination.Noticed  that we have error in Cache Notifictaion --Design Part . The Configuration --Cache update is fine.
    I have raised the Ticket to resolve this error.
    But as this was high proirity task to be delivered,how can i try fixing this issue myself . I have tried couple of times, creating new interface mapping , activating , referring new interface mapping in : Interface , Reciever Determination but nothing fix this issue.
    Please provide me inputs.
    Thanks,
    Vara

    Thanks to all of your for your support .
    Yes as Udo said , I  did reassign the Interface mapping in : Interface Determintaion / Reciever Determination and activated .
    Buta s this isuse was in Development System , and I reliased that there was mismatch of Password entered for : PIAPPLUSER --pipeline user  and Cache Error  with SLD  in Design . Configurtaion / SLD .
    Raised ticket for Cache Error which got solved . Resetting password of PI service user also worked .
    Release new IDOC in WE19(--outbound DESADV.DELVRY03) and it was successfully processed  to File(xml).
    Best Regards,
    Varalakshmi

  • Message Mapping vs Interface Mapping test tabs giving different results.

    Hi all,
    I am developing an interface that always requires an output file to be created (even if there is no data).  I have found a way to change my select statement in the JDBC sender to initiate the message even if there isn't any data (using UNION select -1 ID, '' col1, '' col2, etc.) and that seems to work fine.  I then put logic in the message mapping to suppress the row that contains the -1 ID value, which would result in an empty file when there is no other data, and should result in a file containing only the correct data when there is data.
    So, my problem: I am always getting empty files with this logic.  I tested the logic in the message mapping test tab and it worked perfectly, however when I test it using the interface mapping test tab it results in what becomes an empty file!
    My source and destination structures are fairly simple:
    Root
    --row
    ID
    col1
    col2
    The logic I use to suppress the ID = -1 row is:
    =removeContexts([]ifWithoutElse([keepss=true]Not([]equalsS([]ID, Constant([value=-1]))), SplitByValue([type=Each value]row)))
    Obviously, I'm stumped - any help would be appreciated!
    Edited by: Mike Morrison on Sep 23, 2010 5:04 PM

    Hi Mike,
    Can you quote the error log..u r getting error in message mappin or interface mapping?
    Please suggest the test results for both the mappings.
    Thanks,
    Sushama

  • No namespace tag in target message (Test Interface mapping)

    Hi,
    I'm doing a <b>IDoc to file</b> scenario, and I'm using <b>external definitions</b> and a XSLT mapping. When I try to test the mapping in Interface Mapping he maps it but I <b>can't see the tree view</b>, I only get the source code...
    <?xml version="1.0" encoding="utf-8"?>
    <SenderID/><ReceiverID/><DocumentDate>20051028090653</DocumentDate>
    <DocumentNumber>456184</DocumentNumber><TestIndicator>     P</TestIndicator>
    <Version>1.0/SSCC</Version>
    <Desadv><MessageReferenceNumber>81749973</MessageReferenceNumber></Desadv>
    I presume that there is a <b>namespace</b> tag <b>needed</b> like
    <ns:Desadv xmlns:ns="http://www.certione.com/RFDesadv/Schema">
    but I don't know what to do to have it added to the target message which is external definition Desadv with namespace http://www.certione.com/RFDesadv/Schema in the XSD...
    Any help would be appreciated!
    Kind regards..
    Message was edited by: Bart De Saedeleer

    Hello,
    Could you put your XSD definition ?
    And check your mapping because it seems that you don't have a root node in output.
    <?xml version="1.0" encoding="utf-8"?>
    <b><MYROOTNODE></b>
    <SenderID/><ReceiverID/><DocumentDate>20051028090653</DocumentDate>
    <DocumentNumber>456184</DocumentNumber><TestIndicator>     P</TestIndicator>
    <Version>1.0/SSCC</Version>
    <Desadv><MessageReferenceNumber>81749973</MessageReferenceNumber></Desadv>
    <b></MYROOTNODE></b>
    Regards,
    Chris
    Message was edited by: Christophe DUMONT

Maybe you are looking for