cancel
Showing results for 
Search instead for 
Did you mean: 

Unequal Number of rows for File Content Conversion

Former Member
0 Kudos

hi xi friends,
in my idoc to file ..
please help me in content conversion parameter for unequal number of rows .
 
the message type for external system..
root
 row1
    f1
    f2
    f3
 row2
    f4
    f5
 row3
    f6
	
if i send idoc with data for all three rows
 the resultant txt file 
 
 f1-valuef2-value f3-value
 f4-valuef5-value
 
 if i send idoc with data for row1 and row3
 the resultant txt file
 
  f1-valuef2-value f3-value
  f6-value
 
if i send data for row2 and row3
the resultant txt file
 
   f4valuef-5vaue
   f6-value


in static message mapping ,i eleminated the rows which are not getting the data from idoc 
eg:if the data for row2 does not exist ,then i elimated in message mapping.
all the fileds are fixed lenths like f1 3char and f2 8char etc.. 
and i dont require header names.
please guide me how to declare in Content Conversion for this unequal number of rows of fixed lenth columns.

regards
Munna 

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi Jai,

Thanks alot for your responses..


message mapping look like this,


IDoc-------------------root
 segment1--------------	row1
  f1------------------- f1
  f2------------------- f2
  f3------------------- f3
 segment2--------------row2
  f4------------------- f4
  f5------------------- f5
 segment3--------------row3
  f6------------------- f6

(actually the idoc contains no of segments..i provided sample one above)

test data for f1=1111 f2=AAA f3=ccccc f4=222 f5=BB f6=33
all fields are fixed lenths
if idoc contains all three segments data 
then reultant .txt file should be

1111AAAccccc
222BB
33

if idoc contains segment1 and segment3 data
then reultant .txt file should be

1111AAAccccc
33

if idoc contains segment2 and segment3 data
then reultant .txt file should be

222BB
33

in message mapping I eleminated the target message type segments
 if that idoc doent contain data.eg:if the idoc doent contain data for segment2,
 i eleminated in message mapping.

please guide me how to declare File content conversion parameters for this unequal number of rows
of rows. 

regards

Munna

Former Member
0 Kudos

Got your requirement now.

First, were you able to get the XML in the desired way in the mapping?. Suppose if the IDOC does not contain segment 2, the taget XML should only contain row1 and row3. First achieve this in your mapping.

Hint: Use the occurance 0..unbounded for the row1,row2..rown nodes.

Next, proceed in usual way you would do a content conversion. At sender side you can give the occurance of the structures but at target side this is not possible. So I guess this is handled automatically by XI. Am not very sure on this part. Will try the same and update.

Regards,

Jai Shankar

Former Member
0 Kudos

Can confirm you it works by default. All you need to do create the mapping correctly as I told you in my earlier response and perform the content conversion as usual.

Regards,

Jai Shankar

Former Member
0 Kudos

Your requirement is not very clear. Give us an example of sorce XML and target XML along with the mapping you have done.

P.S: Avoid multiple threads for same topics and close the previous threads if you have got the solution.

Regards,

Jai Shankar