Setting additional JMS message properties

Hi ALL,
I have a requirement where I need to create an adapter module to set additional message property for JMS.
The property name has to be Key_String specifically.
I am not sure whether to specify this name in the code written for the module or in the channel configuration.
Please help.
Thanks n regards
Pushpinder Kaur

You can use adapter specific message attributes for this.
See online help, scroll down to "Advanced Tab Page"
http://help.sap.com/saphelp_nw04/helpdata/en/10/b1b4c8575a6e47954ad63438d303e4/frameset.htm
Hope that helps
Stefan

Similar Messages

  • Additional JMS Message Properties

    Hi Guru's,
    I am looking for a solution to dynamicly set the filename for JMS receiver adapter. What I have found so far is that this should be done with the Additional JMS Message Properties...
    Based on a field from the source structure I want to determine the filename which will be send via the JMS adapter. Is there any documentation available on how to achieve this?
    Best regards,
    Guido Koopmann

    I have written an UDF to determine the filename dynamicly:
    //write your code here
    String str = "SAPDATA-" + a + "ES" + ".xml";
    DynamicConfiguration conf = (DynamicConfiguration)
    container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey FileName = DynamicConfigurationKey.create("http:/"+"/sap.com/xi/XI/System/File","FileName");
    conf.put(FileName, str);
    return "";

  • Specifying additional JMS message attributes in Sender Adapter

    Hi,
    Iam using sender JMS adapter and I have to use the option " Specify Additional JMS Message Properties" for adding addtionalJMS properties in XI message header.
    Once I cselect the option in the below table  Iam not able to add new lines to add addtional JMS Message Properties..But In receiver adapter I was able to add the new lines.
    Is this option graded in SAP PI 7.3 or relatd to any authorization issue..?
    Is anyone faced this issue before.. Please help me out
    Thank you

    Hi everybody
    I'm starting a project where I have to take adptadores JMS and I'm in the same situation kirian, I am need to configure a JMS adapter  with version of SAP PI 7.3 and I wonder if anyone can help me or give me manuals leagues where information comes related.
    Someone can help me with this information
    Regards

  • JMS Adapter - Set Additional JMS Parameters or Replace Default Settings

    Hi colleagues,
    We are using PI/XI 7.0 (SP 12).
    In trying to set up a Communication Channel using JMS Adapter to connect to Oracle AQ, I do not see the checkbox "Set Additional JMS Parameters or Replace Default Settings" , nor is the table for the parameters / value visible.
    We have deployed the driver file as described in the How-to- guide: How To Install and Configure External Drivers for JDBC & JMS Adapters
    [http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/f04ce027-934d-2a10-5a8f-fa0b1ed4d88f?quicklink=index&overridelayout=true]
    In setting up the Communication Channel so far:
    Type: Sender
    Transport Protocol: Access JMS Provider Generically
    Message Protocol:  JMS 1.x
    Adapter Engine:      Integration Server
    After this I expect to see the checkbox  "Set Additional JMS Parameters or Replace Default Settings", but it is not there.
    Therefore I am not able to select it in order to enter parameters like:
    JMS.QueueConnectionFactoryImpl.classname
    JMS.QueueConnectionFactoryImpl.method.setHostName
    JMS.QueueImpl.classname
    JMS.QueueImpl.constructor.... etc
    Can someone please share if this because we are on too low SP or do we need to do something additional before it becomes visible?  Is this a feature that only became available as of PI/XI 7.0 SP 13 or 14 ?
    I checked both Sender and Receiver channel type, and it does not appear for both.
    Thanks & Cheers,
    Jodie

    Hi experts,
    We are using PI 7.1 and I've set up a communication Channel using JMS Adapter to send
    messages to a Sonic MQ queue.
    I need to send some values as JMS parameters, two of which are constants and two are values
    from the Sender message. I tried defining and setting up the parameters with constants values
    in the Communication Channel under the Advanced tab by selecting the check-box
    set Adapter-specific Message Attributes as follows:
    Name     TYPE
    ContentType     String
    ReturnValue     boolean
    Name     VAlue
    Contenttype     CompanyCode
    ReturnValute     true
    This however lead to an error in the Adapter Engine (RWB).
    My problem is:
    1. Can anyone please instruct me as to how to go about defining and setting up
       additional JMS parameters?
    2. How to go about defining/setting up variables that will get their values from
       the sender message?
    Thanks & Cheers,
    Joe

  • Specify JMS message properties with UMS send protocol ?

    Hi,
    is there a way to specify JMS Message properties when sending a message throught Universal Message Service (UMS) ?
    I was not able to find any reference to this kind of usage.
    Additionally, how do we specify filters (if possible) when receiving messages from UMS?
    Thanks.

    I have written an UDF to determine the filename dynamicly:
    //write your code here
    String str = "SAPDATA-" + a + "ES" + ".xml";
    DynamicConfiguration conf = (DynamicConfiguration)
    container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey FileName = DynamicConfigurationKey.create("http:/"+"/sap.com/xi/XI/System/File","FileName");
    conf.put(FileName, str);
    return "";

  • Propagate custom JMS message properties to replyTo message

    WebServices are invoked over JMS. In the SOAP JMS message request, I want to record some information in JMS properties and get them back in the reply JMS message received in the replyTo queue. I wonder if there is a way to do that, either by writing custom hook to copy over custom JMS message properties, or WLS recognize special JMS message properties that will be propagated.

    I have written an UDF to determine the filename dynamicly:
    //write your code here
    String str = "SAPDATA-" + a + "ES" + ".xml";
    DynamicConfiguration conf = (DynamicConfiguration)
    container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey FileName = DynamicConfigurationKey.create("http:/"+"/sap.com/xi/XI/System/File","FileName");
    conf.put(FileName, str);
    return "";

  • XSLT sender plugin fails to set JMS message properties

    When creating a JMS message to be put on a JMS queue, one of the XSLT for the XSLT automation plugin fails to set JMS string properties like: wlsmimehdrContent_Type
    The content on the xslt are listed below.
    The xslt in CPRLookupRequest.xslt sets:
    wlsmimehdrContent_Type
    SERVICE_SUFFIX
    OSM_EVENT_TYPE
    as expected, but the almost similar plugin NABSCreditEvalPluginRequest.xsl fails to set the same string JMS properties.
    I'm looking for a clue, because I'm clueless. I'm an XSLT newbie, so it might be something simple.
    The core part of the problem is put in bold in the listings below
    h2. CPRLookupRequest.xslt:
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns="http://java.sun.com/products/oss/xml/ServiceActivation" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:oms="urn:com:metasolv:oms:xmlapi:1" xmlns:java="http://xml.apache.org/xalan/java" xmlns:xalan="http://xml.apache.org/xalan" xmlns:mslv-sa="http://www.metasolv.com/oss/ServiceActivation/2003" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co="http://java.sun.com/products/oss/xml/Common" exclude-result-prefixes="oms java xsl xalan">
         <xsl:param name="automator"/>
         <xsl:param name="log"/>
         <xsl:param name="context"/>
         <xsl:param name="outboundMessage"/>
         <xsl:output method="xml" indent="yes" omit-xml-declaration="no" xalan:indent-amount="5"/>
         <xsl:template match="/">
              <xsl:apply-templates select="oms:GetOrder.Response">
                   <xsl:with-param name="SERVICE_SUFFIX" select="'CprDomain/Cpr'"/>
                   <xsl:with-param name="OSM_EVENT_TYPE" select="'CPR_LOOKUP'"/>
              </xsl:apply-templates>
         </xsl:template>
         <xsl:template match="oms:GetOrder.Response">
              <xsl:param name="SERVICE_SUFFIX" />
              <xsl:param name="OSM_EVENT_TYPE" />
    *<xsl:variable name="void2" select="java:setStringProperty($outboundMessage, '_wls_mimehdrContent_Type', 'text/xml; charset=UTF-8')" />*
    *<xsl:variable name="void3" select="java:setStringProperty($outboundMessage, 'SERVICE_SUFFIX', $SERVICE_SUFFIX)" />*
    *<xsl:variable name="void4" select="java:setStringProperty($outboundMessage, 'OSM_EVENT_TYPE', $OSM_EVENT_TYPE)" />*
              <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                   <env:Body env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
                        <m:getPersonByCPR xmlns:m="/Cpr">
                             <getPersonByCprRequestInfo xmlns:n1="java:dk.tdc.soa.cpr.extern.datatypes" xsi:type="n1:GetPersonByCprRequestInfo">
                                  <applicationId xsi:type="xsd:string"><xsl:text>CPR</xsl:text></applicationId>
                                  <cprNumber xsi:type="xsd:string"><xsl:value-of select="oms:_root/oms:cpr" /></cprNumber>
                             </getPersonByCprRequestInfo>
                        </m:getPersonByCPR>
                   </env:Body>
              </env:Envelope>
         </xsl:template>
    </xsl:stylesheet>
    h2. NABSCreditEvalPluginRequest.xsl
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" exclude-result-prefixes="oms java xsl xalan"
         xmlns="http://java.sun.com/products/oss/xml/ServiceActivation"
         xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
         xmlns:oms="urn:com:metasolv:oms:xmlapi:1"
         xmlns:java="http://xml.apache.org/xalan/java"
         xmlns:xalan="http://xml.apache.org/xalan"
         xmlns:mslv-sa="http://www.metasolv.com/oss/ServiceActivation/2003"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns:co="http://java.sun.com/products/oss/xml/Common">
         <xsl:param name="automator"/>
         <xsl:param name="log"/>
         <xsl:param name="context"/>
         <xsl:param name="outboundMessage"/>
         <xsl:template match="/">
              <xsl:apply-templates select="oms:GetOrder.Response">
                   <xsl:with-param name="SERVICE_SUFFIX" select="'/APILink/CreditServices'"/>
                   <xsl:with-param name="OSM_EVENT_TYPE" select="'NABS_CREDIT_EVAL'"/>
              </xsl:apply-templates>
         </xsl:template>
         <xsl:template match="oms:GetOrder.Response">
              <xsl:param name="SERVICE_SUFFIX"/>
              <xsl:param name="OSM_EVENT_TYPE"/>
    *<xsl:variable name="void2" select="java:setStringProperty($outboundMessage, '_wls_mimehdrContent_Type', 'text/xml; charset=UTF-8')"/>*
    *<xsl:variable name="void3" select="java:setStringProperty($outboundMessage, 'SERVICE_SUFFIX', $SERVICE_SUFFIX)"/>*
    *<xsl:variable name="void4" select="java:setStringProperty($outboundMessage, 'OSM_EVENT_TYPE', $OSM_EVENT_TYPE)"/>*
              <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                   <env:Body env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
                        <xsl:choose>
                             <xsl:when test="count(oms:_root/oms:cpr) + count(oms:_root/oms:birthDayPart) >0">
                                  <xsl:call-template name="private" />
                             </xsl:when>
                             <xsl:when test="count(oms:_root/oms:cvr) > 0">
                                  <xsl:call-template name="business" />
                             </xsl:when>
                        </xsl:choose>
                   </env:Body>
              </env:Envelope>
         </xsl:template>
         <xsl:template name="private">
              <m:validatePrivateCustomer xmlns:m="java:dk.tdc.apilink.logic.sessions.interfaces">
                   <validateCustomerCreditInput xsi:type="n1:ValidateCustomerCreditInput" xmlns:n1="java:dk.tdc.apilink.logic.datatypes">
                        <accountCategory xsi:type="java1:char" xmlns:java1="java:language_builtins">
                             <xsl:text>I</xsl:text>
                        </accountCategory>
                        <adrLocation xsi:type="xsd:string">
                             <xsl:value-of select="oms:_root/oms:houseNo"/>
                        </adrLocation>
                        <adrStreetName xsi:type="xsd:string">
                             <xsl:value-of select="oms:_root/oms:streetName"/>
                        </adrStreetName>
                        <adrZip xsi:type="xsd:string">
                             <xsl:value-of select="oms:_root/oms:zipCode"/>
                        </adrZip>
                        <xsl:choose>
                             <xsl:when test="count(oms:_root/oms:birthDayPart) > 0">
                                  <birthDate xsi:type="xsd:string">
                                       <xsl:value-of select="substring(oms:_root/oms:birthDayPart,1,4)"/><xsl:text>.</xsl:text>
                                       <xsl:value-of select="substring(oms:_root/oms:birthDayPart,5,2)"/><xsl:text>.</xsl:text>
                                       <xsl:value-of select="substring(oms:_root/oms:birthDayPart,7,2)"/>
                                  </birthDate>
                             </xsl:when>
                             <xsl:otherwise>
                                  <birthDate xsi:type="xsd:string">
                                       <xsl:text>19</xsl:text>
                                       <xsl:value-of select="substring(oms:_root/oms:cpr,5,2)"/><xsl:text>.</xsl:text>
                                       <xsl:value-of select="substring(oms:_root/oms:cpr,3,2)"/><xsl:text>.</xsl:text>
                                       <xsl:value-of select="substring(oms:_root/oms:cpr,1,2)"/>
                                  </birthDate>
                             </xsl:otherwise>
                        </xsl:choose>
                        <firstName xsi:type="xsd:string">
                             <xsl:value-of select="oms:_root/oms:firstName"/>
                        </firstName>
                        <lastBusinessName xsi:type="xsd:string">
                             <xsl:value-of select="oms:_root/oms:lastName"/>
                        </lastBusinessName>
                   </validateCustomerCreditInput>
              </m:validatePrivateCustomer>
         </xsl:template>
         <xsl:template name="business">
              <m:validateCompanyCustomer xmlns:m="java:dk.tdc.apilink.logic.sessions.interfaces">
                   <validateCustomerCreditInput xsi:type="n1:ValidateCustomerCreditInput" xmlns:n1="java:dk.tdc.apilink.logic.datatypes">
                        <accountCategory xsi:type="java1:char" xmlns:java1="java:language_builtins">
                             <xsl:text>B</xsl:text>
                        </accountCategory>
                        <cvrNumber xsi:type="xsd:string">
                             <xsl:value-of select="oms:_root/oms:cvr"/>
                        </cvrNumber>
                   </validateCustomerCreditInput>
              </m:validateCompanyCustomer>
         </xsl:template>
    </xsl:stylesheet>

    I have written an UDF to determine the filename dynamicly:
    //write your code here
    String str = "SAPDATA-" + a + "ES" + ".xml";
    DynamicConfiguration conf = (DynamicConfiguration)
    container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey FileName = DynamicConfigurationKey.create("http:/"+"/sap.com/xi/XI/System/File","FileName");
    conf.put(FileName, str);
    return "";

  • Setting Additional JMS Parameters ...

    Hi experts,
    We are using PI 7.1 and I've set up a communication Channel using JMS Adapter to send
    messages to a Sonic MQ queue.
    I need to send some values as JMS parameters, two of which are constants and two are values
    from the Sender message. I tried defining and setting up the parameters with constants values
    in the Communication Channel under the Advanced tab by selecting the check-box
    set Adapter-specific Message Attributes as follows:
    Name          TYPE
    ContentType          String
    ReturnValue          boolean
    Name          VAlue
    Contenttype          CompanyCode
    ReturnValute          true
    This however lead to an error in the Adapter Engine (RWB).
    My problem is:
    1. Can anyone please instruct me as to how to go about defining and setting up
       additional JMS parameters?
    2. How to go about defining/setting up variables that will get their values from
       the sender message?
    Thanks & Cheers,
    Joe

    Hi,
    I am trying to send a file over FTPS (FTP using SSL/TLS) .
    But  it fails with the following error in RWB - Communication Channel monitoring:
    Error when getting an FTP connection from connection pool: com.sap.aii.af.lib.util.concurrent.ResourcePoolException:
    Unable to create new pooled resource: FTPEx: 'AUTH TLS': command not understood
    I running NW711_05 and my FTP Connection Parameters are as follows:
    Server:                                                                   OurServerName
    Port:                                                                          21
    Data Connection:                                                      Passive {even tried Active but got the same error}
    Timeout:                                                                    20
    Connection Security:                                                FTPS (FTP Using SSL/TLS) for control connection
    X Use X.509 Certificate for Client Authentication
    Keystore:                                                                 service_ssl
    X.509 Certificate and Private Key:                           ssl-credentials
    Do I need to do any specific configuration/settings on the receiving FTP-server side?
    kind regards,
    Joe

  • How to read JMS message properties from BPEL or BPMN process

    Hi all,
    I have a JMS Adapter that consumes messages from a remote ActiveMQ queue and I don't find the way the get the properties of the JMS message as I would like to map them in BPEL or BPMN process variable. I only manage to get the content of the message.
    I've also read that if using a MapMessage, one of the map entry can be mapped directly and that the other map entries go to jca.jms.Map.xxxx where xxxx is key of the map entry.
    But how can I map those "jca.jms.Map.xxxx" properties on process variables ? and how to map JMS Properties (that seem to be mapped on jca.jms.JMSProperty.xxxx) to process variables ?
    I use SOA Suite version : 11.1.1.4.0
    Thanks for your help

    SOA Suite 11g - how to set/get JMS headers ?

  • Trouble using JMS Message Selector and DCJMSMessageProperty0

    Hello Experts!
    My scenario is Mainframe => MQ => JMS Adapter => XI => SAP
    My MQ channel is communicating fine to XI and I've set the JMS adapter to JMS Compliant.
    I have multiple message types with consistent headers but varying data layouts that I need to route to different mapping objects. So it seems the best solution for this is JMS Message Selector based on reading a header value from one of the dynamic message properties.
    I've read SAP Notes and SAP Library and SDN Wiki articles about this configuration and I think its possible.
    http://help.sap.com/saphelp_nw04s/helpdata/en/10/b1b4c8575a6e47954ad63438d303e4/frameset.htm
    Note 856346 - J2EE JMS Adapter: Frequently Asked Questions (FAQ)
    Note 1086303 - XI JMS Adapter and IBM Websphere MQ: FAQ
    https://www.sdn.sap.com/irj/scn/wiki?path=/display/xi/usage%252bof%252bmessage%252bselector%252bfor%252bjms%252bsender%252badapter
    My mainframe sends an MQ message that includes some extra header information like
    field: ApplType  VALUE: 000000002                                              
    field: ApplName    VALUE: MIS056O          
    I configured my Communication Channel to set Adapter-Specific Message Attributes and also Additional JMS Message Properties to include ApplType and ApplName.
    However, I can only see some of the standard JMS header items such as CorrelationID, none of the additional ones.
    In RWB I see "JMS property 'ApplType' that corresponds to dynamic header 'DCJMSMessageProperty0' is missing from JMS message 'ID:f2f0f0f9f0f4f2f1f0f9f1f5f5f3f7f44040404040404040'; consequently it cannot be added to XI message 'e136a6e8-8580-4adc-2007-9ccab93f1ef4' as a dynamic header"
    Can anyone with some experience doing this help me see if I'm missing a trick somewhere? How can I see where this information is being dropped? Could it be when MQ is handing to JMS?
    Many thanks,
    Aaron

    After sifting through some IBM documentation I found that the PutApplName field actually maps to JMS name JMSXAppID. So after adding this to my Additional JMS Message Properties list I get the dynamic JMS message property I need for sorting out the messages.
    http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/topic/com.ibm.mq.csqzaw.doc/uj25450_.htm

  • Error in JMS message routing

    Hi,
    I am doing interface which send JMS messages to IDOC. JMS is sending three different messages (three XSD's) and I have created three separate interfaces as a below.
    A) Negative.xsd ; to IDOC1
    B) Positive.xsd ; to IDOC2
    C)Multiple.xsd ; to IDOC3
    When I get the Negative.xsd from JMS for the first time, Interface u2018Au2019 is executing and itu2019s creating IDOC1 successfully. When I get the Negative.xsd for the second time then the Interface u2018Bu2019 is executing (Instead of Interface u2018Au2019) and itu2019s trying to send Negative.xsd into IDOC2 and itu2019s getting fail.
    When we are getting all the three XSDu2019s at the same time then first interface u2018Au2019 is getting picked up and failed for the second (u2018Bu2019) and third (u2018Cu2019) interfaces and for first one is successful.
    Can you please guide me to pick the right interface?
    Regards,
    Kishore

    Hi, Kishore:
    In your situation, you need to configure Message Selector for your JMS sender adapter:
    1.  First you have to work with your JMS Queue system consultant, create a Property name, Saying "MsgType", its value is used to identify type of the message. e.g. the message of Positive Type put into the queue, its Property value "MsgType" can be set to "Positive"
    2.  In your JMS Communication Channel, Parameter Tab -> Advanced Tab, you need to Check " Adapter Specific Message Attribute"
    3. Then Check "Specify Additional JMS Message Properties
      Click "+" to add your property name, it should match the property name mentioned in step 1. e.g. "MsgType"
    4. In "Process" tab, you specify message Selector:
        e.g. MsgType = Positive"
    After you have done above step, this JMS adapter only pick message of the Property value "MsgType" equals to "Postive"
    You can create additonal JMS commnunication channels that polling from same queue, but only for different type of message: e.g. "Negative"
    Regards !
    Liang

  • JMS Message Property

    Hello Experts,
    we have a JMS to JMS scenario. A third party system sends a message to the JMS Queue (JMS Provider is the J2EE SAP Web AS, XI system). Via JMS Message Selector (configured the JMS Sender Adapter) the right integrationprocess get the message.The integrationsprocess sends the message to another JMS Queue. Because the integrationprocess have lost the JMS Header information (message properties) we configured the JMS Sender Adapter and the JMS Receiver Adapter to copy message properties. Described under help.sap.com:
    you want to set additional JMS message attributes, select Specify Additional JMS Message Properties (Maximum of 10).
    ·        In the table, enter the names of the JMS message properties whose values are to be included in the message header of the XI message.
    The technical names of the additional attributes are DCJMSMessageProperty0, DCJMSMessageProperty1, ..., DCJMSMessageProperty9.
    You can enter more than 10 properties in the table, but only the first 10 are taken into account.
    The attribute namespace for the adapter is http://sap.com/xi/XI/System/JMS.
    I debug and saw that the message properties was sucessfully copied to the header (receiver queue). But now if I use another selector the message will not found. It doesn't work with a third party system and with SAP XI (I've created another integrationsprocess, to read the queue)
    Thanks very much, for your help.
    Regards,
    Jürgen

    Hi there,
    there is a way (and a section somewhere in the help) to set adapter specific attributes in java mappings.
    The java doc for that can be found here:
    https://help.sap.com/javadocs/NW04/current/pi/index.html
    Hope that helps sbd who also has that prob.
    Cheers,
    Helge

  • Additional JMS Destination Attributes

    How can I associate additional attributes to an Administered Object in
              JNDI? Specifically, I want to add a JMS Destination (Queue) to the
              JNDI context. I want the Queue to also have 2 additional attributes
              for my application to process. The additional attributes I need to
              associate with the Administered Queue Object are: Reply-To-Queue and a
              boolean value (log message or don't log message).
              I went into the JNDI namespace (iPlanet Directory Server in this
              case), and manually added additional attributes in the
              javaReferenceAddress. The JMS API did not choke on this, but I can't
              figure out a way to expose this either.
              

    I found that if I in the JMS receiver queue tick Specify Additional JMS Message Properties (Maximum of 10) and provide the name JMSReplyTo and the value Sting I can collect the ReplyTo queue name via a parameter in the operation mapping and the value of that parameter I can set to the Dynamic Configuration variable DCJMSMessageProperty0 in a UDF like this:
    String x = container.getInputParameters().getString("replyToQueueName");
    DynamicConfiguration conf1 = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION) ;
    DynamicConfigurationKey key1 = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/JMS", "DCJMSMessageProperty0") ;
    conf1.put(key1, x);
    return "";

  • JMS Message Headers

    Hi,
    I have a IDOC -> SAP PI -> JMS scenario. JMS service is an External Party.
    I have to populate the JMS message Header with Fields like JMSType, Sender and Receiver. These fields will come from the IDOC. How to populate these?
    <JMSType>Notification</JMSType>
    <Sender>SAPR3</Sender>
    <Receiver>JMSService</Receiver>
    If I am not wrong, I have to make use of Dynamic Configuration and populate, but if I look at the available JMS ASMA, I am not able to decide how (which fields to use) to populate. Earlier I had done Dynamic Configuration for FILE and SOAP adapters.
    Thank you,
    Pankaj.
    Edited by: Pankaj Sharma XI on Oct 4, 2010 2:38 PM

    Hi Raj and Amol,
    Thank you for responding.
    anyway you can try to use dynamic configuration UDF, it will work.
    Yes I will do it using UDF.
    Add AF_Modules/DynamicConfigurationBean and set the value of the above
    If I use DynamicConfigurationBean, then the value will be static, the one which I fill in the Communication Channel. So I have to make use of UDF.
    What I think is:
    1) Create a UDF in message mapping with below logic:
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get
    (StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key1 = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/JMS","DCJMSMessageProperty0"); //also logic for Property1 and Property2.
    conf.put(key1,MessageType); //MessageType comes from IDOC.
    return "";  //no need to return a value.
    2) Create a Receiver JMS channel with below settings:
    Specify Additional JMS Message Properties
    Name - MsgType               Java Type - String
    Name - Sender               Java Type - String
    Name - Receiver               Java Type - String
    Now with the above settings I should (hopefully) get the headers like:
    <MsgType>AbcValidation</MsgType>
    <Sender>SAPR3</Sender>
    <Receiver>JMSReceiver</Receiver>
    I will try with the above configuration and update the thread accordingly. *If you feel that the approach is wrong/ incomplete, then
    please do respond.*
    Thank you,
    Pankaj.

  • JMS set additional properties

    I am using jms adapter and I would like to set additional jms properties.  I've checked "Set Additional Properties or replace default settings" in my comm channell and I've entered certain key/value combinations.  Unfortunately it does not work.
    Has anyone run into this problem.  Is there a solution.
    We are on SP 16.
    Thanks
    David

    David,
    <b>"additional jms properties"</b>
    do you mean JMS headers specific to your application?
    In that case,check <b>Correlation Settings</b> for the reciever adapter and the
    Set JMSProperty To
    Value the JMS property
    part of it.
    http://help.sap.com/saphelp_nw04/helpdata/en/10/b1b4c8575a6e47954ad63438d303e4/content.htm
    Rgds,
    Amol

Maybe you are looking for