cancel
Showing results for 
Search instead for 
Did you mean: 

Converting a flat file to nested xml structure in FCC

Former Member
0 Kudos

Hi All,

I am required to convert the below flat file structure into nested xml structure as below. Do I need and intermediate structure or FCC parameters in the File adapter is enough to convert it?

Flat File Structure: Has a File Header (5 fields), Document Header (10 fields), Items with respect to the Document Header (12 fields)and Footer of 3 fields

Sample Source Flat File Structure:

HEADER,ABC GL DAILY,20150208,0108251.0

H,YYYYMMDD,YYYYMMDD,A1,1100,USD,,,P-YYYYMMDD-1,SDRECONYYYYMMDD,

I,10,1234567,10241420.25,10241420.25,,,12345,ACC K,ACC P,ACC20130527,RECONKEY

I,20,1234567,10241420.25,10241420.25,,,12345,ACC K,ACC P,ACC20130527,RECONKEY

Target XML Structure:

<?xml version="1.0" encoding="UTF-8"?>

<ns0:MT_GL_DATA xmlns:ns0="urn:abc.com:ABC_To_SAPGL">

   <GL_DATA>

      <FILE_HEADER>

         <RECORD_TYPE>HEADER</RECORD_TYPE>

         <INTERFACE_NAME>ABC GL DAILY</INTERFACE_NAME>

         <CREATE_DATE>20150208</CREATE_DATE>

         <CREATE_TIME>010825</CREATE_TIME>

         <VERSION>1.0</VERSION>

      </FILE_HEADER>

      <DOCUMENT_HEADER>

         <RECORD_TYPE>H</RECORD_TYPE>

         <DOCUMENT_DATE>20150208</DOCUMENT_DATE>

         <POSTING_DATE>20150208</POSTING_DATE>

         <DOCUMENT_TYPE>A1</DOCUMENT_TYPE>

         <COMPANY_CODE>1100</COMPANY_CODE>

         <CURRENCY_KEY>USD</CURRENCY_KEY>

         <EXCHANGE_RATE/>

         <TRANSLATION_DATE/>

         <REF_DOC_NUMBER>P-20150131-1</REF_DOC_NUMBER>

         <DOC_HEADER_TEXT>SDRECON20150208</DOC_HEADER_TEXT>

         <ITEMS_RECORD>

            <RECORD_TYPE>I</RECORD_TYPE>

            <POSTING_KEY>10</POSTING_KEY>

            <ACCOUNT>1234567</ACCOUNT>

            <AMOUNT_DOC_CURR>10364721.15</AMOUNT_DOC_CURR>

            <AMOUNT_LOC_CURR>10364721.15</AMOUNT_LOC_CURR>

            <COST_CENTER/>

            <PROFIT_CENTER/>

            <ASSIGNMENT_NO>12345</ASSIGNMENT_NO>

            <REF_KEY_1>ACC K</REF_KEY_1>

            <REF_KEY_2>ACC V</REF_KEY_2>

            <REF_KEY_3>ACC20150131</REF_KEY_3>

            <RECON_KEY/>

         </ITEMS_RECORD>

         <ITEMS_RECORD>

            <RECORD_TYPE>I</RECORD_TYPE>

            <POSTING_KEY>20</POSTING_KEY>

            <ACCOUNT>1234567</ACCOUNT>

            <AMOUNT_DOC_CURR>10364721.15</AMOUNT_DOC_CURR>

            <AMOUNT_LOC_CURR>10364721.15</AMOUNT_LOC_CURR>

            <COST_CENTER/>

            <PROFIT_CENTER/>

            <ASSIGNMENT_NO>12345</ASSIGNMENT_NO>

            <REF_KEY_1>ACC K</REF_KEY_1>

            <REF_KEY_2>ACC V</REF_KEY_2>

            <REF_KEY_3>ACC20150131</REF_KEY_3>

            <RECON_KEY/>

         </ITEMS_RECORD>

      </DOCUMENT_HEADER>

   </GL_DATA>

</ns0:MT_GL_DATA>

Thanks,

Rajendra

Accepted Solutions (1)

Accepted Solutions (1)

iaki_vila
Active Contributor
0 Kudos

Hi Rajendra,

As far as i know, those nested structures are not supported directly by FCC. You can think in an inter-medium approaches and to get your goal at mapping level.  For example: http://scn.sap.com/people/riyaz.sayyad/blog/2008/05/20/xipi-convert-flat-file-to-deeply-nested-xml-s...

Regards.

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi Rajendra

You can not generate the xml structure using FCC because it has 4 level hierarchy.

<GL_DATA>

     <DOCUMENT_HEADER>

              <ITEMS_RECORD>

                       <POSTING_KEY>20</POSTING_KEY>


Standard FCC allows only 3 levels.

Why don't you remove ITEM_RECORDS from DOCUMENT_HEADER and add it to the same level as DOCUMENT_HEADER.

So your xml structure will look like

Let me know if you have any doubts.

Thanks,

Indrajit

Former Member
0 Kudos

Hi Indrajit,

The ITEM_RECORDS level is a field under the DOCUMENT_HEADER and both the nodes are 1 to unbounded. So to relate the items to their appropriate Header I have to keep ITEM node under DOCUMENT_HEADER.

The Parent node being GL_DATA and the 2nd level nodes being FILE_HEADER, DOCUMENT_HEADER and the 3rd level node is ITEMS_HEADER and the fields following it are at the 4th level.

Thanks,

Rajendra

Former Member
0 Kudos

Hi Rajendra

What is the purpose of having <GL_DATA> ?

Can you please post the data of your flat file containing all records.

Thanks,

Indrajit

Former Member
0 Kudos

Hi Indrajit,

The sample flat file format is there in the question. I have taken GL_DATA as the Recordset Structure under a DT_GL_DATA which is a complex type .

Thanks,

Rajendra

Former Member
0 Kudos

Hi Rajendra

So as par your sample file , the file will always have one header, one document header and multiple item details.

If this is your structure then why you are thinking of relating items to document header? I mean what difficulties you will face if you make items in the same level as of document header.

If the file has multiple document header each containing multiple items then there will be an issue of relating. But as par your file it is not going to be in that case.

Thanks,

Indrajit