IDOC to JMS with Dynamic Configuration.

Dear Experts,
IDOC -> SAP PI -> JMS.
We will receive a value in the IDOC-message, based on which the target queue is to be defined.
1) So which property in Dynamic Configuration will help me?
2) Will it be the normal procedure (UDF in Message Mapping and then select the ASMA attribute in receiver channel)?
I went through: http://wiki.sdn.sap.com/wiki/display/XI/FAQ+J2EEJMS+Adapter (question 2.9 and 2.8)
But in one thread it was mentioned that such configuration (of queue) is not possible.
Any idea on how to proceed?
~Thanks.

Hello Stefan,
Thank you for the response.
                    -----> Company1
IDOC -> SAP PI   -----> Company2
                    -----> Company3
We have the above integration in place. Now without ASMA, we will have to create three different JMS Channels; one in each of the Business Service. This would mean that in future if the receivers increase, the corresponding channels have to be increased
But now I am confused as to what the Q 2.9 in this wiki link means: http://wiki.sdn.sap.com/wiki/display/XI/FAQ+J2EEJMS+Adapter
~Thanks

Similar Messages

  • Problem with Dynamic Configuration in XSLT mapping..!!

    Hi friends,
    Working first time with xslt map.I am doing a Idoc to File scenario in which I need to pass Idoc number as the file name dynamically. Right now I am just trying to send some constant value 'ABCD' to go in dynamic attribute filename.
    I used the code which has been provided over here.
    [http://help.sap.com/saphelp_nw04/helpdata/en/43/03fe1bdc7821ade10000000a1553f6/frameset.htm|http://help.sap.com/saphelp_nw04/helpdata/en/43/03fe1bdc7821ade10000000a1553f6/frameset.htm]
    I just changed the "Directory" with "FileName" in the code. It is not generating the dynamic attribute http://sap.com/xi/XI/System/File
    This is my xsl code. Please suggest me If iam doing anything wrong.
    <?xml version="1.0" encoding="utf-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 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" select = "ABCD"/>*
         <xsl:output method="text" encoding="utf-8"/>
         <xsl:template match="/">
              <!-- change dynamic configuration -->
              <xsl:variable name="dynamic-conf" select="map:get($inputparam, 'DynamicConfiguration')"/>
              *<xsl:variable name="dynamic-key" select="key:create('http://sap.com/xi/XI/System/File', 'FileName')"/>*
              <xsl:variable name="dynamic-value" select="dyn:get($dynamic-conf, $dynamic-key)"/>
              <xsl:variable name="new-value" select="concat($dynamic-value, 'subfolder\')"/>
              <xsl:variable name="dummy" select="dyn:put($dynamic-conf, $dynamic-key, $new-value)"/>
              <!-- copy payload -->
              <xsl:copy-of select="."/>
         </xsl:template>
         <xsl:template match="/">
    Waiting for your answers.
    Thank you.
    Deepthi.

    Hi Stefen,
    I tried the way you suggest but still I couldn't able to see the Dynamic Configuration attribute in SOAP document. I tried for Idoc number and even tried by passing just a value 'abcd' like below.
    <?xml version="1.0" encoding="utf-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 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:output method="text" encoding="utf-8"/>
         *<xsl:param name="inputparam"/>*
                    *<xsl:param name="new-value">*
      *<xsl:value-of select="/WMMBID01/IDOC/EDI_DC40/DOCNUM" />*
      *</xsl:param>*     
         <xsl:template match="/">
              <!-- change dynamic configuration -->
              <xsl:variable name="dynamic-conf" select="map:get($inputparam, 'DynamicConfiguration')"/>
              <xsl:variable name="dynamic-key" select="key:create('http://sap.com/xi/XI/System/File', 'FileName')"/>
              <xsl:variable name="dummy" select="dyn:put($dynamic-conf, $dynamic-key, $new-value)"/>
    <?xml version="1.0" encoding="utf-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 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:output method="text" encoding="utf-8"/>
         *<xsl:param name="inputparam"/>*
                    *<xsl:param name="new-value" select="abcd">*
       *</xsl:param>*     
         <xsl:template match="/">
              <!-- change dynamic configuration -->
              <xsl:variable name="dynamic-conf" select="map:get($inputparam, 'DynamicConfiguration')"/>
              <xsl:variable name="dynamic-key" select="key:create('http://sap.com/xi/XI/System/File', 'FileName')"/>
              <xsl:variable name="dummy" select="dyn:put($dynamic-conf, $dynamic-key, $new-value)"/>
    Any suggestions please.
    Thanks
    Deepthi.

  • IDoc-To-xml File Dynamic Configuration

    Hi all.
    a few days ago i posted a thread about file-to-file dynamic configuration.
    now i have to do the same but with difference that my inbound document is an IDOC, so message_header information cant be use!
    i've seen some blog like
    https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/2161. [original link is broken] [original link is broken] [original link is broken] [original link is broken]
    ussing file convertion, XI save a plain text document, no xml.
    What you sugguest to do?
    Rgds
    RP

    hi RAJEEV GUPTA .
    you said do this?
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    //get  Key of Directory File name
    DynamicConfigurationKey keyF = DynamicConfigurationKey.create( URLFile, "FileName");
    //get  Key of Directory
    DynamicConfigurationKey keyD = DynamicConfigurationKey.create( URLFile, "Directory");
    //Replace value of Filename
    conf.put(keyF,file);
    //Replace value of Directory
    conf.put(keyD,dir);
    the problem in this case is there no Key, because there no message_header.
    do you know the sentence to generate a new key for file name and Directory?
    Rgds!
    Rp
    Message was edited by:
            Rodrigo Pertierra

  • Problem with dynamic configuration in PI 7.0 (SP 21)

    We're trying to set a dynamically configurable parameter (UrlParam in plain http adapter) in a java mapping and when calling,   via proxy, getting the following error returned<br />
    <p />
    <br />
    &lt;?xml version="1.0" encoding="utf-8" ?&gt;<br />
    - &lt;asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0"&gt;<br />
    - &lt;asx:values&gt;<br />
      &lt;SYSTEMFAULT href="#o284" /&gt;<br />
      &lt;/asx:values&gt;<br />
    - &lt;asx:heap xmlns:xsd="http://www.w3.org/2001/XMLSchema"<br />
    xmlns:abap="http://www.sap.com/abapxml/types/built-in" <br />
    xmlns:cls="http://www.sap.com/abapxml/classes/global" <br />
    xmlns:dic="http://www.sap.com/abapxml/types/dictionary"&gt;<br />
    <br />
    - &lt;cls:CX_AI_SYSTEM_FAULT id="o284"&gt;<br />
    - &lt;CX_ROOT&gt;<br />
      &lt;TEXTID&gt;F63AFF63DBE4BB4786A7F52CC4167145&lt;/TEXTID&gt;<br />
      &lt;PREVIOUS /&gt;<br />
      &lt;KERNEL_ERRID /&gt;<br />
    - &lt;INTERNAL_SOURCE_POS&gt;<br />
      &lt;PROGID&gt;95&lt;/PROGID&gt;<br />
      &lt;CONTID&gt;3304&lt;/CONTID&gt;<br />
      &lt;/INTERNAL_SOURCE_POS&gt;<br />
      &lt;/CX_ROOT&gt;<br />
      &lt;CX_STATIC_CHECK /&gt;<br />
    - &lt;CX_AI_SYSTEM_FAULT&gt;<br />
      &lt;CODECONTEXT /&gt;<br />
      &lt;CODE&gt;PLAINHTTP_ADAPTER.ATTRIBUTE_MISSING_PARAMS&lt;/CODE&gt;<br />
      &lt;ERRORTEXT /&gt;<br />
      &lt;LANGUAGE /&gt;<br />
      &lt;/CX_AI_SYSTEM_FAULT&gt;<br />
      &lt;/cls:CX_AI_SYSTEM_FAULT&gt;<br />
      &lt;/asx:heap&gt;<br />
      &lt;/asx:abap&gt; <br />
    <p />
    <br />
    The java code in the mapping is as follows:<br />
    <br />
    The java code in the mapping is as follows:<br />
    /*<br />
    Created on 07-Jun-2010<br />
    *<br />
    To change the template for this generated file go to<br />
    Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments<br />
    */<br />
    package uk.gov.communities.finance; <br />
    <br />
            import java.io.InputStream;<br />
    import java.io.OutputStream;<br />
    import java.util.Map;<br />
    <br />
    import com.sap.aii.mapping.api.DynamicConfiguration;<br />
    import com.sap.aii.mapping.api.DynamicConfigurationKey;<br />
    import com.sap.aii.mapping.api.StreamTransformation;<br />
    import com.sap.aii.mapping.api.StreamTransformationException; <br />
    <br />
    /**<br />
    @author Mark<br />
    *<br />
    To change the template for this generated type comment go to<br />
    Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments<br />
    */ <br />
    <br />
    public class PaymentGatewayRequestMap implements StreamTransformation {<br />
            /** This Map parameter is for the Method setParameter() */<br />
            Map param=null;<br />
            /** This method should be used while the Class implements<br />
    StreamTransformation interface<br />
             *<br />
    @param param - A Map object<br />
             */<br />
            public void setParameter(Map param){<br />
                    this.param=param;<br />
            }<br />
    <br />
    /**<br />
    This method will be called by XI to execute Java Mapping. <br />
    @param in - The InputStream which has the source message from CRM <br />
    @param out - The OutputStream which has the target message to ProFinance <br />
    */ <br />
    public  void execute (InputStream in, OutputStream out) throws
    StreamTransformationException { <br />
    String urlParamOne = null; <br />
    try{ <br />
    DynamicConfiguration dynCon = (DynamicConfiguration)param.get("DynamicConfiguration");  <br />
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/HTTP","myValueHere"); <br />
    String response = ""; out.write(response.getBytes()); <br />
    } <br />
    catch(Exception e){<br />
                            throw new RuntimeException(e.getMessage());<br />
                    }<br />
            }<br />
    }<br />
    <p />
    <p />
    <p />
    Looking at the call in SXMB_MONI there's no sign of the dynamic configuration stage anywhere but we are seeing the following in the response message:
    <p />
    <br />
    &lt?xml version="1.0" encoding="UTF-8" standalone="yes" ?&gt;<br />
    -&lt !--  Call Adapter <br />
      --&gt;<br />
    - &lt;SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1"&gt;<br />
    &lt;SAP:Category>XIAdapter&lt;/SAP:Category&gt;<br />
      &lt;SAP:Code area="PLAINHTTP_ADAPTER"&gt;ATTRIBUTE_MISSING_PARAMS&lt;/SAP:Code&gt;<br />
      &lt;SAP:P1 /&gt;<br />
      &lt;SAP:P2 /&gt;<br />
      &lt;SAP:P3 /&gt;<br />
      &lt;SAP:P4 /&gt;<br />
      &lt;SAP:AdditionalText /&gt;<br />
      &lt;SAP:ApplicationFaultMessage namespace="" /&gt;<br />
      &lt;SAP:Stack>Dynamic Header - Missing Message Attributes: Fields/Parameters&lt;/SAP:Stack&gt;<br />
      &lt;SAP:Retry>N&lt;/SAP:Retry&gt;<br />
      &lt;/SAP:Error&gt;<br />
    <p />
    <br />
    Please note, we have set this up on another PI system (7.0 sp 12) and it works as required.
    <p />
    <br />
    Many thanks
    <p />
    <br />
    Andreas

    Hello , let me clarify:
    - There's a graphical mapping which has a user defined function with the following code:
    DynamicConfigurationKey dynKey =DynamicConfigurationKey.create(
    "http://sap.com/xi/XI/System/HTTP",paramName);
    DynamicConfiguration dynCon =(DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    dynCon.put(dynKey, paramValue);
    return paramValue;
    - The above UDF has paramName set to UrlParamOne via a constant and paramValue set a per an element in the incoming structure.
    - Incidentally, a Java mapping is then called (although not relevent) to clear the xml produced from the mapping. This is a requirement for our customer who don't want the HTTP body set. The code is as follows:
    Created on 07-Jun-2010
    To change the template for this generated file go to
    Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
    package uk.gov.communities.finance;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.Map;
    import com.sap.aii.mapping.api.StreamTransformation;
    import com.sap.aii.mapping.api.StreamTransformationException;
    @author Mark
    To change the template for this generated type comment go to
    Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
    public class PaymentGatewayRequestMap implements StreamTransformation {
    /** This Map parameter is for the Method setParameter() */
    Map param=null;
    /** This method should be used while the Class implements
    StreamTransformation interface
    @param param - A Map object
    public void setParameter(Map param){
    this.param=param;
    This method will be called by XI to execute Java Mapping.
    @param in - The InputStream which has the source message from CRM
    @param out - The OutputStream which has the target message to ProFinance
    public void execute(InputStream in, OutputStream out) throws StreamTransformationException {
    try{
    String response = "";
    out.write(response.getBytes());
    catch(Exception e){
    throw new RuntimeException(e.getMessage());
    Many thanks
    Andreas

  • XSLT Mapping with Dynamic Configuration for Mail Adapter

    Hi Guys,
    I am wondering if somebody can help me please.
    I have a requirement in which I need to pick up the file from FTP and email it to the user as an attachment with the same file name and content.
    I know it is possible via 3 method either by deploying adapter module or via XSLT or JAVA Mapping.
    I preferred XSLT Mapping because it is easier to use and we don't need to compile the code like JAVA Mapping.
    I have done the XSLT Mapping but the only problem I am facing is that how to copy the file name which we get it from Dynamic Configuration to the Mail ContentDisposition.
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      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="/">
    <!-- change dynamic configuration -->
        <xsl:variable name="dynamic-conf" 
            select="map:get($inputparam, 'DynamicConfiguration')" />
        <xsl:variable name="dynamic-key"  
            select="key:create('http://sap.com/xi/XI/System/File', 'FileName')" />
        <xsl:variable name="dynamic-value"
            select="dyn:get($dynamic-conf, $dynamic-key)" />
        <xsl:variable name="dummy"
            select="dyn:put($dynamic-conf, $dynamic-key, $new-value)" />
        <!-- copy payload -->
    I tried many option but unfortunately none of them worked.
    <Content_Disposition>attachment;filename="$inputparam"</Content_Disposition>
    <Content_Disposition>attachment;filename="$dynamic-conf"</Content_Disposition>
    <Content_Disposition>attachment;filename="$dynamic-key"</Content_Disposition>
    <Content_Disposition>attachment;filename="$dynamic-value"</Content_Disposition>
    <Content_Disposition>attachment;filename="$dummy"</Content_Disposition>
             <Content_Disposition>
                attachment;filename=
                <xsl:value-of select="dynamic-key"/>
             </Content_Disposition>
    I really appreciate if someone can please provide some guidance.
    Thanks,

    Hi,
    Yes u r correct it will show error in operation mapping.. bcoz u cannot check the DynamicConfiguration in Operation mapping...
    It will throw Exception..
    The parameter to UDF depends on ur requirement.... Let us know ur requirements exactly...
    If u r doing for file to file means no UDF required,, just check ASMA on both sides....
    Babu

  • Problem with Dynamic Configuration in SOAP-AXIS adapter..!!!

    Hi ,
    Idoc> XI>SOAP-AXIS
    I am doing a scenario where I need to pass the URL dynamically in SOAP-AXIS adapter by taking the SNDPRN of Idoc.
    If SNDPRN = 100 , message has to go to  http://10.190.25.16:8210/file/receiver
       SNDPRN = 200 , message has to go to  http://20.180.26.16:8210/file/receiver
    It is working correctly when I tried for single receiver. When I' tried to use DynamicConfiguration, it is coming in SOAP document but it is not working and not passing to correct channel.  According to this note 1039369, I mentioned the following modules.
    AF_Adapters/axis/AFAdapterBean  --->                 afreq
    AF_Adapters/axis/HandlerBean      --->                  xireq 
    AF_Adapters/axis/HandlerBean      --->                  dc
    AF_Adapters/axis/HandlerBean       --->                 remover        
    AF_Adapters/axis/HandlerBean       --->                 trp
    AF_Adapters/axis/HandlerBean        --->                xires       
    AF_Adapters/axis/AFAdapterBean    --->               afres
    xireq ->  handler.type-> java:com.sap.aii.axis.xi.XI30OutboundHandler
    dc    ->  handler.type-> javasap.aii.axis.xi.XI30DynamicConfigurationHandler
    dc   --->   key.1 --->      write http://sap.com/xi/XI/System/SOAP TServerLocation
    dc    --->          location.1  --->         context
    dc     --->         value.1      --->        transport.url
    remover    --->  handler.type    --->   java:com.sap.aii.axis.soap.HeaderRemovalHandler
    remover     ---> namespace    --->      http://sap.com/xi/XI/Message/30
    trp         --->     handler.type   --->    java:com.sap.aii.adapter.axis.ra.transport.http.HTTPSender
    trp           --->  module.pivot  --->     true
    xires     --->    handler.type   --->    java:com.sap.aii.axis.xi.XI30OutboundHandler
    and I am getting the below error in SOAP-AXIS channel
    Error Axis:    error in invocation: java.lang.IllegalArgumentException: object type invalid: class com.sap.aii.adapter.xi.ms.XIMessage
    Error MP:     Exception caught with cause java.lang.IllegalArgumentException: object type invalid: class com.sap.aii.adapter.xi.ms.XIMessage
    Error           Exception caught by adapter framework: object type invalid: class com.sap.aii.adapter.xi.ms.XIMessage
    Error Delivery of the message to the application using connection SOAP_http://sap.com/xi/XI/System failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: object type invalid: class com.sap.aii.adapter.xi.ms.XIMessage: java.lang.IllegalArgumentException: object type invalid: class com.sap.aii.adapter.xi.ms.XIMessage
    Kindly let me know if anyone has any idea what might be wrong?
    Thanks
    Deepthi

    I have a similar problem. I also like to add some header fields to my message und that's way I'm trying to use the AXIS adapter. (Axis adapter FAQ question 30) Unfortunately I'm getting exactly the same error message:
    com.sap.engine.interfaces.messaging.api.exception.MessagingException: java.lang.IllegalArgumentException: object type invalid: class com.sap.aii.adapter.xi.ms.XIMessage
    Deepthi, you wrote that you have missed one jar file. Can you remember which file it was?

  • Launching with dynamic configuration

    Hello,
    one of our products is running under Java 1.5.0_11. We need to launch an external application which is deployed over JNLP. The problem we have is our customers have a pre-installed JRE 1.4.2. Before each invocation of the external application we have to modify the deployment.properties (such as setting proxy, cache directory, log functionality).
    Well, since JRE 1.4.2 Java Web Start is a constituent part of the runtime environment with a centralized configuration. Unfortunately we don't have write access to the config files of the pre-installed JRE. Is it possible to configure our JWS in a dynamic way without modifying existent configuration files?
    Thank you in advance!

    Hello,
    one of our products is running under Java 1.5.0_11. We need to launch an external application which is deployed over JNLP. The problem we have is our customers have a pre-installed JRE 1.4.2. Before each invocation of the external application we have to modify the deployment.properties (such as setting proxy, cache directory, log functionality).
    Well, since JRE 1.4.2 Java Web Start is a constituent part of the runtime environment with a centralized configuration. Unfortunately we don't have write access to the config files of the pre-installed JRE. Is it possible to configure our JWS in a dynamic way without modifying existent configuration files?
    Thank you in advance!

  • JMS queue dynamic configuration

    I am trying to make a scenario, where we need to send a message to 4 different mq queues depending on a field value in the message.
    I am using the adapter specific parameter DCJMSReplyTo - the value of this parameter is set in a user defined function during message mapping.
    The receiver adaptor has following configuration:
    Use adapter specific message attributes X
    Additional parameters: JMS.Message.DynamicDestination = true
    JMS compliant: WebSphereMQ (non-JMS)
    I am using WebSphere MQ
    The routing of messages is working well - only problem is, that a MQRFH2 header is created and printed as a part of the message delivered to MQ.
    Is there any way to avoid this?

    I thought your MQ JMS CC must be JMS compliant, which means the MQRFH2 header must be present in the message. Please check
    https://www.sdn.sap.com/irj/scn/wiki?path=/display/xi/faq%252b%252bj2ee%252bjms%252badapter

  • Dynamic Configuration Parameters - FileName

    Hi to ALL.
    I have a File(EDI) to File(XML) scenario and I use seeburger . I want to get the source file timestamp . I made UDF with dynamic configuration and actived parameters on sender channel. (Source file timeStamp)
    My problem is the I can't get the value because the configuration with seeburguer use the channel split (EDI).
    On sxi_monitor I see two records one is for Functional Acknow. and the other is for the interface.
    On the first record I see the value but in the second ( when the mapping is procesing) the dynamic value refill with anothers values from Seeburger.(file converted to XML)
    I get this values from dynamic configuration ()
    SAP:Record namespace="http://seeburger.com/xi/Split997" name="maxSplitNumber">1</SAP:Record>
      <SAP:Record namespace="http://seeburger.com/xi/Split997" name="splitSender">YYYYY</SAP:Record>
      <SAP:Record namespace="http://seeburger.com/xi/Split997" name="splitState">ACCEPTED</SAP:Record>
      <SAP:Record namespace="http://seeburger.com/xi/Split997" name="splitMapping">XXX_E2X_ANSIX12_XXXX</SAP:Record>
      <SAP:Record namespace="http://seeburger.com/xi/Split997" name="actSplitNumber">1</SAP:Record>
    </SAP:DynamicConfiguration>

    Hi Luis,
    you  can use the parameter "attributeCopyList" with the Splitter Module
    With this parameter you can copy Dynamic Attributes across to your new channel.
    For example, if you want to copy the attribute "test1" with the namespace "http://sap.com/xi/test",
    the value for attributeCopy List is "http://sap.com/xi/test/test1"
    So your module chain might look like this:
    ModuleKey: splitter
    ParameterName: attributeCopyList
    ParameterValue: http://sap.com/xi/test/test1
    Each new "Split-File" will then have the Dynamic Attribute http://sap.com/xi/test with value "test1"
    regards,
    Daniel

  • Dynamic Configuration of Mail-Sender does not work

    Hi,
    we use XI 3.0 SPS 19.
    In my szenario I have a mail sender and I have receiver determination with conditions depending on the mail subject.
    In the condition editor, I selected the context object "SHeaderSUBJECT" to build my condition.
    In the mail communication channel I turned on the Checkbox "adapter specific message attributes".
    But the condition doesn't work!!!
    I wrote a small UDF to get the dynamic configuration of my mail sender-message - but it's NULL.
    If I change my scenario from Mail-Sender to a file-sender, everything works fine (I can select the filename, etc.).
    Is there a problem with dynamic configuration of a mail sender?
    Thx all for your help!
    Regards
    Wolfgang Hummel

    Check also "Variable Transport Binding".
    You see in the SXMB_MONI whether the ASMA is available or not.
    Regards
    Stefan

  • BPM Correlation from Dynamic Configuration not being filled

    Hey guys,
    I'm having the following problem with BPM correlation.
    In my correlation definition, I have 2 fields: one which is filled with information from the message payload, and another one which is filled with a context object (which was created with adapter metadata and filled with dynamic configuration, as refered here: /people/michal.krawczyk2/blog/2006/10/09/xi-dynamic-configuration-in-adapter-modules--one-step-further).
    All instances of BPM are with error status. And when I go into the workflow log for these processes, if I check the correlation object, it is like this:
    <?xml version="1.0" encoding="utf-8" ?>
    <CorrelationKey Version="001">
    <Field1 />
    <Field2>123456789</Field2>
    </CorrelationKey>
    Field1 is the one read from context object, and is not being filled (thus I think the error comes from here). Field2 is from payload and is being normally filled.
    Any ideas on this matter?
    Maybe the problem is not from the correlation. If not, what else could be the case? The BPM crashes on the very first step (one more reason to think that the correlation is the issue).
    Thanks in advance,
    Henrique.

    HI,
    In general Correlation , concept, whatever we configured in Correlation editor , i mean in runtime which xml element should filled with which element of which interface ..as you said you have configured the local correlation to block, in block it is the first receive step, while receiving the first message which is relevent to first recieve step , i mean if it receives the one message which is related to first receive step inteface .. the respective element data will be filled in correlation id and it will assign on giud for processing , so while assign the runtime data to correlation element ( imean filling stage) check you said two elements in correlation does the first message contains these two elements ??
    if so ok , no then check , and try to use the IM before calling the IP to fill the payload.
    Regards
    Chilla
    Oh closed!!
    Message was edited by:
            Chandra Sekhar Chilla
    Message was edited by:
            Chandra Sekhar Chilla

  • Dynamic Configuration of custom Context Objects: is it possible?

    Guys,
    is it possible to use Dynamic Configuration for custom Context Objects as we normally do to technical context objects?
    Also, is it possible to use a context object in receiver determination, even if it is not assigned to a message interface?
    My case: I need to use condition at receiver determination but I dont want to read a field from payload. Instead, I want to write that context object with dynamic configuration and use it at receiver determination runtime.
    I want to do this in order to avoid having to extend the payload's message type because of this extra field for condition (actually, its not that I dont want to, its that I cant. The message type is defined by 3rd party and cant be changed). If it is possible to keep that information at header instead of payload, it'd be great.
    Kind regards and thanks in advance,
    Henrique.

    Hi,
    >>>>>Just a last comment: do you need to deploy any code for the adapter on SDM or just the "fake adapter metadata file" is enough?
    no SDM
    just the metadata file as per my blog
    glad this is what you wanted
    Regards,
    michal
    <a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a>

  • Is Dynamic Configuration possible with IDOC adapter.

    Hi,
    I have SOAP to IDOC scenario. I have many SAP receivers and are determined at runtime in a Java map.
    Can i use Dynamic Configuration for IDOC adapter?
    Thanks
    Shakthi

    Hi Sivasakthi,
    Why do you need Dynamic Configuration in receiver IDOC?
    Regards,
    Sanjeev.

  • Dynamic configuration in Sync/Async bridge in JMS

    Hi
    Scenario:
    Portal sending request to JMS MQ and getting Response using sync/Async Bridge.
    I have to written a UDF which will capture the value for cust_uid from request mapping and store it in dynamic configuration
    And when the response comes from JMS MQu2026.this value gets populated in response mapping.
    I have tested the UDF in a dummy Soap2rfc scenario and its working fine.
    But when used in Sync/Async Bridge, the dynamic configuration  fails.
    For Sync/Async Bridge, there are 2 channels 1) Sender JMS 2) receiver JMS.
    The synchronous request is converted to an asynchronous request in the module processor and sent.
    The asynchronous system sends a response to a sender adapter. In the module processor of the sender adapter, this response is forwarded to the module processor of the original receiver adapter, where it is sent as a synchronous response of the waiting synchronous request.
    Please  suggest
    Regards
    Abhijit

    Hi Abhijit,
    Okay, so your data extraction/insertion is working fine for a simple synchronous request responser call.
    I suppose this is working fine because your receiver adapter copies some part of the request message (at least the dc header) to the response message. (But I don't think this always works for all the adapter types). It is not working for the sync-async bridge because there are two unrelated messages in this case.
    In order to copy the dc header from the first message to the second message, I think you can use the DynamicConfiguraitionBean module to store the dc header value in the module data and use this module again to recover it and set it to the second message. The whole process is somewhat complicated, but I will sketch the approach below.
    First, let's call the first use of DCB the store step and the second the recover step. These store and recover steps must take place in the same module sequence so that they can use the module data to pass data from the first message to the second message. Furthermore, the store step must occur after the cust_id value is extracted into the dc header. So, your configuration must be placed in the receiver adapter side. Assuming the request message with the filled dc header coming into the module sequence, the first DCB module can be placed before the ROB module to store the dc header value in the module data. And the second DCB module can be placed after the WRB module to recover the dc header value from the module data and set it the dc header of the response message.
    I hope this will work.
    Regards, Yza

  • Get IDoc-number from flat IDoc using dynamic configuration

    Dear experts
    In an IDoc2File scenario I have added the IDoc-number to dynamic configuration using the folling code in an UDF:
    DynamicConfiguration conf = (DynamicConfiguration)
    container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey FileName = DynamicConfigurationKey.create("http:/"+"/sap.com/xi/XI/System/File","DOCNUM");
    conf.put(FileName, a);
    The information is stored in the SOAP message
    <SAP:DynamicConfiguration SOAP:mustUnderstand="1">
      <SAP:Record namespace="http://sap.com/xi/XI/System/File" name="DOCNUM">0000000000012345</SAP:Record>
    </SAP:DynamicConfiguration>
    Can anybody tell me how I can access this information in the "variable substitution" section of the CC? Perhaps something like "message:docnum"?
    Additional information:
    Taking the IDoc-number from the payload using e.g. "payload:ORDERS05,1,IDOC,1,EDI_DC40,1,DOCNUM,1" does not work, since the XML-IDoc has been converted to an flat-IDoc.
    Thanks in advance for any good ideas
    Markus

    Dear Rodrigo and Sarvesh
    Thanks for your help so far! I applied your hints and now it is working fine.
    But now I have the following additional questions
    1.) My message mapping only maps the input IDoc to an output IDoc of the same type and structure. The MM is only required to process the UDF. Is there another, better solution to achieve my requirement that the IDoc-number shall be part of the filename?
    2.) In the CC you have the possibility to use temporary files (section "Processing", Option "Put File" = "Use Temporary File". I think this will not work with the given solution, will it?
    To possibly help somebody else or clarify the mechanism once again, I wrote down how my solution now looks like.
    My UDF in the message-mapping looks like this
    - Input = DOCNUM of IDoc, e.g. ORDERS05/IDOC/EDIDC/DOCNUM
    - Outpt = DOCNUM of IDoc, e.g. ORDERS05/IDOC/EDIDC/DOCNUM
    - UDF:
    public String putDynamicConfiguration(String docnum, Container container) throws StreamTransformationException{
    try
         DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
         DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","FileName");
         String filename = "Prefix_" + docnum + ".txt";
         conf.put(key, filename);
         return docnum;
    catch (Exception e)
         return docnum;
    In the CC the settings are now as follows
    File Name Scheme = . -> only a dot or something else, because this field is obligatory, even if it is not used in this case.
    Variable substitution (...)
        Enable -> unchecked
    Adapter-Specific Message Attributes
        Use Adapter-Specific Message Attributes -> checked
        Fail If Adapter-Specific Message Attributes Missing -> checked
        File Name -> checked
        Directory, File Type, Temporary Name Scheme for Target File Name -> unchecked
    When I send an IDoc to PI and view the Adapte-Engine Version of the message (the SOAP-document, not the payload) I can find the Filename:
    <SAP:DynamicConfiguration SOAP:mustUnderstand="1">
    <SAP:Record namespace="http://sap.com/xi/XI/System/File" name="FileName">Prefix_0000000000012345.txt</SAP:Record>
    </SAP:DynamicConfiguration>

Maybe you are looking for

  • White Balance Setting Problem

    APPLE COMPUTER: THREE BASIC QUESTIONS THAT NEED TO BE ANSWERED. 1. HOW DOES THE WHITE BALANCE TOOL WORK IN APERTURE? 2. HOW DO YOUR SOFTWARE ENGINEERS AND "PHOTOGRAPHIC CONSULTANTS" USE IT TO SET WHITE BALANCE? 3. WHAT ARE THE SIMILARITIES AND/OR DIF

  • Transferring my iTunes library from a pc compatible hard drive...?

    I want to run my itunes library from my external hard drive because I don't want all my media and itunes stuff taking space in my SSD drive for my retina MBP... However, the problem is that since this is my first mac, and I had been using itunes from

  • Advice or recommendations on sound cards

    i have a kt6 delta lsr my sound blaster live gamer croacks ands pops.  do i need new card or different setting. and if new card ............. what? above ms with xp 2800 (barton) , kinsgton value 512 mg, ati aiw 9600 oro, 2 wd 100gig

  • Edge 3.1 Data Services connection to SAP ECC 5.0 on AIX server

    I've got a client who is trying to create a Data Services extract from an SAP ECC 5.0 system on an AIX server.  The Data Services is installed on a Windows box and is the Edge 3.1 version. He is able to connect to the SAP datastore, is able to import

  • HT3576 A plea to improve the "Next Destination" feature

    I L-O-V-E the "Next Destination" feature that occasionally pops up on my iPhone 4S pull-down screen. UNFORTUNATELY, it only comes up randomly and infrequently, and seldom when I really need it. I've been told that the feature "educates" itself based