Writing message mapping function in Java in integration repository

Hi XI Pundits,
I am new to XI. I was working on Message mapping in intergration repository.
To map the source messages to target messages, we do graphical kind of mapping like drag and drop.
There are some functions aavilable at the bottom like concatehate, trim and etc. which we use if we need to modify the source message and map to target.
But in case we face a situation when we don't find the function which suits our requirement, I guess we need to write a new function. We can write these new function using Java only.
Can someone throw some light on this ?
<b>What do we do to invoke java editor in integartion reposity to write mapping function in java ?
Can someone give an example of snippet of code ?</b>
Thanks.

Hi Tushar,
Go thro this help link. You will get all info about User defined function.
http://help.sap.com/saphelp_nw04/helpdata/en/22/e127f28b572243b4324879c6bf05a0/frameset.htm
To get more understanding on mapping go thro this link(PDF File)
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/9202d890-0201-0010-1588-adb5e89a6638
Hope this helps.
regards,
P.Venkat
Message was edited by: Venkataramanan

Similar Messages

  • Re-use message mapping from within java mapping?

    Hi there,                                                                               
    I have a question regarding java mapping. What I would like to do is to re-use an existing message mapping from within java mapping.
    Technicaly, message mapping is perfomed by com.sap.aii.mappingtool.tf3.AMappingProgram.execute, right? I would like to call that mapping program for a specifc message mapping from within my java mapping.
    Pseudo java code would look like this:
    public void execute(InputStream in, OutputStream out)
      throws StreamTransformationException {
    com.sap.aii.mappingtool.tf3.AMappingProgram.execute(in,out,'SomeMessageMapping');
    SomeMessageMapping is a message mapping that is defined in the integration repository.
    Is it possible? If so, could you provide me with some details?
    Thank you and best regards,
    Wolfgang

    Hi Wolfgang,
    very interesting idea?
    I would activa a dummy message mapping. than I would have a look in the file directory of the java-stack and try to find out the name of the *.class or *.jar file.
    On the other hand you could generate a tpz-transport-file an unpack this file, to explore the name of the *.class or *.jar
    Unfortunately I do not have access to the file system. So I can't explore the name.
    Regards Mario

  • Accessing container variable of BPM in Message Mapping function

    Hi,
    I have a scenario in BPM where i have a container variable that is used as a loop counter.I want to access that counter defined , every time when i go around the loop and perform certain actions based on that counter. so how can i access that variable in my message Mapping function.

    Hi Sudharshan,
    check these links, hope they give you the required information (i think there is some problem with SDN site, check these links after a while)
    Re: How to use Container Variable across Maps
    Container object in Message Mapping
    Copy value of container (abstract interface) to an other container
    Regards
    Vishnu

  • Retrive message mapping error from java class

    Hi,
    I'm trying to create a scenario that if exist an error in the message mapping step this error will be inserted in a Ztable. I'm thinking in to call to the message mapping from a java class to catch the exception and this java class will be used in the interface mapping.
    Is it possible? If yes, How to call the message mapping from java code?
    Exists other possible solution?
    I need to do it because we want store all mapping errors in a Ztable. (Customer requeriment)
    Thanks, in advance
    Jose Manuel

    you can throw generic exceptions from the message mapping like this - /people/michal.krawczyk2/blog/2007/04/26/xipi-throwing-generic-exceptions-from-any-type-of-mapping
    you can then decide how to handle these exceptions

  • UDF in message mapping instead of Java Mapping. Pls advice urgent

    Hi All,
    My scenario
    CRM --- XI -- CRM
    In XI I have to open socket connection.
    Pls refer link:
    /people/saravanakumar.kuppusamy2/blog/2005/12/15/socket-integration-with-xi
    Can Java Mapping code given in above link for socket connection can be used in Message Mapping (CRM -- CRM)UDF?
    Pls advice urgent
    Regards

    Hi Henry,
    I understood your requirement.
    But as per the architecture of XI/PI some message has to trigger your scenario.
    In this case there is no adapter where you can directly communicate with CRM system.
    Do one thing configure a dummy scenario on the sender side.
    Use File adapter for simplicity. once it pools the file with some dummy data in the file it comes to Interface mapping(message mapping) of the PIPELINE steps. Now use the code as you mentioned above(within UDF) for opening socket to CRM system and implement you business logic within that program and write the response to target interface which will infact talk with CRM system.
    Dont forget to do the coding in an infinite loop with some delay (if required). Other wise every time you have to put a message for File Adapter for triggering purposes.
    You can also acheive the same if you use Java Mapping instead of Graphical mapping with UDF(code for Opening socket and business logic). I suggest you to use Java Mapping.
    I dont know how you will comunicate with CRM system on receiver side.?
    Thanks,
    Gujjeti

  • Cannot use Toolbar in message mapping function

    In my SAP XI, tool bar is disable even in edit mode. See example in <a href="http://tubeimage.com/viewer.php?file=le1mkpxecuxuwlzxjzol-SAP-XI-.png">http://tubeimage.com/viewer.php?file=le1mkpxecuxuwlzxjzol-SAP-XI-.png</a>  ( in red box )
    How to make it enable? Any help would be grateful.
    Best regards

    Hii Pavin !!
    Revert back your client system JAVA version. It happens due to latest Java version...R u using java 1.4.2 version check ur java version form IR>Help>information
    if its not java 1.4.2 then installl that from sun website.
    Cheers !!

  • Message Mapping Vs Interface Mapping

    What are the differences between Message Mapping and Interface Mapping?

    Hi,
    Message mapping
    1) Transformation from one message structure to another message structure
    2) Message Mapping is nothing but a set of rules for producing target XML from the source XML according to business requirement.These rules are nothing but relations between the source XML tags and target XML tags
    3) 4 types(graphical, java, xslt, abap) mapping
    4) You can check whether a complete message mapping functions at runtime once you have described it, by using the Test tab page.
    Interface mapping
    1) Interface mapping registers a pair of interfaces for a scenario and specifies the message mapping to be used
    2) you can execute multiple mapping programs consecutively
    3) To check whether an interface mapping that you have defined functions at runtime, test the interface mapping on the Test tab page.
    Limitations
    1) value mapping table cannot be accessed here
    2) runtime constants of the mapping runtime are not set,but set to dummy values.
    differences
    message mapping you declare how the source message will be mapped to the the target message.
    What source field will be mapped to the target field and any conditions for it to happen.
    interface mapping you define what interfaces that will be communicating with each other. You will also see what message mapping the interfaces are using to exchange data. You need to do the message mapping before you do the interface mapping to get it correct.
    Other releated things
    ->I think there can be Interface mappings without any Message mappings. This will work properly if both the source and target interfaces are of same type.
    There might be less sense in these scenarios but they cannot be ruled out. They can help at times.
    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.
    You can also create multiple interface mappings for the same interface pair.
    For Multi MAppings Refer
    http://help.sap.com/saphelp_erp2005vp/helpdata/en/21/6faf35c2d74295a3cb97f6f3ccf43c/frameset.htm
    Please reward points if it helps
    Thanks
    Vikranth

  • Message Mapping of type ABAP Class not being shown

    Hi all,
    I have been trying to follow the given blog:
    /people/ravikumar.allampallam/blog/2005/02/10/different-types-of-mapping-in-xi
    Even after doing the changes mentioned in the blog, i do not see the ABAP Class in the list of Message Mapping types.
    Do i need to do anyother configuration. Pls guide.
    Regards
    Neetu

    Hi Neetu,
    You will have to enable your ABAP mapping first.
    Do the following steps, pay carefull attention to the values you enter,
    In
    IntegrationBuilder ->IntegrationBuilder.Repository -> com.sap.aii.repository.mapping.additionaltypes
    enter the value of
    R3_ABAP|Abapclass;R3_XSLT|XSL (ABAP Engine)
    If the above doesnt work, try Abap-class instead of Abapclass in the above line.
    And then follow the remaining steps, make sure that the above value is correct. Your ABAP mapping should appear in your Integration Repository.'
    I suggest you go through these links:
    https://websmp101.sap-ag.de/~sapdownload/011000358700003082332004E/HowToABAPMapping.pdf
    /people/ravikumar.allampallam/blog/2005/02/10/different-types-of-mapping-in-xi
    ABAP Mapping Vs Java Mapping.
    Refer to following SDN Demo which explains the need and how to do the ABAP mapping.
    https://www.sdn.sap.com/irj/sdn/docs?rid=/webcontent/uuid/110ff05d-0501-0010-a19d-958247c9f798#jdi [original link is broken]
    This document will help you to create ABAP Mapping.
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/xi/3.0/how%20to%20use%20abap-mapping%20in%20xi%203.0.pdf
    Regards,
    Abhy

  • How to Alert RFC connection failure via message mapping? Kindly Help!

    Hi Experts,
        I have a JMS - XI - RFC scenario.
    JMS receives the Rosattenet PIP contents and sends it to RFC function module in remote SAP R/3 system.
       I have a requirement where I have to monitor RFC connection failure because of the remote R/3 system being down. I have to send a email alert where the subject contains the PIP number to understand for which PIP the connection failed.
      The PIP number exists in the PIP content at the interface.
      If I use the Alert configuration in the runtime workbench for monitoring then I cannot dynamically pass the PIP number.
      Only way I think of triggering alert is in the message mapping via a Java UDF.
      But I am not sure how can I do this? How do I check in the UDF if RFC connection has failed? Is this the correct approach?
      How to acheive my requirement? Note that my email subject content is dynamic bacause if PIP number.
    Please help!
    Thanks
    Gopal
    Message was edited by:
            gopalkrishna baliga

    Hi Gopal,
    what version/sps of XI are u running?
    The easiest way to do what u want inside a UDF is to
    1. use JCo to try estabilish a connection to the remote SAP System
    2. if that fails, use JavaMail to send an email message
    Let your UDF work on the PIP number, accepting it as input, and (maybe) returning it as output if everything goes ok. Otherwise break the mapping execution as described by Michal in one of his last weblog (using Dynamic Configuration).
    Note that the above method doesn't guarantee that the message will be actually delivered, as some seconds could last between your check and the real RFC delivery operated by the Adapter Engine...
    I am evaluating a way to do the same with Alert Framework. I will let you know the result!
    Cheers,
    Alex

  • GlobalContainer object values acessed among UDF's  in message mapping ?

    hi
    i have scenario where i am using globalContainer variable functionality in my message mapping.
    in edit java section
    String usr;
    Container container ;
    GlobalContainer globalContainer ;
    intialize usr = "";
    in First UDF
    String inlogin_sess =  " ashutosh test value" ;
    globalContainer.setParameter(usr,inlogin_sess);
    return any value :
    now if i create another 2nd UDF and use :
    String  out =globalContainer.getParameter(usr);
    return out ;
    now 2nd UDF is giving null pointer exception...
    for testing the code functionality..
    IF i  use the  SET and GET in 1st UDF :
    globalContainer.getParameter(usr);   in 1st UDF than it is working sucessfully...
    globalContainer.setParameter(usr,inlogin_sess);
    String  out = globalContainer.getParameter(usr);
    return out ;
    in help.sap it is mentioned that Globalcontainer objects  values can be fetched   among UDF's in one message mapping....
    [http://help.sap.com/saphelp_nw04/helpdata/en/0f/80243b4a66ae0ce10000000a11402f/frameset.htm]
    i have gone a lot of thread in sdn where Global container are used like sequence no creation etc, but every where  the
    GET and SET are used in SAME UDF...
    any clue where is leak..
    Regards,
    ashutosh R

    Hi Abhishek
    Your point is legimate, but for my their is no such issue..
    even i try to use it as :see image..
    [http://www.screenshots.cc/show.php/14137_GlobalVariable.JPG.html]
    UDF1 :
    globalContainer.setParameter(usr,inlogin_sess);
    return any value :
    and in UDF2 
    String  out = globalContainer.getParameter(usr);
    return out ;
    mainting the sequence
    My concern is object globalContainer is local in UDF1, so it will through nullpointer ,if we try to access in UDF2.
    if we declare globalContainer   in edit jave -GlobalVariables also, still it is having the error..
    Regards
    AshutoshR

  • Message Mapping Problem

    HI I am calling a Java Mapping Prog from My message Mapping . I get A strange Message when i pass special characters like '?' or '*' through my message mapping to the java mapping .
    The Message is <b>"For input string : ???". </b> when i pass ??? as a parameter to the java mapping. I am bit confused. Is This message a standard message that XI gives or is it getting generated from somewhere else.
    regards
    Nilesh .

    Hi Nilesh ,
    Test the java mapping program using a seperate main class in some editor ( eg. Eclipse or NWDS) ,
    Try to debug the program and u will get to know the cause , as to  whr the message is getting generated ,
    Regards ,
    Sushil

  • Manipulate Dates in XI Message Mapping

    Hello all,
    I have a problem in which I need to take a  date from my source file and manipulate this date to help produce my target structure.
    <i><b>This is not my actual XML</b></i>
    <source root>
      <field 1>A</field 1>
      <field 2>Any value</field 2>
      <field 3>Next value</field 3>
      <field 4>20070201</field4>
    </source root>
    Consider the above XML as my source.  I would like to have logic in the message mapping that will check the value of a field (field 1) and based on it's value add or subtract days from the date value provided.
    This would be my output for adding ten (10) days if '<b>field 1</b>' has a value of '<b>A</b>'
    <target root>
      <target 1>A</target 1>
      <target 2>Any Value</target 2>
      <target 3>Next Value</target 3>
      <target 4>20070211</target 4>
    </target root>
    This would be my output for subtracting five (5) days if '<b>field 1</b>' has a value of '<b>B</b>' (Same source file)
    <target root>
      <target 1>B</target 1>
      <target 2>Any Value</target 2>
      <target 3>Next Value</target 3>
      <target 4>20070127</target 4>
    </target root>
    As you can see there is a field in my source system that will tell me what type of logic to perform.  The problem that I am having now is that the message mapping functions that currently exist are not helping me satisfy this requirement.  I have viewed several forums and tried several of the suggestions given but nothing seems to help.  Does anyone know how to solve this problem?  Is there a UDF that anyone has used that would help me in solving this requirement?  The solution should be dynamic to account for leap years as well as for the different days that each month has.
    Answers received will be rewarded with points.
    Thanks in advance for the help that you provide.

    Hi,
    Here i am sending UDF code,which takes date(format:yyyyMMdd) as input and does addition or subtraction operations based on <field 1> value,return the result date(format:yyyyMMdd) as string value.
    public String GenerateDate(String date_input, String field1,Container container){
    //Here "date_input" and "field1" are inputs for this UDF
    int date = Integer.parseInt(date_input);
    Calendar cal;
    int day = date % 100;
    int month = (date/100) % 100 - 1;
    int year = date / 10000;
    cal = Calendar.getInstance();
    cal.set(year, month, day);
    /implement addition or subtraction logic here as your needs/
    if (field1 == "A")          
      cal.add(Calendar.DATE, 10);
    else if(field == "B")
      cal.add(Calendar.DATE, -5);
    day = cal.get(Calendar.DATE);
    month = cal.get(Calendar.MONTH)+ 1;
    year = cal.get(Calendar.YEAR);
    date = year * 10000 + month * 100 + day;
    return (""+date);
    if you need any other details regarding this UDF, plz let me know.
    Cheers,
    Jag

  • Resource Exception   -  Message mapping

    Hi all,
    I get this error  when I process large number of records in a message(>50,000). We use the oracle data source to get the connection in Message mapping. Connections are nowhere reaching to max number of connections set in the DS. This error is not consistent. Sometimes even if the records are more than 100,000 , it works fine. We call the datasource from pure java . We don't use the EJB.
    Thanks in advance,
    Satya.
    Here is error :
       <Trace level="1" type="T">RuntimeException during appliction Java mapping com/sap/xi/tf/_SAP_APPL_test_MM_</Trace>
      <Trace level="1" type="T">com.sap.aii.utilxi.misc.api.BaseRuntimeException: RuntimeException in Message-Mapping transformation: Exception:[java.lang.RuntimeException: ResourceException in method ConnectionFactoryImpl.getConnection(): com.sap.engine.services.connector.exceptions.BaseResourceException: Error in ResourceSet.addAndEnlist("[email protected]8267e[com.sap.engine.services.dbpool.cci.ConnectionHandle@463c88c8](delisted:false) -> [email protected]71c8e6 --> 74(locTrSupp:false)").] in class com.sap.xi.tf._SAP_APPL_test_MM_ method getMapValue$[1492-N17 A, 1, com.sap.aii.mappingtool.tf3.rt.Context@23c363ec] at com.sap.aii.mappingtool.tf3.AMappingProgram.start(AMappingProgram.java:303) at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:63) at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:77) at com.sap.aii.ibrun.server.mapping.JavaMapping.executeStep(JavaMapping.java:64) at com.sap.aii.ibrun.server.mapping.Mapping.execute(Mapping.java:91) at com.sap.aii.ibrun.server.mapping.MappingHandler.run(MappingHandler.java:90) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleMappingRequest(MappingRequestHandler.java:94) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleRequest(MappingRequestHandler.java:67) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceImpl.processFunction(MappingServiceImpl.java:79) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceObjectImpl0.processFunction(MappingServiceObjectImpl0.java:131) at sun.reflect.GeneratedMethodAccessor264.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.ejb.session.stateless_sp5.ObjectStubProxyImpl.invoke(ObjectStubProxyImpl.java:187) at $Proxy34.processFunction(Unknown Source) at sun.reflect.GeneratedMethodAccessor3008.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.handleRequest(RFCDefaultRequestHandler.java:100) at com.sap.engine.services.rfcengine.RFCJCOServer.handleRequestInternal(RFCJCOServer.java:113) at com.sap.engine.services.rfcengine.RFCJCOServer$ApplicationRunnable.run(RFCJCOServer.java:171) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged(Native Method) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:95) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:160) Root Cause: com.sap.aii.utilxi.misc.api.BaseRuntimeException: Exception:[java.lang.RuntimeException: ResourceException in method ConnectionFactoryImpl.getConnection(): com.sap.engine.services.connector.exceptions.BaseResourceException: Error in ResourceSet.addAndEnlist("[email protected]8267e[com.sap.engine.services.dbpool.cci.ConnectionHandle@463c88c8](delisted:false) -> [email protected]71c8e6 --> 74(locTrSupp:false)").] in class com.sap.xi.tf._SAP_APPL_test_MM_ method getMapValue$[1492-N17 A, 1, com.sap.aii.mappingtool.tf3.rt.Context@23c363ec] at com.sap.aii.mappingtool.tf3.rt.FunctionWrapper.getValue(FunctionWrapper.java:56) at com.sap.aii.mappingtool.tf3.rt.FunctionWrapper.getValue(FunctionWrapper.java:41) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:186) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:204) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:204) at com.sap.aii.mappingtool.tf3.AMappingProgram.start(AMappingProgram.java:298) at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:63) at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:77) at com.sap.aii.ibrun.server.mapping.JavaMapping.executeStep(JavaMapping.java:64) at com.sap.aii.ibrun.server.mapping.Mapping.execute(Mapping.java:91) at com.sap.aii.ibrun.server.mapping.MappingHandler.run(MappingHandler.java:90) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleMappingRequest(MappingRequestHandler.java:94) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleRequest(MappingRequestHandler.java:67) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceImpl.processFunction(MappingServiceImpl.java:79) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceObjectImpl0.processFunction(MappingServiceObjectImpl0.java:131) at sun.reflect.GeneratedMethodAccessor264.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.ejb.session.stateless_sp5.ObjectStubProxyImpl.invoke(ObjectStubProxyImpl.java:187) at $Proxy34.processFunction(Unknown Source) at sun.reflect.GeneratedMethodAccessor3008.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.handleRequest(RFCDefaultRequestHandler.java:100) at com.sap.engine.services.rfcengine.RFCJCOServer.handleRequestInternal(RFCJCOServer.java:113) at com.sap.engine.services.rfcengine.RFCJCOServer$ApplicationRunnable.run(RFCJCOServer.java:171) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged(Native Method) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:95) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:160) Root Cause: java.lang.reflect.InvocationTargetException at sun.reflect.GeneratedMethodAccessor3328.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.aii.mappingtool.tf3.rt.FunctionWrapper.getValue(FunctionWrapper.java:47) at com.sap.aii.mappingtool.tf3.rt.FunctionWrapper.getValue(FunctionWrapper.java:41) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:186) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:204) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:204) at com.sap.aii.mappingtool.tf3.AMappingProgram.start(AMappingProgram.java:298) at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:63) at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:77) at com.sap.aii.ibrun.server.mapping.JavaMapping.executeStep(JavaMapping.java:64) at com.sap.aii.ibrun.server.mapping.Mapping.execute(Mapping.java:91) at com.sap.aii.ibrun.server.mapping.MappingHandler.run(MappingHandler.java:90) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleMappingRequest(MappingRequestHandler.java:94) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleRequest(MappingRequestHandler.java:67) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceImpl.processFunction(MappingServiceImpl.java:79) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceObjectImpl0.processFunction(MappingServiceObjectImpl0.java:131) at sun.reflect.GeneratedMethodAccessor264.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.ejb.session.stateless_sp5.ObjectStubProxyImpl.invoke(ObjectStubProxyImpl.java:187) at $Proxy34.processFunction(Unknown Source) at sun.reflect.GeneratedMethodAccessor3008.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.handleRequest(RFCDefaultRequestHandler.java:100) at com.sap.engine.services.rfcengine.RFCJCOServer.handleRequestInternal(RFCJCOServer.java:113) at com.sap.engine.services.rfcengine.RFCJCOServer$ApplicationRunnable.run(RFCJCOServer.java:171) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged(Native Method) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:95) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:160) Caused by: java.lang.RuntimeException: ResourceException in method ConnectionFactoryImpl.getConnection(): com.sap.engine.services.connector.exceptions.BaseResourceException: Error in ResourceSet.addAndEnlist("[email protected]8267e[com.sap.engine.services.dbpool.cci.ConnectionHandle@463c88c8](delisted:false) -> [email protected]71c8e6 --> 74(locTrSupp:false)"). at com.racs.gpt.xref.util.DBConnect.getConnection(DBConnect.java:25) at com.racs.gpt.xref.scan.PerformScanPartial.populateResultset(PerformScanPartial.java:136) at com.racs.gpt.xref.scan.PerformScanPartial.getTargetValue(PerformScanPartial.java:60) at com.racs.gpt.xref.scan.PerformScanFactory.getScanner(PerformScanFactory.java:43) at com.racs.gpt.CrossReferenceAPI.getData(CrossReferenceAPI.java:21) at com.sap.xi.tf._SAP_APPL_test_MM_.getMapValue$(_SAP_APPL_test_MM_.java:110) ... 33 more</Trace>
      <Trace level="1" type="T">Runtime exception occurred during execution of application mapping program com/sap/xi/tf/_SAP_APPL_test_MM_: com.sap.aii.utilxi.misc.api.BaseRuntimeException; RuntimeException in Message-Mapping transformation: Exception:[java.lang.RuntimeException: ResourceException in method ConnectionFactoryImpl.getConnection(): com.sap.engine.services.connector.exceptions.BaseResourceException: Error in ResourceSet.addAndEnlist("[email protected]8267e[com.sap.engine.services.dbpool.cci.ConnectionHandle@463c88c8](delisted:false) -> [email protected]71c8e6 --> 74(locTrSupp:false)").] in class com.sap.xi.tf._SAP_APPL_test_MM_ method getMapValue$[1492-N17 A, 1, com.sap.aii.mappingtool.tf3.rt.Context@23c363ec]</Trace>
      <Trace level="1" type="T">com.sap.aii.ibrun.server.mapping.MappingRuntimeException: Runtime exception occurred during execution of application mapping program com/sap/xi/tf/_SAP_APPL_test_MM_: com.sap.aii.utilxi.misc.api.BaseRuntimeException; RuntimeException in Message-Mapping transformation: Exception:[java.lang.RuntimeException: ResourceException in method ConnectionFactoryImpl.getConnection(): com.sap.engine.services.connector.exceptions.BaseResourceException: Error in ResourceSet.addAndEnlist("[email protected]8267e[com.sap.engine.services.dbpool.cci.ConnectionHandle@463c88c8](delisted:false) -> [email protected]71c8e6 --> 74(locTrSupp:false)").] in class com.sap.xi.tf._SAP_APPL_test_MM_ method getMapValue$[1492-N17 A, 1, com.sap.aii.mappingtool.tf3.rt.Context@23c363ec] at com.sap.aii.ibrun.server.mapping.JavaMapping.executeStep(JavaMapping.java:73) at com.sap.aii.ibrun.server.mapping.Mapping.execute(Mapping.java:91) at com.sap.aii.ibrun.server.mapping.MappingHandler.run(MappingHandler.java:90) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleMappingRequest(MappingRequestHandler.java:94) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleRequest(MappingRequestHandler.java:67) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceImpl.processFunction(MappingServiceImpl.java:79) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceObjectImpl0.processFunction(MappingServiceObjectImpl0.java:131) at sun.reflect.GeneratedMethodAccessor264.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.ejb.session.stateless_sp5.ObjectStubProxyImpl.invoke(ObjectStubProxyImpl.java:187) at $Proxy34.processFunction(Unknown Source) at sun.reflect.GeneratedMethodAccessor3008.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.handleRequest(RFCDefaultRequestHandler.java:100) at com.sap.engine.services.rfcengine.RFCJCOServer.handleRequestInternal(RFCJCOServer.java:113) at com.sap.engine.services.rfcengine.RFCJCOServer$ApplicationRunnable.run(RFCJCOServer.java:171) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged(Native Method) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:95) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:160) Root Cause: com.sap.aii.utilxi.misc.api.BaseRuntimeException: RuntimeException in Message-Mapping transformation: Exception:[java.lang.RuntimeException: ResourceException in method ConnectionFactoryImpl.getConnection(): com.sap.engine.services.connector.exceptions.BaseResourceException: Error in ResourceSet.addAndEnlist("[email protected]8267e[com.sap.engine.services.dbpool.cci.ConnectionHandle@463c88c8](delisted:false) -> [email protected]71c8e6 --> 74(locTrSupp:false)").] in class com.sap.xi.tf._SAP_APPL_test_MM_ method getMapValue$[1492-N17 A, 1, com.sap.aii.mappingtool.tf3.rt.Context@23c363ec] at com.sap.aii.mappingtool.tf3.AMappingProgram.start(AMappingProgram.java:303) at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:63) at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:77) at com.sap.aii.ibrun.server.mapping.JavaMapping.executeStep(JavaMapping.java:64) at com.sap.aii.ibrun.server.mapping.Mapping.execute(Mapping.java:91) at com.sap.aii.ibrun.server.mapping.MappingHandler.run(MappingHandler.java:90) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleMappingRequest(MappingRequestHandler.java:94) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleRequest(MappingRequestHandler.java:67) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceImpl.processFunction(MappingServiceImpl.java:79) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceObjectImpl0.processFunction(MappingServiceObjectImpl0.java:131) at sun.reflect.GeneratedMethodAccessor264.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.ejb.session.stateless_sp5.ObjectStubProxyImpl.invoke(ObjectStubProxyImpl.java:187) at $Proxy34.processFunction(Unknown Source) at sun.reflect.GeneratedMethodAccessor3008.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.handleRequest(RFCDefaultRequestHandler.java:100) at com.sap.engine.services.rfcengine.RFCJCOServer.handleRequestInternal(RFCJCOServer.java:113) at com.sap.engine.services.rfcengine.RFCJCOServer$ApplicationRunnable.run(RFCJCOServer.java:171) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged(Native Method) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:95) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:160) Root Cause: com.sap.aii.utilxi.misc.api.BaseRuntimeException: Exception:[java.lang.RuntimeException: ResourceException in method ConnectionFactoryImpl.getConnection(): com.sap.engine.services.connector.exceptions.BaseResourceException: Error in ResourceSet.addAndEnlist("[email protected]8267e[com.sap.engine.services.dbpool.cci.ConnectionHandle@463c88c8](delisted:false) -> [email protected]71c8e6 --> 74(locTrSupp:false)").] in class com.sap.xi.tf._SAP_APPL_test_MM_ method getMapValue$[1492-N17 A, 1, com.sap.aii.mappingtool.tf3.rt.Context@23c363ec] at com.sap.aii.mappingtool.tf3.rt.FunctionWrapper.getValue(FunctionWrapper.java:56) at com.sap.aii.mappingtool.tf3.rt.FunctionWrapper.getValue(FunctionWrapper.java:41) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:186) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:204) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:204) at com.sap.aii.mappingtool.tf3.AMappingProgram.start(AMappingProgram.java:298) at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:63) at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:77) at com.sap.aii.ibrun.server.mapping.JavaMapping.executeStep(JavaMapping.java:64) at com.sap.aii.ibrun.server.mapping.Mapping.execute(Mapping.java:91) at com.sap.aii.ibrun.server.mapping.MappingHandler.run(MappingHandler.java:90) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleMappingRequest(MappingRequestHandler.java:94) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleRequest(MappingRequestHandler.java:67) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceImpl.processFunction(MappingServiceImpl.java:79) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceObjectImpl0.processFunction(MappingServiceObjectImpl0.java:131) at sun.reflect.GeneratedMethodAccessor264.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.ejb.session.stateless_sp5.ObjectStubProxyImpl.invoke(ObjectStubProxyImpl.java:187) at $Proxy34.processFunction(Unknown Source) at sun.reflect.GeneratedMethodAccessor3008.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.handleRequest(RFCDefaultRequestHandler.java:100) at com.sap.engine.services.rfcengine.RFCJCOServer.handleRequestInternal(RFCJCOServer.java:113) at com.sap.engine.services.rfcengine.RFCJCOServer$ApplicationRunnable.run(RFCJCOServer.java:171) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged(Native Method) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:95) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:160) Root Cause: java.lang.reflect.InvocationTargetException at sun.reflect.GeneratedMethodAccessor3328.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.aii.mappingtool.tf3.rt.FunctionWrapper.getValue(FunctionWrapper.java:47) at com.sap.aii.mappingtool.tf3.rt.FunctionWrapper.getValue(FunctionWrapper.java:41) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:186) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:204) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:204) at com.sap.aii.mappingtool.tf3.AMappingProgram.start(AMappingProgram.java:298) at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:63) at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:77) at com.sap.aii.ibrun.server.mapping.JavaMapping.executeStep(JavaMapping.java:64) at com.sap.aii.ibrun.server.mapping.Mapping.execute(Mapping.java:91) at com.sap.aii.ibrun.server.mapping.MappingHandler.run(MappingHandler.java:90) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleMappingRequest(MappingRequestHandler.java:94) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleRequest(MappingRequestHandler.java:67) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceImpl.processFunction(MappingServiceImpl.java:79) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceObjectImpl0.processFunction(MappingServiceObjectImpl0.java:131) at sun.reflect.GeneratedMethodAccessor264.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.ejb.session.stateless_sp5.ObjectStubProxyImpl.invoke(ObjectStubProxyImpl.java:187) at $Proxy34.processFunction(Unknown Source) at sun.reflect.GeneratedMethodAccessor3008.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.handleRequest(RFCDefaultRequestHandler.java:100) at com.sap.engine.services.rfcengine.RFCJCOServer.handleRequestInternal(RFCJCOServer.java:113) at com.sap.engine.services.rfcengine.RFCJCOServer$ApplicationRunnable.run(RFCJCOServer.java:171) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged(Native Method) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:95) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:160) Caused by: java.lang.RuntimeException: ResourceException in method ConnectionFactoryImpl.getConnection(): com.sap.engine.services.connector.exceptions.BaseResourceException: Error in ResourceSet.addAndEnlist("[email protected]8267e[com.sap.engine.services.dbpool.cci.ConnectionHandle@463c88c8](delisted:false) -> [email protected]71c8e6 --> 74(locTrSupp:false)"). at com.racs.gpt.xref.util.DBConnect.getConnection(DBConnect.java:25) at com.racs.gpt.xref.scan.PerformScanPartial.populateResultset(PerformScanPartial.java:136) at com.racs.gpt.xref.scan.PerformScanPartial.getTargetValue(PerformScanPartial.java:60) at com.racs.gpt.xref.scan.PerformScanFactory.getScanner(PerformScanFactory.java:43) at com.racs.gpt.CrossReferenceAPI.getData(CrossReferenceAPI.java:21) at com.sap.xi.tf._SAP_APPL_test_MM_.getMapValue$(_SAP_APPL_test_MM_.java:110) ... 33 more</Trace>

    Hi Satya,
    <i>This error is not consistent.</i> - So it is related to the physical memory and cache memory of your XI server.........this error may happen because some background process of your XI  server is consuming some of your server's memory sometimes...so your msg mapping is failing for less memory space for making a connection to your oracle data source sometimes......
    The only solution to your problem which i think is that you should increase the physical memory of your XI server.....or you need to redesign your scenario.....
    Thanks,
    Rajeev Gupta
    Message was edited by:
            RAJEEV GUPTA

  • Message mapping for checking hyphens (-) in material number

    Hi All,
    I have an interface in PI 7.1 for product change and product create coming from ORACLE to SAP
    Now, the reqmt is to take the ORACLE product which could have hyphens or without hyphens
    In SAP, the product can have upto 40 characters and if something without hyphens come in, then it adds leading zeros while creating and while changing, SAP expects a product with leading zeros
    So, how do I handle this? How do I check in message mapping, the product with hyphens or without and write a condition to it.
    Here is my idea
    Take the product, use a message mapping function to check for products without hyphens and if YES, add leading zeros upto 40 characters
    Can anyone let me know how this could be achieved using message mapping function
    I am sure this kind of reqmt especially leading zeros for products is very common in PI interface circle
    So, please let me know the details
    Thx
    mike

    Hi Mike,
                  your requirement can be solved without UDF too
    inputfield ---------------->
                                                 indexOf() ------------>  
    Constant(-)---------->                                                  less---->if ----->target field                                                                               
    constant(0)---------->
    inputfield  and contant (hyphen) are inputs to standard text function indexOf. Output of IndexOF and constant(zero) are inputs to standard arithmetic function less. Out put of less goes to boolean function if. The IF has two inputs then and else .
    For then part write this logic
    inputfield----> formatNumber()---->then
    in standard arithmetic function Formatnumber  specify number format with 40 zeroes, leave decimal separetor blank.
    Now for the else part of "IF" write this
    inputfield----->else
    Finally
    output of "IF" goes to target field
    IF------>target
    Regards
    Anupam

  • Message Mapping Design Question

    I have to parse from a source field (x) and map to this structure:
    <Line>
      <Number\>
      <Descr\>
      <Code\>
    </Line>
    The source field is a string that contains newline characters (just a blob of text).  Example:
    ABC\nLine 1,widget, 123A\nXYZ\nLine 2,gadget,123B
    I need to get at the line number, description, and code mapping values by parsing at newlines and then parse into the "Line" records.  I want my result to look like this:
    <Line>
      <Number>1</Number>
      <Descr>widget</Descr>
      <Code>123A</Code>
    </Line>
    <Line>
      <Number>2</Number>
      <Descr>gadget</Descr>
      <Code>123B</Code>
    </Line>
    Is there a way to chain message mapping functions and/or UDFs and do something like this?  In addition, I don't see how I can specify multiple target fields in one mapping.  Any suggestions would be appreciated.  Thanks!

    Raj,
    Unfortunately, the source structure is not well structured.  It contains lines of data, of which some begin with "Line", and then a line number and other fields separated by commas.  It also contains unused lines.
    Production example of source data (with breaks at each newline character):
    APPROVED
    Tracking Reference: 20070629063604.1
    Process Date: 06-29-2007 07:38:59
    Listed below are the following items listed for review:
    Contract: ABC Delivery Order Number: HTCH
    Items reviewed:
    Line 1, 10 EA, 000000000099784711, S01-004, 20070629063604.1_1
    Line 2, 10 EA, 000000000088078625, 03356.63.04, 20070629063604.1_2
    ..where "1" maps to <Number>, "S01-004" maps to <Descr> and "20070629063604.1_1" maps to <Code>.

Maybe you are looking for

  • What is the deal with the inflated prices in the Aus App store?

    Looking at buying Omni Graffle Pro. In the Australian Mac App store this is $249 Aus. From the Omni Group this is $199 US. The Aus dollar currently buys about $1.06 US - so *** is this $50 bucks more expensive? Not like you have to spend money to cou

  • Apple tv not showing up in airplay

    my appletv was showing in my airplay, but now it is not.  why?

  • How to call WD Application from another WD Appliction

    Hi all, how can we call webdynpro application from another wbdynpro application on click of a button in the same browser. pls suggest regards vishal

  • Expand and Collapse within JSP

    Fairly new to JSTL so please excuse my ignorance. I am creating a button(link) that will expand to show rows of data when clicked or collapse when clicked again. I already have a bean populated from the backend that contains a collection of my data.

  • Bonjour 1.0.5

    Whenever Apple's check for updates runs I get the message that a new version of Bonjour (1.0.5) is available. I install but it next time I get the same message. Anyone any idea what is happening?