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

Similar Messages

  • Custom jms headers are removed when a message pass through OSB's proxyservi

    Hi,
    I am using OSB 10.3. Trying to build the application withe the following flow.
    proxyservice(jms integration)-->businessservice(jms integration)-->MDB
    When a jms message with some custom headers are posted to a proxyservice, the custom headers are getting strippped off and only the plain jms message is received in the MDB and not the custom jms headers. I have enabled "Get all headers" option to "Yes" on the proxyservice. Do I need to do anything special to get those jms properties on to a MDB?
    Regards,
    Baskaran

    Did you try passing headers with "Set Transport Headers for[ Outbound Request ] " with option      Pass all Headers through Pipeline checked?
    Thanks
    Manoj

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

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

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

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

  • 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

  • Javax.jms.MessageNotWriteableException: Message properties are read-only.

    Hi all,
          Me again, i need to know, how can i, to make available to change a message, from a queue. The subject (up) it's show the problem. I'm setting a message in that way: "message.setStringProperty("estado","ReEnviado");". The reason, of this change is to make possible, the consume of the message and "delete it" from the queue.
    Please if some, could help me,
    Thanks in Advance.
    Jorge.

    gargula wrote:
    I have copied tens of directories with JPG pictures from a CD (that I burnt using Windows XP while on a trip overseas) to my iMac's HD. The problem is that all the copied files are read-only now and I cannot edit them... I tried using Finder to make them "writable" but the yellow padlock at the bottom of the Info window of the affected files is disabled (it's pale yellow, I cannot click on it).
    My questions are:
    a) why are the files read-only in the first place?
    did you copy those files while logged in as the current user? if yes, look at the permissions of the files on the CD. in general, when you copy something via drag and drop in finder the owner and the group of the file changes but posix permissions don't change. so if they were read for the owner and the group on the CD they will still be so when you copy them to the disk. this should not normally be the issue with windows burned disks though.
    Was it the way that I copied them (drag and drop in Finder)?
    no. that was the right way to copy.
    b) is there a way to modify the properties of a directory and its content in one single command to remove the read-only attribute?
    yes, but later on that.
    c) why is the padlock disabled in Finder? I expected to be prompted for my Admin password when clicking the padlock.
    that's strange. check the ambient folder. it could be locked for example. re the files sitting in some folder you made or are they on the desktop?
    Any help is appreciated.
    Message was edited by: gargula

  • Need to add additional properties to a message

    Hello Friends,
    I need to obtain a JMS message and add properties to that message. Any message I receive is marked as read only. Hence I get a MessageNotWritableException when I try to set a property in that message. I have to call the clearProperties method but that will clear all the existing properties in the message. I would like to create a copy of this message and then add properties to it. Is there a way to this?

    Copy the properties into a HashMap, clear them, set the message payload, put the properties back

  • Message properties and performance

              Hi
              Our application uses BytesMessage - but we add some userdefined properties in
              the message header area- all string properties. The number of properties that
              we add is around 5-6 and am trying my best to reduce that somehow. Wondering whether
              the number of proerties would matter or is it like black or white? Also if I end
              up with a screwed up design just to reduce 1 or 2 properties out of 5/6 - id it
              really worth it? Also wondering if there is any way that an MDB instance knows
              which Queue the message came from if the message itself does not contain any user
              defined property like "queuename" put by the producer.
              thanks
              Anamitra
              

    One more thing to consider outside of performance
              - message header and property fields do not get paged out.
              This becomes a factor when there
              are a large number of messages on the server
              and at the same time message properties are
              fairly large in comparison to message header information.
              Tom Barnes wrote:
              > Hi,
              >
              > Anamitra wrote:
              >
              >> Hi
              >> Our application uses BytesMessage - but we add some userdefined
              >> properties in
              >> the message header area- all string properties. The number of
              >> properties that
              >> we add is around 5-6 and am trying my best to reduce that somehow.
              >> Wondering whether
              >> the number of proerties would matter or is it like black or white?
              >> Also if I end
              >> up with a screwed up design just to reduce 1 or 2 properties out of
              >> 5/6 - id it
              >> really worth it?
              >
              >
              > Likely not worth it.
              >
              > Its not the number Strings so much as the size of
              > the Strings that matters.
              >
              > The perf gain is likely not measurable except
              > for high throughput non-persistent messaging (rates
              > of 1000 msgs/sec higher) with "small" (few hundred
              > byte) message bodies and Strings greater than 25
              > characters in length. Of course, these are
              > very rough estimates - say plus/minus 75%, with
              > measured perf gains at 5% or more.
              >
              >> Also wondering if there is any way that an MDB instance knows
              >> which Queue the message came from if the message itself does not
              >> contain any user
              >> defined property like "queuename" put by the producer.
              >
              >
              > javax.jms.Destination dest = ((javax.jms.Message)msg).getJMSDestination();
              >
              > // get JMX mbean name of destination
              > String name =
              > ((javax.jms.Queue)dest_.getName();
              >
              >
              >>
              >> thanks
              >> Anamitra
              >
              >
              

  • JSF Message.Properties

    I am trying to use a message properties file in my jsf page, to display headings ect. But it gives an error >
    org.apache.jasper.JasperException: Can't find bundle for base name bundle.Messages, locale en_US
    I put my Message.properties file in my folder \webapps\jsf\bundle,
    and in the properties file I got test=helle there.
    In my JSF page i do the following >
    <f:loadBundle basename="bundle.Messages" var="Message"/>
    <h:outputText value="#{Message.test}" />,
    what i am doing wrong.
    thanks

    Are you trying to A) customize JSF's messages, or B) create your own custom message bundle?
    To customize the JSF messages:
    1) Create your .properties file "Example.properties" and put it in WEB-INF/classes.
    2) Override JSF's default messages by putting key/value pairs in Example.properties. For example:
         javax.faces.component.UIInput.REQUIRED=Required field3) Tell your JSF app to load Example.properties by putting the following in faces-config.xml:
    <faces-config>
      <application>
        <message-bundle>GridManagerResources</message-bundle>
      </application>
    </faces-config>See this link for details. A list of keys for JSF messages is at the bottom:
    http://developers.sun.com/prodtech/javatools/jscreator/reference/themes/jsf/custommessage.html
    To create and use your own custom message bundle, see
    http://www.laliluna.de/javaserver-faces-message-resource-bundle-tutorial.html
    HTH,
    Scott

  • Properties of posted Messages via Web Services

    Hi all!
    Is it possible to post messages on a Queue by using Web Services? Yes, it is,
    BUT: I want also set some properties on the posted messages (javax.Message.setBooleanProperty(...)).
    If it isn't possible, how can I work around this?
    thanx!

    Hi Pieter,
    The servlets (or actually they're referred to as adapters) that place the messages
    on JMS destinations, are internal to the WebLogic Web Services platform, so you
    can't get at their implementation. These servlets are marked final, so you can't
    extend them either ;-) I suggest creating an RPC-style WebLogic Web Service, that
    acts as a message sender for the message you want to set the properties for, before
    this RPC-style WLWS sends it to the desired JMS destination. If the message is
    an XML document or document fragment, use literalxml encoding to send it to the
    RPC-style WLWS. Attach a "preamble" XML element to specify the JMS properties
    you want to set, and return an XML element containing whatever you need. Returning
    and XML element from the RPC-style WLWS will allow you a lot more flexibility
    here.
    Regards,
    Mike Wooten
    "Pieter Jan Degraeuwe" <[email protected]> wrote:
    >
    Hi all!
    Is it possible to post messages on a Queue by using Web Services? Yes,
    it is,
    BUT: I want also set some properties on the posted messages (javax.Message.setBooleanProperty(...)).
    If it isn't possible, how can I work around this?
    thanx!

  • Internationalization using message.properties

    Hello, I have this inputText field, attached to a Long variable in the bean, whenever I type a non-number character and a command makes the page reloads... it shows:
    "codigo":Specified value is not a valid number
    <h:panelGroup>                    
        <h:inputText id="codigo" styleClass="formInputText" required="true"  value="#{cadastroAssessoresUI.codigo}"/>
        <h:message for="codigo" showdetail="true" />
    </h:panelGroup>I use a message.properties bundle, but I cant make the custom message I need.
    javax.faces.component.UIInput.CONVERSION = Erro convertendo campo
    javax.faces.component.UIInput.CONVERSION_detail = Wrong data type
    javax.faces.convert.LongConverter.CONVERSION_detail = Tipo de dado incoerenteAny clue??
    Thanx

    Hi Jan,
    Unfortunately at the moment, the answer is no, and attempts to fix it brough up some architectural issues that can not be resolved via a patch.
    However, there is a Tech Article and a compponent library in the works which will provide a workaround to this issue. New Technical articles get posted to the forum so keep an eye out or just check the Technical artical section of our web site.
    Lark
    Creator Team

  • Addin extra properties to MAPI messages

    Hi!
    On msdn website http://msdn.microsoft.com/de-de/library/cc765570.aspx following is written:
    "MAPI Property Overview:...Clients can define properties to describe new message classes, and service providers can define properties to expose the unique features of their messaging system."
    I ve been trying to add custom properties to MAPI messages, send and receive them. the problem is by receiving i get the error code 0x40380.
    Inside my GetProperties() method the pProp parameter should have in its Value.l field 5, but it has l = 0x8004010f???
    While sending the HRESULT is ok. Is it really possible to define custom properties and to receive them?
    Ive defined my own PropertyTag as the following:
    #define PROP_TAGEVO(ulPropType,ulPropID)    ((((ULONG)(ulPropID))<<16)|((ULONG)(ulPropType)))
    #define PR_MESSAGE_FLAGSEVO                    PROP_TAGEVO( PT_LONG,        0x0081)
            void SetProperties()
                const int nProperties=1;
                SPropValue props[nProperties] = {0};           
                /*props[0].ulPropTag=PR_ORIGINATOR_DELIVERY_REPORT_REQUESTED;
                props[0].Value.b = (unsigned short)true;*/
                props[0].ulPropTag=PR_MESSAGE_FLAGSEVO;
                props[0].Value.l = (LONG)5;
                HRESULT hr = m_pMapiMessage->SetProperties(nProperties, props);
    in MapiMessage.cpp SetSproperties Method:
    HRESULT CMapiMessage::SetProperties(ULONG valueCount, SPropValue* lpProp)
        if (!m_lpMessage)
            return E_FAIL;
        return m_lpMessage->SetProps(valueCount, lpProp, NULL);
    ...SetProps() is the MAPI method.
    My GetPToperty method:
    void GetProperties()
                LPSPropValue pProp;
                HRESULT hr = m_pMapiMessage->GetProperty(PR_MESSAGE_FLAGSEVO, pProp);
                BOOL bRead = ((pProp->Value.l & MSGFLAG_READ) == MSGFLAG_READ);
    automation eng. in programming

    Hello Evren,
    As far as I know you can define transmittable user properties in range 0x8000 to 0xFFFF (user-defined Name-to-id mapped property). The
    Property Identifier Ranges page in MSDN provides the following information:
    8000 - FFFE
    Properties defined by clients and occasionally service providers that are identified by name through the IMAPIProp::GetNamesFromIDs andIMAPIProp::GetIDsFromNames methods.
    Be aware, the property should be defined on the target Inbox folder.

  • How to keep MAPI properties when processing message data in RFC822 format in an Exchange Server 2007/2010 transport agent?

    We are developing an agent listening for the submit or endOfData event from the Exchange Server. Due to various reasons we need to convert the Exchange Mail
    internally to RFC822 format.
    So our MessageProcessor internally converts the message stream (usually TNEF) into RFC822 format. This means when written our modified content back to ‘e.MailItem’
    we write the converted content back.
    It seems that this conversion causes a loss of some MAPI properties of the message.
    When out-of-office-mails are enabled for an account the Exchange Server generates both messages the OOF message for internal recipients and the OOF message external
    recipients.
    When sending an internal message using voting buttons the message arrives without that voting information.
    void Agent_OnSubmittedMessage(SubmittedMessageEventSource source, QueuedMessageEventArgs e)
    MessageProcessor proc = new MessageProcessor();
    Stream messageContent = e.MailItem.GetMimeReadStream();
    Stream processedMail = proc.ProcessExchangeMessage(messageContent); // internally converts the message to RFC822
    Stream writeStream = e.MailItem.GetMimeWriteStream();
    processedMail.CopyToStream(writeStream);
    We also tried a dirty „hack“ using the Exchange Server internal method for converting the message from TNEF to RFC822 “ConvertAnyMimeToMime” from “Microsoft.Exchange.Data.Storage.OutboundConversionOptions”,
    but using that method causes the same issue.
    Now my idea was cloning all MAPI properties not related to the content of a message and reapply them after writing the RFC822 content back to into e.MailItem.
    Any idea how we can overcome our problems?
    Best regards,
    Harald Binkle
    Exchange Server Toolbox |
    SmartPOP2Exchange |
    SpamAssassin
    JAM Software GmbH
    Max-Planck-Str.22 * 54296 Trier * Germany
    http://www.jam-software.com

    Hello Scott,
    after posting this question I implemented a dirty workaround.
    Now I'd like to ged rid of that workaround. Are you still not allowed to discuss this?
    Best regards,
    Harald Binkle
    Exchange Server Toolbox |
    SmartPOP2Exchange |
    SpamAssassin
    JAM Software GmbH
    Am Wissenschaftspark.26 * 54296 Trier * Germany
    http://www.jam-software.com

Maybe you are looking for

  • How to embed image in email

    Before iCloud I could attach a small image or pdf in my email and the recipient could see it in the body of their email. Now with iCloud all I can seem to do is attach a file as an icon. How can I embed an image now?

  • Multi Language Display in EP when integrated with MDM

    Hi, Here is the situation: I log into MDM Import manager in English Language and load the data. I can see the data in MDM data manager "Language Detail" tab in all other languages(DE, ES, CN etc...) also irrespective of what langauge I log into MDM D

  • How to use vCloud Director Catalog into vFabric Data Director

    Hi,     How to use vCloud Director Catalog into vFabric Data Director.....

  • Spry Textfield date validation

    I have a Spry textfield for a user to enter a date. I want to limit the date entered to 31 days away from the current date. Can anyone help me out with this or provide directions to an article to help solve this issue? Pat

  • Unable to access 2811

    Hi All,  I had a device and it was in rommon mode and it was not letting me download IOS from console, so I found that there is a command "confreg" to change the console baud setting to 115200 and after that I restarted putty and changed the baud set