10-08-2008 8:23 AM
Hi
My IDoc is failling dueto a syntax error. I have extended the standard IDoc INVOIC02 with the extension E1EDP01
but when I run the send idoc report
the structure (hierarchy) of the IDOC changes drastically with all segments
of the IDOC being at the same hierarchical level and also I get the message
below.
*****************************************
EDI: Syntax error in IDoc (segment cannot be identified)
Diagnosis
The segment E1EDP19 does not occur at the current level of the basic type INVOIC02 (extension ).
This error can have several reasons:
The segment E1EDP19 is assigned to a group whose header segment does not occur.
The segment E1EDP19 does not exist in the syntax description of the basic type INVOIC02 (extension ).
The sequence of segments in the group in which the segment appears is incorrect.
Previous errors ('mandatory' segment or group missing) may be due to this error.
*****************************************************
Can anyone help this issue..
Mohana
10-08-2008 11:16 AM
Hello,
The Segment E1EDP01 seems to be at the Delivery Item Level. So, if you have any extension for this Segment, add this as a Child Segment E1EDL20.
Secondly, the Exit which you are required to use for populating the IDoc Extension is EXIT_SAPLVEDF_002 in which you'll have to populate the Extended Segment and append it to the INT_EDIDD table.
You were getting the error because you are trying to populate the extended the Segment at a location where its parent is not being populated (E1EDP19). Check it again and it should be working fine.
Thanks and Regards,
Venkat Phani Prasad Konduri
10-08-2008 8:45 AM
HI,
goto WE30 and check your IDocType espacially Extension.
Look for your hierarchical structure.
You have to use this structure and the segment must be filled in this levelline.
1. look at the error segment definition if it is mandatory or not
2. be sure that each E1EDP01 has one E1EDP19 or the hierarchic structure is OK.
Go to WE19 and check it, too
10-08-2008 10:48 AM
Hi,
Looks like a issue in Extending the IDOC.......Go thru the hierarchies once again......Follow the sequence of IDOC Extension.......If feeling confused with the existing one......go with a fresh one...
10-08-2008 11:16 AM
Hello,
The Segment E1EDP01 seems to be at the Delivery Item Level. So, if you have any extension for this Segment, add this as a Child Segment E1EDL20.
Secondly, the Exit which you are required to use for populating the IDoc Extension is EXIT_SAPLVEDF_002 in which you'll have to populate the Extended Segment and append it to the INT_EDIDD table.
You were getting the error because you are trying to populate the extended the Segment at a location where its parent is not being populated (E1EDP19). Check it again and it should be working fine.
Thanks and Regards,
Venkat Phani Prasad Konduri
10-09-2008 7:22 AM
10-09-2008 7:38 AM
Mohana,
try to post your IDoc structure and your posted IDoc structure.
10-09-2008 8:08 AM
Hi..The below is my source code..can anyone help this issue.
data: lv_matkl like mara-matkl, lv_matnr like mara-matnr.
data: lv_ean11 like mara-ean11, lv_psgnum like edidd-psgnum.
if control_record_out-rcvpor = 'CAREFOR_SE'.
*First Delete E1EDP19 Segment with SalesUnit EAN Number
loop at int_edidd where segnam = 'E1EDP19'.
clear: *e1edp19, lv_tabix.
lv_tabix = sy-tabix.
move int_edidd-sdata to *e1edp19.
if *e1edp19-qualf = '003'.
delete int_edidd index lv_tabix.
endif.
endloop.
*Find Parent Segment, and Populate Material Group
loop at int_edidd where segnam = 'E1EDP01'.
clear: *e1edp01, *e1edp19, lv_psgnum, lv_matkl, lv_tabix, lv_matnr, lv_ean11.
lv_tabix = sy-tabix.
lv_psgnum = int_edidd-segnum.
move int_edidd-sdata to *e1edp01.
read table xtvbdpr with key posnr = *e1edp01-posex.
if sy-subrc eq 0.
lv_matnr = xtvbdpr-matnr.
endif.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = lv_matnr
IMPORTING
OUTPUT = lv_matnr.
select single matkl ean11 into (lv_matkl,lv_ean11)
from mara
where matnr = lv_matnr.
if sy-subrc eq 0.
*e1edp01-matkl = lv_matkl.
move *e1edp01 to int_edidd-sdata.
modify int_edidd index lv_tabix.
endif.
*Add E1EDP19-003 Segment with BaseUnit EAN Number
if lv_ean11 is not initial.
*e1edp19-qualf = '003'.
*e1edp19-idtnr = lv_ean11.
int_edidd-sdata = *e1edp19.
int_edidd-segnam = 'E1EDP19'.
append int_edidd.
clear int_edidd.
endif.
endloop.
endif.
10-09-2008 8:19 AM
hi,
i think you have an issue with your "add e1edp19" after e1edp01 modify.
what about your segmentnumber ? (segnum) this must be sorted after addition of a new segment.
example:
segnum 1 = e1edp01
segnum 2 = e1edp19
segnum 3 = e1edp19 (003)
segnum 4 = e1edp01
segnum 5 = e1edp19 (new added).
if you delete segnum3 (cause of qualifier = 003), then you have to use Segnum 3 for Segnum 4.
OK, After your edidd is complete, make a new segnum sort like this:
loop at edidd assigning <edidd>.
<edidd>-segnum = sy-tabix.
endloop.
Give me your EDIDD Table entries.
10-08-2008 4:42 PM
05-29-2014 8:29 AM
Hi,
Maximum times the problem is that we assign basic type to partner number during the time of configuration but after creating the extension we forget to assign the extension to the partner number thinking that we have already completed the configuration so this is the problem assign extension to the partner number and it will work out.
Thanks & Regards,
Kotni Srikant