Content conversion (JMS)
Hi all,
I am using the Content Conversion Module for JMS in order transfer a XML to a FLAT structure.
I am getting this error:
Parameter xml.fieldFixedLengths or xml.fieldSeparator is missing (4409)
xml.fieldFixedLengths is configured under the adapter module-tab, but I havent set up the lenghts for the client and the csysidn fields, since thay are part of the complex type. Is that wrong?
This is my structure:
<nr1:ErrorHandling_MT
<client>xxx</client>
<csysidn>xxx</csysidn>
<error>
<eseq_number>xxx</eseq_number>
<error_text>xxxx</error_text>
<original_message>xxx</original_message>
</error>
</nr1:ErrorHandling_MT>
Could I do a simple conversion with this structure at all?
thanks
Thomas
Go through this.
How to use conversion modules (FCC) in JMS - https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/f02d12a7-0201-0010-5780-8bfc7d12f891
Or you can take a help from below mentioned example.
XML2Plain Transform.Class----
com.sap.aii.messaging.adapter.Conversion
XML2Plain Transform.ContentType----
text/plain;charset=utf-8
XML2Plain xml.client.endSeparator----
'nl'
XML2Plain xml.client.fieldFixedLengths-------give the length here
XML2Plain xml.error.endSeparator----
'nl'
XML2Plain xml.error.fieldFixedLengths----
give the length here
XML2Plain xml.addHeaderLine----
0
XML2Plain xml.conversionType----
StructXML2Plain
XML2Plain xml.recordsetStructure----
client,error
Similar Messages
-
Content conversion JMS adapter
Hi
I have a flat file which is read by JMS adapter. I am using content conversion in the JMS adapter.
There are 10 fields in the flat file,i want to read only 3rd and 5th fields.Is this possible?Can i specify the start end position of a flat file field in the content conversion.
looking forward to your ideas.......
Thanks
kumarOH. Well that makes a difference then.
Are the records fixed-width, or delimited? If they are fixed width, just set the last attribute as "filler" and give it the combined length of all the fields that are after the nth one you want. If it's delmited... Let me test out what happens if there are more fields in the data than are set up... I think it might throw them away, but I have to check.
amy -
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 -
Content conversion in XI using JMS Sender Adapter.
Hi,
I have scenario where i will get fixed length flat file from MQ and i need to create an IDOC.
The flat file structure is like below.
HEADER001002003 (Occurs once)
DELIVERY0000111112222 (Min - 1 and Max - Unbounded)
Detail33333344444455555 (Min - 1 and Max - Unbounded)
NOTE -- Detail record is sub level record of DELIVERY.
I would like to do content conversion in JMS SENDER ADAPTER.
Did anybody worked on similar scenario?
I would appreciate ,if anybody provides info on how to do it.
Regds,
Jagdish.Hi
Please have a look at these threads..u get an idea abt the content conversion.
JMS Adapter: Content Conversion
https://forumsn.sdn.sap.com/click.jspa?searchID=2171243&messageID=3319704
JMS Adapter Content Conversion
JMS Content Converrsion
Hope these help you! -
Ignore record in JMS sender content conversion
Hi,
I am using JMS sender adapter with content conversion.
In the input text file, I have to ignore the first record.
for this, in Module tab I have given parameter like this:
Plain2XML -> documentOffset -> 1
so that it will not read the first record in the text file.
But it is not working
Please suggest the right way.
Regards,
Anil.It should be:
xml.documentSkipFirstRows
Regards
Stefan -
Content conversion in Sender JMS adapter-document
Hi,
I am tring to read fixed length flat file from MQ-series Queue using JMS adapter.
I want to use content converstion to convert the flat file to XML.
I am not able to open the PDF link provided in SDN.
if anyone has a copy of the pdf document on JMS content conversion, could you please enmil it to me
at [email protected]
Edited by: ashok sri on May 27, 2008 5:25 PMplease go through the document
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/50061bd9-e56e-2910-3495-c5faa652b710 -
Content conversion in Sender JMS Adapter
Hi,
Scenario is file to IDoc
My source file is ' ; ' separated file coming from MQ via JMS adapter. now I need to convert this to XI.
Source DT looks like
Root
HEADER (Occurance 1)
Field 1
ISOCURCD
TRANKODE
IDENTIFIER
DATO
TIME
DETAIL(Occurance 1 to unbounded)
ISOCURCD
TRANKODE
EFFDATE
COMMDATE
DKKVAL1
USDVAL1
TRAILER(Occurance 1)
ISOCURCD
TRANKODE
TRANCOUNT
According to How to use content conversion in JMS guide from SDN i have configured the content conversion parameters in the module of JMS sender adapter.
In the processing sequence given the module name as localejbs/AF_Modules/MessageTransformBean and module Key as Plain2XML.
And in module configuration
Parameter Name Parameter Value
Transform.Class com.sap.aii.messaging.adapter.Conversion
Transform.ContentType text/xml;charset=utf-8
xml.keyFieldName TRANKODE
xml.keyFieldType CaseSensitiveString
xml.recordsetName Root
xml.documentName MT_ROOT
xml.documentNamespace http://XXX.XXX.XX/xi/XXXXX
xml.processFieldNames fromConfiguration
xml.conversionType StructPlain2XML
xml.recordsetStructure HEADER,1,DETAIL,*,TRAILER,1
xml.HEADER.fieldNames Field1,ISOCURCD,TRANKODE,IDENTIFIER,DATO,TIME
xml.HEADER.fieldSeparator ";"
xml.HEADER.keyFieldValue H
xml.fieldSeparator ";"(if i don't use this then the file is not being picked and getting an error in the CC monitoring of RWB saying xml.field separator missing.)
Similarily for Detail and Trailer records as well.
But when I run the scenario, the file is being picked up but I am not getting any payload into the inbound message.
Can you please help me where I have configured wrongly. And one more thing will this configuration help for ; separated file .
Thanks & Regards,
Kumar
Edited by: Kumar on Dec 19, 2007 11:11 AM
Edited by: Kumar on Dec 19, 2007 11:15 AMHI,
Have you gone through the below pdf i think it will help to find ur mistake.
How to use conversion modules in JMS - https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/f02d12a7-0201-0010-5780-8bfc7d12f891
Thnx
Chiarg -
JMS sender communication channel content conversion
Hi,
I struck with the content conversion in the JMS Sender communication channel.
I have configured the communication channel with the filed fixed lengths. (Simple type)
The field fixed lengths i have given are 10,2,3,11
The contents in the file 1000000072 230 111
but, in the input xml after conversion iam getting 100000007 in the first field and 2 in the second field 23 in the third field.
I have configured the sender communication channel as in the document in SDN.
Even, i configured several communication channels. I didn't get this strange error any time.
I have gone through SDN to fix this issue, but i didn't get solution.
If anyone got rectified this kind of error, please answer your solution to me
Thanking you,
Regards,
Krishnaraju.Hi,
Thanks for all your support. The issue got resolved.
The issue is due to the file, In the file the special characters are appearing. We are not able to see these characters in the notepad, wordpad, text editor.
But, these characters are appearing in th syn text editor. So, we removed those characters and processessed the file. Now, it is successfull.
Regards,
Krishnaraju. -
JMS Adapter module content conversion
Hi,
I'm developing a module for the jms adapter(sender). My requirement is to parse the XI message(text) using some XML parsing api and do some formatting, logic etc and to make the jms adapter create a xml file with the processed information. Jms File Content Conversion does not suit our requirement and thats the reason we are trying this option.
My understanding is: Access the payload in the "process" method of the local ejb, apply XML parsing using JDOM etc, make a xml which should be the output of the jms adapter. This xml will be the xml with my user defined tag elements after content conversion. Can i form this xml and assign to the inputModuleData? Will the jms adapter use this string to create the xml and send to IS? Are there any other parameters to be set or processes to be done?
Also in which sequence should I put my adapter module in communication channel.
================================================
My code snippet:
public ModuleData process(ModuleContext moduleContext, ModuleData inputModuleData)
throws ModuleException
Object obj = null; // Handler to get Principle data
Message msg = null; // Handler to get Message object
try
obj = inputModuleData.getPrincipalData();
msg = (Message)obj;
AuditMessageKey amk = new AuditMessageKey(msg.getMessageId(),AuditDirection.INBOUND);
Audit.addAuditLogEntry(amk, AuditLogStatus.SUCCESS,"sample: Inside sample Module---efore reading payload");
try
XMLPayload xmlpayload = msg.getDocument();
String messageStr = xmlpayload.getText();
String inputStr = null;
String tags[] = new String[2];
String values[] = new String[2];
Audit.addAuditLogEntry(amk, AuditLogStatus.SUCCESS,"sample: Inside sample Module---before content conversion");
String tagvalue1 = messageStr.substring(messageStr.indexOf("BEGIN+"), messageStr.indexOf("'");
String tagvalue2 = messageStr.substring(messageStr.indexOf("'"), messageStr.lastindexOf("ENDING");
tags[0] = "tag1";
tags[1] = "tag2";
values[0] = tagvalue1 ;
values[1] = tagvalue2 ;
Audit.addAuditLogEntry(amk, AuditLogStatus.SUCCESS,"sample: Inside sample Module---after content conversion");
Document xmldoc = null;
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
DOMImplementation impl = builder.getDOMImplementation();
org.w3c.dom.Element e = null;
Node n = null;
xmldoc = impl.createDocument(null, "MT940", null);
org.w3c.dom.Element root = xmldoc.getDocumentElement();
for(int i = 0; i < tags.length; i++)
e = xmldoc.createElementNS(null, tags<i>);
n = xmldoc.createTextNode(values<i>);
e.appendChild(n);
root.appendChild(e);
Audit.addAuditLogEntry(amk, AuditLogStatus.SUCCESS,"sample: Inside sample Module---before dom creation");
DOMSource domSource = new DOMSource(xmldoc);
ByteArrayOutputStream myBytes = new ByteArrayOutputStream();
Result dest = new StreamResult(myBytes);
TransformerFactory tf = TransformerFactory.newInstance();
Transformer serializer = tf.newTransformer();
serializer.setOutputProperty("indent", "yes");
serializer.transform(domSource, dest);
Audit.addAuditLogEntry(amk, AuditLogStatus.SUCCESS,"sample: Inside sample Module---before setting principal data");
byte[] docContent = myBytes.toByteArray();
if (docContent != null) {
xmlpayload.setContent(docContent);
inputModuleData.setPrincipalData(msg);
Audit.addAuditLogEntry(amk, AuditLogStatus.SUCCESS,"sample: Inside sample Module---after setting principal data");
catch(ArrayIndexOutOfBoundsException e)
e.printStackTrace();
catch(StringIndexOutOfBoundsException e)
e.printStackTrace();
catch(TransformerException e)
e.printStackTrace();
catch(Exception e)
e.printStackTrace();
catch(Exception e)
ModuleException me = new ModuleException(e);
throw me;
return inputModuleData;This is for sender channel. The doubt in adapter module is in the process block how will I get the main data being read by the jms adapter from the text file.As I am reading text file from websphere MQ, the content of the text file can be obtained thru xmlpayload.getText() or is there any other way.
obj = inputModuleData.getPrincipalData();
msg = (Message)obj;
XMLPayload xmlpayload = msg.getDocument();
String messageStr = xmlpayload.getText();
At present I am using my adapter module before call sap adapter, but before sap adapter there are two other modules(toBinary and to Xmb), so shld I place it before both or after both the modules.
Thanx in advance
Rachit -
Content conversion by using sender JMS channel
Hi All,
I have developed a scenario from JMS to Idoc. I need to read flat files by using sender jms adapter. I have configured message transform bean in module tab and respective content conversion parameters as well. My flat files contains different structures. So I need to use conversion type as StructPlain2XML. Based on keyField value I am diffentiating flat file records. My requirement is I have to give two spaces in <xml.keyFieldValue> parameter. fixed Length of keyFieldValue is 6, Actual value getting from source file is DEST. I need to pass two spaces as per fixed length specification. I have passed two spaces, but after activating spaces are removed by system bydefault. Because of this an empty file is processed by PI. Source file contains two spaces after DEST. I need to read two spaces along with DEST value as keyFieldValue. How to achieve this..
Thanks in advance.
Best Regards,
Ashok.Hi Ashok
You can resolve this by splitting the field into two fields - and actual key field and a dummy/temp field.
I've just blogged about this technique, you can refer to it here
Content Conversion for fixed length files with key field value shorter than key field length
Rgds
Eng Swee -
JMS like content conversion in Seeburger
Hi,
Can you have JMS like content conversion in Seeburger?
In Seeburger adapter if username/password is used, instead of public private keys, can you use JMS like content conversion in Seeburger. (the one which you specify as module parameters)
Regards,
Anirudh.Depending on what solutions you have: you may use seeburger bic module to convert from csv to xml or other formats. best thing usually is to follow the 2 step mapping strategy of seeburger where bic is doing a non-xml<->xml conversion and the target (XML-) format is mapped to in the SAP Message Mapping.
-
Content Conversion module in JMS Adapter - MessageTransformBean
Hi All,
We are using Content Conversion module using MessageTransformBean in JMS adapter to read a flat file from MQ Queue.It works fine and the file is getting picked and successfully converted into a xml structure in XI.
The flat file is multiple line file with each line as one xml record.But the xml structure after conversion has only one record in it.So we end up getting multiple messages each with one record instead of ONE xml structure with multiple records in it.
Could I know why I am not getting multiple records in one xml structure as expected.
Do I need to change xml.structureTitle as MyTitle,* or should I put something endSeparator like we do in File Content Conversion.
Any Help appreciated.
Thanks,
V
Edited by: CollinsV on Aug 9, 2010 6:28 AM
Edited by: CollinsV on Aug 9, 2010 6:36 AM
Edited by: CollinsV on Aug 9, 2010 6:38 AM
Edited by: CollinsV on Aug 9, 2010 6:39 AM
Edited by: CollinsV on Aug 9, 2010 6:56 AMThanks Shabarish .I did follow the same document , but the xml is not converted as multiple records in it .we are getting only one xml message for each record in the file .
The xml structure we are getting :
<ns:MyDocument xmlns:ns="http://xi.com/test">
<MyTitle>
<field-name1>111</field-name1>
<field-name2>222</field-name2>
<field-name3>333</field-name3>
</MyTitle>
</ns:MyDocument>
We need onle one xml message instead as below.
<ns:MyDocument xmlns:ns="http://xi.com/test">
<MyTitle>
<field-name1>AAA</field-name1>
<field-name2>BBB</field-name2>
<field-name3>CCC</field-name3>
</MyTitle>
<MyTitle>
<field-name1>111</field-name1>
<field-name2>222</field-name2>
<field-name3>333</field-name3>
</MyTitle>
</ns:MyDocument>
Any Help ...
Thanks
V -
Content Conversion - JDBC and JMS
Can we use File Content Conversion with JDBC and JMS ?
Hi,
How To Use the Content Conversion Module in JMS Adapter - https://websmp106.sap-ag.de/~form/sapnet?_SHORTKEY=01100035870000582377&
check this for JMS content conversion:
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/f02d12a7-0201-0010-5780-8bfc7d12f891
Check the how to guide provided by prabhu and also this link on the XMl To TeXtCoversion Module,
http://help.sap.com/saphelp_nw04/helpdata/en/44/748d595dab6fb5e10000000a155369/content.htm
Ref How To Use the Content Conversion Module in JMS Adapter -
https://websmp106.sap-ag.de/~form/sapnet?_SHORTKEY=01100035870000582377&
See this weblogs which was shown with examples:
How to use SAP's WebAS J2EE's JMS Queue in Exchange Infrastructure
Sync/Async communication in JMS adapter without BPM (SP19)
Async/Sync Communication using JMS adapter without BPM (SP 19)
Exploring JMS and SAP-XI JMS Adaper
Configuring the sender JMS adapter
http://help.sap.com/saphelp_nw2004s/helpdata/en/f4/2d6189f0e27a4894ad517961762db7/content.htm
Configuring the receiver JMS adapter
http://help.sap.com/saphelp_nw2004s/helpdata/en/10/b1b4c8575a6e47954ad63438d303e4/content.htm
Check JMS Adapter section of this blog by Sravya:
Aspirant to learn SAP XI...You won the Jackpot if you read this!-Part III
Also information related to Provider-specific settings are available
http://help.sap.com/saphelp_nw2004s/helpdata/en/cd/d85a9d6fab7d4dbb7ae421f710626c/frameset.htm
Plz do refer the following threads:
JMS Content Conversion - no CR/LF
Message (Data) getting lost after JMS Content Conversion(Sender)
Message (Data) getting lost after JMS Content Conversion(Sender)
Message (Data) getting lost after JMS Content Conversion(Sender)
Regards,
Vinod. -
Complex XML to Plain in JMS adapter "Content conversion module"
Hi!
I have read the document on "How To use the content conversion module with XI3.0 J2EE JMS Adapter", and it says only SimpleXML can be converted in the receiver channel.
I had hoped for a solution at least as good as in the File/ftp adapter, where complex XML can be transformed to files.
Are there plans to include complex XML conversion in the JMS adapter?
I can not use the file adapter as I need to change the file name and destination, and that can not be done by adding own module to its single module.
Any idea how I can achieve what I want?
To only way I can find, is to create a file using the file/ftp adapter, and then pick it up again and treat all the lines as the same structure (one row = one xml field). Then output this new xml message to file, using the JMS adapter and add any modules with name and destination determination.
Appreciate any help!
Regards,
Oeystein EmhjellenHello,
Have you tried to use an XSLT mapping within the IE?
I have, at one customer site, created a XSLT message mapping which converts the XML to a fixed length ASCII file format. I than added the XSLT message mapping as a second mapping step on the interface mapping.
In this case I was able to publish a fairly complex fixed length file format to MQ Series via the JMS adapter.
/Johan -
Sender JMS Content Conversion - How to process multiple records
Hi All,
I use a Sender JMS Channel with Content Conversion.
My message structure is like this
<root>
<rec> </rec>
<rec> </rec>
</root>
I have fixed length flat file with multiple records.
i have given the parameters FixedFieldLength, FieldNames and StructureTitle.
Which parameter i need to use specify the RecordDelimiter
Because my input file will have more than record
my input file -
xxxx
yyyy
if i dont specify any delimiter value, in the module parameter,then for each newline of the file, a new mesage is created.
<root>
<rec>xxxx</rec>
<root>
<root>
<rec>yyyy</rec>
<root>
But i want the output to be like this
<root>
<rec>xxxx<rec>
<rec>yyyy</rec>
</root>hi,
You can do your FCC for sender JMS by going through page 5 of this document.
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/50061bd9-e56e-2910-3495-c5faa652b710
Maybe you are looking for
-
TS3274 How do I move icons from one screen to another?
How do I move icons from one screen to another.
-
How do I un-eject the "HD" for my XP bootcamp partition
I have spent quite a bit of time trying to find the answer to this, but no luck. I accidentally ejected my XP partition (I have two partitions set-up on my MacBook - one for OS X and one for XP, set-up under Bootcamp) while in finder. Finder no longe
-
Why it automatically deduc 1.98$ from my debit card?
I didn't buy anything, why it automatically deduc 1.98$ from my debit card? Please kindly check ASAP It's not much money, but I quite not happy about that detail: Order ID: MH6T3WJ71L Receipt Date: 02/08/13 Order Total: $1.98 Billed To: Visa .... 2
-
WiFi Network Name with Underscore Special Characters Issue
Turns out that iPod Touch doesn't like wireless network names with special characters (e.g. underscores) in them (I had 2 underscores in mine). It will establish a connection, get an IP address, even use WEP but won't talk to the Internet if the wire
-
I have a xml file and a xsl file. I want to test running the xml file thru the xsl to see what the end result will be. does anyone know how to do this in jdeveloper? i have both 11g and 10g jdeveloper