Dynamic Configuration JMS

Hi,
i am trying to use dynamic configuration variable DCJMSMessageQueue as a condition for determining the receiver within the Receiver Determiniation. I can see the value in the DCJMSMessageQueue, but the condition is not applied.
Have anyone tried to use this variable within the Receiver Determination (SP14)?
Thnx in advance.
Regards, Erik Hubers

Hi Erik,
I'm using JMS Channels and Adapter-specific attributes quite a lot (in my case it's DCJMSCorrelationID).
So far I never had the requirement to use it in conditions in a Receiver Determination, but I set up
a Receiver Determination to test it and it worked with SP15.
Now what was a little strange is that the expression only worked if I set it up in the following way:
DCJMSMessageQueue = queue:///EVENT_EB5331?targetClient=1
where my queue name is solely EVENT_EB5331 (I'm using WebSphere MQ in native mode).
Maybe that solves your problem (I actually copied this value, because it is the way it is written in the DynamicConfiguration
piece of the XI message).
There is another issue I had with the JMS Adapter Specific Attributes in SP14.
The namespace of the attributes was implemented wrong (at least the one for DCJMSCorreleationID). Instead of
'http://sap.com/xi/XI/System/JMS'
it was just 'JMS'.
Now if the condition is - by any reason - evaluated against the correct namespace (the long one)
this could also be a reason why it is not working.
Check the values in the DynamicConfiguration and have a look at the Trace.
You should find something like this in the R E C E I V E R  D E T E R M I N A T I O N part of it:
<Trace level="3" type="T">...call rule engine for Condition %CL_SAI_SWF_RULE_ENGINE.MSG_GET_SYSTEM
(MSG=&_MSG&;SYSFIELD="DCJMSMessageQueue";
SYSNSP="http://sap.com/xi/XI/System/JMS")% = queue:///EVENT_EB5331?targetClient=1</Trace>
  <Trace level="2" type="T">......attachment XI_Context not found</Trace>
  <Trace level="3" type="T">......extracting from attachment: DCJMSMessageQueue =
queue:///EVENT_EB5331?targetClient=1</Trace>
  <Trace level="2" type="T">......extracting values found: 1</Trace>
Compare the namespaces there with the one in the DynamicConfiguration.
If there is a mismatch upgrade to SP15 or open an OSS Message.
I hope that helps...
regards,
Peter

Similar Messages

  • Dynamic configuration bean in JMS Adapter

    Hello Experts,
    My scenario is JMS(Active MQ) to File.Its just Passthrough scenario and no mapping involved.
    Filename will be coming in one of the JMS Property (say businessId) and I need to set this filename to file adapter.
    I have refered the stefan's blog and used the Dynamic configuration bean module in sender JMS adapter.
    getFilename key.1 write http://sap.com/xi/System/JMS DCJMSMessageProperty4
    getFilename value.1 module.filename
    setFilename key.1 read http://sap.com/xi/System/File FileName
    setFilename value.1 module.filename
    But required filename is not populated in the target File.Any other configuration is missing here?

    Hi Karthiga
    Did you set the ASMA properties in both your sender JMS channel and receiver File channel?
    For the JMS adapter, as shown below, you will need to enter the DCJMSMessageProperty4 into the table
    Configuring the Sender JMS Adapter - Configuring the JMS Adapter in the Integration Directory/PCK - SAP Library
    If you want to set additional JMS message attributes, select Specify Additional JMS Message Properties (Maximum of 10).
    In the table, enter the names of the JMS message properties whose values are to be included in the message header of the PI message.
    The technical names of the additional attributes are DCJMSMessageProperty0, DCJMSMessageProperty1, ..., DCJMSMessageProperty9.
    For the File adapter, you need to check the ASMA FileName attribute.
    Once you have this configured, in your message, you should be able to see that the value is in the DynamicConfiguration section of the SOAP header.
    Rgds
    Eng Swee

  • Dynamic configuration in Sync/Async bridge in JMS

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

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

  • IDOC to JMS with Dynamic Configuration.

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

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

  • Dynamic Configuration Header is Missing

    Hi,
    Am getting this following when I tried a simple UDF in mapping, please let me know your thoughts
    "Exception caught by adapter framework: Dynamic Configuration Header is Missing."
    UDF
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key1 = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/JMS","DCJMSMessageProperty0");
    conf.put(key1,a);
    DynamicConfigurationKey key2 = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/JMS","DCJMSMessageProperty1");
    conf.put(key2,"123");
    return a;
    Thanks in Advance for the help
    Ashok

    Hi ASHOK,
        1.You will be able to see DynaicConfiguration Header automatically in Moni only if your PI is usin service Pack >= 14.in this case  you jus need to check ASMA atributes in Communication channel to capture them in the UDF  that you have written and need not configure the Dynamic configuration bean.To see the Service pack that you are currently using follow the navigation path.
         open the PI through Log on Pad(ABAP engine) -> on the tool bar click utilities>status--> Mote details by clicking magnifying lens symbol then you will be able to see all the services packs and basis components too.
    2.In case if the service pack is not SP ! >= 14 then you will have to follow the procedure of using Dyna,ic configuration Bean as experts mentioned above.
    Thanks,
    Ram.

  • Dynamic Configuration key length

    I am using dynamic configuration to set certain JMS properties but it appears that the maximum key length is 20 characters.
    Has anyone experienced this problem.  Is this a bug?
    Thanks
    Here is my code
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key1 = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/JMS", "com_inforecord_messageProcessor");
    conf.put(key1, "SoapMessage");

    Yes, is possible.
    Take a look here:
    http://wiki.sdn.sap.com/wiki/pages/viewpage.action?pageId=95093307
    http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/00a7ba12-e7cd-2b10-d589-e52b11346f77

  • Getting an error in Dynamic Configuration

    Hi Guys,
    I need to dynamically post the file into different directories based on the file in the source payload.
    In Receiver File Communication Channel
    Target Directory : *
    Filename : *
    Checked the ASMA Attributes for filename and directory
    Iam refering this weblog
    /people/william.li/blog/2006/04/18/dynamic-configuration-of-some-communication-channel-parameters-using-message-mapping
    In the mapping
    <filename> ---> UDF --> topnode of target message.
    My UDF is as below
    public String Directory(String a,Container container){
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key  = DynamicConfigurationKey.create( "http://sap.com/xi/XI/System/File", "FileName");
    DynamicConfigurationKey key1 = DynamicConfigurationKey.create( "http://sap.com/xi/XI/System/File", "Directory");
    String FileName = conf.get(key);
    FileName = a;
    conf.put(key, FileName);
    String Directory = conf.get(key1);
    Directory = "/SAPInterface/XI/PPD/DHX/out";
    conf.put(key1, Directory);
    return " ";
    But in runtime(moni) iam getting  error as
    com.sap.aii.af.ra.ms.api.MessagingException: The Adapter Message Property 'FileName' was configured as mandatory element, but there is no 'DynamicConfiguration' element in the XI Message header: com.sap.aii.adapter.file.configuration.DynamicConfigurationException: The Adapter Message Property 'FileName' was configured as mandatory element, but there is no 'DynamicConfiguration' element in the XI Message header
    Please suggest me how to correct this.
    Thanks
    Srinivas

    Hi Srinivas,
    You said you are having dynamic directories to post the file. But I see you hardcorded or put constant for directory which is /SAPInterface/XI/PPD/DHX/out. I think you need to put //SAPInterface/XI/PPD/DHX/out.
    Try this in udf:
    public String Directory(String a,Container container){
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key  = DynamicConfigurationKey.create( "http://sap.com/xi/XI/System/File", "FileName");
    DynamicConfigurationKey key1 = DynamicConfigurationKey.create( "http://sap.com/xi/XI/System/File", "Directory");
    String FileName = conf.get(key);
    FileName = a;
    conf.put(key, FileName);
    Directory = "//SAPInterface/XI/PPD/DHX/out";
    conf.put(key1, Directory);
    return " ";
    Put FileName and Directory in file name and directory paramters in receiver communication cahnnel and cehck.
    Regards,
    --Satish

  • Two FileName in Dynamic Configuration

    Hi All,
    I have a very rare problem. In an interface which uses BPM, where file is the sender and Proxy is the target,
    there is an ABAP Class in the mapping which uses Dyanmic Configuration to retrieve the FileName and create a Proxy structure and posts it to the ECC. In this scenario, Multiple files are picked from different folder using advanced Selection and sent to BPM which uses the ABAP Class.
    When i run the interface with 5 different files placed at source, In SXMB_MONI, I can see that after 3 files are processed successfully with a single filename in the Dynamic Configuration, the 4th or the 5th one wil have 2 filenames in the dynamic configuration out of which the first filename will be the copy of the earlier processed filename and the second one wil be the actual required filename. The above behaviour keeps on chainging.
    How can this be possible as the Context Object 'FileName' can have only single filename through out the interface instance, as there is no setting of the filename done in dynamic configuration.
    Please reply if anyone has a solution to the above problem.
    Thanks.

    Hi Jaideep..
    Thanks for the reply.
    Yes.. its a serial processing. Let me explain a bit more.
    as i said above, after the 3rd BPM instance (Just as an example.. keeps on chainging), the 4th instance has a unique filename compared to before 3. but after processing, the Dynamic Configuration in SXMB_MONI will have 2 fileNames. which will have a copy of any one of the earlier filenames along with actual filename.

  • Acces dynamic configuration variable (e.g. filename) in ABAP mapping class

    Hi experts
    I am searching for a possibility to acces a dynamic configuration variable (DCV) in an ABAP mapping class. Since I could not find a solution in SDN and other sources, I hope somebody in this forum can help me.
    What I already found is the following code which can be used to set a DCV, but what I would be interested in is how to read a DCV.
    Any help is appreciated.
    Markus
    METHOD if_mapping~execute.
    DATA l_record type mpp_dynamic.
    * copy payload
    result = source.
    * add an adapter specific attribute
    l_record-namespace = 'http://sap.com/xi/XI/System/File'.
    l_record-name = 'FileName'.
    l_record-value = 'test.xml'.
    dynamic_configuration->add_record( l_record ).
    ENDMETHOD.

    Hi Markus,
    you can find everything in my blogs
    /people/michal.krawczyk2/blog/2007/04/26/xipi-throwing-generic-exceptions-from-any-type-of-mapping
    Regards,
    michal

  • Dynamic configuration required in sender file - Adapter Module

    Hi Everybody,
    I am developing an Adapter Module in the file adapter (sender) using Adapter Specific Message Attributes.
    I am using Dynamic configuration inside the Module Process method in the adapter module.
    We are getting an error saying Dynamic Configuration cannot be resolved.
    Can anybody tell me the package to be used.
    Thanks,
    Zabiulla

    You can access the dynamic configuration in adapter module like this:
    Message msg = (Message) inputModuleData.getPrincipalData();
    String fileName = msg.getMessageProperty("http://sap.com/xi/XI/System/File", "FileName");
    You do not need any addition library besides the adapter module API.
    Hope that helps
    Stefan

  • Dynamic Configuration File Names

    Hi,
    I have a RFC->XI->File scenario.
    I have to put the target files names based on the calculation of values in 2 fields in the input.
    I tried using Dynamic Configuration in my message mapping for this.
    This is the code:
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key = DynamicConfigurationKey.create(u201Chttp://sap.com/xi/XI/System/Fileu201D,u201CFileNameu201D);
    String MyFileName = a + "_" + b +".xml";
    conf.put(key, myFileName);
    I checked ASMA in both the sender RFC adapter as well as the receiver file adapter.
    But it never works.
    I saw the dynamic configuration tab in SXMB_MONI but i can see only the RFC destination parameter.
    Cant see the file filename parameter.
    What is the problem here?

    No need enable ASMA on RFC sender adapter.
    See if the file channel is activated after selecting ASMA with FileName.
    The UDF might not be use in the mapping. Check this.
    Edited by: Praveen Gujjeti on Feb 23, 2010 1:05 AM

  • File name cant be fetched from Dynamic configuration...mutli-mapping used

    In a scenario, i have a BPM which has a transformation step which contains a mutimapping ...means 2 messages mapped to 1 messgaes, here in the mapping i m using an UDF and written code to extract the file name from dynamic configuration.....
    the problem is ...the same BPM contains another transformation step which contains a message mapping (which is not multi mapping), and here the code (UDF) works to fetch the file name...
    the code is all correct....and it looks like
    DynamicConfiguration conf = (DynamicConfiguration)
    container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","FileName");
    String sourceFileName = conf.get(key);
    if (sourceFileName == null ){
    sourceFileName = "ErrorFile.xml";}
    return sourceFileName;

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

  • Problem in Dynamic Configuration bean

    Hi
    I am trying to dynamically change the filename using Dynamic Configuration bean with some constant value but target file is having same name as source.  In communication channel logs I can see the successul pro

    Hi,
    M not sure what will be the error with this when u r using dynamic configuration bean.But same functionality can be better achieved by using this dyanamic configuartion UDF :
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key = DynamicConfigurationKey.create( "http://sap.com/xi/XI/System/File", "FileName");
    conf.put(key, a);
    return value;
    Regards,
    Anoop

  • Doubt om Dynamic Configuration of receiver file

    Hello ,
      for Acheiving the Dynamic configuration of receiver file name ,adapter specific message attribute is used...But how to suppress the name of file in the content of the Received file...
    Is my question correct..do we get the file name in content of the receiver file,while using the Adapter specifc message attribute.
    And another question ,in the Variable substitution ...do we get the above problem,then how to tackle the situation to suprress the file name in the payload of receiver file.

    HI,
    You can handle the dynamic file name via Dynamic configuration or with the help of Variable Substitution.
    Please refer
    have a look
    Dynamic File Name using XI 3.0 SP12 Part - I --> Dynamic File Name using XI 3.0 SP12 Part u2013 I
    Dynamic file name(XSLT Mapping with Java Enhancement) using XI 3.0 SP12 Part -II --> Dynamic file name(XSLT Mapping with Java Enhancement) using XI 3.0 SP12 Part -II
    With Variable Substituion, you may need to supress the filename
    Dynamic File Name - Suppress the Substitue varible
    Let me know if you need anymore info.
    Thanks
    Swarup

  • Problem facing in Dynamic configuration in SAP PI 7.3

    Hello,
    I am doing dynamic configuration in sap pi 7.3. I am using the following UDF.
    String devFileName="'a.vc'";
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey FileName = DynamicConfigurationKey.create("http:/"+"/sap.com/xi/XI/System/File","FileName");
    conf.put(FileName, devFilename);
    I am using this UDF in message mapping and mapped this UDF in the message header.
    I have selected the adapter specific message attribute in receiver communication channel also.
    Still I am getting the folowing error.
    MP: exception caught with cause com.sap.engine.interfaces.messaging.api.exception.MessagingException: com.sap.aii.adapter.file.configuration.DynamicConfigurationException: The Adapter Message Property 'FileName' was configured as mandatory element, but was not supplied in the XI Message header
    Exception caught by adapter framework: The Adapter Message Property 'FileName' was configured as mandatory element, but was not supplied in the XI Message header
    'Transmitting the message to endpoint using connection File_http://sap.com/xi/XI/System failed, due to: com.sap.engine.interfaces.messaging.api.exception.MessagingException: com.sap.aii.adapter.file.configuration.DynamicConfigurationException:  The Adapter Message Property 'FileName' was configured as mandatory element, but was not supplied in the XI Message header.
    Please help me what to do.
    Thanks & Regards,
    Moumita

    Hi, try this code:
    String devFileName="a.vc";
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","FileName");
    conf.put(FileName, devFilename);
    ASMA checkbox and respective parameter should be enabled in the required Adapter.
    Best Regards

Maybe you are looking for

  • What are the main steps to be taken care while doing recording for LSMW

    Hi, I am facing problem in LSMW. Can anybody suggest me that What are the main steps to be taken care while doing recording for LSMW for recording mm01 ? thanks' naresh

  • How to set  two decimal places in currency inr

    hi, i want to set two decimal places for my co.code currencu inr.  In t-code oy04 there is no 2 decimal places. Please tell me how set decimal places so that amount in account balances should be in two decimal places. thanks amol

  • Can we writeoff/any other solution for difference amount in group currency?

    Hi All, One of the G/L account are getting difference between Local Currency (Co. Code Currency - CAD) and Group Currency (USD) as follows. Our Client wants to clear this amount in Group Currency (USD). Can any one help me out on this? Problem descri

  • 881W Ap Config?

    This is definitely a different sort of experience - I'm new to the Cisco wireless world, so I'm not quite sure what I may be doing wrong. I set the wlan-ap0 to ip unnumbered, and when I try to configure the AP I get this: zb881w#service-module wlan-a

  • Boot up intermittent on PowerMac G5 Dual-Core

    I have an older G5 PowerMac Dual 2.0 10.4x and just recently it will not start up. I get an apple on screen and no spinning loading icon below it then the fans start to ramp up. I end up having to do a power down with the power button. Other times th