Adapter specific tips

Hi Group,
Can any body suggest on Adapter tips while using various Adapter types (JDBC/JMS,MAIL,HTTP ,File etc..) what are the things we need to consider while configuring these adapters and what are the recommeded

Hi,
>Adapters connect the Integration Engine to SAP legacy systems, as well as to external systems to communicate with different applications.
>Adapters convert XML- and HTTP-based messages to the specific protocol and format required by these systems, and the other way around.
>You configure the adapters in the configuration part of the Integration Builder. You define the parameters of the respective adapter during the definition of collaboration profiles in the communication channel
The Adapter Engine provides adapters, which you use to do the following, depending on their configuration:
● Communicate with SAP systems using the RFC interface (RFC adapter)
● Enable data exchange with the SAP Business Connector (SAP Business Connector adapter)
● Exchange data with external systems using a file interface or an FTP server (file/FTP adapter).
● Access databases using JDBC (JDBC adapter).
● Communicate with messaging systems using the JMS API (JMS adapter).
● Integrate remote clients or Web Service providers using the SOAP adapter (SOAP adapter)
*For Frequently Asked Questions (FAQs) about adapters , see SAP Note 821268.*
Also walk through these blogs :
1. Choose the Right Adapter to integrate with SAP systems
/people/ravikumar.allampallam/blog/2005/08/14/choose-the-right-adapter-to-integrate-with-sap-systems
2. Aspirant to learn SAP XI...You won the Jackpot if you read this!-Part III
/people/sravya.talanki2/blog/2006/12/27/aspirant-to-learn-sap-xiyou-won-the-jackpot-if-you-read-this-part-iii
Regards,
Chandra

