Message Selector and Setting JMS Header Properties PL/SQL Enqueue

Currently I am attempting to use the Message selector functionality. I just know know exactly how we need to set the property in PL/SQL when enqueuing. I also want to verify the syntax that I should use in the event that I am doing this incorrectly...
The code I am using to test the enqueue is
declare
enqueue_options dbms_aq.enqueue_options_t;
message_properties dbms_aq.message_properties_t;
message_handle RAW(16);
agent sys.aq$_agent := sys.aq$_agent('', null, null);
message sys.aq$_jms_text_message;
recipients DBMS_AQ.aq$_recipient_list_t;
BEGIN
message := sys.aq$_jms_text_message.construct;
message.set_text('<ORDER><HEADER_ID>16992531</HEADER_ID></ORDER>');
message.header.set_string_property('bamfilter','ORDER_ENTRY');
dbms_aq.enqueue(queue_name => 'XX_OM_MONITOR_Q',
enqueue_options => enqueue_options,
message_properties => message_properties,
payload => message,
msgid => message_handle);
COMMIT;
END;
we have tried a few other methods, but still to no avail...
the syntax I believe for the selector in the ems should be bamfilter='ORDER_ENTRY'
Any help would be great.
The DB the Queue is locate is on 10g if that makes any difference...

Yes
I am able to specify JMS Header and JMS Properties when producing a message. However I am not able to user "Message Selector" to filter messages based on JMS Properties information when consuming messages.
In the link you provide, there is an example on how to use Message Selector:
# (a copy from the link)
Message Selector
...for example, you can enter logic, such as:
* JMSType = 'car' AND color = 'blue' AND weight > 2500
* Country in ('UK', 'US', 'France')
I believe the example with "Country" is exactly what I need, but I can´t get it work.
I create the same example above, setting a property named "Country" in the JMSHeader, sending the message to a JMS Queue (BPEL Process #1) and try to comsume it on the Message Selector (BPEL Process#2), but JMSAdapter never consumes the message.
Thanks for your help.

Similar Messages

  • How to set JMS Header Property without using DynamicConfiguration.

    Hi,
    My Scenario is: PDF File -->XI -->JMS
    I need to send the PDF file as it is to JMS receiver, which shouldn't be a problem. The problem is I need to set the same file name in the Receiver JMS header property.
    So to do this I am using DynamicConfiguration in message mapping but when File Adapter picks the PDF file (as it is) I get the run time mapping error which is quite obvious since message mapping expects the data in xml format.
    Do you have any idea if I can avoid the message mapping and set the Dynamic Configuration somewhere else (not sure if java mapping can help here) or if there is some Module available to set file name in JMS header.
    Note: PDF File name is dynamic.
    Thanks!

    I am on XI 3.0. I am not good in java.. can someone give an example?
    Update:-
    I have done some changes to my code and now it is working for me. Since I don't have much knowledge in Java (except writing UDFs )so don't know how good this coding is but defiantly this is my first step to learn Java APIs. Thanks to everyone for their comments & suggestions!!
    If any improvement in below code can be done please let me know.
    package com.sap.xi;
    import com.sap.aii.mapping.api.*;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.HashMap;
    import java.util.Map;
    import com.sap.aii.mapping.api.StreamTransformation;
    import com.sap.aii.mapping.api.StreamTransformationException;
    import org.xml.sax.helpers.DefaultHandler;
    public class JMSHeaderMapping extends DefaultHandler implements StreamTransformation{
       private Map param;
        public void setParameter(Map map)//to access message header data during runtime
            param = map;
            if(param == null)
            param = new HashMap();
        public void execute(InputStream in, OutputStream out)  //This method is used to run the mapping
        throws StreamTransformationException
                DynamicConfiguration dynamicconfiguration = (DynamicConfiguration)param.get("DynamicConfiguration");
                DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File", "FileName");
                String MyFileName = dynamicconfiguration.get(key);
               DynamicConfigurationKey key1 = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/JMS","DCJMSMessageProperty0");
            dynamicconfiguration.put(key1, MyFileName);
            byte[] inbyte = null;
            try {
        // convert InputStream into byte stream
              int bufsize = in.available();
              inbyte = new byte[bufsize];
              in.read(inbyte);
        // convert byte stream into OutputStream         
              out.write(inbyte);
            catch (Throwable t){
             t.printStackTrace();
    Edited by: Sarvesh Singh on May 9, 2011 8:47 PM

  • 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

  • JMS header properties are null

    Hi all,
    At sending messages to the internal WLI event queue from a client application
    I get the following problem:
    I set a application specific jms header property via the setStringProperty method.
    An event node in the receiving workflow extracts the property with EventAttribute.
    The event node gets the message but the header property is always null. I tried
    various sorts of property names, none of them works. Only the real jms header
    names which are set by the send method give non null values, but I cannot set
    these in the client application.
    Any ideas?

    Hi All,
    I have got it working here is how i did it.
    - transport header add a user defined name and value, it get added to outbound transport header.
    - at receiving end. retrieve it using for/each loop for inbound header user properties.
    Regards,
    Amit

  • Need help to check multiple conditions and set AD user properties

    hello All,
    I have a data csv sheet where information as follows, using below information I need to update AD account attributes based on below conditions . I have full right and I can set any user properties. So this is not access right issue.   
    samaccountname,Othertelephone,language,employeeId
    abcd                      XXXXXXXXX     EN         SMS
    Now I need to check following conditions:
    Othertelephone =  if this should not be blank ,if so display message " filed is blank " and no changes should allowed in further attributes and  it should abort
    language= this field should only contain  EN or FR value if No display msg " error in language field " and no further changes to  the user attributes and it should abort
    employeeID= this field should only contain OTP or SMS value if Not filled display msg " error in Employee ID field " No further changes to the user attributes and it should abort
    changes to user will permit  when all attributes is filled. I do the testing taking samaccountname , othertelephone and employeeId into consideration but it did not helped. Getting error
    THIS is complete Code Of my Task where you need my focus on conditions
    group=Get-QAdGroup -SearchRoot  "domain/vpn group"
    Import-Csv D:\VPN.csv |
    ForEach-Object{
    if ($_.samaccountname -eq "")
       Write-Host "SAMACCOUNTNAME is blank"   -fore red
    else
     $user=Get-QAduser $_.samaccountname
    if ($user.memberof -contains  $group.DN)
     Write-Host "$($_.Samaccountname) user is allready a member" -fore red
    else
     Add-QADGroupMember $group $_.Samaccountname
    If ($_.othertelephone -eq "")
    Write-Output "$($_.samaccountname) telephone Number is blank"
    else
    if ($_.EmployeeID -notmatch 'OTP' -and 'SMS')
    Write-Output "$($_.samaccountname) EmployeeID field is not correctly field")
    Else
    Set-QADUser $_.SamAccountName -ObjectAttributes @{telephonenumber=$_.othertelephone;EmployeeID=$_.EmployeeID}
    error
    Set-QADUser : Access is denied.
    At C:\Users\g512263\AppData\Local\Temp\5f8facb6-f942-4c3d-b924-8953d9a706da.ps1:37 char:8
    +                    Set-QADUser $_.SamAccountName -ObjectAttributes @{telephonenumber=$_.othe ...
    +    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (:) [Set-QADUser], UnauthorizedAccessException
        + FullyQualifiedErrorId : System.UnauthorizedAccessException,Quest.ActiveRoles.ArsPowerShellSnapIn.Powershell.Cmdlets.SetUserCm
       dlet

    <title>Untitled - PowerGUI Script Editor</title>
    Hello JRV,Thank you for your time, There is no comma in my csv file , I double check. below I wrote a simple code.I removed all the conditions and just try to set the EmployeeID and it is working fine with same file.But as soon as I add conditions it gives access denied. as well as if I remove employee Id from your previous code and only try to set telephone No. still it gives access denied.I am just trying to figure out what is causing this.
    $group=Get-QAdGroup -SearchRoot "com/Group"
    Import-Csv D:\VPN.csv |
    ForEach-Object{
    if ($_.samaccountname -eq ""){
    Write-Host "SAMACCOUNTNAME is blank" -fore red
    }else{
    $user=Get-QAduser $_.samaccountname
    if ($user.memberof -contains $group.DN){
    Write-Host "$($_.Samaccountname) user is allready a member" -fore red
    }else
    Add-QADGroupMember $group $_.Samaccountname
    If ($_.othertelephone -ne "")
    Set-QADUser $user.SamAccountName -ObjectAtt Aributes @{telephonenumber=$_.othertelephone}
    } else
    Write-Output "$($_.samaccountname) phonenumber is blank"
    If ($_.EmployeeID -ne "")
    Set-QADUser $_.SamAccountName -ObjectAttributes @{EmployeeID=$_.EmployeeID}
    }else
    Write-Output "$($_.samaccountname) EmployeeID field is blank"
    If ($_.Preferredlanguage -ne "")
    Set-QADUser $_.SamAccountName -ObjectAttributes @{Preferredlanguage=$_.preferredlanguage}
    } else
    Write-Output "$($_.samaccountname) PreferredLanguage field is blank"

  • How to separate single iView to several and setting its' access properties?

    Hello again!
    Well now I create a single iView from my Web Dynpro application and it's work properly. My app based on CarRentalTutor but cities and vehicles for bookings saved in its' own tables.
    View structure of my app for single view:
    window:
    |----view with only TabStrip
    |--|--1st tab has a ViewContainerUIElement:
    |--||--view with bookings list
    |--||--view wich represents form for add/edit one booking
    |--|--2nd tab has a ViewContainerUIElement:
    |--||--view with cities list
    |--||--view wich represents form for add/edit one city
    |--|--3rd tab exactly like 2nd but for vehicles
    Tasks:
    1) I need create 2 iViews: one for booking list and form for add/edit and second with TabStrip with 2 tabs (for cities and vehicles).
    2) create different roles for diff users - for example, one user can be only view a list of cities & vehicles; second can edit this data; 3-rd can adding bookings and so on. The question is: where I can make an appropriate settings?
    For 1-st task I tried to do follow:
    Create new structure:
    window:
    |----view with only TabStrip
    |--|--1nd tab has a ViewContainerUIElement:
    |--||--view with cities list
    |--||--view wich represents form for add/edit one city
    |--|--2rd tab exactly like 2nd but for vehicles
    |----view with only ViewContainerUIElement (marked as default):
    |--|--view with bookings list
    |--|--view wich represents form for add/edit one booking
    Doing step 6 from http://help.sap.com/saphelp_nw04s/helpdata/en/44/a765695df67037e10000000a422035/frameset.htm
    Of course redeploy the app.
    Creating new iView in portal, choose Create one iView from each application view, select my app and have no views to add
    What was be wrong?
    Regards,
    Lev

    Hello, Sharadha
    Yes, I have noticed about it. But I run my app inside the portal and need to have a multiple iViews.
    Well let's try to do it with easy example: I have 2 views (call it "content views") contains only labels (for simplicity) and want to create 2 iViews - one for every of content views (hope this was clear)
    Steps, wich I made:
    1) create another 2 views (call it "root views"), wich have only ViewControllerUIElement containers
    2) embed content views in these containers - one view per container. So I've got followed structure: root view #1 with embedded content view #1 and root view #2 with content view #2. One of the root views is default
    3) set application property sap.canBeSplitInIViews to true
    4) deploy app
    5) in the portal go new iView->Web Dynpro Java application->Create one iView from each application view. Next I select my app, expand it and see only one view wich have default property set to true, but want to see all views...
    (if I set default property to false for all root views then I see anything in the last step)
    Please check this list for mistakes... I'm going crazy with it

  • JMS Message Selector on Message Payload

    Hi,
    I have a requirement where in;
    A JMS adapter consumes messages from an AQ JMS Topic. We need to make selective dequeue from the Topic. Is that possible to make use of the message selector option on the 'message payload'?
    Message selector works on JMS Header and Properties as far as I know.
    Any insight on this would be of great help :-)
    Thanks,
    Manoj Nair.

    It's like almost a month to get a response for such a generic JMS functionality. Looks like the Oracle SOA user base is really low. Anyone with a working example reference.
    Thanks

  • Can GG set JMS headers or properties when sending message to activeMQ?

    Hi,
    When GG generates JMS and send it to ActiveMQ, I need some metadata coming up with the message. I think JMS customised properties or headers would be the good place to set. But how does GG achieve this?
    Thanks in advance.
    Damien

    java.class.path=dirprm:dirlib/my.jar;ggjava/ggjava.jar ... Note (typo): as classpath separator, use ";" on windows , ":" on unix/Linux. Or use the property gg.classpath for supplemental jars, which is actually parsed before setting the classpath, and you can use commas to separate jars & directories in a platform independent manner . The "-D" jvm "boot options" are passed straight through to the jvm when it is launched.
    # additional jars
    gg.classpath=dirlib/my.jar,dirlib/activemq-all.jar
    # jvm options (windows)
    javawriter.bootoptions=-Djava.class.path=dirprm;ggjava/ggjava.jar ... -D...Edited by: MikeN on Sep 15, 2012 10:14 AM

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

  • OSB JMS Message Selector / Filter

    HTTP PS and JMS BS puts messages on WLS JMS Queue. We need consume some messages from the Queue based on payload content since interfaces for other messages may go Live in next year.
    JMS Message look like
    <Schools>
    <School>
    <Id></Id>
    <ServiceArea>100</ServiceArea>
    <Type></Type>
    </School>
    </Schools>
    We need to consume messages where ServiceArea = 100.
    Can you advise how to consume messages where ServiceArea = 100 ?
    I would appreciate your help.
    Thanks in advance.
    Kiran
    Edited by: 844345 on Mar 14, 2011 5:02 PM

    JMS message selector on message payload fields is not recommended and it will have performance implications. Instead you can design this in either of the 2 ways below
    1 - Modify the HTTP PS which publishes the message to set the JMSCorrerlationID header ( or any othe custom JMS property) with the value of Service Area. You can achieve this using Transport Header action in HTTP PS route node.
    For the JMS consumer proxy set a message selector on the JMS transport page to filter only messages belonging to this service area.
    2. Let the HTTP PS continue publishing all messages to the output queue. Have a new component in your design called a 'disaptcher' which reads all the message from the output queue, check service area tag and route messages belonging to particular area to an area specific queue. Have your jms consumer specific for service area 100 to listen to only this Area specific queue.

  • Setting values to properties on load

    Hi,
    I have a big Trouble on Data Populating to the components on page loading like,
    Have page1 and page2.Based on ID passed from page1,query should execute and results should set to the form on page2 through Backing Bean.
    What doing is..
    using setActionListener passing ID from page1 and setting to method in page2 as argument which gets results based on ID and sets to component properties, here the problem is..
    Before page2 loads method called first from setActionListener where we cannot set the values to properties before loading.
    How can we set values to components in backing bean only on load based on ID from other page.
    And one more issue is, if we make any code in setter property it get executes every time,
    what is the correct procedure to execute the method only on loading.
    Does there any procedure to make method to excecute only on load.
    Please suggest me, how can i overcome this issues,these were become major issue for the Development.
    Thanks,
    Bandaru.

    hi,
    we tried to achieve the same thing.. But its not possible to set the values to individual segments of a KFF..
    Thanks,
    raghav.

  • Create profile and set console font

    Hi,
    I'm not really a powershell expert, even though i use it daily. I've been looking into creating a profile to make life easier. So i made a little script to auto create a profile and set the console properties, load some modules etc.
    The one thing i have not found an answer for is how can i set the console to use Lucinda Console font in stead of that dreadful raster font?
    This posting is provided "AS IS" with no warranties or guarantees and confers no rights

    Hi,
    Thanks. I am aware of the console settings available to powershell, but thanks anyway.
    So the reg settings should be stored for the current user only in the key HKCU\Console. That will only affect the logged on user. It is not dynamic, as you say, but that's ok. I just need to have it set.
    So changing the following settings would change the font for CMD.exe and powershell.exe:
    REG ADD HKCU\Console /v FaceName /d "Lucida Console" /f
    REG ADD HKCU\Console /v FontSize /t REG_DWORD /d 0x000c0000 /f
    REG ADD HKCU\Console /v FontWeight /t REG_DWORD /d 0x00000190 /f
    REG ADD HKCU\Console /v FontFamily /t REG_DWORD /d 0x36 /f
    Push-Location
    Set-Location HKCU:\Console
    New-Item ".\%SystemRoot%_system32_WindowsPowerShell_v1.0_powershell.exe"
    Set-Location ".\%SystemRoot%_system32_WindowsPowerShell_v1.0_powershell.exe"
    New-ItemProperty . FaceName -type STRING -value "Lucida Console"
    New-ItemProperty . FontFamily -type DWORD -value 0x00000036
    New-ItemProperty . FontSize -type DWORD -value 0x000c0000
    New-ItemProperty . FontWeight -type DWORD -value 0x00000190
    New-ItemProperty . HistoryNoDup -type DWORD -value 0x00000000
    New-ItemProperty . QuickEdit -type DWORD -value 0x00000001
    Pop-Location
    Push-Location
    Set-Location HKCU:\Console
    New-Item '.\%SystemRoot%_SysWOW64_WindowsPowerShell_v1.0_powershell.exe'
    Set-Location '.\%SystemRoot%_SysWOW64_WindowsPowerShell_v1.0_powershell.exe'
    New-ItemProperty . FaceName -type STRING -value "Lucida Console"
    New-ItemProperty . FontFamily -type DWORD -value 0x00000036
    New-ItemProperty . FontSize -type DWORD -value 0x000c0000
    New-ItemProperty . FontWeight -type DWORD -value 0x00000190
    New-ItemProperty . HistoryNoDup -type DWORD -value 0x00000000
    New-ItemProperty . QuickEdit -type DWORD -value 0x00000001
    Pop-Location
    So, that should've done the trick. I can open cmd.exe and powershell.exe, open the system menu, go to defaults, and verify that the settings are in fact set. However, the settings just doesn't take effect. I even opened the properties dialog box for the
    PowerShell shortcut, to check the settings and I can still confirm that it had set the font correctly.
    Still, whenever I launch PowerShell, I am greeted with the ugly raster font. So, the last check I did was to go into properties in the PowerShell window system menu, and check the font.
    It was set to raster. So I changed it. The next time I opened PowerShell, it was back to raster.
    So, no matter where I set it, or what I set, it still goes back to raster every da** time.
    Where i come from, we call this a bug... A very annoying bug...
    Edit: Btw, this is only happening on a handful of servers, not all. On some i am able to successfully script changing the font.
    This posting is provided "AS IS" with no warranties or guarantees and confers no rights

  • JMS Header: JMS Properties and Message Selector

    Hi all
    I´m using a JMS Adapter to consume messages from a JMS queue (a JMS adapter which create the BPEL instance when a message arrives).
    The process must select messages which meet certain criterias, so I´m using Message Selector to filter the messages and only pick up the ones who interest me (If click on the "help" button on JDeveloper Wizard in the page you define Message Selector, you can see an example on how doing this).
    So how can I select messages using values placed on JMS Properties, in the Message Selector?
    For example, I set in the JMS Header:
    JMSInboundHeadersAndProperties
    --------JMSInboundProperties
    ----------------Property
    -----------------------name = 'Country'
    -----------------------value = 'Brazil'
    The JMSAdapter must consume only messages that "Country" = "Brazil".
    Thanks in advance.
    Menezes

    Yes
    I am able to specify JMS Header and JMS Properties when producing a message. However I am not able to user "Message Selector" to filter messages based on JMS Properties information when consuming messages.
    In the link you provide, there is an example on how to use Message Selector:
    # (a copy from the link)
    Message Selector
    ...for example, you can enter logic, such as:
    * JMSType = 'car' AND color = 'blue' AND weight > 2500
    * Country in ('UK', 'US', 'France')
    I believe the example with "Country" is exactly what I need, but I can´t get it work.
    I create the same example above, setting a property named "Country" in the JMSHeader, sending the message to a JMS Queue (BPEL Process #1) and try to comsume it on the Message Selector (BPEL Process#2), but JMSAdapter never consumes the message.
    Thanks for your help.

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

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

Maybe you are looking for