How To Set JMS Message ID

Hi,
I am working for a client that uses a MQ Series as their interface routing infrastructure.  They have written some custom tools that log MQ messages.  Their tools expect the MQ message ID to be in a specific format YYYY_MM_DD_HHMMSS_AAAAAA where AAAAAA is a unique set of characters based on the millisecond.
Is it possible to set the JMS message ID on a JMS receiver adapter?
Thanks in advance for your help,
Craig

Hi Craig,
as it looks you have to set the Message Id in a special format. I am not sure if this is possible at all. I didn't find a way to influence how XI sets the JMS Message Id.
Maybe you could work with the JMS Correlation ID instead and have your client adapt his tools. You can use either a User-Defined Function or a Java Mapping, setting the so-called Adapter-specific attribute DCJMSCorreleationId
Here you can find an example how to do this in the User-Defined Function:
http://help.sap.com/saphelp_nw04/helpdata/en/43/03612cdecc6e76e10000000a422035/frameset.htm
In a Java Mapping it is similar:
http://help.sap.com/saphelp_nw04/helpdata/en/43/09b16006526e72e10000000a422035/frameset.htm
This example uses the File Adapter, but the same applies for the JMS Adapter.
The JMS Adapter has the namespace http://sap.com/xi/XI/System/JMS
Have a look at this one to find out more about the Adapter-specific attributes of the Receiver JMS Adapter:
http://help.sap.com/saphelp_nw04/helpdata/en/10/b1b4c8575a6e47954ad63438d303e4/frameset.htm
I hope that this information is of some help for you.
regards,
Peter

