cancel
Showing results for 
Search instead for 
Did you mean: 

Receiver File Adapter. Write Multiple Header and Detail Lines

0 Kudos

Hello all,

Right now I have trouble defining the following mapping using Message Mapping.

The source structure is like this

MT_Message

..Node 1 ..*

....Header 1

....Detail 1 ..*

Then a message can be

MT_Message

..Node (1)

....Header (1.1)

......Header_Fields

....Detail (1.1)

......Detail_Fields

....Detail (1.2)

......Detail_Fields

..Node (2)

....Header (2.1)

......Header_Fields

....Detail (2.1)

......Detail_Fields

....Detail (2.2)

......Detail_Fields

....Detail (2.3)

......Detail_Fields

In the File Receiver adapter structure as the documentation says is like this

MT_Message_File

....Header 1 ..*

......Header_Fields

....Detail 1 ..*

......Detail_Fields

But after running the message mapping the resulting structure is

MT_Message_File

Header (1)

Header (2)

Detail (1.1)

Detail (1.2)

Detail (2.1)

Detail (2.2)

Detail (2.3)

And the required output file should look like

Header (1)

Detail (1.1)

Detail (1.2)

Header (2)

Detail (2.1)

Detail (2.2)

Detail (2.3)

How I can accomplish this with the Message Mapping and File Receiver adapter? Or I have no choice but to map a java program?

All comments are appreciated. Thank you very much.

Accepted Solutions (1)

Accepted Solutions (1)

stefan_grube
Active Contributor
0 Kudos

The trouble is that the receiver file adapter cannot do content conversion for 2-step hierarchie like this:

root

- row

- header

.....

- line

....

But you can use MessageTransformBean to do FCC with this structure.

http://wiki.sdn.sap.com/wiki/display/XI/HowTo...ContentconversionmodulewithJ2EEJMS+adapter

It is a little bit tricky to assign the nodes on the correct contexts, but it works.

0 Kudos

Hello Stefan,

Thank's for your recomendation but from the documentation I can't understand how to do it.

I got Proxy to File

My Proxy message is

<MT_Message>

- <Node>

- - <Header>

- - - <Header_Field1>A</Header_Field1>

- - - <Header_Field2>B</Header_Field2>

- - - <Header_Field3>C</Header_Field3>

- - </Header>

- - <Detail>

- - - <Detail_Field1>1</Detail_Field1>

- - - <Detail_Field1>2</Detail_Field1>

- - </Detail>

- - <Detail>

- - - <Detail_Field1>3</Detail_Field1>

- - - <Detail_Field1>4</Detail_Field1>

- - </Detail>

- </Node>

- <Node>

- - <Header>

- - - <Header_Field1>D</Header_Field1>

- - - <Header_Field2>E</Header_Field2>

- - - <Header_Field3>F</Header_Field3>

- - </Header>

- - <Detail>

- - - <Detail_Field1>5</Detail_Field1>

- - - <Detail_Field1>6</Detail_Field1>

- - </Detail>

- - <Detail>

- - - <Detail_Field1>7</Detail_Field1>

- - - <Detail_Field1>8</Detail_Field1>

- - </Detail>

- - <Detail>

- - - <Detail_Field1>9</Detail_Field1>

- - - <Detail_Field1>0</Detail_Field1>

- - </Detail>

- </Node>

</MT_Message>

And The File Message Type after message mapping is

<MT_Message_File>

- <Header_File>

- - <Header_Field1>A</Header_Field1>

- - <Header_Field2>B</Header_Field2>

- - <Header_Field3>C</Header_Field3>

- </Header_File>

- <Header_File>

- - <Header_Field1>D</Header_Field1>

- - <Header_Field2>E</Header_Field2>

- - <Header_Field3>F</Header_Field3>

- </Header_File>

- <Detail_File>

- - <Detail_Field1>1</Detail_Field1>

- - <Detail_Field1>2</Detail_Field1>

- </Detail_File>

- <Detail_File>

- - <Detail_Field1>3</Detail_Field1>

- - <Detail_Field1>4</Detail_Field1>

- </Detail_File>

- <Detail_File>

- - <Detail_Field1>5</Detail_Field1>

- - <Detail_Field1>6</Detail_Field1>

- </Detail_File>

- <Detail_File>

- - <Detail_Field1>7</Detail_Field1>

- - <Detail_Field1>8</Detail_Field1>

- </Detail_File>

- <Detail_File>

- - <Detail_Field1>9</Detail_Field1>

- - <Detail_Field1>0</Detail_Field1>

- </Detail_File>

</MT_Message_File>

Thus Output File is

ABC

DEF

12

34

56

78

90

But I need the output file in this way

ABC

12

34

DEF

56

78

90

The MessageTransformBean runs on File Adapter after Message Mapping but the configuration is the same like File Adapter Content Conversion. So I'm little bit confused.

Former Member
0 Kudos

Juhan,

I feel this is due to limitation of file adapter FCC as it cannot handle deep structures in content conversion. So i feel, in this case you should try java mapping or XSLT mapping to handle this.

To know how to perform XSLT mapping you can search over sdn for same. May be [http://wiki.sdn.sap.com/wiki/display/XI/XSLTMappingSteps] can help you.

Regards,

Amit

Answers (1)

Answers (1)

0 Kudos

So file adapter has a limitation.

Got to use java or XSLT Mapping.

Thak's for your help.

Edited by: Juan Camilo Gonzalez Buitrago on Oct 7, 2011 6:29 PM