on 10-23-2014 9:50 PM
Hi Experts,
I am using file channel in PI for converting IDoc flat file into xml. I am using the standard module SAP_XI_IDOC/IDOCFlatToXmlConvertor.
The problem is with IDoc administrative segment which is 63 character long as described below:
Segment name (30) + SAP client (3) + IDoc number (16) + number of SAP segments (6) + Number of the hierarchically higher SAP segment (6) +
+ Hierarchy level (2) = 63 chars.
Segment name, SAP client, IDoc number is fine. But I need to understand the functionality of 4th and 5th part in the above distribution.
number of SAP segment (excluding the header) --> If I generate an IDoc flat file, this 6 char field is generated as 000001, 000002, 000003 and so on ..
EDI_DC40 1200000000006044381731 3012 OILMAT05 | ZZIFS_OILMAT05 | ZSD_OILMAT | ZSD_OISAPPDL | LS PDLCLNT120 | SAPIDS001 LS DDSUD000 | 20141009143818 | 20141008121507 | |||||||||
E2MARAM007 | 120000000000604438100000100000002N 1000040 | 20100408 | 20140922 | ZFER 15121500 | EA | 199.040 | 183.040 | KG 208.000 | L | 0002 | 0.000 | 0.000 | 0.000 | 999 | 2 | |
E2OILMA001 | 120000000000604438100000200000103 | |||||||||||||||
E2MAKTM001 | 120000000000604438100000300000103 4Visco 2000 A3/B3 15W-40, 208L E4 | |||||||||||||||
E2MAKTM001 | 120000000000604438100000400000103 DVisco 2000 A3/B3 15W-40, 208L E4 | |||||||||||||||
E2MAKTM001 | 120000000000604438100000500000103 EVisco 2000 A3/B3 15W-40, 208L E4 | |||||||||||||||
E2MAKTM001 | 120000000000604438100000600000103 FVisco 2000 A3/B3 15W-40, 208L E4 | |||||||||||||||
E2MAKTM001 | 120000000000604438100000700000103 GVisco 2000 A3/B3 15W-40, 208L E4 |
So I expected that same way I could keep it in the IDoc text file which I have to convert into IDoc xml but this is creating a problem. I am not sure what should be correct pattern if I wish to create a file same way as I got from the standard output for IDoc text.If I keep the fields as 000001, 00002, 000003,
I get an error that IDoc could not be parsed properly by the sender channel.
For example, the following file is not read by the channel
EDI_DC40 1201000000000123456413 9011 SHPMNT05 | SHPMNT05 | SHPADV | SUD | SHPADVSAPIIV | LS Z4ECLN100 Barloworld | A000000026LS IIVCLNT001 | 20141014164458 | 20141014164458 | |
E2EDT20002 | 12010000000001234560000010000000112345678900002 301 01ABC123 | ||||||||
E2EDL20003 | 12010000000001234560000020000000200001005559876BNMK | CIFDE STADT | 01 | 14401005 | 20141014 | ||||
E2EDL21 | 120100000000012345600000300000002LF | ||||||||
E2EDT13001 | 120100000000012345600000400000002010 | 20141014 | 20141014 | ||||||
E2EDL24007 | 120100000000012345600000500000001000010146AF4 | E4-PE46XC-205l | AX SEKRABC54321 CASTROL ANVOL PE 46 XC8.000 | EA 1853.200 | 1982.000 | KGM | 00020002 | 05 |
If I keep some random values for 000001, 000002,000003, 000004 ...in above file (say 000001, 000004, 000006, 000009...), then the file is processed successfully (Idoc text to IDoc xml).
Am I doing something wrong here ?
Thanks,
Ravi.
Hi Ravi
IDoc flat files can be generated correctly via standard SAP techniques (using file port in ECC or using module in PI.) Just to clarify - are you generating the IDoc flat file manually via some custom programming? If yes, any particular reason for doing so?
Anyway, to answer your queries:-
As IDocs are hierarchical objects dependent on their definition, it is very important that the parent segment is set correctly to match the definition.
Using your example above, here is an explanation of the numbering. E2MARAM007 is at the root of the IDoc, which the rest of the segments are under it directly.
However, for your SHPMNT05 file, all the parent segments are 000000, which means all are at the same level at the root. This is not correct if validated against SHPMNT05 definition, E2EDL2 should be under E2EDT2, etc, etc.
If you are generating this manually, you will need to make sure to set the parent segment number correctly based on definition.
Rgds
Eng Swee
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
76 | |
9 | |
8 | |
7 | |
6 | |
5 | |
5 | |
5 | |
5 | |
5 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.