Similar Messages

  • XSLT Mapping of Adapter-Specific Message Attributes

    Hi,
    We have the requirement to build a soap request with a custom soap envelop/header which contains a sessionId.
    Therefore we developed a xlst mapping which is called directly after a graphical mapping.
    In the graphical mapping the session id is written to the dynamic configuration.
    The goal is to read this session id in the xslt mapping from the dynamic configuration using XSLT Mapping of Adapter-Specific Message Attributes. We used  [this|http://help.sap.com/saphelp_nwpi711/helpdata/en/43/03fe1bdc7821ade10000000a1553f6/content.htm] documentation as an example.
    But we are getting the following error: TransformerConfigurationException triggered while loading XSLT mapping. The error is raised at this node: <xsl:variable name="dynamic-conf" select="map:get($inputparam, 'DynamicConfiguration')" />
    This is the coding of the xslt transformation:
    <?xml version="1.0" encoding="utf-8"?>
    <xsl:stylesheet version="1.0"
          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
          xmlns:ns1="urn:enterprise.soap.sforce.com"
          xmlns:map="java:java.util.Map"
          xmlns:dyn="java:com.sap.aii.mapping.api.DynamicConfiguration"
          xmlns:key="java:com.sap.aii.mapping.api.DynamicConfigurationKey">
    <xsl:output indent="no" />
    <xsl:param name="inputparam"/>
    <xsl:template match="/">
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:enterprise.soap.sforce.com">
    <soapenv:Header>
    <urn:SessionHeader>
    <xsl:variable name="dynamic-conf" select="map:get($inputparam, 'DynamicConfiguration')" />
    <xsl:variable name="dynamic-key" select="key:create('http://sap.com/xi/XI/System/SOAP', 'sessionId')" />
    <xsl:variable name="dynamic-value" select="dyn:get($dynamic-conf, $dynamic-key)" />
    <urn:sessionId><xsl:value-of select="$dynamic-value"></xsl:value-of></urn:sessionId>
    </urn:SessionHeader>
    </soapenv:Header>
    <soapenv:Body>
    <xsl:copy-of select="*"/>
    </soapenv:Body>
    </soapenv:Envelope>
    </xsl:template>
    </xsl:stylesheet>
    Any help will be highly appreciated.
    Regards, Henk

    Hi, yes we did try that and lot's of other combination.
    The results of those trials are that it seems to go wrong with <xsl:variable name="dynamic-conf" select="map:get($inputparam, 'DynamicConfiguration')" />
    When we enclose it with <xsl:if test="function-available('map:get')"> the transformation is not dumping, but the function is not available.
    Regards, Henk

  • Logical system not updated in the business system adapter specific data par

    Hello Guys,
    I changed a logical system name in the sld for a business system and that that is not reflected in the Integration directory adapter specific data tab.
    I did a cache refresh using :
    1) sxi_cache --- Full cache refresh, delta cache refresh
    2) Hard cache refresh
    3) In ID "Cleared SLD data cahe "
    4) Refreshed the exchange profile
    But no use
    Can you please tell how i can get the logical system name for the business system updated in the Integration Directory.

    When you change it in SLD and if not getting replected in the ID...make sure you run the cache again, perofmr the comeplete cache....
    there is an option under the adapter specific mesage attributes compare with SLD you can click that, is nthing happening after clicking it?
    Run the cache in the ID are there any errors there?
    check the RWB cache monitoring is everything green there?

  • Adapter-specific message attributes for the JMS Receiver adapter

    Dear SAP Community,
    We are trying to activate some parameters at message level when SAP XI sent an interface (XML data) to IBM Websphere MQ. Programmaticaly, this is done the following way:
           TextMessage outMessage = session.createTextMessage();
           MQQueue replyToQ = new MQQueue("TESTQM01","SYSTEM.ADMIN.ACTIVITY.QUEUE");
           Destination replyTo = (Destination) replyToQ;
           outMessage.setJMSReplyTo(replyTo);
           outMessage.setIntProperty("JMS_IBM_Report_Exception", MQC.MQRO_EXCEPTION);
           outMessage.setIntProperty("JMS_IBM_Report_Expiration", MQC.MQRO_EXPIRATION);;
           outMessage.setIntProperty("JMS_IBM_Report_COA", MQC.MQRO_COA);
           outMessage.setIntProperty("JMS_IBM_Report_COD", MQC.MQRO_COD);
           outMessage.setIntProperty("JMS_IBM_Report_Discard_Msg", MQC.MQRO_DISCARD_MSG);
    This code is working fine.
    Since the documentation about this feature (Adapter-specific message attributes) is very light, We am not sure about the interpretation we made.
    First, we defined the following attributes: MS_IBM_Report_Exception, JMS_IBM_Report_Expiration, JMS_IBM_Report_COA, JMS_IBM_Report_COD, JMS_IBM_Report_Discard_Msg. All of them are with type int.
    Then we changed the mapping (XSL) to pass the value to the dynamic configuration, using the technical names (DCJMSMessageProperty0, ..., DCJMSMessageProperty4) and the value of the constants. We also specified a value in the Reply To Queue parameter of the adapter. As a test, We also change another parameter via the mapping (the correlation ID, to use the idoc number) and according to the log of the processed message, every thing is finde. According to the trace of the JMS adapter, everything is fine to. However, this has no impact on the message, only the correlation ID is changed.
    The JMS server is IBM Websphere MQ (v6.0.2.1). It is already in production and working fine. This is a change we have been asked to implement.
    Has anyone experience with the JMS receiver adapter-specific message attrbitutes ? What have we done wrong ?
    Any help is greatly appreciated.
    Regards,
    Gregory PFISTER
    SAP XI Analyst - Holcim

    Hi Neha,
    pls do chk the below links for SOAP adapter message attributes
    http://help.sap.com/saphelp_nwpi71/helpdata/en/fc/5ad93f130f9215e10000000a155106/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/43/0a7d1be4e622f3e10000000a1553f7/content.htm
    http://publib.boulder.ibm.com/infocenter/wbihelp/v6rxmx/index.jsp?topic=/com.ibm.wbia_adapters.doc/doc/sap_xi/sapximst38.htm
    http://publib.boulder.ibm.com/infocenter/wbihelp/v6rxmx/index.jsp?topic=/com.ibm.wbia_adapters.doc/doc/webservices/webservices16.htm
    Regards
    Sampath

  • Not able to see 'Adapter specific' indicator in http receiver comm. channel

    I am not seeing the Adapter Specific Message attributes indicator in http receiver adapter where one can set a dynamic URL. Anybody any idea? Thanks.

    I have a fixed URL except that it should be formed with https instead of http. I guess the default http is used as there is no where in the communication channel to select https. I am able to invoke the https url through browser but through http receiver adapter, I get error 'http client code 110 reason'. I see in other blogs that this is due to https not enabled in the J2EE engine. But for outbound why should that matter? As long as the target URL is set to accept https, I should be able to sent the message as long as the URL gets formulated starting with https. If it was SOAP adapter, the entire URL can be entered so no issue, but with http adapter is there a way to specify entire URL including the https:// ? Thanks.

  • Multi-Message-split with ABAP mapping and adapter specific attributes

    Hi all,
    With <b>ABAP-Mapping I split 1 message to n messages</b>.
    So many files are generated in <b>file-Adapter</b>.
    Everything fine.
    But now I want the file names different using adapter specific attributes.
    It is not possible to use variable substitution and write the file name in payload because of receiver restrictions.
    I tried this with following similar coding in ABAP-Mapping:
    data: lt_records TYPE MPP_DYNAMIC_TAB.
          Loop.
          l_file_name = "payload-Inbound"-information
          ls_record-namespace = 'http://sap.com/xi/XI/System/File'.
          ls_record-name = 'FileName'.
          ls_record-value = l_file_name.  "l_file_name comes from inbound-payload
          append ls_record to lt_records.
         Endloop.
      CALL METHOD dynamic_configuration->set_all_records
        EXPORTING
          records = lt_records.
    If I start the interface I see in the monitoring the dynamic configuration with many entries for file-name in the the SOAP-Header mapping of the request message (following extract):
      <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Mapping der Request-Message
      -->
    - <SAP:DynamicConfiguration xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:Record namespace="http://sap.com/xi/XI/System/File" name="FileName">BPAADDRESS.XML</SAP:Record>
      <SAP:Record namespace="http://sap.com/xi/XI/System/File" name="FileName">BPABROKERROLE.XML</SAP:Record>
      <SAP:Record namespace="http://sap.com/xi/XI/System/File" name="FileName">BPACOMPANYSEGMENT.XML</SAP:Record>
      <SAP:Record namespace="http://sap.com/xi/XI/System/File" name="FileName">BPACUSTOMERROLE.XML</SAP:Record>
    The result is that <b>all files have the same file name</b> (last entry in dynamic configuration).
    Is it possible to write the adapter specific configuration in ABAP-mapping <u>for every single result message</u>??
    Thank you for your help,
    Florian

    Hi Florian,
    I've a different idea...I dont think its a "right solution" but just another work around..it involves a BPM...
    In your ABAP mapping..set the dynamic config with as many variables as number of different messages...i.e. use the variables like 'FileName1', 'FileName2'...'FileName6' instead of 'FileName'. But use the same namespace 'http://sap.com/xi/XI/System/File'
    Call the above mapping in a BPM and capture the individual messages and set the attribute 'FileName' from the values of 'FileName1' to 'FileName6' accordingly using Message Mapping and then send the message using the 'Send' step.
    before you try this, try using the variable names 'FileName1' ...'FileName6' in the receiver adapters...enable the ASMS. <b>I know we need to select which variables from the dynamic config to be used by the adapter by specifically selecting 'FileName', 'Directory' etc...but just give it a try and see if it works..</b>
    Or..instead of using a BPM..you can combine Henrique's idea...use Adapter module to set the value for 'FileName' from variables 'FileName1'...'FileName6' accordingly.
    hope I'm clear..lemme know if you have any questions..
    cheers
    praveen

  • Java Mapping (not UDF) and Adapter-Specific Message Attributes

    Hello everybody,
    is it possible to create an Adapter-Specific Message Attributes in a java Mapping?
    I found in the SAP Help that the API com.sap.aii.mapping.api.DynamicConfiguration allows only to read, change or delete the attributes.
    best regards.
    Adnane Elgoute

    Hi,
    try the follwoing code
    import com.sap.aii.mapping.api.*;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.HashMap;
    import java.util.Map;
    public class JavaProgram
        implements StreamTransformation
        public JavaProgram()
        public void setParameter(Map map)
            param = map;
            if(param == null)
                param = new HashMap();
        public void execute(InputStream inputstream, OutputStream outputstream)
            try
                DynamicConfiguration dynamicconfiguration = (DynamicConfiguration)param.get("DynamicConfiguration");
                DynamicConfigurationKey dynamicconfigurationkey = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File", "FileName");
                String s = dynamicconfiguration.get(dynamicconfigurationkey);
             //Your logic
            catch(Throwable throwable)
                throwable.printStackTrace();
        private Map param;

  • How to set adapter specific message attributes on Pi 7.1 inside a Java map.

    Hello,
    how can I set adapter specific message attributes in a Java mapping on PI 7.1.? The TransformationInput grants access to the DynamicConfiguration but the TransformationOutput doesn't. I have found threads refering to the old way of implementing Java mappings (e.g. Get dynamic filename in a Java Mapping (NOT UDF)). But there doesn't seem to be one refering to the actual PI.
    Kind regards,
    Heiko

    Using DynamicConfiguration from the TransformationInput works.

  • JMS adapter: Adapter specific message attributes

    Hi,
    I have a synchronous SOAP to JMS (MQ series) scenario where I’m using sync/async bridge (without BPM).
    I need to correlate the message being put on JMS queue (JMS receiver adapter) and the response (JMS sender adapter).
    The “standard” receiver JMS adapter only allows the JMS correlation ID to be set to one of three different values (excluding NULL). 2 of these (reference and conversation ID) will be empty in my scenario, leaving me with only the XI message ID. This ID however exceeds the length of ie. the JMS correlation ID and thus isn’t suitable for correlating anything using the field JMS Correlation ID.
    NB: it is of no use to try and set the conversation ID at mapping time (using container object) since the changed value only is available during mapping execution.
    Surely one way of setting the conversation ID would be to use an adapter module in SOAP sender, but this is not an option. Also the sender system will not provide one either.
    Now the problem isn’t setting the JMS correlation ID dynamically at runtime (this is achieved without trouble using the dynamic configuration API with the key ‘DCJMSCorreleationID’). The problem is to actually have XI correlate the request with the response.
    Since the JMS collelation ID is smaller than the XI message ID and the conversation and reference ID isn’t available, what I figure is that I need to find a MQ message property to use and then use the ‘Set MSProperty to’ part instead – this property surely needs to be large enough to contain the XI message ID.
    So what I did was I looked in http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/index.jsp?topic=/com.ibm.mq.amqwak.doc/js50938.htm
    where a list of fields in the message descriptor is available figuring I can just use one of these. Looking through the list I notice the field MDRQ (‘Name of reply queue’, 48-byte character string) should be able to hold the XI message ID. So I add ‘MDQR’ in the ‘Specify additional JMS message properties’ and set the ‘Java Type’ to String and also enter this field in the Correlation Setting of the receiver JMS adapter.
    Runtime:
    When looking in MDT I see:
    New JMS message will be correlated with the XI message. Correlation rule: XI_MESSAGEID, correlated property: JMS property MDRM, correlation value: 36158680-5a0c-11dc-8c14-000f203cd3c8
    I looks like a success! No data is however set in the field when looking at messages being put on MQ.
    If I increase the trace level of the JMS adapter I can see (in defaultTrace) the following:
    Cannot read the switch setting for property name DCJMSStringProperty0, switch name dynConfigDCJMSStringProperty0. It is switched off.
    What does this error mean?
    I have of course clicked ‘Use adapter Specific Message-Attributes’ and also the ‘Specify additional…’. In other words everything look ok in configuration.
    Since I’ve also put a check mark in ‘Fail if adapter specific message attributes is missing’ I can see that I successfully put a value (using dynamic conf. at mapping time) in the field... but still something isn’t right – the value of the property never reached MQ.
    Now I’ve tried with a couple of fields in the message descriptor from the previous URL. XI complains all the time.
    Anybody got some ideas?
    Best Regards,
    Daniel

    Hi Vijay,
    Thanks for your replay,as per your input i creted dynamic configuration method,
    i taget structure  luks like this
       <Data>
           <Mesage>
                 <gl_update>
                      <header>
                            <ean1>
                            <ean2>
                      </header>
                  <gl_update>
           <Message>
    i written UDF and mapped to header element gl_update,
    but i am getting  below error message in MONI
    SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
      <SAP:Category>Application</SAP:Category>
      <SAP:Code area="MAPPING">EXCEPTION_DURING_EXECUTE</SAP:Code>
      <SAP:P1>com/sap/xi/tf/_MM_ ffjms_</SAP:P1>
      <SAP:P2>com.sap.aii.mappingtool.tf7.IllegalInstanceExcepti</SAP:P2>
      <SAP:P3>on: Cannot create target element /ns0:MT_jms_ _a</SAP:P3>
      <SAP:P4>sync_out/Data/Message/ GLUpdate. Values missi~</SAP:P4>
      <SAP:AdditionalText />
      <SAP:Stack>Runtime exception occurred during application mapping com/sap/xi/tf/_MM_ ffjms_; com.sap.aii.mappingtool.tf7.IllegalInstanceException: Cannot create target element /ns0:MT_jms_ asyncout/Data/Message/ GLUpdate. Values missi~</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    i want to know i mapped to UDF to GL_Update is is correct, to which element i have to map.
    i think there is no prob with UDF,its executing ,giving warning messages
    help me on this,
    Regaards
    Raj

  • HTTP Adapter-Specific Message Attributes

    Hello,
    can someone help me to configure an url-parameter in HTTP Sender Adapter (adapter specific attributes).
    I need the paramter customer_number for the call BAPI_SALESORDER_GETLIST.
    My Question:
    How can I configure the parameter and after that how can I use this paramter in the url?
    thanks for help
    regards
    alex

    Alexander,
    Dont think this is possible.
    From note : 839803
    <i>Are HTTP header fields supported in the inbound?
    The HTTP client may use HTTP header fields, however, they are not analyzed and are not available in the XI processing.</i>
    Regards
    Bhavesh

  • Purpose of adapter specific message atributes at sender,reciever file adapt

    hi.
    i want know birefly about adapter specific message atributes at sender ,reciever  adapters.
    and what would be the result if we enable this adpspecmessatb checkbox
    waiting for your response.
    bye.
    regards.
    seeta ram.

    hi santosh .
    thanks for yor your answer.
    but when i mapped constant  a to the udf and mapped to target and while iam testing i got the error like
    10:38:30 Start of test
    Compilation of MM_SapIsuTo3rdpartyAccountStatementExtraction successful Runtime exception during processing target field mapping /ns0:MT_SapisuTo3rdpartyAccountStatementExtraction/accstmtdetails/body/status. The message is: Exception:[java.lang.NullPointerException] in class com.sap.xi.tf._MM_SapIsuTo3rdpartyAccountStatementExtraction_ method filename$[a, com.sap.aii.mappingtool.tf3.rt.Context@421badd8] com.sap.aii.mappingtool.tf3.MessageMappingException: Runtime exception during processing target field mapping /ns0:MT_SapisuTo3rdpartyAccountStatementExtraction/accstmtdetails/body/status. The message is: Exception:[java.lang.NullPointerException] in class com.sap.xi.tf._MM_SapIsuTo3rdpartyAccountStatementExtraction_ method filename$[a, com.sap.aii.mappingtool.tf3.rt.Context@421badd8] at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:350) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:312) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:312) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:312) at com.sap.aii.mappingtool.tf3.AMappingProgram.start(AMappingProgram.java:401) at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:142) at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:105) at com.sap.aii.ibrep.server.mapping.ServerMapService.transformInternal(ServerMapService.java:431) at com.sap.aii.ibrep.server.mapping.ServerMapService.execute(ServerMapService.java:169) at com.sap.aii.ibrep.sbeans.mapping.MapServiceBean.execute(MapServiceBean.java:52) at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0_0.execute(MapServiceRemoteObjectImpl0_0.java:301) at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0_0p4_Skel.dispatch(MapServiceRemoteObjectImpl0_0p4_Skel.java:146) at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:320) at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:198) at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:129) at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33) at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41) 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:100) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170) Root Cause: com.sap.aii.utilxi.misc.api.BaseRuntimeException: Exception:[java.lang.NullPointerException] in class com.sap.xi.tf._MM_SapIsuTo3rdpartyAccountStatementExtraction_ method filename$[a, com.sap.aii.mappingtool.tf3.rt.Context@421badd8] at com.sap.aii.mappingtool.tf3.rt.FunctionWrapper.getValue(FunctionWrapper.java:56) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:282) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:312) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:312) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:312) at com.sap.aii.mappingtool.tf3.AMappingProgram.start(AMappingProgram.java:401) at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:142) at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:105) at com.sap.aii.ibrep.server.mapping.ServerMapService.transformInternal(ServerMapService.java:431) at com.sap.aii.ibrep.server.mapping.ServerMapService.execute(ServerMapService.java:169) at com.sap.aii.ibrep.sbeans.mapping.MapServiceBean.execute(MapServiceBean.java:52) at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0_0.execute(MapServiceRemoteObjectImpl0_0.java:301) at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0_0p4_Skel.dispatch(MapServiceRemoteObjectImpl0_0p4_Skel.java:146) at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:320) at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:198) at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:129) at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33) at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41) 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:100) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170) Root Cause: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 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.AMappingProgram.processNode(AMappingProgram.java:282) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:312) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:312) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:312) at com.sap.aii.mappingtool.tf3.AMappingProgram.start(AMappingProgram.java:401) at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:142) at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:105) at com.sap.aii.ibrep.server.mapping.ServerMapService.transformInternal(ServerMapService.java:431) at com.sap.aii.ibrep.server.mapping.ServerMapService.execute(ServerMapService.java:169) at com.sap.aii.ibrep.sbeans.mapping.MapServiceBean.execute(MapServiceBean.java:52) at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0_0.execute(MapServiceRemoteObjectImpl0_0.java:301) at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0_0p4_Skel.dispatch(MapServiceRemoteObjectImpl0_0p4_Skel.java:146) at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:320) at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:198) at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:129) at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33) at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41) 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:100) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170) Caused by: java.lang.NullPointerException at com.sap.xi.tf._MM_SapIsuTo3rdpartyAccountStatementExtraction_.filename$(_MM_SapIsuTo3rdpartyAccountStatementExtraction_.java:119) ... 26 more RuntimeException in Message-Mapping transformation: Runtime exception during processing target field mapping /ns0:MT_SapisuTo3rdpartyAccountStatementExtraction/accstmtdetails/body/status. The message is: Exception:[java.lang.NullPointerException] in class com.sap.xi.tf._MM_SapIsuTo3rdpartyAccountStatementExtraction_ method filename$[a, com.sap.aii.mappingtool.tf3.rt.Context@421badd8]
    10:38:37 End of test
    what would be the reason for this.
    waiting for u r response.
    bye.
    regards.
    seeta ram.

  • Using adapter specific message attributes in SOAP adapter configuration

    Hi,
    Can you please let me know how to use adapter specific message attributes in receiver and sender SOAP adapter configuration. If possible , with example.

    See here:
    Adapter-Specific Message Attributes in the Message Header
    http://help.sap.com/saphelp_nw04/helpdata/en/43/0a7d1be4e622f3e10000000a1553f7/frameset.htm
    Sender Soap Adapter:
    http://help.sap.com/saphelp_nw04/helpdata/en/fc/5ad93f130f9215e10000000a155106/frameset.htm
    Receiver Soap Adapter
    http://help.sap.com/saphelp_nw04/helpdata/en/29/5bd93f130f9215e10000000a155106/frameset.htm

  • Overwrite Adapter-Specific Message Attributes in MAIL adapter.

    Hi guru.
    I'm trying to use the SENDER MAIL Adapter.
    My scenario is the following:
    a remote system send an email with an XML file like attachment. The PI System read the mailbox and tries to map the payload.
    When I try without the "Adapter-Specific Message Attributes" the flow work well, but I need to know the email of the sender.
    When I try to enable the Adapter-Specific Message Attributes the system finds an error in the SOAP envelop, in the "SHeaderX-CR-HASHEDPUZZLE" Node.
    This is a part of the ENVELOP.
    <sap:DynamicConfiguration SOAP:mustUnderstand="1">
         <sap:Record namespace="http://sap.com/xi/XI/System/Mail" name="SHeaderTO">email</sap:Record>
         <sap:Record namespace="http://sap.com/xi/XI/System/Mail" name="SUser">testxi</sap:Record>
         <sap:Record namespace="http://sap.com/xi/XI/System/Mail" name="SHeaderX-ORIGINATING-IP">[XX.XXX.XX.XXX]</sap:Record>
         <sap:Record namespace="http://sap.com/xi/XI/System/Mail" name="SGreeting">
    Lotus Notes POP3 server version X2.0 ready on xxx.</sap:Record>
         <sap:Record namespace="http://sap.com/xi/XI/System/Mail" name="SHeaderSUBJECT">GROUDWORK_REMOTE</sap:Record>
         <sap:Record namespace="http://sap.com/xi/XI/System/Mail" name="SHeaderX-MSG-REF">
    server-10.XXXX.com!1224858537!24401109!1
    </sap:Record>
         <sap:Record namespace="http://sap.com/xi/XI/System/Mail" name="SHeaderMESSAGE-ID"> 00a801c935e4$d4b4e3d0$7e1eab70$
    </sap:Record>
         <sap:Record namespace="http://sap.com/xi/XI/System/Mail" name="SHeaderX-VIRUS-SCANNED">amavisd-new at xxx.com</sap:Record>
         <sap:Record namespace="http://sap.com/xi/XI/System/Mail" name="SHeaderX-ENV-SENDER">EMAIL</sap:Record>
         <sap:Record namespace="http://sap.com/xi/XI/System/Mail" name="SHeaderX-STARSCAN-VERSION">5.5.12.14.2; banners=-,-,xxx.it</sap:Record>
         <sap:Record namespace="http://sap.com/xi/XI/System/Mail" name="SHeaderX-SPAMWHITELISTED">domain whitelist</sap:Record>
         <sap:Record namespace="http://sap.com/xi/XI/System/Mail" name="SHeaderX-VIRUSCHECKED">Checked</sap:Record>
         <sap:Record namespace="http://sap.com/xi/XI/System/Mail" name="SHeaderX-MIMETRACK">
    Itemize by SMTP Server on IXXX(Release 6.5.5|November30, 2005) at 10/24/2008 16:28:57,Serialize by POP3 Server on IXXX(Release 6.5.5FP2|October23, 2006) at 24/10/2008 16:38:51,Serialize complete at 24/10/2008 16:38:51
    </sap:Record>
    *THE ERROR IS IN THE FOLLOWING NODE*
         <sap:Record namespace="http://sap.com/xi/XI/System/Mail" name="SHeaderX-CR-HASHEDPUZZLE">
    7hY= AFac ANQ+ Ad/R ArpP BnYc C6X8 EpvL FLPB GGaw GaCt HKM+ I0Nu JIhk JdJ4 KIZZ;1;dABlAHMAdAB4AGkAQABwAHIAbwB0AG8AdABpAHAAbwAuAGkAdAA=;
    Sosha1_v1;7;{CCB182EF-E812-44B6-9C48-85873A18C72};bQBhAG4AdQBlAGwALgBjAGgAaQBhAHIAZQBsAGwAaQBAAGkAbgBmAHIAYQBjAG8AbQAuAGkAdAA=;
    Fri, 24 Oct 2008 14:28:46 GMT;RgBXADoAIABDAE8ATQBFAFIAXwBSAEUATQBPAFQARQA=
    </sap:Record>
         <sap:Record namespace="http://sap.com/xi/XI/System/Mail" name="SHeaderX-CR-PUZZLEID">{CCB182EF-E812-44B6-9C48-B85873A18C72}</sap:Record>
         <sap:Record namespace="http://sap.com/xi/XI/System/Mail" name="SHeaderTHREAD-INDEX">
    Ack1vUKnx+miPqT4T22mKaVcKhgAvwAAEmwwAAGwdQAABvplAAAAK6sgAAARhjAAAGHCAAAAKwPAAABcPNA=
    </sap:Record>
         <sap:Record namespace="http://sap.com/xi/XI/System/Mail" name="SHeaderRECEIVED">
    from XXX.com ([xx.xxx.xxx.xx])         by mail3.XXX.com (Lotus Domino Release 6.5.5)         with SMTP id 2008102416285733-32229          for EMAIL ;         Fri, 24 Oct 2008 16:28:57 +0200
    </sap:Record>
         <sap:Record namespace="http://sap.com/xi/XI/System/Mail" name="SHeaderDATE">Fri, 24 Oct 2008 16:28:48 +0200</sap:Record>
         <sap:Record namespace="http://sap.com/xi/XI/System/Mail" name="SServerLocation">pop://popserver</sap:Record>
    </sap:DynamicConfiguration>
    My question is:
    Can I  overwrite in the adapter the <sap:Record namespace="http://sap.com/xi/XI/System/Mail" name="SHeaderX-CR-HASHEDPUZZLE"> ?
    <post_modified>
    Edited by: Juan Reyes on Nov 3, 2008 7:22 PM

    Hi
    Check the details of the Email in Mail box are all the Adapter specific parameters are coming. If not then this will not read Adapter Specific parameters. Some Legacy system dont generate all parameters But you can add your using variable header.
    Thanks
    Gaurav

  • Setting Adapter-Specific Message Attributes in an Adapter Module

    Hi!
    I want to set Adapter-Specific Message Attributes in an Adapter Module. Is it possible to configure the Variable Transport Binding in this way?
    Best regards,
    Daniel

    I'd like to know it as well.
    I've checked out the XI AF API but didn't find much.
    One thing that I've observed is that since Module API can treat any Message Class (not only XI Messages), I guess it won't have any specific methods for XI messages (hence, no dynamic configuration). But you could try to get the message object and then treat it as an XI Message (you would be doing the steps that the Java Mapping API do before it calls a Java Mapping class) to get the Map objects (which include the parameters).
    Good luck on it, and let us know if you have any progress!
    Regards,
    Henrique.

  • Read Filename form Adapter-Specific Message Attributes in Java Mapping

    Hi,
    I have scenario File to Mail adapter. How can i read filename from Adapter-Specific Message Attributes
    in java mapping.
    Thank you and Best regards
    Fernand

    Hello Fernand,
    Are u using DOM or SAX parser?
    In any case just put the Dynamic config code in the execute function or the other option is to define it as a private functionand call it in the execute,My personal advice would be the former.
    Just put this code in ur java mapping
    As fellow sdn ers have mentioned there is no need of the container method,just initialise the set param method and use it in the dynamice config code as follows
    public class YourClass implements StreamTransformation
         private Map map;
    public void setParameter(Map param)
         map = param;
    public void execute(InputStream in, OutputStream out) throws StreamTransformationException
                   DynamicConfiguration conf =(DynamicConfiguration) map.get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
                   DynamicConfigurationKey KEY_FILENAME =DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","FileName");
    // read value
    File = conf.get(KEY_FILENAME);
    Now just call File in the mapping program,
    Should help u out 
    Regards,
    Tauseef

Maybe you are looking for

  • My Safari keeps crashing even after clearing cache/history/etc. Help?

    I have tried resetting, clearing cache, and erasing the history. I'm not sure what is going on with my Safari. I did notice I kept getting those "Mackeeper" popups, but I never downloaded it or anything. Could this be the issue? I have looked through

  • Error message "cannot locate file"

    I purchased a new computer and used Detto Intelli Mover to transfer all my music files. When I opened the library, they all appeared to be there, but when I try to plan anything I get an error message "cannot locate file" This happens with all of my

  • How to return to the same PLACE on a page after you link to another page

    If you are on a long page that contains links, if you click on the link, go to the new page, read, then return to the first page, you are dropped at the top of the page, not where you left from as FF3.* did. It matters because some pages I use have h

  • Enabling of objects for monitoring

    Hi all, Can anyone guide me to the exact procedure to enable objects(Info Providers,Query) for monitoring?? Thanks in advance Deepika

  • Why doesn't my backup drive appear in the Startup Disk selection window?

    I've been using SuperDuper! to backup my Mac HD to my internal Seagate drive. The Seagate is divided into Seagate1 and Seagate2. I backup to Seagate1. When I open the Startup Disk window from Preferences, only the Mac HD icon appears, highlighted, an