Complex File Content Conversion
Hi SDNites,
I have a XML on the receiver side which needs to be converted into CSV,
XML structure,
Structure 1 (1....Unbounded)
- Field Structure 1
- Field Structure 2
- Substructure 1....Unbounded)
- Field Substructure1
- Field Substructure2.
Expected output : (As multiple occurence is there)
Record 1 - > Field Structure 1 value, Field Structure 2 value, Field Substructure1 value, Field Substructure2 value.
Record 2 - > Field Structure 1 value, Field Structure 2 value, Field Substructure1 value, Field Substructure2 value.
Record 3 - > Field Structure 1 value, Field Structure 2 value, Field Substructure1 value, Field Substructure2 value.
Please let me know what is the best way to achieve the same.
Regards,
Abhis
Abhishek,
Input to FCC cannot have depth more than 3.
Allowed sample XML
<root>
<nameA>
<value1>value</value1>
<value2>value</value2>
<value3>value</value3>
</nameA>
<nameB>
<value4>value</value4>
</nameB>
</root>
Reduce the depth in graphical mapping (you can add another mapping after your first mapping OR handle in first mapping it self).
Use node function "useOneAsMany" and get all Str fields under SubStr.
<Str>
<SubStr>
<value1_FromStu>value</value1_FromStu>
<value2_FromStu>value</value2_FromStu>
<value3>value</value3>
<value4>value</value4>
</SubStr>
<SubStr>
<value1_FromStu>value</value1_FromStu>
<value2_FromStu>value</value2_FromStu>
<value3>value</value3>
<value4>value</value4>
</SubStr>
</Str>
Similar Messages
-
Complex file content conversion in case of CSV file
Hi Friends,
What you see below is generated from Excel i.e excel file saved as CSV file. This file i need to map in XI.
Problem is i have to take only the data and not the header part.
for e.g in this particular line
Employee ID :,,E00315
I need only E0315 and not the header value. Similarly i have to find some solution to map all the required data.
Please suggest me how to use file content conversion in such scenarios.
Solution is required on top priority. Points will be immdly rewarded.
Thanks & Regards
K.Ramesh
,,Time Sheet,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,Ref. No: T-PRO-01-011,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,Page No.: 01,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Employee ID :,,E00315,,,Sale Order No / Line Item :,,,SO123456,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Employee Name :,,K.RAMESH,,,Client Name :,,,NCLIENTELE,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Month / Week :,,Jul-08,,,Project Name :,,,Internal Project,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Sales Team :,,,,,Project Role Start date :,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Location :,,BANGALORE,,,Project Role End date :,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Sl. No.,Date,Day,AA Type, Task Description,,,,,No.of Hours,Remarks,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
1,7/1/2008,Tue,0814-Talent acquitision,task 1,,,,,12.00,rmk 1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
2,7/2/2008,Wed,0814-Talent acquitision,task 2,,,,,10.00,rmk 2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
3,7/3/2008,Thu,0814-Talent acquitision,task 3,,,,,12.00,rmk 3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4,7/4/2008,Fri,0814-Talent acquitision,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
5,7/5/2008,Sat,0814-Talent acquitision,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
6,7/6/2008,Sun,0950-Holiday,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
7,7/7/2008,Mon,0804-Development,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
8,7/8/2008,Tue,0804-Development,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, , , ,,,,,,,,,,,,,,,,,,,,
9,7/9/2008,Wed,0804-Development,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
10,7/10/2008,Thu,0804-Development,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
11,7/11/2008,Fri,0804-Development,,,,,,,,,,,,,,,,,,,,,,,,,,,, , ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
12,7/12/2008,Sat,0950-Holiday,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
13,7/13/2008,Sun,0950-Holiday,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,
14,7/14/2008,Mon,0900-Paid leave,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
15,7/15/2008,Tue,0900-Paid leave,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
16,7/16/2008,Wed,0804-Development,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
17,7/17/2008,Thu,0804-Development,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
18,7/18/2008,Fri,0804-Development,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
19,7/19/2008,Sat,0804-Development,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
20,7/20/2008,Sun,0950-Holiday,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
21,7/21/2008,Mon,0804-Development,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
22,7/22/2008,Tue,0804-Development,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
23,7/23/2008,Wed,0804-Development,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
24,7/24/2008,Thu,0804-Development,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
25,7/25/2008,Fri,0804-Development,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
26,7/26/2008,Sat,0814-Talent acquitision,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
27,7/27/2008,Sun,0950-Holiday,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
28,7/28/2008,Mon,0804-Development,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
29,7/29/2008,Tue,0804-Development,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
30,7/30/2008,Wed,0804-Development,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
31,7/31/2008,Thu,0804-Development,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Prepared By:,,,,,Approved By:,Company Project Manager,,,,Client Project Manager,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Name,,K.RAMESH,,,Name,YYY,,,,ZZZ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Signature,,,,,Signature,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Date ,,31.07.2008,,,Date ,31.07.2008,,,,31.07.2008,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Hi,
In this CSV file, what all i need is the value E00315 after the label Employee ID. I used in FCC the parameters u asked me to do. Also in the Document Offset i gave value 3 so that the first three lines are ignored.
1,,,Time Sheet,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
1,,,,,,,,,,,Ref. No: T-PRO-01-011,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
1,,,,,,,,,,,Page No.: 01,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
1,Employee ID :,E00315
But still i am getting the error
Conversion of file content to XML failed at position 0: java.lang.Exception: ERROR converting document line no. 4 according to structure 'tims_header':java.lang.Exception: ERROR in configuration / structure 'tims_header.': More elements in file csv structure than field names specified!
Please help.
Thanks
Ramesh -
Complex File Content conversion - Reciver
Hi all,
I have to convert a XML to CSV. it shuld be fixedLength. My Structure is as follows
<root>
<NameA>
<Val1>dfjsf </Val1>
<Val2>
<Val21>ajdfjs</Val21>
<Val22>dfsdfsd</Val22>
</Val2>
<Val3>sfsfd</Val3>
</NameA>
<NameB>
<ValA>dfsdfc</ValA>
<ValB>
<ValB1>sfdsaf</ValB1>
<ValB2>sdfsf</ValB2>
</ValB>
<ValC>aedfsad</ValC>
</NameB>
</root>
the problem is i am not able to get the right record structure
i tried with
root,NameA,NameB,Val2
it gives an error
can anyone suggest me how can i do this in Adapter or XSLT Mapping is the best option?
Rgds
AdityaHi,
Can u pls tell me ur data which is coming under Name A node and Name B is same or it is different.
if the data is coming under node Name A and Name B is same then u can change ur target data type and creaste only one data type of NameA and make its occurance to 0-unbounded and ur FCC will be simple.
for example if u have 10 records then ur name A will repeate 10 times in that case no need to have name B.
Refer the below FCC.
Receiver FCC no need of Endseparator
File Adapter (Receiver) - Are we "really" sure about the concepts?
Receiver-
File Receiver with Content Conversion
chirag -
Sender File Content Conversion with re-occuring record pairs
Hi,
Our FCC works fine with the following structure:
Header1: H1F1, H1F2, H1F3,... (1:1)
Header2: H2F1,H2F2,H2F3,..... (1:1)
Notes: NF1,NF2,NF3,.............(1:1)
Line1:L1F1,L1F2,L1F3,.............(1:N)
Line1:L1F1,L1F2,L1F3,
Line1:L1F1,L1F2,L1F3,
Line1:L1F1,L1F2,L1F3
Line2:L2F1,L2F2,L2F3,............(1:N)
Line2:L2F1,L2F2,L2F3,
Line2:L2F1,L2F2,L2F3,
Line2:L2F1,L2F2,L2F3,
But we have structure as below:
Header1: H1F1, H1F2, H1F3,... (1:1)
Header2: H2F1,H2F2,H2F3,..... (1:1)
Notes: NF1,NF2,NF3,.............(1:1)
Line1:L1F1,L1F2,L1F3,.............(1:N)
Line2:L2F1,L2F2,L2F3,.............(1:N)
Line1:L1F1,L1F2,L1F3,
Line2:L2F1,L2F2,L2F3,
Line1:L1F1,L1F2,L1F3,
Line2:L2F1,L2F2,L2F3,
Line1:L1F1,L1F2,L1F3,
Line2:L2F1,L2F2,L2F3,
Lin1 and Line2 occur as multiple pairs making it as multiple line items. When we use content conversion parameters as below:
Header1.fieldNames H1F1,H1F2,H1F2,...
Header1.fieldFixedLengths 10,5,10,.....
Header1.keyFieldValue H1
Header1.keyFieldInStructure add
Header1.endSeparator 'nl'
Header1.lastFieldsOptional YES
and same for Header2, Notes, Line1, Line2
It picks up only first Header1, Header2, Notes, Line1 and Line2 in a recordset.
Does anyone have idea how could we do this content conversion? Any help would be appreciated.
Reagrds,
N@v!nHi Navin,
You can check the below links :-
Complex File Content Conversion - with random multiple occurrences
/people/anish.abraham2/blog/2005/06/08/content-conversion-patternrandom-content-in-input-file
/people/shabarish.vijayakumar/blog/2007/08/03/file-adapter-receiver--are-we-really-sure-about-the-concepts
Complex content conversion File sender
These might be of some help.
Regards,
Rohit -
Need help in file content conversion complex structure
Hi Guys ,
Iam new to this file content conversion , Please let me know whether below requirement is possible .if yes than how ?
Inbound XML file from Proxy
<Data>
<keyfield1>0011</keyfield1>
<keyfield2>0012</keyfield2>
<Keyfield3>0013</Keyfield3>
<field1>Test1</field1>
<field2>testfield1</field2>
<field3>0001</field3>
<Data>
<keyfield1>0021</keyfield1>
<keyfield2>0022</keyfield2>
<Keyfield3>0023</Keyfield3>
<field1>Test2</field1>
<field2>testfield2</field2>
<field3>0002</field3>
output pgp flat file .
pgp file format should be as below after file content conversion
0011|0012|0013|Test1||||||
0011|0012|0013|Testfield1||||||
0011|0012|0013|0001||||||
0021|0022|0023|Test2||||||
0011|0012|0013|Testfield2||||||
0011|0012|0013|0002||||||
thanks a lot .
Regards
PrabhuHi.
Try this.
First you need to use a message mapping and create a target structure to convert a similar output structure that do you want. like this
<Target>
-- Field1
-- Field2
-- Field3
-- Field4
-- Field5
-- Field6
-- Field7
-- Field8
-- Field9
</Target>.
Then map
keyfield1-> Field 1 ,keyfield2-> Field 2 , keyfield 3---> Field 3
map field1-> field4 .. for the others fields duplicate the Target node (right click) and map map field2-> field5 ..etc.
For the field 5 until field 9 map with constant ("'')
Then in you receiver comunication channel put simple parameters.
Target.fieldSeparator = |
Target.endSeparator = 'nl'
Regards. -
Sender File Content Conversion Complexity
It is again time to dip into the well of knowledge that is SDN.
I have a question about sender file content conversion.
It appears that I can only create simple XML structures with it, but I'm hoping someone here can help.
Lets says I have a file where each record layout is the same. There are not header records, trailer records, etc. Basically only one structure within the recordset.
However the record itself may have a complicated structure. For example, the layout of each record may be:
String1, String2, String3, Array(0:3) consisting of String4, String5, String6.
Can I convert that to a structure of
<Node>
<string1>
<string2>
<string3>
<array>
<string4>
<string5>
<string6>
<array>
<string4>
<string5>
<string6>
</Node>
Or must I create a DT containing one node giving string4,5 and 6 a unique name for each occurance?
Thanks in advance.Hi,
You can go with generic structure and then either in the adapter module or Mapping, you can format the structure. Because content conversion has a limitation to upto one level.
check this for limitation-
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/50061bd9-e56e-2910-3495-c5faa652b710
check this for generic structure-
/people/sravya.talanki2/blog/2005/08/16/configuring-generic-sender-file-cc-adapter
Rgds,
Moorthy -
File Content Conversion for complex structure
Hi
I have a requirement to repeat a structure consisting of three lines i.e the segment containing these 3 lines will have occurrence 0....unbounded and will be repeated in the File multiple times ,
What is the level that can be handled in File Content Conversion's recordset structure ?
My issue is that the structure is
Dt_File -> Repeating Level1->Level2 ->Field1
->Level2a->Field3
-> Level2b->Field5
where the first level is DT_File
under which I have RepeatingLevel1 as a SubElement
and under Repeating level I have Level2 , Level2a and Level2b at its subelementsl
and under Level2 I have Field1 , Under Level2a i have Field3 and under Levle 2b i have Field5
How do i handle this in the Content Conversion ?? as in how do I create my Recordset Structure ?? as it just handles one level below the Document Name (i,e) Message Type)
Is it possible ??? or should i consider some other way to constuct my data type ??
Thanks
DevHi Tarang
My DT according to the target file structure is this :
DT_File
>Main1(1,1)
>Main2(1,1)
>Main3(0...unbounded)
>Record1(1,1)
>Field1
>Field2
>Field3
>Record2(1,1)
>Field4
>Field5
>Record3(1,1)
>Field6
>Field7
SO I want to confirm if the receiver FCC will be - Main1,Main2,Main3,Record1,Record2,Record3
Record1.fieldSeparator ,
Record1.endSeparator 'nl'
Record2.fieldSeparator ,
Record2.endSeparator 'nl'
Record3.fieldSeparator ,
Record3.endSeparator 'nl'
or Main1,Main2,Record1,Record2,Record3
Thanks
Dev -
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. -
Using File Content Conversion converting XML format to text format
Hi All,
I am able to convert to Text format using file content conversion, But the requirement is to convert the same for the structure with additional subnodes as in the example (also complex nested structures)
<ns0:SendXSDEmployeeDetails xmlns:ns0="http://ehro.eds.com/FRAMEWORK/FileToFile/FileCConverion">
<Employee>
<Employee_ID>2</Employee_ID>
<Employee_Name>KannanKumar</Employee_Name>
<Address>
<Street>13th Cross Reddy</Street>
<City>Bangalore</City>
<Pincode>641026</Pincode>
<Phone_No>
<t1>9901934934</t1>
<t2>9901934934</t2>
</Phone_No>
</Address>
</Employee>
</ns0:SendXSDEmployeeDetails>
can any one help on this please
I have already seen the blogs :
/people/krishnakumar.ramamoorthy3/blog/2007/01/27/generic-mapping-to-convert-nested-xml-to-flat--receiver-file-adatper
/people/ravikumar.allampallam/blog/2005/06/24/convert-any-flat-file-to-any-idoc-java-mapping
<b>Can any one help to do this in simple way</b><br>Hi,
Like correctly pointed by JaiShankar, the Sender File Adapter currently does not supoort such stracutures.
the strcuture supported is described in this link,
http://help.sap.com/saphelp_nw2004s/helpdata/en/2c/181077dd7d6b4ea6a8029b20bf7e55/content.htm
Regards
Bhavesh -
Required help for Identifying diff. items in file content conversion.
Hi All,
I've to use a file content conversion parameters for a .txt file in which there are two objects. One is a header and the other is a item detail.
How do we get or mark the difference between both so that XI recognizes the particular line is a Header and the other is a Item detail
Thanks in Advance.
Regards,
Sree.Hi
Make use of a field which is common to header and item line which will always hold different values for header and item. Or otherwise if possible, add an extra field in the header and item lines, say 'Key' and use it in the 'Key Field Name' parameter in the adapter configuration. See this for details - [File Content Conversion for Complex Structures|http://www.riyaz.net/blog/index.php/2008/02/20/xipi-file-content-conversion-for-complex-structures/].
Regards,
Riyaz -
File Content Conversion Receiver Channel
Hi,
I have a complex structure like:
<Header>
</Header>
<Item>
<SubItem>
<Info>
</Info>
</Subitem>
</Item
<Item>
<SubItem>
<Info>
</Info>
</Subitem>
</Item
When I follow the instructions for File Content conversion I cannot separate the Item / SubItem and Info segments into separate lines in my flat file.
The result is:
Header
Item Subitem Info
Item Subitem Info
I want
Header
Item
Subitem
Info
Item
Subitem
Info
How can i establish the correct result?
Best regards
Ron.Hi,
I specified the following
Name value
Header.addHeaderLine 0
Header.fieldSeparator ;
Header.endSeparator 'nl'
Item.addHeaderLine 0
Item.fieldSeparator ;
Item.endSeparator 'nl'
Subitem.addHeaderLine 0
Subitem.fieldSeparator ;
Subitem.endSeparator 'nl'
Info.addHeaderLine 0
Info.fieldSeparator ;
Info.endSeparator 'nl'
Best Regards
Ron -
File Content Conversion on the Receiving side
Is there a way in which if I want a Pipe Delimited File as a result, after the last field also I get a pipe with next record starting in the next line.
Hi,
For | (Pipe), use corresponding hex code as fieldSeparator i.e. 0x7C as fieldSeparator.
For FCC on receiver side refer -
[Simple FCC|http://www.riyaz.net/blog/index.php/2008/02/19/xipi-file-content-conversion-for-simple-structure/], [Complex FCC|http://www.riyaz.net/blog/index.php/2008/02/20/xipi-file-content-conversion-for-complex-structures/]
For separotor at the end of line you can try using a dummy field or use combination of pipe and newline i.e. '0x7C' and '0x0D' (stands for carriage return) or 'nl' as endSeparator
Edit: You might consider using 'nl' as beginSeparator parameter and 0x7C as endSeparator. This will do the trick. However, this would add a blank line in the beginning of the file.
Hope this helps.
Regards,
Riyaz
Edited by: Riyaz Sayyad on Aug 21, 2008 3:00 PM -
XI File Content Conversion Issue
Peace to All,
I am having this funny problem in File Content Conversion:
com.sap.aii.utilxi.misc.api.BaseRuntimeException: RuntimeException in Message-Mapping transformation: Cannot produce target element /ns0:ZIN_MT. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd
What did I do:
DATA TYPE1.
Structure1: TESTOUT_DT Complex Type
REC Element 1-1
Name11 Element xsd:string 1-1
Name12 Element xsd:string 1-1
Structure2: TESTIN_DT Complex Type
Name21 Element xsd:string 1-1
Name22 Element xsd:string 1-1
Mapping:
name11-name21
name12-name22
Configuration of Sender File :
DocumentName : TESTOUT_DT
Document NameSpace : http:/myspace.com/test1
RecordSetName : Recordset
Recordset Structure : Rec,1
Rec.fieldNames :name11,name12
Rec.fieldSeparator :,
Rec.endSeparator :'nl'
So when I test it it picks up the file but is unable to map it to destination.
Can anyone help me to find out why?.
One more hint is that I am using Third party Business System and I use the same for both file CC sender channel and Filereceiver channel.
I will appreciate your help.
ThanksMany thanks to your guidance...SDN is the best...It worked
Moving forward I encountered another issue, when I extend it a Trail to it and end up with this mapping:
ZOUT_MT 11 -ZIN_MT 11
Recordset 1--1
Rec 1unboundedTest01 1-----unbounded
key(string) 1...1----
key 1..1(string)
name11(string) 1..1----
name21 1..1(string)
name12(string) 1..1----
name22 1..1(string)
Trail 1...1 -
Trail 1---1
key(string) 1..1 -
key 1..1(string)
test(string) 1...1 -
test1..1 (string)
In Config: Sender File CC
Doc Name :ZOUT_MT
Doc namspace : http://mytest.com/test1
RecordsetName : Recordset
Recordset Structure : Rec,*,Trail,1
Key Field Name : key
Recordset per message : 1
Rec.fieldNames : key,name11,name12
Rec.fieldSeparator : ,
Rec.endSeparator : 'nl'
Rec.processConfiguration: FromConfiguration
Rec.keyFieldValue : 1
Trail.fieldNames: key,test
Trail.endSeparator: 'nl'
Trail.processConfiguration : FromConfiguration
Trail.keyFieldValue : 1
Trail.fieldSeparator : ,
From all this work above , when I put the file having:
1,111,112
1,222,223
1,333,334
1,99
The output file in empty (null)...
Does anyone out there understand why the output file is becoming null..
here is the log I get in workbecnh (commuunication channel)
Audit Log for Message: c1a434f5-ad9f-4a26-08c1-e7d579a5927a
Time Stamp Status Description
21.01.2009 11:48:22 Success Channel ztest_sender_cc: Entire file content converted to XML format
21.01.2009 11:48:22 Warning Channel ztest_sender_cc: Empty document found. Proceed without sending message
21.01.2009 11:48:22 Success File "/mylocation/interface/SCM/somefolder/in/shilpagirlsinput.txt" deleted after processing -
FIle Content Conversion Problem in IDOC-XI-File Scenario
Dear All,
I am doing IDOC-XI-FILE scenario.
I am facing one problem related to File Content Coversion.My requirement was to generate a dynamic file like <b>%store_code%_%current_date%_sitemaster.xml</b> , I have completed the dynamic generation successfully .
Now there is slight change in the requirement ,<b>we have to suppress the current_date node of the xml content</b> . i have tried to suppress the current_date using these <b>DATE.fieldFixedLengths 0 , Date.fixedLengthTooShortHandling Cut</b> , But I am unable to suppress it Can some body provide me the details on this .
The output xml version generated by Reciever file adapter is as below :
<?xml version="1.0" encoding="UTF-8" ?>
- <ns0:MT_SITE_MASTER xmlns:ns0="http://sample-xitest.com/sitemaster">
- <SITE_DATA>
<STORE_CODE>N002</STORE_CODE>
<TITLE_MEDI>Company</TITLE_MEDI>
<STORE_NAME>Mount Road</STORE_NAME>
<STREET>Chennai</STREET>
<COUNTRY>IN</COUNTRY>
<SALES_TAX_NO>12345678910</SALES_TAX_NO>
</SITE_DATA>
</ns0:MT_SITE_MASTER>
Plz provide me the code I have to write in the file content conversion .
Thanks in advance
Regards
PrabhatIf u see my earlier reply, I mentioned that u can not suppress the field from the one node.i.e Form SITE_DATA data type u can not suppress the field called CURRENT_DATE.
My suggestion is that , modify the Data type in such a way that you will be having two nodes as I have mentioned earlier. Then use the Suppress Logic for the Current Date.
So it will look like this-
<?xml version="1.0" encoding="UTF-8" ?>
- <ns0:MT_SITE_MASTER xmlns:ns0="http://sample-xitest.com/sitemaster">
- <SITE_DATA>
<STORE_CODE>N002</STORE_CODE>
<TITLE_MEDI>Company</TITLE_MEDI>
<STORE_NAME>Mount Road</STORE_NAME>
<STREET>Chennai</STREET>
<COUNTRY>IN</COUNTRY>
<SALES_TAX_NO>12345678910</SALES_TAX_NO>
</SITE_DATA>
<CURR_DATE>
<CURRENT_DATE>20051105</CURRENT_DATE>
</CURR_DATE>
</ns0:MT_SITE_MASTER>
So ur SITE_DATA is not having a field called CURRENT_DATE. This field is in separate node (segment ) called CURR_DATE. Now u can use the Suppress Logic for the same like this.
CURR_DATE.fieldFixedLengths - 0
CURR_DATE.fixedLengthTooShortHanling - Cut
And in your Variable Substitution you can use the date from the other segment called CURR_DATE.
Hope this solves ur problem.
Regards,
Moorthy -
File Content Conversion Problem
Hi
I have a flat file having 10 fileds with fixed length of field 7 characters
abc bcd dce cef ecf fgi
123 234 343 233 434 343
322 222 222 222 222 222
+++++++++++++++++++++++++++++++
XML CODE FOLLOWS
+++++++++++++++++++++++++++++++
<?xml version="1.0" encoding="UTF-8" ?>
- <ns0:MT_send xmlns:ns0="http://OTO-Continue.com">
-<SEND>
<abc>343</abc>
<bcd>343</bcd>
<dce>434</dce>
<cef>3434</cef>
<ecf>343</ecf>
<fgi>434</fgi>
</SEND>
</ns0:MT_send
As per the client req I'm going with FCC. The file is picking fine with the FILE. But not picking with the FCC.
The parameters which I gave are as follows.
SOURCE I feel it is fine since file is picking fine and keeping the same for FCC also.
PROCESSING
QOS -- Exactly Once
Poll Interval -- 10
Processing Mode -- Delete
Empty-File Handling -- Process empty files
CONTENT CONVERSION Parameters
Document Name -- (am giving sender data type name) DT_send
Document NSpace -- http://OTO-Continue.com
Recordset Name -- SEND
Recordset Structure -- SEND,*
Recordset Sequence -- Ascending
Recordset per Message -- 0
And in the table the parameters am settings are
SEND.fieldNames abc,bcd,cde,def,efg,ghk
SEND.fieldFixedLengths 7,7,7,7,7,7 (because each and every field has 7 characters)
SEND.keepIncompleteFields No
SEND.fieldFixedLengthType char
SEND.fieldContentFormatting trim
SEND.fieldEndSeparator 'nl'
This was the configuration. But this is not working I monitored the Communication Channel and file is not reading and not getting deleting.
What actually went wrong in above configuration. Why it is not working.
Thanks.Hi Swarna,
CONTENT CONVERSION Parameters
Document Name -- ?
DocumentNSpace -- ?
Recordset Name -- ?
Recordset Structure -- ?
Recordset Sequence -- Ascending
Recordset per Message -- ?
Document Name - <Message Type> eg:- (MT_ABC)
DocumentNSpace - Name space of your MT
Recordset Name - The root node( Which has one occurence)
Recordset Structure - The parent node of the fields(can have multiple occurences)
Recordset Sequence -- Ascending
Recordset per Message -- 1/* (No.of records per each record set)
In your structure
+++++++++++++++++++++++++++++++
XML CODE FOLLOWS
+++++++++++++++++++++++++++++++
<?xml version="1.0" encoding="UTF-8" ?>
- <ns0:MT_send xmlns:ns0="http://OTO-Continue.com">
-<SEND>
<abc>343</abc>
<bcd>343</bcd>
<dce>434</dce>
<cef>3434</cef>
<ecf>343</ecf>
<fgi>434</fgi>
</SEND>
</ns0:MT_send
There is no root node, so in your FCC you need to mention your RecordsetName and you can ignoreRecordSetName in result structure. Check the following blog simulates your requirement.
/people/anish.abraham2/blog/2005/06/08/content-conversion-patternrandom-content-in-input-file
Regards,
Prasanna
Maybe you are looking for
-
How do I transpose and group a table in a ViewObject?
Hi, I want to transpose and group a table within a view object and don't know how to do it. Please let me explain what I want to do: One table, e.g. Employees, has one row per employee. Each employee has a departmenent and a room assigned: Employee D
-
Transfering 14 gig of music with USB 1
They way I understand things is that if the hard drive is constantly spinning the battery life is significantly decreased. I have 14 gig of music and as USB 1 won't charge as it transfers I am worried that if I buy a new ipod I won't be able to trans
-
Time machine no longer backs up after cloning startup disk
I cloned my startup disk (250 mb) in April 2013 to a 500 mb disk and replaced it with the cloned disk. Before the clone, Time Machine was backing up properly to the 6tb external drive designated for backup. Since installing the clone Time Machine ha
-
Reinstalling CS5 on new computers.. what do I need to do?
Hi all, I've got the Production Premium 64bit CS5 Student version, everything installed, registered, and up to date. I'm looking to build a new computer (well, new motherboard, processor, and memory), this means I'll have to reinstall Windows 7 which
-
Uploading From Sony HD Camcorder
I recently purchased a Sony camcorder HD the new 500.I use with a Sony shotgun mike and it is unbelievable for concerts.The problem is sharing. I don't want to post public like on youtube(plus I tried and it takes about 4 hr for a 5 min. video)The fi