cancel
Showing results for 
Search instead for 
Did you mean: 

Message splitting to multile files based on context

Former Member
0 Kudos

Experts,

Need help in this mapping (using PI 7.1 EHP 1). One source file, required multiple output files.


Source
SampleHeaderSampleHeader
Items	
AC1	Product1	21.01.2011 01.00	3.4	23	12.2
AC1	Product1	21.01.2011 02.00	4.3	43	23.2
AC1	Product1	21.01.2011 03.00	5.6	33	32
AC1	Product2	22.01.2011 01.00	4.3	23	213
AC1	Product2	22.01.2011 02.00	5.6	43	23
AC1	Product2	22.01.2011 03.00	7.7	45	23
AC1	Product3	21.01.2011 01.00	7.7	34	232
AC1	Product3	21.01.2011 02.00	8.2	2	3
AC1	Product3	21.01.2011 03.00	2.3	23	4354
					
Output					
File1
Header	
Product1-21.01.2011 01.00-21.01.2011 03.00
Item	3.4
	4.3
	5.6
File2
Header
Product1-21.01.2011 01.00-21.01.2011 03.00
Item	23
	43
	33
File3
Header
Product1-21.01.2011 01.00-21.01.2011 03.00
Item	12.2
	23.2
	32
Same for Product2, and till Product N.

Which is the best way to split this file as required output file.

If it can be done using UDF's, let me know.Thanks for looking into this.

^KK

Accepted Solutions (0)

Answers (4)

Answers (4)

Former Member
0 Kudos

Hi,

If you want to use XSLT or Graphical mapper you need to xml-ize the file. You can do that in the file adapter.

Afterwards you need to to make sure that your map is creating the number of files you need (either in xslt) or like said before with message mapping) but you need to use functions like useOneAsMany.

If you want to redirect the messages to different receivers or different folders on the same receiver you need to use indeed either extended receiver determination or the interface determination.

naveen_chichili
Active Contributor
0 Kudos

Hi ,

Please find the below link may help you.

http://wiki.sdn.sap.com/wiki/display/SI/StepbyStepguidetoExplainEnhancedReceiver+Determination

Cheers!!!

Chichili.

former_member181985
Active Contributor
0 Kudos

Hi,

I read your comments in my blog. For me either of the blogs doesnt look relevant for your case.

You need to do go for multimapping concept.

The only logic required is how you split your message. You might need to use XSLT mapping or a combination graphical and XSLT or even Java mapping. The rest Adapter engine (File Adapter) will take care. In the receiver file adapter use time stamp or even a field from the payload to differentiate all the files that get generated based on bulk message.

If the order of Product field value (Product1, Product2 ... ProductN) mentioned in the source payload come sequentially, I hope you can split the message using graphical mapping with the help of UseOneAsMany, splitByValue and with some UDF logic.

Regards,

Praveen Gujjeti

Former Member
0 Kudos

Hi,

You can do it with enhanced interface determination.

See this blogs:

/people/venkataramanan.parameswaran/blog/2006/03/17/illustration-of-enhanced-receiver-determination--sp16

/people/praveen.gujjeti/blog/2009/11/04/xipi-extended-receiver-determination-with-conditional-context-object-interface-determination

Regards,

Carme.