Message Conversion in JMS adapter
Hello Friends,
I have a scenario where in I will be getting the message from MQ, and the message will look like
<b>SOURCE</b>
<Root><MessageHeader><MessageID><MessageIDSystem>SCV</MessageIDSystem><MessageIDType>FE</MessageIDType><MessageIDIdentifier>CUSTOMER_MASTER</MessageIDIdentifier></MessageID><MessageReleaseNo>0004</MessageReleaseNo><MessageVersionNo>00</MessageVersionNo><MessageOrigApplID>SCV</MessageOrigApplID><MessageDestApplID>BROKER</MessageDestApplID><MessageInterfaceID>IDD088</MessageInterfaceID></MessageHeader><MessageBody><SCVData>53435646453030340130303030303401323030372d31312d31362031393a34303a343401313336333938323401330130010154414730303101574542555345525f52454c4154494f4e0155504441544501323030372d31312d31362031393a34303a343301544147303138013836373134013332353030303039343239013332353030303035323338013332353030303035323339010131014e014e01494e41435449564501350154414730303101504552534f4e01494e414354495641544501323030372d31312d31362031393a34303a343401544147303032013332353030303039343239015941553b56414e4553534101333235013301494e41435449564501323030352d30342d30332031383a34363a3136015343563234324d4947524154494f4e01323030372d31312d31362031393a34303a3433014a43473031370133515955493630554b36355136015041015441473031390131013332353030303039343239015041303030303934323901013101544147303033015941550156414e455353410156590101014601013530372d34333032383838013530372d363736383332380149544350545940435750414e414d412e4e4554013201013530372d343330323839310101544147303031014c494e4b01494e414354495641544501323030372d31312d31362031393a34303a3434015441473030360130303432013332353030303035323338013332353030303039343239015343563234324d4947524154494f4e013530372d34333032383838013530372d343330323839310101323030352d30342d30332031383a34363a313601393939392d31322d33312030303a30303a3030015343563234324d4947524154494f4e01494e41435449564501323030372d31312d31362031393a34303a3433014a43473031370149544350545940435750414e414d412e4e4554013530372d343330323839310154414730313901320133323530303030353233380150413b494e5445524558503b48454144510101320154414730313901310133323530303030353233380150413030303035323338010131015441473031390134013332353030303035323338013832373032313030010134015441473031390131013332353030303039343239015041303030303934323901013101</SCVData></MessageBody></Root>
and the ascii data in this message needs to be converted into XML format.
JMS Adapter is picking this message from MQ and posting it to XI.
Also there is an adapter module develped for this conversion and it is working fine for most of the messages, but it failing for this above message.
Can you please help me out in this issue and how to test that adapter module.
Thanks & Regards,
Kumar
hi kumar,
>>Can you please help me out in this issue and how to test that adapter module.
put brek points in ur adapter module and then run ur scenario and debug. this is how u test ur adapter module.
this will also help u to see why is it running for certain msgs n failin for others. at different steps/points check the value for variables etc while debugging.
Also put some statements to write audit log entries in ur code for module. this will also help in debugging.
[reward if helpful]
regards,
latika.
Similar Messages
-
How to hanlde breaked large messages in sender JMS adapter
Hi,
I have been asked like 'how can we handle breaked large messages in sender JMS adapter?'and lets say I am getting some messages as it is and some are breaked into small segements for the mesaages that are large....
do we need to use module,if so is there any standard module that we can use to hanlde this type of scenarios?
thank you in advance.
babuhttp://biemond.blogspot.com/2009/10/jms-request-reply-interaction-pattern.html
if you check the blog of edwin, see his comments at the bottom
there he gives a suggestion how to add the selector properties to filter on
and this one is maybe helpfull
http://blogs.oracle.com/adapters/2010/05/configuring_request-reply_in_jmsadapter.html -
Restrict message volume through JMS adapter (not individual message size)
Hi, does anyone know of a way to restrict the flow of messages through a JMS adapter? For example, If I wanted to only allow up to 1000 messages to be sent in an hour to a particular system. The rest should just be queued in the Adapter Engine until the next hour begins in order to smooth out the load on the recieving system.
I know this is poor design but there is a system that is getting overwhelmed and cannot be easily changed right away. I'd like a way to control this from the middleware using standard PI (no ccBPM).
Any ideas?
Thanks in advance,
AaronStefan, thank you for the idea, that is a good one.
I'm going to assume there is nothing specific we can do in the SAP JMS adapter to control the flow, and look to a solution in the queueing software like you suggested or the 3rd party application.
-Aaron -
File Content Conversion in JMS Adapter
Hello,
I am trying to use module parameters to convert File to XML in Sender JMS adapter. I have followed the instructions in the SAP document (3.1 Example of a Simple Conversion in a Sender Communication Channel)
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/50061bd9-e56e-2910-3495-c5faa652b710
The problem I am facing is instead of creating one xml message for all the lines in the file; it is creating one message per line. Not sure what I need to do get all the lines in to one xml message.
Please let me know if any of you have faced similar issue.
Thanks
AVThe Parameter xml.recordsetsPerMessage can only be used if it is a complex structure. I mean it needs a recordSet with Keys..etc and What I am trying to do is a simple FCC using
Transform.Class=com.sap.aii.messaging.adapter.Conversion
Transform.ContentType=text/xml;charset=utf-8
xml.conversionType=SimplePlain2XML
xml.documentName=PurchaseOrder_Root
xml.documentNamespace=http://namespace
xml.fieldFixedLengths =2,10,10,3,..
xml.fieldNames = DATA1,DATA2,DATA3....
xml.processFieldNames=fromConfiguration
xml.structureTitle=PurchaseOrder
<b>I am expecting</b>
<PurchaseOrder_Root>
<PurchaseOrder>
<DATA1> </DATA1>
<DATA2> </DATA2>
</PurchaseOrder>
<PurchaseOrder>
<DATA1> </DATA1>
<DATA2> </DATA2>
</PurchaseOrder>
</PurchaseOrder_Root>
<b>When I use the above Module Config it is giving me </b>
</PurchaseOrder_Root>
<PurchaseOrder>
<DATA1> </DATA1>
<DATA2> </DATA2>
</PurchaseOrder>
</PurchaseOrder_Root>
</PurchaseOrder_Root>
<PurchaseOrder>
<DATA1> </DATA1>
<DATA2> </DATA2>
</PurchaseOrder>
</PurchaseOrder_Root> -
Content Conversion in JMS Adapter
Hi All,
I am having a scenario JMS - XI - JDBC.
Now I have to do the content conversion in the incming records.
The sample incoming data is as follows:-
<Field1>,<Field2>, ...,<Fieldn> -->Row1
{<Field1A>,<Field2A>, ...,<FieldnA>} -->Row2
{<Field1A>,<Field2A>, ...,<FieldnA>} -->Row3
<Field1B>,<Field2B>, ...,<FieldnB> -->Row4
{<Field1C>,<Field2C>, ...,<FieldnC>} -->Row5
{<Field1C>,<Field2C>, ...,<FieldnC>} -->Row6
{<Field1C>,<Field2C>, ...,<FieldnC>} -->Row7
Now at the target, we have 3 oracle tables, in which the data from the Row1 &4 will go to Table 1, Row2&3 --> Table2 and Row5,6 &7 --> Table3.
The source data type that i m using is of the structure:-
<TC>
<GT>
<Field1>
<GS>
<Field1A>
</GS>
<Field1B>
<Field2B>
<GDS>
<Field1C>
</GDS>
</GT>
</TC>
Please help me out in the modules configuraton, how this can be handled.
Thanks in advance, hope to receive some solution at the earliest.
Rocky.Hi Rocky,
Please have a look at these threads..
JMS Adapter: Content Conversion
JMS Adapter Content Conversion
JMS Content Converrsion
Hope these help you!
cheers,
Prashanth -
The message sequence of JMS adapter and BPM
This is my scenario: AP1 -> MQ -> JMS Adapter -> XI BPM -> SAP
But if AP1 sends 10 messages to MQ server, how to make sure the received message sequence of SAP is the same as AP1 ?
Because JMS adapter doesn't have synchronous ability, or I can set best effort to make sure the sequence.HI,
See the below links to solve the BPM performance problems
BPM Performance tuning
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/70ada5ef-0201-0010-1f8b-c935e444b0ad
BPM performance question
SAP XI BPM Performance and statistics
Performance problem on BPM
BPM pros and cons
Performance problems using BPM
Regards
Chilla.. -
MessageTransformBean in sender JMS Adapter flat file to xml conversion
Hi All,
The scenario is MQ (Flat File ) --->PI -
>Idoc
The flat file structure is
112233
AABBCC
The expected XML Structure after using MessageTransformBean in the sender JMS adapter is
<Record>
<Row>
<f1>11</f1>
<f2>22</f2>
<f3>33</f3>
</Row>
<Row>
<f1>AA</f1>
<f2>BB</f2>
<f3>CC</f3>
</Row>
</Record>
But I am getting 2 SEPARATE xml messages each with only one Row in it like the following
1st XML:
<Record>
<Row>
<f1>11</f1>
<f2>22</f2>
<f3>33</f3>
</Row>
</Record>
2nd XML:
<Record>
<Row>
<f1>AA</f1>
<f2>BB</f2>
<f3>CC</f3>
</Row>
</Record>
I would like to have one xml message with all rows in it.It seems the MessageTransformBean is not recognizing the end of line in the flat file.Do i need to use endSeparator explicitly.
I followed the "How to use Content Conversion in JMS Adapter " and configured the adapter,still no luck..
Any Help greatly Appreciated
Thanks,
CHi Chirag,
The parameter name sequence changes alphabetically by itself when I save and activate it eventhough I enter as it is in the document.How to stop changing this sequence or put it the order as required in the Module Processor.
Currently my sequence is
Transform.Class
Transform.ContentType
xml.conversionType
xml.documentName
xml.documentNamespace
xml.fieldFixedLengths
xml.fieldNames
xml.processFieldNames
xml.structureTitle
Let me know how to change the sequence ,if that is the issue.
Thanks,
C -
Idoc xml message in JMS adapter
Hi All,
Question 1:
My scenario is MQ series(JMS adaptr) to SAP(IDOC adptr) . In my mapping both source and target structure is same IDOC structure.Where MQ series will send IDOC xml. In such case shall i need to do content conversion at JMS adapter level or not.whthr IDOC xml can be directly handle at Mapping level without doing any content conversion in adapter level.
Question 2(viceversa):
SAP(IDOC adptr) to MQ series(JMS adaptr) . In my mapping both source and target structure is same IDOC structure.Where MQ series expect me IDOC xml. How to handle content conversion at JMS recvr adapter level.
my assumption only in case of (xml to plain) and (plain to xml) require content conversion here my Input and output is IDOC xml.Saravanan,
As Expert Vishnu Mentioned,
>In such case shall i need to do content conversion
NO need to use
>How to handle content conversion at JMS recvr adapter level
http://help.sap.com/saphelp_nw04/helpdata/en/24/4cad3baabd4737bab64d0201bc0c6c/content.htm
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/xi/xi-adapters/how%20to%20use%20the%20content%20conversion%20module%20with%20xi%203.0%20j2ee%20jms%20adapter.pdf
Cheers
Agasthuri Doss -
Hi ,
I am getting below message in my JMS adapter.
"Sender Channel. Details: (No detail information set.)"
Status of adaper is green. What is the meaning of above statement?Hi S R,
What is the error detail in SMQ1,SMQ2?
Did you try to reprocess them from execute luws? try to change the status to recorded if possible.then execute again.
thanks -
Hello,
How can I send a XML as a text message into a JMS Adapter?
I tried to send using an opaque schema but the consumer is receiving it null.
Thanks!Hi,
Refer these links
http://static.springframework.org/spring/docs/2.5.x/reference/jms.html
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/50061bd9-e56e-2910-3495-c5faa652b710
http://help.sap.com/bp_bpmv130/Documentation/Planning/XIUnicodeGuide030411.pdf
http://help.sap.com/saphelp_nw04s/helpdata/en/10/b1b4c8575a6e47954ad63438d303e4/frameset.htm
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/a05b2347-01e7-2910-ceac-c45577e574e0
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/482aae19-0301-0010-3485-8efd618818d0
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/604e2b64-e689-2910-64b3-ffd650f83756
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/00982670-748c-2a10-3985-cdd42fb43e50
and also blogs
Triggering XI Alerts from a User Defined Function
How to send any data (even binary) through XI, without using the Integration Repository
Regards,
Surya -
How to read Java Object message from JMS Queue using JMS Adapter .
Dear All,
In my scenario i have to read a java object message from JMS Queue . I tried by using the JMS Adaper ,but i am not getting any Payload . Can any one tell me is there any special settings for JMS Adapter to read the Java Object message .
I am able to read the Message successfully thru JMS Adapter but in SXMB_MONI it is not showing any payload .
I also went in Message monitoring but i am getting this type of message in Sender JMS Adapter in Audit Log.
JMS Message ID XXXXX Message Type Null unknown.Payload can not be read and will be empty.
JMS Message ID XXXXX Payload Empty can not read.
Please Help.
LateefHi,
As far as i know, JMS Object Messages is not supported by XI JMS adapter.
you need to have the JMS provider to transform the message to bytes messages.
(Refer to SAP note 856346) -
Push different type of messages to JMS Queue using JMS Adapter
Platform: Oracle SOA 11g. JMS Adapter.
I got to push different types of messages as string to same queue. JMS Adapter requires schema to push a message to a queue. Since messages are of different types, how can I push them into queue. I tried to use singleString schema. Result is that actual message gets wrapped into <singleString> root element which is not the required result.
Any hints or links shall be appreciated.Thanks fo ryour reply and help. I appreciate that.
Wrapping of original message in <singleString> element is done by JMS Adapter as the very last activity/setting. I am not composing/transforming message into final shape with singleString through transformation.
Once message is with JMS adapted on one end, it is in Queue on the other end. No control.
Since consuming end is not in my control and requires the actual message in Text format, I need to have the message target queue in Text format.
If I select the Opaque schema, following error message is thrown.
<bpelFault><faultType>0</faultType><mismatchedAssignmentFailure xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"><part name="summary"><summary>Mismatch Assign. cannot set a nonmessage value to a message-based variable. An attempt to assign a nonmessage value to a message-based variable failed. Verify the BPEL source for invalid assign activities.< /summary></part></mismatchedAssignmentFailure></bpelFault> -
XI 3.0: Preserve trailer spaces with JMS Adapter
Hi everybody
Does anybody knows how it is possible to preserve the trailing spaces in a message coming from JMS adapter?
I have a fixed-length field that is filled with a left space trailer, but the space is removed by (i think) the adapter.
Does exists something similar to "whitespace=preserve" for the datatypes???
Thanks in advance.If somebody is interested, just add the
xml.<structname>.fieldContentFormatting = nothing to the module configuration params.
I derived this one from the configuration guide of the File Adapter -
Converting QoS from EO to EOIO in Receiver JMS Adapter
Hello All -
We are currently working with SAP XI 3.0 SP12. Our scenario is something like this:
IDoc -> XI (BPM) -> JMS Adapter
The BPM splits up the incoming IDoc into multiple JMS messages.
The problem is that when the BPM sends the message to the JMS adapter the QoS changes from EOIO to EO. This essentially means that when the messages are written to the JMS Queues, there is no gurantee that they would be written in exactly the same order in which they are produced.
The requirement is to write the messages in exactly the same order in the target queues.
One solution is to capture the transport level acknoledgements and then send the next message from the BPM only on the receipt of the acknoledgement which takes a lot of time.
Is there any other mechanism to ensure the messages going out in an EOIO fashion.
AshishIts like this , i ve file -> bpm -> idoc scenario. 've configured EOIO as the QOS for both adapters. file adapter is configured to pick up a pattern , say *.abc.
The picking option is "By Date". Say there are 5 files in the directory before a particular polling interval which has about 5 sec time delay b/w them in their timestamp.
Now the file adpater picks the files in order , delivers it to ccBPM, i can see 5 diff ccBPM instances(diff workitem IDs).
Say, the third file has less data , the transformation happens faster in the 3rd ccBPM instance and so it delivers it to the idoc adapter vefore the 1st or 2nd one completes. So my order is lost.
Now , i tried setting "transport ack" in send step , but didnt help.Is there any other specific setting to be done ?
Thanks
Saravana -
Hello,
I have a JMS adapter configured for MQ and can get messages to / from it. However, in troubleshooting with the MessageTransferBean my messages seem to dissappear into the JMS ether
How can I see the contents and more detailed error messages for the JMS adapter in XI/PI? Runtime Workbench shows only a portion of the error and I can't figure out where to find the rest.
Any advice on how to monitor the SAP JMS layer and see helpful troubleshooting logs are greatly appreciated!
Many thanks,
AaronHi Aaron,
I am giving you all the chapters from the bible of jms adapters.
1)notes for JMS adapter
Go thru these notes 790963,747601,746393,856346,802754,
837501 and 790224.
2)information regarding use of JMS Adapters,Go thru these links of help.sap.com
JMS Adapter:
http://help.sap.com/saphelp_nw04/helpdata/en/cd/d85a9d6fab7d4dbb7ae421f710626c/content.htm
Configuring the Sender JMS Adapter:
http://help.sap.com/saphelp_nw04/helpdata/en/f4/2d6189f0e27a4894ad517961762db7/content.htm
Configuring the Receiver JMS Adapter:
http://help.sap.com/saphelp_nw04/helpdata/en/10/b1b4c8575a6e47954ad63438d303e4/content.htm
JMS-Provider-Specific Settings:
http://help.sap.com/saphelp_nw04/helpdata/en/c1/739c4186c2a409e10000000a155106/content.htm
And to deploy the jars which are given in the JMS Adapter link go thru this article "How To Install and Configure External
Drivers for JDBC and JMS Adapters"
https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/f04ce027-934d-2a10-5a8f-fa0b1ed4d88f
https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/60237e74-ef19-2b10-5a9b-b35cc6a28e83
http://help.sap.com/saphelp_nw04/helpdata/en/cd/d85a9d6fab7d4dbb7ae421f710626c/frameset.htm
/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions
Regards
joel
Edited by: joel trinidade on Mar 26, 2009 11:22 AM
Maybe you are looking for
-
We updated to Adobe Acrobat Pro 11.0.06 from Adobe 8. We are using Windows Vista with IE 9. Right away, users began having issues with IE freezing when users launched a PDF from our web-based application. It wasn't all users but only some. We tri
-
How Do I Create This Basic Geometric Shape?
I want to create a geometrically precise raindrop shape, 1 inch wide and 1.5 inches tall. I start with a 1-inch circle as the base, then I move the top anchor 0.5 inches higher. I then use the Convert Anchor Point tool to turn the top anchor from a c
-
How to return multiple tags (based on different checks) in a for loop?
Hi, I'm trying to return multiple elements, based on different checks that are done in the XQuery, within a for loop. But I'm getting syntax errors at any attempt to do this. This is the structure of what I'm trying to do: <ActionList>
-
How to open jspx by default in jdeveloper source browser (11g)
Hi, Does anyone know how to make jdev 11g open jspx etc. in source tab instead of the the design tab by default? Thanks,
-
Javascript to check if a checkbox is selected in datatable
Hi, I have a form with some command buttons and couple of datatables with checkboxes in one of the columns. How do I make sure when a user clicks on any command button to generate an action only if any checkbox is selected else shows an error to atle