Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Error 26: Error during syntax check of IDoc (outbound)

Former Member
0 Kudos

Hi all,

I am getting error when we try to generate IDoc in Outbound process (to send data from SAP to external Interface).

Error no is 26. And I have checked the status records, it shows the below error message. "EDI: Syntax error in IDoc (too many repetitions of a group). According to the syntax description of the basic type SHPMNT05 (customer enhancement ZSHPMNT05), the segment group E1EDL37 can be repeated a maximum of 0000000260 times. However, this segment group occurs more frequently in the IDoc. Please check the IDoc or the syntax description of the basic type SHPMNT05 (customer enhancement ZSHPMNT05).

".

Can any one tell me is there any limitation for data records for segment E1EDL37?

Kindly suggest me what is the problem & what needs to be done to fix this.

Thanks in advance.

Regards

Mohammad.

1 ACCEPTED SOLUTION

former_member226234
Contributor
0 Kudos

Hi,

1) Go to transaction WE30

2) Give the Order Type. Display

3) Double click on the segment. You will see that

there is a minimum and maximum number set for this

segment. You can increase this maximum number by

creating an extension to this segment.

Regards,

Sandeep

3 REPLIES 3

former_member226234
Contributor
0 Kudos

Hi,

1) Go to transaction WE30

2) Give the Order Type. Display

3) Double click on the segment. You will see that

there is a minimum and maximum number set for this

segment. You can increase this maximum number by

creating an extension to this segment.

Regards,

Sandeep

Former Member
0 Kudos

Apparently, the segment in question can be repeated only 260 times in a given IDOC. And in your IDOC its being created more than that. That is why the error is coming. You need to make sure that sement in the IDOC is not created more than 260 times.

Regards,

Ravi

Note : Please mark all the helpful answers

0 Kudos

Hi Guys,

This is a problem which occurs throughout lots of SAP systems. This occurs due to someone changing the IDOCSYN table without making the neccessary changes to the EDISYN table.

For more information on this you can check out the note - 370021. Also if you run the following program in your system and make the changes to your IDOC segment, this error will go away.

(Please note that this program is provided by SAP and I just made a small adjustment by adding the COMMIT WORK AND WAIT statement) .

Hope this helps.

_____________________________________________________________________________________

REPORT ze1edp19.

TABLES: idocsyn, edisyn, cimsyn.

DATA: old_idocsyn TYPE idocsyn,

lt_idocsyn TYPE STANDARD TABLE OF idocsyn,

ls_idocsyn TYPE idocsyn,

old_edisyn TYPE edisyn,

lt_edisyn TYPE STANDARD TABLE OF edisyn,

ls_edisyn TYPE edisyn.

PARAMETER idoc_typ TYPE idocsyn-idoctyp DEFAULT 'ORDERS05'.

PARAMETER idoc_seg TYPE idocsyn-segtyp DEFAULT 'E1EDP19'.

PARAMETER occmax TYPE idocsyn-occmax DEFAULT '99'.

PARAMETER upd_flag AS CHECKBOX DEFAULT space.

START-OF-SELECTION.

  • table IDOCSYN

SELECT * FROM idocsyn

INTO TABLE lt_idocsyn

WHERE idoctyp = idoc_typ.

READ TABLE lt_idocsyn INTO ls_idocsyn

WITH KEY idoctyp = idoc_typ

segtyp = idoc_seg.

IF sy-subrc = 0.

MOVE ls_idocsyn TO old_idocsyn.

ls_idocsyn-occmax = occmax.

IF upd_flag EQ 'X'.

UPDATE idocsyn FROM ls_idocsyn.

COMMIT WORK AND WAIT.

WRITE: 'Table IDOCSYN updated',

/,' Idoctype: ',idoc_typ,

/' segment number: ',ls_idocsyn-nr.

WRITE: /,'OCCMAX changed from',old_idocsyn-occmax,

' to ',ls_idocsyn-occmax.

ELSE.

WRITE: 'No UPDATE done in table IDOCSYN',

/,' Idoctype: ',idoc_typ,

/' segment number: ',ls_idocsyn-nr.

WRITE: /,'OCCMAX changed from',old_idocsyn-occmax,

' to ',ls_idocsyn-occmax.

ENDIF.

ELSE.

WRITE: 'no such record in table IDOCSYN'.

ENDIF.

ULINE.

  • table EDISYN

SELECT * FROM edisyn

INTO TABLE lt_edisyn

WHERE idoctyp = idoc_typ AND

cimtyp = space.

READ TABLE lt_edisyn INTO ls_edisyn

WITH KEY idoctyp = idoc_typ

cimtyp = space

segtyp = idoc_seg.

IF sy-subrc = 0.

MOVE ls_edisyn TO old_edisyn.

ls_edisyn-occmax = occmax.

IF upd_flag EQ 'X'.

UPDATE edisyn FROM ls_edisyn.

WRITE: 'Table EDISYN updated',

/,' Idoctype: ',idoc_typ,

/' segment number: ', ls_edisyn-posno.

WRITE: /,'OCCMAX changed from',old_edisyn-occmax,

' to ',ls_edisyn-occmax.

ELSE.

WRITE: 'No UPDATE done in table EDISYN',

/,' Idoctype: ',idoc_typ,

/' segment number: ',ls_idocsyn-nr.

WRITE: /,'OCCMAX changed from',old_idocsyn-occmax,

' to ',ls_idocsyn-occmax.

ENDIF.

ELSE.

WRITE: 'no such record in table EDISYN'.

ENDIF.