Subnodes and content conversion in FTP-Adapter
Hello experts,
the scenaria is IDOC -> XI -> FTP and content conversion is used.
The structure of the IDOC is like:
<head></head>
<pos>
<subnode></subnode>
</pos>
<pos>
<subnode></subnode>
</pos>
There can be 1 ore more positions.
We mapped this to a XML-structure according to help.sap.com
http://help.sap.com/saphelp_nw04/helpdata/en/d2/bab440c97f3716e10000000a155106/frameset.htm
As we are not allowed to use subnodes all segments have to be on one level.
How can I map to a structure (with 1 OR MORE positions) like
<head></head>
<pos></pos>
<subnode></subnode>
<pos></pos>
<subnode></subnode>
At the moment we are only able to map to:
<head></head>
<pos></pos>
<pos></pos>
<subnode></subnode>
<subnode></subnode>
In the datatype I can't specify that a position always is followed by a subnode ... i only can use remove context in mapping and put all subnodes beneath the positions. Is there any possibility in graphical mapping to change this?
Thanks and regards,
David
Ok, what can I do, to describe a data typs with variable amount of pos' FOLLOWED by subnodes?
Or is it possible to create an item line with pos and subnode and remove this line later (move everything to first level).
<item>
<pos>
<subnode>
</item>
<item>
<pos>
<subnode>
</item>
<item>
<pos>
<subnode>
</item>
MAP TO:
<pos>
<subnode>
<pos>
<subnode>
<pos>
<subnode>
I can't create a data type like this...
EDIT:
Remember, there can be documents with 1 or many positions... and the fieldname always is the same.... the datatype definition doesn't acceppt duplicate fieldnames and fields that are not in a defined sequence.
Edited by: David Claes on Jul 10, 2008 2:09 PM
Edited by: David Claes on Jul 10, 2008 2:11 PM
Similar Messages
-
Content conversion in sender adapter.
Hi,
I have a problem with the content conversion in sender adapter.
I need only process the csv file with the exact number of columns containing the structure, if the csv file contains more o less columns in the csv file, I want that this files are not relayed by the adapter and remain on the server.
Thank you very much for your help.@ Hareen
This can be achieved at mapping level. You need to check the number of columns that are comming in the file using Count function. If the number of count is equal to the value specified then will process the message else raises a mapping exception.
Are you talking about "count" function in the message mapping? that function won't count the number of fields / columns, but would count the number of occurrence of a particular field. -
Query regarding file content conversion using file adapter
Hi All
I have a question regarding file content conversion in file adapter.
I have a file coming in the following format.
AA,111,222,333
BB,444,555,666
CC,777,888,999
My incoming message structure has a hierarchy. The CC record is a structure part of BB record. BB record is a structure part of AA record. It is like this:
AA,111,222,333
<<BB,444,555,666>>
<<<<CC,777,888,999>>>>
After file content conversion, in the resulted xml, i am getting a flat hierarchy instead of nested hierarchy.
Is it possible to get a nested hierarchy as a result of file content conversion?
Please let me know
Thanks
ChandraHi Udo
According to your suggestion, I am trying to use mapping.
I am getting a flat file and i am reading it.
This is my source structure:
AA,11,22,33
BB,44,55,66
CC,77,88,99
This is my required targer structure:
AA,11,22,33
<<BB,44,55,66>>
<<<<CC,77,88,99>>>>
To explain this, BB record can have multiple records of CC records.
AA records can have multiple records of BB record.
I am using removecontext node function.
CC (Source) (removecontext)-> CC (target structure)
But here, when i rightclick on source CC field in the mapping editor, i cannot see any other context except root node. So, how can i proceed here??
Many Thanks
Chandra -
Sender File Adapter and content conversion
Hi,
How can we remove the last line from the file using content conversion?
The last line should not be read from the input file.
Like for the first line we can use Document Offset .......similarly do we have any option for the last line?>
neelansha singh wrote:
> date Empno Empname
> 19.03.2009 12345 Neel
> 20.03.2009 34566 Neelkanth
> EmpDes Japan 100
>
>
> The file is like this first row i have removed using document offset.......from 2nd row till nth row the structure is as shown above and the last row has no. of fields 1 less than all other rows and also its root node is different like shown above its rootnode is EmpDes..........How to use File content conversion for this?
do you want to avoid the last line i.e
EmpDes Japan 100
in that case the 3 options are
1. use a adapter module and remove the last line - this is the ideal option
2. use a OS script - will work but only if you are using the NFS option in the file adapter instead of FTP
3. read that also using content conversion (treat it as a trailer) and ignore it during the mapping -
File sender adapter and content conversion with polish character
We are loading a csv file with PI 7.0 file sender adapter using "content conversion" - all fields go through EXCEPT a special character hex '208C' (space in front) looks like "Æ" is converted to hex 'C28C'.
We are using code page UTF8
We are using:
enclosuresign "
enclosuresignescape ""
fieldcontentformatting nothing
enclosureconversion NO
Hope some one can helpHi Bohamo,
Hope you have set the following for your file sender adapter :
1. Transfer Mode is set to Binary,
2. File Type Text,
3. Encoding ISO-8859-1( for Western European Latin ).
Inorder to recognize Polish Character, try as follows :
Your sender file after coming into Pi has XML encoding declaration 'UTF-8'.
Write a simple XSLT mapping to change the value of the attribute "encoding" to "ISO-8859-1" in the output XML of message mapping . Include this XSLT map as the second mapping step in your interface mapping.
First step in your interface mapping will be your already existing message mapping.
An example of the XSL code :
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method='xml' encoding='ISO-8859-1' />
<xsl:template match="/">
<xsl:copy-of select="*" />
</xsl:template>
</xsl:stylesheet>
or you can also do java mapping if you are comfortable with java code !
Cheers,
Ram. -
Supress Column Heading - File Content Conversion in Sender Adapter
Hi,
Let me give a more clear picture about my scenario. I need to convert CSV File to XML output:-
My source file has column heading and values. The sample data is mentioned hereunder:-
PERNR;KID;PNALT;NACHN;NAME2;VORNA
;1200;1200;Angus
I have created a data type as under:-
DT_LegacyEmployee (Category - Complex Type)
Employees (Category - Element, Occurence - 1)
Header (Category - Element, Occurence - 0...1)
PERNR_H
KID_H
PNALT_H
NACHN_H
NAME2_H
VORNA_H
Employee (Categroy - Element, Type - DT_LegacyEmployee_Row, Occurence - 0...unbounded)
PERNR
KID
PNALT
NACHN
NAME2
VORNA
The file conversion parameters in the file sender adapter are mentioned hereunder:-
Document Name - MT_LegacyEmployee
Document Namespace - http://abc.com/xi
Recordset Name - Employees
Rescordset Structure - Header,1,Employee,*
Recordsets per Message - 1
Key Field Type - String (Case Sensitive)
Employee.fieldSeparator - ;
Employee.endSeparator - 'nl'
Employee.fieldNames - PERNR,KID,PNALT,NACHN,NAME2,VORNA
I dont' have a key field value. How do we remove the header and show only the values in the xml output. I have searched the forum topics as well checked many blogs related to file content conversion, but nothing helped. Kindly advice how to fix this issue. Thanks in advance.
Regards.
PraveenHi Praveen,
Change your File Adapter as below
Document Name - MT_LegacyEmployee
Document Namespace - http://abc.com/xi
Recordset Name - Employees
Rescordset Structure - Employee,*
Recordsets per Message - 1
Key Field Type - String (Case Sensitive)
Employee.fieldSeparator - ;
Employee.endSeparator - 'nl'
Employee.fieldNames - PERNR,KID,PNALT,NACHN,NAME2,VORNA
There is no need for the Header required in the data type.
DT_LegacyEmployee (Category - Complex Type)
Employees (Category - Element, Occurence - 1)
Employee (Categroy - Element, Type - DT_LegacyEmployee_Row, Occurence - 0...unbounded)
PERNR
KID
PNALT
NACHN
NAME2
VORNA
Now the trick is in the mapping program
Lets assume your mapping looks like
MT_LegacyEmployee ---> MT_TargetEmployee
- Employees ---> Records
- Employee ---> Record
- PERNR ---> TargetPERNR
- .. so on
When you do a mapping from Employee ---> Record apply the following logic.
(PERNR)--->
(TestEquals =) --->(NOT)--->
(Constant) ---> (IF)
(PERNR) (IF Without Else) ---> (Record)
(THEN)
(Employee)--->
When doing this make sure RightClick on PERNR and Select Context ---> Employees.
By default context would be from Employee and it will give you an error of XSD format. So make sure you are changing the context. -
Content Conversion in Mail Adapter
Hi folks,
I would like to know whether it is possible to do content conversion when using a mail adapter.
The scenario is :
We will receive file as an attachment in a mail. We have to read the file and do the content conversion. Then we have to map the data to an Idoc.Now we r struck that how can we convert the content of the mail attachment. Please help how can we achieve this.
Thanks in advance.
Best Regards,
Noorulhi,
yes you can do it:
this document describes the same thing with jms adapter:
https://websmp101.sap-ag.de/~sapdownload/011000358700001186732005E/HowToConveModuleJMS.pdf
my weblog about e-mail attachments:
/people/michal.krawczyk2/blog/2005/12/18/xi-sender-mail-adapter--payloadswapbean--step-by-step
Regards,
michal
<a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions">XI FAQ - Frequently Asked Questions</a> -
Problem with File Content Conversion (Receiver FIle Adapter)
Hi Experts,
I have following structure in receiver side:
MT_Test
F1
F2
F3
F4
Now I want a CSV file in target side in below format:
F1,F2,F3,F4
I have provided below config in receiver file adapter under content conversion tab:
Recordset Structure : MT_Test
MT_Test.fieldSeperator= ,
MT_Test.endSeperator= 'nl'
But this is generating blank CSV files in target directory..What might be the reason.. I have checked the msg in adapter engine, the XML file is correct and contains valid values for the fields..Its something like below:
<?xml version="1.0" encoding="UTF-8" ?>
<MT_Test>
<F1>Hai</F1>
<F2>Hello</F2>
<F3>Bye</F3>
<F4>Hi</F4>
</MT_Test>
I should get CSV file as
Hai,Hello,Bye,Hi
But I am getting a blank file with above said config parameters in content conversion tab.
What might be the reason for getting blank CSV files in target side???
Thanks,
AdiHi Adi,
>>My target structure in below format:
<?xml version="1.0" encoding="UTF-8" ?>
- <MT_Test>
<F1>Hai</F1>
<F2>Hello</F2>
<F3>Bye</F3>
<F4>Hi</F4>
</MT_Test>
So, try to edit Data type and include hierarchy level above <F1>.
Finally your Target Structure will resembles like this.
<?xml version="1.0" encoding="UTF-8" ?>
- <MT_Test>
<Structure>
<F1>Hai</F1>
<F2>Hello</F2>
<F3>Bye</F3>
<F4>Hi</F4>
</Structure>
</MT_Test>
FCC Parameters will be like this.
Structure.fieldSeparator = ,
Structure.endSeparator = 'nl'
Hope you were clear.
Thanks,
Siva. -
Content Conversion for J2SE Adapter
Hi,
I have configured the J2SE Adapter properly,
Still content conversion is not taking place for my file and it is going unconverted to xi.
Following is the process.
I have the file as:
<b>0000665811 0111 500.00 20071217</b>
I Require the xml as
<b><ns0:Mt_Customer_Balance_Info xmlns:ns0="http://aoa.nestle.com/fi">
<RECORDSET>
<CUSC>0000665811</CUSC>
<CRCA>0111</CRCA>
<OBAL>500.00</OBAL>
<DATE_REPORT>20071217</DATE_REPORT>
</RECORDSET>
</ns0:Mt_Customer_Balance_Info></b>
I have configured as follows:
<b>mode=FILE2XMBWITHROWCONVERSION
xml.processFieldNames=fromConfiguration
xml.fieldSeparator='0x09'
xml.lastFieldsOptional=NO
xml.endSeparator=nl
xml.fieldNames=CUSC,CRCA,OBAL,DATE_REPORT
xml.structureTitle=RECORDSET
xml.documentName=FILE
xml.documentNamespace=http://aoa.nestle.com/fi</b>
Can you help me regarding this?hi anupam,
u may refer this and see if u have done the configuration correctly.
http://help.sap.com/saphelp_nw04/helpdata/en/88/0f453cf1fcc85ee10000000a11402f/frameset.htm
regards,
latika. -
File content conversion using SOAP adapter
Hi,
I'm using a receiver SOAP adapter in my IDOC to file scenario and need to do file content conversion in the receiver side.
Are any standard modules available for file content conversion in the SOAP adapter or do I need to write custom EJB modules for this.
Please note that I have to use a SOAP adapter, can't use any other adapter.
Thanks in advance
ShiladityaHi,
XML Document Conversion Type
● Enter recordTypes as the parameter name.
Under Parameter Value, enter the complete, comma-separated list of all names of recordset types that occur in the document to be converted.
If you decide to use this method, you can define a different conversion type for each recordset type that occurs in the XML document.
For example, you could name the recordset types as follows: RecordType1,RecordType2,RecordType3.
● Enter singleRecordType as the parameter name.
Under Parameter Value, enter the name of a recordset type that is to be used to convert all elements that occur in the XML document.
If you decide to use this method, define the same conversion type for each recordset type that occurs in the XML document.
You must enter exactly one parameter only. Whichever parameter you choose, you automatically exclude the second parameter.
You define further parameters for each recordset type.
In the remainder of this documentation the parameters are specified by the prefix <RecordType>. In your configuration, replace this name with the name of the recordset type.
Conversion Type List with Separators
● <RecordType>.fieldSeparator
Enter the field separator that is written between the individual fields of a record.
This specification is mandatory.
Conversion Type List with Fixed Field Length
● <RecordType>.fieldLengths
Specify a character string that contains a list of fixed field lengths that are separated by commas and which determines the number and the length of fields generated in the text file.
For example, you want to write a recordset with three elements that have field widths of five, ten, and fifteen characters. Enter:
<RecordType>.fieldLengths = 5,10,15
This specification is mandatory.
● <RecordType>.fieldLengthExceeded
Specify how you want to handle fields that exceed the configured field length. Permitted values for the parameter value are:
○ error (default)
Interrupts processing of message with error
○ cut
Cuts off superfluous characters
○ ignore
Ignores the field length restriction
Further Entries
● <RecordType>.beginSeparator
Enter a string. The string is placed in front of the first field of a recordset.
● <RecordType>.endSeparator
Enter a string. The string is appended to the last field of a recordset as a concluding character. The default is \r\n.
● contentType
Enter the MIME type of the converted payload. The default value is text/plain.
● addHeaderLine
Only define this parameter if you have already defined singleRecordType.
Define whether a header line is to be added to the result of the conversion.
○ none (default)
Does not insert a header line
○ fromXML
The header line is generated from the element name of the first recordset of the XML document
○ fromConfiguration
The header line is determined by the configuration parameter headerLine.
● headerLine
Only define this parameter if you have already set addHeaderLine=fromConfiguration.
The value that you define is placed in front of the result of the conversion as a header line.
● fixedLineWidth
Enter the maximum line length n (in characters) that can be written to the resulting document. The separator specified by lineSeparator is inserted in the resulting document every n characters.
● lineSeparator
Only define this parameter if you have already defined fixedLineWidth.
Specify the string that is written to the resulting document at the end of each line that is written with fixedLineWidth. The default is \r\n.
Use of Special Characters
You can use special characters in the following parameters: <RecordType>.fieldSeparator, <RecordType>.beginSeparator, <RecordType>.endSeparator, headerLine, and lineSeparator.
● Tabulator: \t
● Carriage Return (CR): \r
● Line Feed (LF): \n
● Arbitrary character: \x<code>
<code>indicates the hexadecimal character code of the character to be displayed.
Regards,
Phani -
Content Conversion in File Adapter
Hi All
Can anyone tell me that in case of content conversion file adapter , up to what level (the deepness in hirerachy) the content conversion is possible both at sender communication channel and at receiver communication channel side.<documentName>...
<recordset>
<NameA>
<field-nameA1>field-value</field-nameA1>
<field-nameA2>field-value</field-nameA2>
<field-nameA3>field-value</field-nameA3>
</NameA>
<NameB>
<field-nameB1>column-value</field-nameB1>
<field-nameB2>column-value</field-nameB2>
<field-nameB3>column-value</field-nameB3>
</NameB>
</recordset>
<recordset>
</recordset>
</documentName>
That is the XML taken from SAP help and that is exactly the maximum level. Note that documentName is nothing but your MT name. -
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 -
Blogs for File content conversion in File Adapter
hi all,
Can some one give me the links for File Content Conversion for File to File Scenario. please.
Thanks in advance.Hi
For Sender
/people/venkat.donela/blog/2005/06/08/how-to-send-a-flat-file-with-various-field-lengths-and-variable-substructures-to-xi-30
/people/michal.krawczyk2/blog/2004/12/15/how-to-send-a-flat-file-with-fixed-lengths-to-xi-30-using-a-central-file-adapter
/people/sap.user72/blog/2005/01/06/how-to-process-csv-data-with-xi-file-adapter
/people/anish.abraham2/blog/2005/06/08/content-conversion-patternrandom-content-in-input-file
SAP Help for sender
http://help.sap.com/saphelp_nw04/helpdata/en/2c/181077dd7d6b4ea6a8029b20bf7e55/content.htm
For Receiver:
/people/arpit.seth/blog/2005/06/02/file-receiver-with-content-conversion
SAP Help for receiver
http://help.sap.com/saphelp_nw04/helpdata/en/d2/bab440c97f3716e10000000a155106/content.htm -
Doubt regarding file content conversion Recever File adapter.
target structure.
<?xml version="1.0" encoding="UTF-8"?>
<ns1:MT_ChangeOfAddress xmlns:ns1="urn:passhe.com/ChangeOfAddressISA28">
<BUSINESS_PARTNER>
<item>
<CAMPUSCODE>65</CAMPUSCODE>
<STUDENTNUMBER>6500000192</STUDENTNUMBER>
<ST_OBJID>732298498</ST_OBJID>
</item>
</BUSINESS_PARTNER>
</ns1:MT_ChangeOfAddress>
target structure is look like this.
MT_ChangeOfAddress
BUSINESS_PARTNER (1,1)
item (0 to unbounded)
CAMPUSCODE (0,1)
STUDENTNUMBER (0,1)
ST_OBJID (0,1)
I have given below parameters in recever file adapter (file content conversion)
Recordset Structure : item
item.fieldNames : CAMPUSCODE,STUDENTNUMBER,ST_OBJID
item.fieldSeparator: , (comma)
i am getting first two digits in my output file: that file has only first two digits that is : 65
may i know how hould i define file contente conversion recever adapter to get proper data in file adapter.
thanks,s
DhanushHi,
Go through these blogs:
/people/venkat.donela/blog/2005/03/02/introduction-to-simplefile-xi-filescenario-and-complete-walk-through-for-starterspart1
/people/venkat.donela/blog/2005/03/03/introduction-to-simple-file-xi-filescenario-and-complete-walk-through-for-starterspart2
/people/anish.abraham2/blog/2005/06/08/content-conversion-patternrandom-content-in-input-file
/people/shabarish.vijayakumar/blog/2005/08/17/nab-the-tab-file-adapter
/people/venkat.donela/blog/2005/06/08/how-to-send-a-flat-file-with-various-field-lengths-and-variable-substructures-to-xi-30
/people/anish.abraham2/blog/2005/06/08/content-conversion-patternrandom-content-in-input-file
/people/shabarish.vijayakumar/blog/2005/08/17/nab-the-tab-file-adapter
/people/jeyakumar.muthu2/blog/2005/11/29/file-content-conversion-for-unequal-number-of-columns
/people/shabarish.vijayakumar/blog/2006/02/27/content-conversion-the-key-field-problem
/people/michal.krawczyk2/blog/2004/12/15/how-to-send-a-flat-file-with-fixed-lengths-to-xi-30-using-a-central-file-adapter
/people/arpit.seth/blog/2005/06/02/file-receiver-with-content-conversion
Thanks,
Satya -
File Content Conversion in Receiver Adapter Help
Hi,
I need to have a flat file at receiver side with the following structure.
Product
LineItem
Notes
Product
LineItem
Notes
But i am getting as
Product
Product
LineItem
Notes
Notes
Please suggest me the changes to be made in File Content Conversion Parameter
Your Help will be appreciated.
Thanks in advance,
AshokSingh,
I think we wont give field names in the receiver file adapter. Please find the details below:
RecordSet Structure: Product,LineItem,Notes.....
Parameters:
Product.fieldFixedLengths:30,10...
Product.endSeparator:'nl'
LineItem.fieldFixedLengths:30,10..
LineItem.endSeparator:'nl'
Notes.fieldFixedLengths:30,10...
Notes.endSeparator: 'nl'
Thanks
Ashok
Maybe you are looking for
-
Is it possible to call ms-dos command in abap program?
Hi, is it possible to call ms-dos command in abap program? Thanks.
-
Hi, I am getting rate and amount.But the problem is I am getting even 0.00 also.I mean the rate 0.00% and amount 0.00.How can I avoid those . Please help me. thanks
-
Can't get to rescue and recovery
Okay I have been making some progress. I received this lenovo W500 wtih win7 pro 64 bit on a 320 GB SATA drive. I wanted to put an 256 GB SSD drive in so I created a rescue disk then backed up the partitions to my NAS. Then pulled the drive and t
-
Your software may be out of date
I get this message, "Your software may be out of date Software Updater analyzes your computer for out of date software and recommends the latest updates to download. Avoid Vulnerabilities Reduce crashes and ensure optimal browsing experience Automati
-
VL02n : Tables for cost and value column
Hi Gurus, I need the values of cost and value columns(coming in smartform output of VL02n tcode) in my customized ALV report. Please tell from which tables these values are coming? Regards, Pankaj