cancel
Showing results for 
Search instead for 
Did you mean: 

Sender File Content Conversion Issue

Former Member
0 Kudos

Hi guys,

I´m trying to convert a flat file into a xml structure using FCC. The flat file looks like:

G220520102205201003062010

D824000 006500015010000000000000GPDME 4521005 LP00

D351023 006500015010000000000000GPDME 4521005 LP00

D523000 006500015010000000000010GPDME 4521005 LP00

G220520102205201003062010

D824000 006500012510000002442490GPDME 4521005 LP00

D351023 006500012510000000049530GPDME 4521005 LP00

D523000 006500012510000000517790GPDME 4521005 LP00

G220520102305201003062010

D824000 006500012510000000025240GPDME 4521005 LP00

.

.

I´ve created the following DT:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:sap.com" targetNamespace="urn:sap.com">
   <xsd:complexType name="DT_PRODUCTS_OUT">
      <xsd:sequence>
         <xsd:element name="RECORDS" maxOccurs="unbounded">
            <xsd:complexType>
               <xsd:sequence>
                  <xsd:element name="REG_TYPE" type="xsd:string"></xsd:element>
                  <xsd:element name="PSTNG_DATE" type="xsd:string"></xsd:element>
                  <xsd:element name="DOC_DATE" type="xsd:string"></xsd:element>
                  <xsd:element name="FECINT" type="xsd:string"></xsd:element>
                  <xsd:element name="DETAIL" maxOccurs="unbounded">
                     <xsd:complexType>
                        <xsd:sequence>
                           <xsd:element name="REG_TYPE" type="xsd:string"></xsd:element>
                           <xsd:element name="MATERIAL" type="xsd:string"></xsd:element>
                           <xsd:element name="PLANT" type="xsd:string"></xsd:element>
                           <xsd:element name="STGE_LOC" type="xsd:string"></xsd:element>
                           <xsd:element name="MOVE_TYPE" type="xsd:string"></xsd:element>
                           <xsd:element name="ENTRY_QNT" type="xsd:string"></xsd:element>
                           <xsd:element name="ENTRY_UOM" type="xsd:string"></xsd:element>
                           <xsd:element name="ITEM_TEXT" type="xsd:string"></xsd:element>
                           <xsd:element name="COSTCENTER" type="xsd:string"></xsd:element>
                           <xsd:element name="TR_PART_BA" type="xsd:string"></xsd:element>
                        </xsd:sequence>
                     </xsd:complexType>
                  </xsd:element>
               </xsd:sequence>
            </xsd:complexType>
         </xsd:element>
      </xsd:sequence>
   </xsd:complexType>
</xsd:schema>

As you can see the record DETAIL is nested to the record RECORDS. The point is that with the standard module of the FCC I can´t achieve my requirements, I only could get an XML structure like this:

<Recordset>
 *<RECORDS>*
  <REG_TYPE>G</REG_TYPE> 
  <PSTNG_DATE>22052010</PSTNG_DATE> 
  <DOC_DATE>22052010</DOC_DATE> 
  <FECINT>03062010</FECINT> 
 *</RECORDS>*
 *<DETAIL>*
  <REG_TYPE>D</REG_TYPE> 
  <MATERIAL>824000</MATERIAL> 
  <PLANT>0065</PLANT> 
  <STGE_LOC>0001</STGE_LOC> 
  <MOVE_TYPE>501</MOVE_TYPE> 
  <ENTRY_QNT>0000000000000</ENTRY_QNT> 
  <ENTRY_UOM>GPD</ENTRY_UOM> 
  <ITEM_TEXT>ME</ITEM_TEXT> 
  <COSTCENTER>4521005</COSTCENTER> 
  <TR_PART_BA>LP00</TR_PART_BA> 
 *</DETAIL>*
 *<DETAIL>*
  <REG_TYPE>D</REG_TYPE> 
  <MATERIAL>351023</MATERIAL> 
  <PLANT>0065</PLANT> 
  <STGE_LOC>0001</STGE_LOC> 
  <MOVE_TYPE>501</MOVE_TYPE> 
  <ENTRY_QNT>0000000000000</ENTRY_QNT> 
  <ENTRY_UOM>GPD</ENTRY_UOM> 
  <ITEM_TEXT>ME</ITEM_TEXT> 
  <COSTCENTER>4521005</COSTCENTER> 
  <TR_PART_BA>LP00</TR_PART_BA> 
 *</DETAIL>*
 *<DETAIL>*
  <REG_TYPE>D</REG_TYPE> 
  <MATERIAL>523000</MATERIAL> 
  <PLANT>0065</PLANT> 
  <STGE_LOC>0001</STGE_LOC> 
  <MOVE_TYPE>501</MOVE_TYPE> 
  <ENTRY_QNT>0000000000010</ENTRY_QNT> 
  <ENTRY_UOM>GPD</ENTRY_UOM> 
  <ITEM_TEXT>ME</ITEM_TEXT> 
  <COSTCENTER>4521005</COSTCENTER> 
  <TR_PART_BA>LP00</TR_PART_BA> 
 *</DETAIL>*
