cancel
Showing results for 
Search instead for 
Did you mean: 

Mapping issue: FCC: Idoc for each record in file

Former Member
0 Kudos

Hi,

I have file to Idoc scenario.

I receive csv file with multiple records.

The requirement is to create an Idoc for each record.

For eg.

source file

A1,B1,C1

A2,B2,C2

A3,B3,C3

After FCC

<MT>

<TRANS>

<ROW>

<A>A1</A>

<B>B1</B>

<C>C1</C>

</ROW>

<ROW>

<A>A2</A>

<B>B2</B>

<C>C2</C>

</ROW>

<ROW>

<A>A3</A>

<B>B3</B>

<C>C3</C>

</ROW>

</TRANS>

<MT>

I have first tested it with only 1 record to test end to end connectivity. It works as expected and Idoc is posted to target system.

Now when I am trying to send multiple records, I am getting some issues.

Below are the steps that I have taken to process multiple records:

1. Changed the cardinality of ROW (child of RecordSet) from 1 to Unbounded.

2. Changed the occurance of Idoc to Unbounded.

3. Mapped ROW to Idoc root.

I have tested the mapping in IR and it generates multiple IDOCs.

When I send the test file, it fails with error Tag found instead of tag IDOC BEGIN=

I can see the xml message created with multiple ROWs in XI by File adapter in sxmb_moni.

When I do Test Configuration in ID, with the XML message extracted from sxmbmoni, the result that I got was:_

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

<ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge"><ns0:Message1></ns0:Message1></ns0:Messages>

This means that idoc was not created while mapping.

But the same sample message works OK in IR!

Pls help where I have missed.

Regards,

Anirudh.

Accepted Solutions (0)

Answers (5)

Answers (5)

SudhirT
Active Contributor
0 Kudos

Hi Check this and analyze your error if it helps.

http://help.sap.com/saphelpnw04/helpdata/en/6b/874a4273bb3830e10000000a155106/frameset.htm_

Thanks!

Former Member
0 Kudos

Check whether the below link helps you

former_member192295
Active Contributor
0 Kudos

Hi,

It is due to receiver end mandatory fields input problem, segment field need to pass 1 always and meanwhile fill control record according to ur parameters. It will wok. If u want each record make as idoc need to set 1..1 occurrence at receiver idoc structure. It will work without fail.

Former Member
0 Kudos

Hi,

You can do this by changing the occurance's towards the target element.

Or Use

CreateIf: Use createIf () to create a tag in the target structure depending on the condition. Use createIf, if the nodes at the target side have to be created only after certain condition is true.

Here nodes InternalRequest and ExternalRequest are created depending on the value of Type attribute. InternalRequest node is created if value Type is u2018Internalu2019 and ExternalRequest node is created if value Type is u2018Externalu2019

Edited by: Sainath Chutke on Sep 15, 2008 11:44 AM

SudhirT
Active Contributor
0 Kudos

Hi Aniruddh,

It seems that there is some problem in FCC. Check all the parameters.

You can also check the Source file in any editor for proper format.

Thanks!

Former Member
0 Kudos

Sudhir,

Thanks for your response.

FCC is working fine. I have taken the XML message in XI created after FCC from csv sample message.

I have tested this message in IR by placing it between

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

<ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">

<ns0:Message1>

</ns0:Message1>

</ns0:Message>

It is working fine and Idocs are created in mapping in IR.

But the same sample message is creating below output ID!

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

<ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge"><ns0:Message1></ns0:Message1></ns0:Messages>

Regards,

Anirudh.

Former Member
0 Kudos

You have to change occurrence of IDoc node in the IDoc to 0..unbounded... Extract the XSD, change occurrence, use same XSD in message mapping and then map ROW ---> IDoc node

It is shown in the blog below