JMS Receiver Module configuration
my xml is like this
<row>
--<Header>
<key>Header</key>
<name>1111111</name>
--</Header>
--<Body>
<key>Body</key>
<name>2222222</name>
--</Body>
--<Body>
<key>Body</key>
<name>3333333</name>
--</Body>
--<Foot>
<key>Foot</key>
<name>444444</name>
</Foot>
</row>
and i want to change it into :
Header+1111111
Body-222222
Body-333333
Foot*444444
and my module config is like this:<b>
Transform.Class = sap.aii.messaging.adapter.Conversion
Transform.ContentType = text/plain;charset=utf-8
xml.conversionType = SimpleXML2Plain
xml.addHeaderLine = 0
xml.recordsetStructure = Header,Body,Foot
xml.fieldSeparator = 'nl'
xml.Body.fieldSeparator = -
xml.Foot.fieldSeparator = *
xml.Header.fieldSeparator = +
</b>
But the result i get just:
<b>
Header
Body
Body
Foot
</b>
Somebody help me please
Thanks in advance
Hi,
Go thro this guide:
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f02d12a7-0201-0010-5780-8bfc7d12f891
And i think that there should be a element as a root to all these. Just try with this xml structure.
<resultset>
-<row>
--<Header>
<key>Header</key>
<name>1111111</name>
--</Header>
-</row>
-<row>
--<Body>
<key>Body</key>
<name>2222222</name>
--</Body>
-</row>
-<row>
--<Body>
<key>Body</key>
<name>3333333</name>
--</Body>
-</row>
-<row>
--<Foot>
<key>Foot</key>
<name>444444</name>
--</Foot>
-</row>
<resultset>
Regards,
P.Venkat
Message was edited by:
Venkataramanan
Similar Messages
-
Receiver Module Configuration Issue
Hi All,
I have done the following Module Configuration in Receiver JMS Adapter, but facing issue in the Length of the Flat File received in JMS.
it is having only 512 characters, i got clue that is because of localejbs/SAP XI JMS Adapter/ConvertMessageToBinary.
Binary can accept only 512 characters.
I need convert the message to TEXT. Please help me on this.
Processing Sequence
1 localejbs/AF_Modules/MessageTransformBean Local Enterprise Bean XML2Plain
2 localejbs/SAP XI JMS Adapter/ConvertMessageToBinary Local Enterprise Bean convert_XI2Bin
3 localejbs/SAP XI JMS Adapter/SendBinarytoXIJMSService Local Enterprise Bean exit
Module Configuration.
XML2Plain Transform.Class com.sap.aii.messaging.adapter.Conversion
XML2Plain Transform.ContentType text/plain;charset=utf-8
XML2Plain xml.addHeaderLine 0
XML2Plain xml.conversionType SimpleXML2Plain
XML2Plain xml.endSeparator 'nl'
XML2Plain xml.fieldFixedLengths 10,15,10,10,15,13,13,13,15,2,30,1,10,10,10,10,8,10,10,10,8,11,11,3,3,1,1,15,10,15,1,30,15,15,10,8,15,10,10,15,15,4,8,1,2,8,35,11,10,10
XML2Plain xml.fixedLengthTooShortHandling Cut
exit JMSMessageType Text
Regards,
R.RaguHi Ragu,
Can you please elaborate on this issue a bit more...?
The Module Configuration looks fine to me.....
Thanks
Dhwani -
JMS Receiver Adapter configuration help
Hi Experts,
In our scenario, we need to integrate MQ series with SAP PI, where in we are using JMS Sender and Receiver adapters to put and get the mssg from correponding IBM MQ queues.
Using Sender JMS Adapter we are consuming a txt mssg by specifying corresponding module configuration parameters, which is for converting into a XML mssg.
The issue is with JMS Receiver adapter, Inorder to get an XML mssg apart from standard/default entries ... do we need to maintain any module configuration parameters?
thnxHi RajSekhar,
We have maintained the below modules in the respective comm channels:
Sender JMS channel:
ConvertJMSMessageToBinary
ConvertBinaryToXMBMessage
MessageTransformBean
CallSapAdapter
Note: Maintained the necessary message transform bean module key parameters in the module configuration
Receiver JMS Channel:
ConvertMessageToBinary
SendBinarytoXIJMSService
Did not alter the by default modules in the Receiver JMS comm channel.
Am i missing any other configuration.
Thnx -
JMS receiver adapter configuration error
Hi All,
I am facing an issue with JMS receiver adapter. My Configuration parameters for receiver adapter are as follows.
1.Transport protocol:WebspherMQ (MQSeries) JMS provied
2.Message porotocol:JMS 1.x
3.Adapter Enigen: Integration Server
4.QueueConnecation Factory Java Class:com.ibm.mq.jms.MQQueueConnectionFactory
5.Queue Java Class:com.ibm.mq.jms.MQQueue
6.IP Address or server name:<Host Name>
7.Server port:1414
8.Queue Mannager Name:TestQM
9.channal name:Recv_Channel
10.JMS queue:SAP_PI
11.Transport/netwrok protocol:TCP/IP
12.JMS compliant:WebSpherMQ(non jms)
13.Delivery mode of message Producer:Persist JMS Messages in the JMS provider
14.Mapping of message:Message Payload=JMS Payload
In adapter monitor, the adapter status shows below error.
<b>Receiver channel. Details: (No detail information set.)</b>
I have already installed the external drivers for JMS adapter. Can someone help me if I am missing some parameter in the above configuration.
Thanks in advance
Regards,
AshishHi,
I am getting the below error in Audit Log.
Error - Exception caught by adapter framework: The JMSSender returned no JMSTextMessage to use. Must abort send process.
Error - Delivery of the message to the application using connection AFW failed, due to: The JMSSender returned no JMSTextMessage to use. Must abort send process..
Can someone please help me in resolving this issue...
Thanks in advance.
Regards,
Ashish -
Sync/Async communication with JMS Receiver
Hi all,
I am working on one Sync/Async model without BPM. Sender is RFC which is expecting some response, but we know receiver jms doesnt support response message directly. For this i used modules provided by SAP.
While developing interface i used below objects.
One Outbound Synchronous interface--> for Sender RFC channel
Inbound Synchronous Interface----->for Receiver JMS Channel
outbound asynchronous interface--->for Sender JMS channel
one request mapping and one response mapping
Operational mapping between outbound Synchronous to inbound synchronous.
ID Objects:
2 sender agreements: one with sender jms channel
one with sender rfc channel
1 receiver agreement: with jms receiver channel
1 receiver determination
1 interface determination
In receiver jms and sender jms channels i used modules as specified in the document http://help.sap.com/saphelp_nw04/helpdata/EN/45/20d2b4c20a0732e10000000a155369/content.htm
But my interface is not working end to end successfully.
Please confirm below points
1)do i need to have other external application put response message to response queue or will the MQ automatically generates the response message and put into response queue
2)In receiver jms channel is it ok if i will put response queue(Q2) name in the field JMS ReplyTo Queue Name or do i need to put in the form queue://<ReplyToQMgr>/<ReplyToQ>
3). what is the format of data type for asynchronous outbound interface which i used for sender agreement of jms sender channel.
4). Do i need to do any other special settings at MQ settings in MQ server.
Note: i am using PI7.1 and i selected the option JMS-compliant for target client in jms channels.
Thanks,
Madhu
Edited by: Madhusudana Reddy on Nov 4, 2009 9:38 AM1)do i need to have other external application put response message to response queue or will the MQ automatically generates the response message and put into response queue
The following information is available in SAP note-
Message correlation implies correlating a response message with a request message. With respect to the JMS adapter, this means that you sent have sent a message through a JMS receiver channel to some JMS queue (say queueA) , some external application processes this message and puts the response onto another JMS queue(say queueB) which is then picked up by a JMS sender channel. You need to relate this response message with the original request message.
In the simple case, for all JMS compliant providers this can be done in a straightforward manner:
a) In the JMS receiver channel configuration, set the JMSCorrelationID to the XIMessageID. (or some other XI header which is applicable)
b) Ensure that your external application does not change the value of the JMSCorrelation
c) In the JMS sender channel configuration, set the XIConversationID to the JMSCorrelationID
d) The XIConversationID header of the response XI message now contains the XIMessageID of the request XI message.
For some providers such as Websphere MQ in legacy/native mode this is not so straightforward.
Do i need to do any other special settings at MQ settings in MQ server.
If your using Websphere MQ, refer que#4 in sap note :1086303
Edited by: nagarjuna _s on Nov 4, 2009 11:02 AM -
Debugging JMS adapter with Module Configuration
Hi.
I have a problem debugging my JMS adapter with module configuration.
All I get from the Message Monitor is a status "System Error", and no error category or error message.
I know there's an error in my Module configuration design, since it works fine without.
My configuration looks like this:
PROCESSING SEQUENCE:
1 localejbs/AF_Modules/MessageTransformBean Local Enterprise Bean XML2Plain
2 localejbs/SAP XI JMS Adapter/ConvertMessageToBinary Local Enterprise Bean convert_XI2Bin
3 localejbs/SAP XI JMS Adapter/SendBinarytoXIJMSService Local Enterprise Bean exit
MODULE CONFIGURATION:
XML2Plain Transform.Class com.sap.aii.messaging.adapter.Conversion
XML2Plain Transform.ContentType text/plain;charset=utf-8
XML2Plain xml.conversionType StructXML2Plain
XML2Plain xml.addHeaderLine 0
XML2Plain xml.recordsetStructure STARTRECORD,DATARECORD,SERVICEYDELSERRECORD,SLUTRECORD
XML2Plain xml.STARTRECORD.fieldFixedLengths 2,8,6,7,10,7,3,3
XML2Plain xml.DATARECORD.fieldFixedLengths 2,8,6,4,35,17,7,7,7,5,5,5,18,18,18,18,18,18,18,18,18,9
XML2Plain xml.SERVICEYDELSERRECORD.fieldFixedLengths 2,8,6,4,3,20,18,18,18
XML2Plain xml.SLUTRECORD.fieldFixedLengths 2,8,6,7,10,7
XML2Plain xml.STARTRECORD.fixedLengthTooShortHandling Cut
XML2Plain xml.DATARECORD.fixedLengthTooShortHandling Cut
XML2Plain xml.SERVICEYDELSERRECORD.fixedLengthTooShortHandling Cut
XML2Plain xml.SLUTRECORD.fixedLengthTooShortHandling Cut
The structure of the message looks like this:
<STARTRECORD> (occurence = 1)
<DATARECORD> (occurence = 1..unbounded)
--- <SERVICEYDELSERRECORD> (occurence = 0..unbounded)
<SLUTRECORD> (occurence = 1)
I've crosschecked every field, and it length and all looks like it should!
The worst part is the one not getting the reason why it fails. Any way I can get this information?
I've tried to look in the Adapter Framework log, but I have no clue where to look for anything usefull.
Help
Regards PeterHello,
Below is the module configuration in my JMS sender channel:
Check Message Local Enterprise Bean key
ConvertJMSMessageToBinary Local Enterprise Bean convert_JMS2Bin
ConvertBinaryToXMBMessage Local Enterprise Bean convert_Bin2XI
CallSapAdapter Local Enterprise Bean call_AF_MS
CheckMessage is a custom module which does some check on the incoming message.
Now what I want to know is at which position should I include the DynamicConfiguration Bean? Should it be included at position 1 or at position 2 or someother position?
~Thanks. -
PI SFTP RECEIVER ADAPTER MODULE CONFIGURATION
Hi,
I am new in SFTP adapter. I want to transfer file from proxy to SFTP. I want to output file is in csv format. But now it is in xml format.
Please help me!!!
My module configuration is in attachment..Hi
I have got the problem. You have to modify your target structure in the below format
<row>
<column-name1>ABC</column-name1>
<column-name2>12345</column-name2>
<column-name3>Text1</column-name3>
</row>
Create any parent node and inside that create the sub-eliment STATUS and USERID
something like
MT_Succefactor
<record>
<STATUS>
<USERID>
</record
Then you will get the desired output. Use the below content conversion paramters -
Issue with JMS Receiver Comm. Channel using Seeburger AttribMapper
Hello,
I'm using a JMS_RECEIVER Comm. Channel on which the Seeburger AttribMapper is configured (I need to use the DCJMSCorreleationID dynamic attribute).
In the module tab, I added a new module:
Module Name Module Type Module Key
localejbs/Seeburger/AttribMapper Local Enterprise Bean map
And I added the following parameter:
Module Key Parameter Name Parameter Value
map http://sap.com/xi/XI/System/JMS/DCJMSCorreleationID "TEST"
When processing a message, I get the following error on the Communication Channel Monitoring:
Message processing failed. Cause: com.sap.engine.services.jndi.persistent.exceptions.NameNotFoundException: Object not found in lookup of AttribMapper.
Does anyone has an idea on how to fix this problem?
Thanks for your help!
BenoitHI,
Refer the discussion of
Setting DCJMSCorreleationID in JMS RECEIVER using Seeburger AttribMapper
Dynamic subject in AS2 receiver
Thanks
Swarup -
Send Idoc flat file message in JMS receiver adapter
Hello,
I am working on a scenario where we send Delvry 03 idoc from ECC to external system. To external system, we send the whole Idoc in flat file structure through JMS queue. I have used Idoc to flat file program in my interface mapping and have configured JMS receiver adapter with just default Module configs but, I am getting an error in communication channel monitoring for the messages.
Please note that Idoc xml to flat file structure conversion is already done in the mapping, I need to just pass this idoc flat structure in the jms adapter. Hence ther eis no content conversion i nthe adapter..
Please give some inputs..Here are the modules in my receiver adapter and nothing else..
SAP XI JMS Adapter/ConvertMessageToBinary
SAP XI JMS Adapter/SendBinarytoXIJMSService
The error I get is in audit log
Message processing failed. Cause: com.sap.aii.af.ra.ms.api.RecoverableException: No transition found from state: ERROR, on event: process_commence for DFA: CC_JMS_R:ca336a6689f837da8bd3387140fc4447
in turn the message has this error if I open the message
Whitespace is not allowed at this location. Error processing resource 'http://host:port/mdt/messageconten...
and it shows one of the lines from idoc..flat file
Any idea is greatly appreciated..Thank you..ThanujjaThe difference in what I suggest is that it is way simpler.
Maybe you did not understand this, so will try to explain it better. Its not the best thing to do, but if JMS adapter doesn't budge then you can give it a shot.
1. You continue to use the ABAP mapping in your interface mapping to map the Idoc xml to Idoc flat.
2. Write a Java Map that will take the output of the ABAP mapping ; and then create a XML output which would be something like,
<Root>
<Idoc_Flat>
<Data>ABAP Mapping Output<Data>
</Idoc_Flat>
</Root>
3. Now use the simple content conversion in the JMS adapter to convert this to flat file.
Regards
Bhavesh -
Experts
I need to send JMS Type to the JMS Receiver.
The following UDF was used.
DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey keyHeader1 = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/JMS","DCJMSType");
String a="341";
conf.put(keyHeader1,a);
return "";
Selected ASMA in the Receiver channel. Anything else needs to be done ?
Thanks and regards,
J AugastineAbhishek
Modified the UDF.
Also
In the JMS Receiver channel did the following
- Checked the box for 'Use Adapter Specific Message Attributes'
- Checked the box for 'Fail if Adapter Specific Message Attributes missing'
- Checked the box for 'Specify Additional JMS Message Properties'
- Defined property in the table and set the Java type
DCJMSMessageProperty0 String
Under the Module tab,
- Added the module AF_Modules/DynamicConfigurationBean in position 1 with module key HEADER
- Added module configuration as follows:
Module key HEADER
Parameter name key.0
Parameter value write http://sap.com/xi/XI/System/JMS DCJMSMessageProperty0
Module key HEADER
Parameter name value.0
Parameter value JMS DCJMSMessageProperty0
What change needs to be done ??? -
Setting DCJMSCorreleationID in JMS RECEIVER using Seeburger AttribMapper
Hello
Has anyone managed to set the DCJMSCorreleationID dynamic attribute in a JMS RECEIVER using Seeburger AttribMapper module?
Here is how I configured the JMS_RECEIVER:
In the module tab, I added a new module:
Module Name Module Type Module Key
localejbs/Seeburger/AttribMapper Local Enterprise Bean map
And I added the following parameter:
Module Key Parameter Name Parameter Value
map http://sap.com/xi/XI/System/JMS/DCJMSCorreleationID "TEST"
When I process a message, I can see in the adapter engine Audit log the following lines:
SEEBURGER/AttribMapper: Setting dynamic property http://sap.com/xi/XI/System/JMS - DCJMSCorreleationID = TEST
SEEBURGER/AttribMapper: Finished succesfully, 1 properties set or deleted
However looking at the Message Content/SOAP Document, I can see no dynamicConfiguration (it should be the case according to Seeburger documentation).
If I check the message properties on the JMS queue, I can see the correlation ID is not set to TEST.
Any idea?
Thanks in advance!
GregAre you using the AttribMapper in the Sender or in the Receiver Channel ? Please be aware that you will not be able to see the change of attribmapper in the message content in receiver channels (they are not updated/persisted there).
-
Hi,
I am facing issue in JMS receiver adapter can you please give me some suggestions.
JMS adaptor: Message processing failed. Cause: com.sap.engine.services.jndi.persistent.exceptions.NameNotFoundException: Path to object does not exist at ABC_JMSReceiver_ModuleEAR, the whole lookup name is localejbs/sap.com/XXX_JMSReceiver_ModuleEAR/parseOutputStream.
Thanks&Regards
SreenathHi Sreenath,
It seems that you have defined some module at the JMS Receiver end.....can you tell me what module have you defined....
This error is related to that module.....and there may be an error in the module configuration...
Request you to recheck the module configuration.
Cheers
Dhwani -
JMS Receiver channel : No Correlation ID
Hi,
JMS Receiver channel to WebSphere MQ,
I want to put a message on the queue with correlation ID left blank (= no correlation ID), because this causes problems on the receiving side.
Is there a way to achieve this?
I have tried several different settings, but the message appears always with correlation ID.
Kind Regards
Edmond PaulussenI think you should use the notify response bean on the sender channel
Configuring the Sync/Async Bridge Using the JMS Adapter - Adding Modules to the Module Processor - SAP Library
Sync/Async communication in JMS adapter without BPM (SP19) -
MessageSplit from JDBC-Sender to JMS-Receiver
Dear all,
we are getting data in a resultset from JDBC-Sender and have to process each row as a own message. When we use message-splitting we are not able to generate plainText for the receiving JMS-channel. So we thought that we first have to generate xml and afterwards in JMS-Receiver-Adapter we have to use MessageTransformBean Struct2XML, but it does not work.
Howcan we achieve this?
Here is our mapping:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="utf-8" />
<xsl:template match="//resultset">
<xsl:text disable-output-escaping="yes"><ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge"></xsl:text>
<xsl:text disable-output-escaping="yes"><ns0:Message1></xsl:text>
<xsl:for-each select="row">
<xsl:value-of select="NODENAME" />
</xsl:for-each>
<xsl:text disable-output-escaping="yes"></ns0:Message1></xsl:text>
<xsl:text disable-output-escaping="yes"></ns0:Messages></xsl:text>
</xsl:template>
</xsl:stylesheet>Hi Abid,
we've tried it with MessageTransformBean, but unfortunately we were'nt able to generate the correct messages for JMS.
If we adapt our original mapping to that one below than we are able to send 2 messages to JMS having the xml-structure. Now, we just have to remove the xml structure. How do we have to configure the Module-Tab? Which one's are the exact parameters we have to use?
new MAPPING:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="utf-8" />
<xsl:template match="//resultset">
<xsl:text disable-output-escaping="yes"><ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge"></xsl:text>
<xsl:text disable-output-escaping="yes"><ns0:Message1></xsl:text>
<xsl:for-each select="row">
<MSG>
<xsl:value-of select="NODENAME" />
</MSG>
</xsl:for-each>
<xsl:text disable-output-escaping="yes"></ns0:Message1></xsl:text>
<xsl:text disable-output-escaping="yes"></ns0:Messages></xsl:text>
</xsl:template>
</xsl:stylesheet>
resulting messages:
<?xml version="1.0" encoding="utf-8" ?><MSG>VALUE_1</MSG>
<?xml version="1.0" encoding="utf-8" ?><MSG>VALUE_2</MSG>
Kind regards, Stefan -
How to avoid end separator in JMS receiver adapter
Hi All,
I don't want to have any end separator for the JMS receiver adapter. By default it is line break. But my requirement is I don't want any end separator i.e.I want the output to be a single line of text.
What should I do in the module configuration of JMS receiver adapter to achieve this?
If any body can help me in this I promise to reward the answer.
Thanks
AbinashI have solved the problem .
Thanks
Abinash
Maybe you are looking for
-
My wife and i share the same computer to sync our phones with. The last time i sync i lost all my phone numbers and got hers. Is there a way to get mine back. Please Help. Thanks
-
Upgrading my 24" imac to a 2TB HD
The 250 GB in my imac seems to be dying on me. What's the best 2TB HD to replace it with. I want lots of speed because I'm doing a lot of photoshop? I have maxed out on the ram. I have 4GB of ram in there even though the most it can utilize is 3GB. T
-
Print UDO with button using SDK
Hi all, I create an User Defined Object based on user table. My customer want to print the form. How can i do ???? I created a query in Query manager and i create Query Print Layout but i can't used it with <CTRL-P> command. How can i used it when i
-
DB Connect - Link to database failed
I encountered error when I use the TMS Check Transport Tool. Both DB Connect and Offline Call failed during tp Call. Below are the log from the error. I have seen through notes 351586 TP: DBSL error 107, DB error 208 with Connect and have set up the
-
Safari 7.1 won't open at all
Hi, after upgrading to Safari 7.1, it won't open at all. I noticed that it is listed in the App Store updates as having been updated twice and I don't know if that has anything to do with it.