Similar Messages

  • How to set MQ message header properties using JMS adapter? (10.1.2)

    Hello,
    I am trying to send MQ messages from a BPEL process. We are using OAS 10.1.2 and JMS MQ adapter. Could you please let me know how to set the message descriptors like message format, type, report and reply to queue properties and queue open options (in jmsAdapterOutboundHeader).
    Regards,
    Geratayya

    put something like this
    <activationAgents>
          <activationAgent className="oracle.tip.adapter.fw.agent.jca.JCAActivationAgent" partnerLink="PARNERLINKNAME">
            <property name="clusterGroupId">SOMEUNIQUEVALUE</property>
            <property name="portType">PARTNERLINK_PORTTYPE</property>
          </activationAgent>
        </activationAgents>

  • TS2755 Hi all, I bought one iphone and 3 ipads, i set up all on one apple ID. Now i have a problem when using messages: when sending message from one device it appears again on screen from the other 3 devices. I need help of how to set up messages on each

    Hi all, I bought one iphone and 3 ipads, i set up all on one apple ID. Now i have a problem when using messages: when sending message from one device it appears again on screen from the other 3 devices. I need help on how to set up messages on each device separately and to start using messages app on each device independently. Thanks

    search google for "iphone remove picture from contact"

  • How to set the message in the status bar...

    hai,
    how to set the message in the status bar...
    let us say "inserted data successfully, or opening page followed  by the link clicked on the screen....."
    kindly help me out

    sunil,
    do not use advise by Ashutosh with WebDynpro.
    Instead of placing message into browser status bar (and browser is not the only WD UI agent), use IWDMessageManager API to post messages of such kind:
    wdComponentAPI.getMessageManager().reportSucces("Record inserted"); 
    VS

  • How to acknowledge JMS messages manually in BPEL

    How to acknowledge JMS messages manually in BPEL?
    Thanks!

    If Oracle BPEL/SOA Dev team is watching this form then please add this feature as all the major vendors support this.

  • 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 ?

  • How to set JMS clients to use JVM Invocation layer

    Hi,
    I'm not sure if this JBoss specific (but I'm assuming it's not) so I'll be asking it here. How can I set my JMS clients and Message-Driven Beans to use JVM Invocation layer since the clients and queues will reside in the same JVM.
    Thanks in advance.

    May be that explains why I couldn't successfully integrate ActiveMQ with JBoss. I was using the 3.0 version. I'll try again once I find the time.
    Anyway, do you know how to set JBoss JMS clients and MDBs to use JVM invocation or transport layer instead of UIL2?
    I'm not sure if what I've done is correct But here's what I've done.
    For jvm-il-service.xml, I changed the JNDI reference from "ConnectionFactory" to "JVMILConnectionFactory" since the default service uses "ConnectionFactory". Then I used that reference as my JNDI look up in my JMS client. I'm just not sure how to do this with MDBs. I think I should add an entry in the ejb descriptor file but I need someone to confirm.
    Thanks.

  • How  to Set JMS property and Read JMS property in BPEL using JMS adapter

    Does any one know how to set or read more than one JMS property in BPEL using JMS adapter. My queue server is Oracle JMS server.
    Any help and sample is well appreciated

    Hi Van
    I have noted that only the attribute "type" is missing. It seems that when you create a "string" property, the attribute "type" is droped from the XML. If you use another type (as "integer" or "double") it stays there.
    If you try to read your properties, except for the "type" attribute, you should be successful, as I am. If you need, please tell me your email, I can send you my code.
    Source Code:
    in ASSIGN activity (process which SENDS the JMS message):
    <assign name="TESTES">
    <copy>
         <from expression="'string'"/>
         <to variable="HeaderJms" part="outboundHeader"
         query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundProperties/ns5:Property[1]/@type"/>
    </copy>
    <copy>
         <from expression="'name'"/>
         <to variable="HeaderJms" part="outboundHeader"
         query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundProperties/ns5:Property[1]/@name"/>
    </copy>
    <copy>
         <from expression="'value1'"/>
         <to variable="HeaderJms" part="outboundHeader"
         query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundProperties/ns5:Property[1]/@value"/>
    </copy>
    <bpelx:append>
         <bpelx:from>
         <Property name="" type="" value=""
              xmlns="http://xmlns.oracle.com/pcbpel/adapter/jms/"/>
         </bpelx:from>
         <bpelx:to variable="HeaderJms" part="outboundHeader"
              query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundProperties"/>
    </bpelx:append>
    <copy>
         <from expression="'string'"/>
         <to variable="HeaderJms" part="outboundHeader"
         query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundProperties/ns5:Property[2]/@type"/>
    </copy>
    <copy>
         <from expression="'name2'"/>
         <to variable="HeaderJms" part="outboundHeader"
         query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundProperties/ns5:Property[2]/@name"/>
    </copy>
    <copy>
         <from expression="'value2'"/>
         <to variable="HeaderJms" part="outboundHeader"
         query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundProperties/ns5:Property[2]/@value"/>
    </copy>
    </assign>
    in ASSIGN activity (process which READS the JMS message)
    <assign name="Assign_1">
    <copy>
    <from variable="Variable_1" part="inboundHeader"
    query="/ns3:JMSInboundHeadersAndProperties/ns3:JMSInboundProperties/ns3:Property[10]/@name"/>
    <to variable="temp"/>
    </copy>
    <copy>
    <from variable="Variable_1" part="inboundHeader"
    query="/ns3:JMSInboundHeadersAndProperties/ns3:JMSInboundProperties/ns3:Property[10]/@value"/>
    <to variable="temp"/>
    </copy>
    <copy>
    <from variable="Variable_1" part="inboundHeader"
    query="/ns3:JMSInboundHeadersAndProperties/ns3:JMSInboundProperties/ns3:Property[12]/@name"/>
    <to variable="temp"/>
    </copy>
    <copy>
    <from variable="Variable_1" part="inboundHeader"
    query="/ns3:JMSInboundHeadersAndProperties/ns3:JMSInboundProperties/ns3:Property[12]/@value"/>
    <to variable="temp"/>
    </copy>
    </assign>
    Note that I do not try to read the "type" attribute, otherwise it will fail.
    Here is the JMS Header Message received:
    <inboundHeader>
    <JMSInboundHeadersAndProperties xmlns="http://xmlns.oracle.com/pcbpel/adapter/jms/">
    <JMSInboundHeaders>
    <JMSCorrelationID>
    bpel://localhost/pi_lms-c001e/BpelPiAtualizacaoC001E~1.0/3200025-BpInv0-BpSeq1.6-2
    </JMSCorrelationID>
    <JMSDeliveryMode>2</JMSDeliveryMode>
    <JMSExpiration>0</JMSExpiration>
    <JMSMessageID>ID:467DFA1FA1ED459EBF37F51F596C3F12</JMSMessageID>
    <JMSPriority>4</JMSPriority>
    <JMSRedelivered>false</JMSRedelivered>
    <JMSType>com.mercurio.lms.integration.c001eip.c001EIntegrationPoint</JMSType>
    <JMSTimestamp>1201552046253</JMSTimestamp>
    </JMSInboundHeaders>
    - <JMSInboundProperties>
    <Property name="JMSXDeliveryCount" type="integer" value="1"/>
    <Property name="JMSXRecvTimestamp" type="long" value="1201552046698"/>
    <Property name="JMSXUserID" value="lms_dev_int_v1_user"/>
    <Property name="JMS_OracleDeliveryMode" value="2"/>
    <Property name="JMS_OracleTimestamp" type="long" value="1201552046253"/>
    <Property name="JMS_OracleDelay" type="long" value="0"/>
    <Property name="JMSXState" type="integer" value="0"/>
    <Property name="IAS_VERSION" value="10.1.3"/>
    <Property name="JMS_OracleDeliveryMode" value="2"/>
    <Property name="name" value="value1"/> ("type" attribute was droped!!!)
    <Property name="JMS_OracleTimestamp" type="long" value="1201552046253"/>
    <Property name="name2" value="value2"/> ("type" attribute was droped!!!)
    </JMSInboundProperties>
    </JMSInboundHeadersAndProperties>
    </inboundHeader>
    Regards
    Marcelo

  • How to send JMS message from oracle to weblogic

    Hello,
    I am facing with a problem of sending jms message from oracle to weblogic. I am using oracle 10g and weblogic server 9.1. Here is the problem. I would like to create a trigger to send JMS message to weblogic server whenever there is an update in oracle database. So I created a java class that will send a jms message to weblogic server. But in that class I use the jndi from weblogic: weblogic.jndi.WLInitialContextFactory
    when I use the loadjava utility to load that class into oracle, the status of that class is invalid though this class is working fine in eclipse with the weblogic.jar included. I was thinking because the jndi from weblogic needs the weblogic.jar in order to work, then I loaded that jar file into oracle (it took about 20 minute to load everything) and everything loaded into oracle from that jar file is invalid and missing some reference.
    So my question is: how do I send a jms message from oracle to weblogic using a java class with the right jndi?
    Any help will be appreciated.
    Thanks
    TL

    It should be quite straightforward to do this. As stated you need weblogic.jar in your classpath, then use 100% standard JMS calls to publish.
    Ensure that you set the following properties before getting your initial context:
    java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
    java.naming.provider.url=t3://node:7001 (or whatever)
    this will ensure that the correct JMS implementation classes are invoked.
    You can't easily (without some mucking around) build a test implementation in an AQ environment and then deploy to WebLogic because in AQ you don't tend to use JNDI lookups (unless you've implemented oracle JNDI etc) but rather use non standard factory class to create connections etc.

  • How to set error message inside the loop...module pool

    Dear all,
         Am creating Table Control without wizard. In that i am looping the values, that is, Once if i entered 5 digit values means, 12345-08... the values should be stored in z-table like this 12345,12346,12347,12348 . That is 5-8 it as to update in z table. for this i createdloop at itab and inside that i written a code to count the value and all. and also its clearly updating the value in ztable too. now i want to know, if once again i entered the same value means, like 12345-08.. it as to show error messge.I dont know how to set the condition with error message inside the single loop .... Its all comes under module pool program.
    Thanks,
    Santhosh.R

    If i understood your doubt, here goes the answer.
    LOOP AT itab INTO wa_itab.  " This is your loop
      l_tabix = sy-tabix. "l_tabix receives the line of the loop
      READ TABLE itab WITH KEY itab = wa_itab.  "itab is the same tab of your loop
      IF sy-subrc EQ 0 AND l_tabix NE sy-tabix.    "Here the sy tabix have the value of the read table.
    *     Here you do your error treatment.
      ENDIF.
    ENDLOOP.
    Explanation: When you are looping your internal table, you use a READ TABLE to see the already recorded registers. If the read table finds one register (sy-subrc EQ 0) and the this register is not the one of the current line (l_tabix NE sy-tabix). It means you have a duplicated register.
    Maybe there is someway easier to do this, but this is what i thought now.
    I hope this was your doubt hehe.
    Thales Schmidt

  • How to set JMS user property in JMS Adapter.

    I am using Jdeveloper and SOA 11g. I want to filter some JMS messages from a topic based on a JMS user property. It is consumed using (JMS Adapter) consumer --> Mediator---> DBAdapter.
    My Question is how to define a JMS user property using Jdeveloper 11g.
    Thanks
    Edited by: user5108636 on 24/06/2010 16:10

    In Mediator mplan Assign Values use a property expression in the "to" side like:
    jca.jms.JMSProperty.XXX
    where XXX is the name of the property you would like to have created and populated. In source it will look like:
    <Mediator name="A03QueueWFeedMediator" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.oracle.com/sca/1.0/mediator"
    wsdlTargetNamespace="http://www.oracle.com/integration/b2b/A03QueueWFeedFromB2B/">
    <operation name="receive" deliveryPolicy="AllOrNothing" priority="4"
    validateSchema="false">
    <switch>
    <case executionType="direct" name="A03QueueWFeedToJMS.Produce_Message">
    <action>
    <transform>
    <part name="$out.body"
    function="xslt(xsl/ADT_AXX_To_ADT_AXX.xsl, $in.body)"/>
    </transform>
    <assign>
    <copy target="$out.body/imp1:ADT_AXX/imp1:MSH/@Type"
    value="$in.property.b2b.documentDefinitionName"
    xmlns:imp1="NS_64FCBED013AA409D933F624674E67BF220070423183755"/>
    <copy target="$out.body/imp1:ADT_AXX/imp1:MSH/@ID"
    value="$in.property.b2b.fromTradingPartnerId"
    xmlns:imp1="NS_64FCBED013AA409D933F624674E67BF220070423183755"/>
    <copy target="$out.body/imp1:ADT_AXX/imp1:MSH/@Name"
    value="$in.property.b2b.toTradingPartnerId"
    xmlns:imp1="NS_64FCBED013AA409D933F624674E67BF220070423183755"/>
    <copy target="$out.property.b2b.conversationId"
    value="$in.property.b2b.conversationId"/>
    <copy target="$out.property.b2b.documentDefinitionName"
    value="$in.property.b2b.documentDefinitionName"/>
    <copy target="$out.property.b2b.documentProtocolName"
    value="$in.property.b2b.documentProtocolName"/>
    <copy target="$out.property.b2b.documentProtocolVersion"
    value="$in.property.b2b.documentProtocolVersion"/>
    <copy target="$out.property.b2b.documentTypeName"
    value="$in.property.b2b.documentTypeName"/>
    <copy target="$out.property.b2b.fromTradingPartnerId"
    value="$in.property.b2b.fromTradingPartnerId"/>
    <copy target="$out.property.b2b.fromTradingPartnerIdType"
    value="$in.property.b2b.fromTradingPartnerIdType"/>
    <copy target="$out.property.b2b.toTradingPartnerId"
    value="$in.property.b2b.toTradingPartnerId"/>
    <copy target="$out.property.b2b.toTradingPartnerIdType"
    value="$in.property.b2b.toTradingPartnerIdType"/>
    *<copy target="$out.property.jca.jms.JMSProperty.conversationId"*
    value="$in.property.b2b.conversationId"/> <copy target="$out.property.jca.jms.JMSProperty.documentDefinitionName"
    value="$in.property.b2b.documentDefinitionName"/>
    <copy target="$out.property.jca.jms.JMSProperty.documentProtocolName"
    value="$in.property.b2b.documentProtocolName"/>
    <copy target="$out.property.jca.jms.JMSProperty.documentProtocolVersion"
    value="$in.property.b2b.documentProtocolVersion"/>
    <copy target="$out.property.jca.jms.JMSProperty.documentTypeName"
    value="$in.property.b2b.documentTypeName"/>
    <copy target="$out.property.jca.jms.JMSProperty.fromTradingPartnerId"
    value="$in.property.b2b.fromTradingPartnerId"/>
    <copy target="$out.property.jca.jms.JMSProperty.fromTradingPartnerIdType"
    value="$in.property.b2b.fromTradingPartnerIdType"/>
    <copy target="$out.property.jca.jms.JMSProperty.toTradingPartnerId"
    value="$in.property.b2b.toTradingPartnerId"/>
    <copy target="$out.property.jca.jms.JMSProperty.toTradingPartnerIdType"
    value="$in.property.b2b.toTradingPartnerIdType"/>
    </assign>
    <invoke reference="A03QueueWFeedToJMS" operation="Produce_Message"/>
    </action>
    </case>
    </switch>
    </operation>
    </Mediator>
    The runtime will see something like:
    [2010-09-09T11:48:06.353+10:00] [AdminServer] [TRACE] [] [oracle.soa.adapter] [tid: weblogic.work.j2ee.J2EEWorkManager$WorkWithListener@60ddbc76] [userId: weblogic] [ecid: 0000Ifo9olH2zGWjLxmJOA1CY0sg0001jY,0] [SRC_CLASS: oracle.integration.platform.blocks.adapter.fw.log.LogManagerImpl] [APP: soa-infra] [dcid: 02d1ff4621073810:26418f01:12af379c141:-7fd3-0000000000000219] [SRC_METHOD: log] Jms Adapter A03QueueWFeed:A03QueueWFeedToJMS [ Produce_Message_ptt::Produce_Message(body) ] XMLHelper_convertJmsMessageHeadersAndPropertiesToXML: <JMSInboundHeadersAndProperties xmlns="http://xmlns.oracle.com/pcbpel/adapter/jms/">[[
    <JMSInboundHeaders>
    <JMSCorrelationID></JMSCorrelationID>
    <JMSDeliveryMode>2</JMSDeliveryMode>
    <JMSExpiration>0</JMSExpiration>
    <JMSMessageID>ID:&lt;911867.1283996886119.0></JMSMessageID>
    <JMSPriority>4</JMSPriority>
    <JMSRedelivered>false</JMSRedelivered>
    <JMSType></JMSType>
    <JMSTimestamp>1283996886119</JMSTimestamp>
    </JMSInboundHeaders>
    <JMSInboundProperties>
    <Property name="documentProtocolVersion" value="2.3"/>
    <Property name="toTradingPartnerIdType" value="Name"/>
    *<Property name="conversationId" value="C0A83C0712AF42D840E0000074BA3CCC"/>* <Property name="documentTypeName" value="ADT"/>
    <Property name="tracking_conversationId" value="C0A83C0712AF42D866F0000074BA3CD9"/>
    <Property name="tracking_ecid" value="C0A83C0712AF42D866F0000074BA3CDA"/>
    <Property name="tracking_compositeInstanceId" value="60019"/>
    <Property name="documentProtocolName" value="HL7"/>
    <Property name="documentDefinitionName" value="QH_ADT_Generic"/>
    <Property name="tracking_parentComponentInstanceId" value="mediator:45E076D0BBB411DFAF05817F5F0DD1A1"/>
    <Property name="fromTradingPartnerIdType" value="Name"/>
    <Property name="fromTradingPartnerId" value="HOMER"/>
    <Property name="toTradingPartnerId" value="Self"/>
    <Property name="JMSXDeliveryCount" type="integer" value="1"/>
    </JMSInboundProperties>
    </JMSInboundHeadersAndProperties>
    Edited by: Michael.Czapski on 8/09/2010 18:58

  • How to send JMS Message from a BPM Process

    Hi All
    I have small query regarding sending JMS Message from a bpm process. Is it possible to send JMS message from one bpm process to another bpm process.
    I have a scenario in which I need to send a JMS message to a queue where another process is listening on that queue and as soon as the message is received on the queue the process instance is created.
    I know how to listen for the JMS message on the queue, but I don't how to send a JMS message from a process.
    Also Can I create process by sending the Notification to the process instead of a JMS message. But the process to be created is not a subprocess i.e. Can notification be send accross different processes.
    Any information or example in this regard would be helpful.
    Thanks in advance
    Edited by: user9945154 on Apr 22, 2009 7:46 PM

    Hi,
    Here's one approach to sending JMS messages from an Oracle BPM process. If you're doing this just to send a message into another process, do not take this approach. It's far easier and quicker if you do this using the OOTB "send notification" logic.
    These steps describe how to do this using WebLogic. The steps would be different if you're using another ap server / JMS provider.
    1. Guessing you've already done this, but first expose the two required WebLogic jar files for JMS messaging as Java components in the External Resources. The two files for WebLogic are weblogic.jar and wljmsclient.jar” (located in the < WebLogic home directory > /weblogic/server/lib” directory).
    AquaLogic BPM JMS Queue Listener for WebLogic 8.1
    2. You've probably already done this, but add an External Resource to represent the J2EE container:
    • Name: “weblogicJ2EE” - this is important and will be used in the next step
    • Supported Type: “GENERIC_J2EE”
    • Initial Context Factory: “weblogic.jndi.WLInitialContextFactory”
    • URL: “t3://localhost:7001”
    • Principal: and Credentials: whatever userid and password you defined to access theWebLogic administrative console.
    3. Create the External Resource that represents the send queue configuration. In this example, I'm calling it “WebLogic Send Queue”. This is important - remember what you named it because you will use this name in the logic that sends the JMS message. This new External Resource is configured as:
    • J2EE: “weblogicJ2EE” (same name as the second External Resource you created)
    • Destination Type: “QUEUE”
    • Lookup Name: “weblogic.examples.jms.exampleQueue”
    • Connection Factory Lookup Name: “weblogic.examples.jms.QueueConnectionFactory”
    4. Here's the logic to send a Message to the Queue
    <pre class="jive-pre"><p />msg as String = "Hello World"
    jmsMsg as Fuego.Msg.JmsMessage
    msg = "<?xml version=\"1.0\"?><Msg>" + msg + "</Msg></xml>"
    jmsMsg = JmsMessage(type : JmsMessageType.TEXT)
    jmsMsg.textValue = msg
    sendMessage DynamicJMS
    using configuration = "WebLogic Send Queue",
    message = jmsMsg</pre>
    Note that the “sendMessage” method uses the configuration parameter “WebLogic Send Queue”. You previously created a JMS messaging service External Resource with this name in the third step.
    Again, please don't go this route if you're just using it to send notifications between processes,
    Dan

  • Setting JMS Message header and properties in JMS Adapter ESB Component

    Hi,
    I am new to using some of these adapters in Oracle ESB and need some help.
    I am trying to define a JMS Publisher using JMS Adapter component in JDeveloper. I would like to publish messages with message property set to a topic. I dont find a way to do that.
    I see that for consuming JMS messages, the JMS Adapter allows to specify message selector but I could not find a way for producing message with a user defined message property. I would like to use that property in the message selector to filter messages and consume.
    I am using Oracle SOA Suite 10.1.3.3.x
    Can someone help please?
    Thanks.

    Thanks for the response.
    I think I found the solution although I havent tried it out yet.
    ESB sample 110.JMStoJMSHeaders outlines the approach.
    It is my understanding that JMS Message selector can work on JMS header or JMS properties (user defined) but not on JMS body. (All the three constitue a JMS message). Hence the need to set a JMS property prior to publishing the message to a topic/queue.
    Thanks.

  • 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 "";

  • ALDSP 3.2 - How to create JMS message from ALDSP

    Is there a way to write a jms message from ALDSP?
    I want to be able to perform database updates to a database and also write a message to queue in a transaction.
    Thanks

    As per my understanding only one resource can be non-transactional. In this case it would be the Web Service.If you have n data sources and the first n-1 are transactional and the nth one is not - if you update the first n-1 successfully, and the nth one fails - then you just throw an exception and the updates to the n-1 data sources get rolled back. If an update to one of the n-1 data sources fails you throw an exception and the update to the nth data source never happens. In your case, it's up to you to ensure the updates are executed in the correct order (how you write your XQSE procedure).
    Will the call to write a jms message from a Java function in ALDSP participate in the database transaction? DSP doesn't suspend the current transaction when calling a Java function. So yes, the JMS call would participate in the same transaction as the database call.
    If you want to dump out the transactionId in your java function in the same format as it appears in the DSP Audit, you can use :
    public String byteArrayToHexString(byte in[]) {
    StringBuffer out = new StringBuffer(in.length * 2 + 2);
    out.append("0x");
    for(int i = 0; i < in.length; i++) {
    byte ch = 0x00;
    ch = (byte) (in[i] & 0xF0);
    ch = (byte) (ch >>> 4);
    ch = (byte) (ch & 0x0F);
    out.append(HEX[(int) ch]);
    ch = (byte) (in[i] & 0x0F);
    out.append(HEX[(int) ch]);
    return out.toString();
    }

Maybe you are looking for

  • Can't get video chat to work outside of LAN...

    Hello, I can't get video chat to work. All computers, LAN and WAN are running the latest iChat under 10.4 (including latest updates). Within our LAN, via Bonjour, everything is fine. I'm now trying to set up an offsite Intel iMac (10.4) and I can't c

  • My ipod broke, can i transfer songs from hard drive to another ipod or comp

    Yea just like the topic says, my ipod's screen broke but the harddrive is still good and i have another ipod video 30 GB, is it possible for me to transfer the old ipod's files into the new ipod? I know how to open it and all but i dont know if the n

  • ITunes 6.0.2 clips music at end

    iTunes 6.0.2 is clipping music at the end of MP3 files by 1-2 seconds. This has not happened before but is consistent on both a G4 iMac and an Intel iMac and for different songs. Playing the same file in the finder's preview does not cut off. The Cro

  • Good monitor to use with iPad Air

    Any body have their favorite  monitor to use with iPad Air?

  • Wheres the N95-3 firmware upgrade to match N95-1 v...

    I have a N95-1 with v20 firmware and the changes in the camera software are like night and day as far as speed and operability of the camera.. Now I own a N95-3 and it is still on v11 firmware. The camera software is old and archaic worse then the or