</Recordset>

But it should look like this, with the records DETAIL inside RECORDS:

<Recordset>
 +*<RECORDS>*+
  <REG_TYPE>G</REG_TYPE> 
  <PSTNG_DATE>22052010</PSTNG_DATE> 
  <DOC_DATE>22052010</DOC_DATE> 
  <FECINT>03062010</FECINT> 
 *<DETAIL>*
  <REG_TYPE>D</REG_TYPE> 
  <MATERIAL>824000</MATERIAL> 
  <PLANT>0065</PLANT> 
  <STGE_LOC>0001</STGE_LOC> 
  <MOVE_TYPE>501</MOVE_TYPE> 
  <ENTRY_QNT>0000000000000</ENTRY_QNT> 
  <ENTRY_UOM>GPD</ENTRY_UOM> 
  <ITEM_TEXT>ME</ITEM_TEXT> 
  <COSTCENTER>4521005</COSTCENTER> 
  <TR_PART_BA>LP00</TR_PART_BA> 
 *</DETAIL>*
 *<DETAIL>*
  <REG_TYPE>D</REG_TYPE> 
  <MATERIAL>351023</MATERIAL> 
  <PLANT>0065</PLANT> 
  <STGE_LOC>0001</STGE_LOC> 
  <MOVE_TYPE>501</MOVE_TYPE> 
  <ENTRY_QNT>0000000000000</ENTRY_QNT> 
  <ENTRY_UOM>GPD</ENTRY_UOM> 
  <ITEM_TEXT>ME</ITEM_TEXT> 
  <COSTCENTER>4521005</COSTCENTER> 
  <TR_PART_BA>LP00</TR_PART_BA> 
 *</DETAIL>*
 *<DETAIL>*
  <REG_TYPE>D</REG_TYPE> 
  <MATERIAL>523000</MATERIAL> 
  <PLANT>0065</PLANT> 
  <STGE_LOC>0001</STGE_LOC> 
  <MOVE_TYPE>501</MOVE_TYPE> 
  <ENTRY_QNT>0000000000010</ENTRY_QNT> 
  <ENTRY_UOM>GPD</ENTRY_UOM> 
  <ITEM_TEXT>ME</ITEM_TEXT> 
  <COSTCENTER>4521005</COSTCENTER> 
  <TR_PART_BA>LP00</TR_PART_BA> 
 *</DETAIL>*
+*<RECORDS>*+
</Recordset>

Any Idea how to achieve that with File Content Conversion?

Thanks in Advance,

Luis

Edited by: Luis Zarzo on Jun 14, 2010 1:22 PM

Accepted Solutions (1)

Accepted Solutions (1)

stefan_grube
Active Contributor
0 Kudos

> Any Idea how to achieve that with File Content Conversion?

This is not possible.

You can see in online help, how the structure does look like.

Former Member
0 Kudos

Sorry, I don´t know why my message format has been lost. Hopefully is a bit understandable. The point is that I want to achieve a structure like this:

What I´ve read is that this is not possible to achieve with File Content Conversion, but maybe there is a way.

Otherwise I would like to know if there is an easy way to make this using for example graphical or maybe java mapping.

Thanks a lot,

Luis

stefan_grube
Active Contributor
0 Kudos

When you set "recordset sequence" to ascending, you will have

recordset

- records

- detail

recordset

- records

- detail

that helps you to keep records and details aligned

Former Member
0 Kudos

I have already done it. But I don´t get the sequence I need, would something like this:

recordset

- records(open)

- detail

-detail

-detail

-records(close)

recordset

- records(open)

- detail

- detail

-records(close)

And so on...

Thanks,

Luis

stefan_grube
Active Contributor
0 Kudos

But I don´t get the sequence I need, would something like this:

You do not need this. You can do your mapping from the structure you get.

Just give it a try.

Former Member
0 Kudos

Ok, I will let you know if it works out.

Thanks,

Luis

Answers (0)