Hi Friends,
I have written the code for creating Idoc(merchandise category), when I am using new merchandise category passing, creating error IDOC status 51 Application document not posted. Second time executed with same merchandise category executed success.. Please suggest me why it is error Idoc 51 first time execution for the new merchandise category passing.
Please find the code for your reference.
REPORT ZTEST_105.
DATA:
lt_comm TYPE STANDARD TABLE OF edi_dc40,
lt_data TYPE STANDARD TABLE OF edi_dd40,
ls_comm TYPE edi_dc40,
ls_data TYPE edi_dd40.
DATA: ls_e1klahm TYPE e1klahm,
ls_e1sworm TYPE e1sworm,
ls_e1datem TYPE e1datem.
DATA: it_bdidocstat TYPE STANDARD TABLE OF bdidocstat,
it_bdwfretvar TYPE STANDARD TABLE OF bdwfretvar,
it_bdi_ser TYPE STANDARD TABLE OF bdi_ser.
DATA: lv_idoc_num LIKE edidc-docnum,
ls1_comm_docnum TYPE edidc-docnum.
DATA: BEGIN OF it_document OCCURS 0,
doc_num TYPE edidc-docnum,
END OF it_document.
data: ls_TEDE2 type TEDE2.
ls_comm-sndprn = 'DEICLNT100'.
ls_comm-sndprt = 'LS'.
ls_comm-rcvprn = 'DEICLNT100'.
ls_comm-mestyp = 'CLSMAS'.
ls_comm-idoctyp = 'CLSMAS04'.
ls_comm-rcvprt = 'LS'.
ls_comm-direct = '2'.
ls_comm-sndpor = 'TRFC'.
ls_comm-rcvpor = 'SAPDEI'.
*ls_comm-test = 'X'.
APPEND ls_comm TO lt_comm.
*CLEAR ls_comm.
ls_e1klahm-msgfn = '026'.
ls_e1klahm-klart = '001'.
ls_e1klahm-class = 'REST11148'.----------Merchandise Category
ls_e1klahm-statu = '1'.
ls_e1klahm-praus = 'X'.
ls_e1klahm-dokvr = '00'.
ls_e1klahm-wwskz = '0'.
ls_e1klahm-doknr = '0000000000000000000001246'.
ls_data-segnam = 'E1KLAHM'.
ls_data-sdata = ls_e1klahm.
ls_data-hlevel = '1'.
APPEND ls_data TO lt_data.
CLEAR : ls_data.
ls_e1sworm-msgfn = '026'.
ls_e1sworm-spras = 'E'.
ls_e1sworm-kschl = 'REST11148'. -------Merchandise Category
ls_e1sworm-spras_iso = 'EN'.
ls_data-segnam = 'E1SWORM'.
ls_data-sdata = ls_e1sworm."'005BBB1231'.
ls_data-hlevel = '2'.
*ls_data-psgnum = 'E1OCLFM'.
APPEND ls_data TO lt_data.
CLEAR : ls_data.
ls_e1datem-msgfn = '026'.
ls_e1datem-key_date = sy-datum.
ls_data-segnam = 'E1DATEM'.
ls_data-sdata = ls_e1datem."'00520150424'.
ls_data-hlevel = '2'.
*ls_data-psgnum = 'E1OCLFM'.
APPEND ls_data TO lt_data.
CLEAR : ls_data.
*CALL FUNCTION 'IDOC_INBOUND_ASYNCHRONOUS'
* TABLES
* idoc_control_rec_40 = lt_comm
* idoc_data_rec_40 = lt_data.
CLEAR lv_idoc_num.
CALL FUNCTION 'IDOC_INBOUND_SINGLE'
EXPORTING
pi_idoc_control_rec_40 = ls_comm
* PI_DO_COMMIT = 'X'
IMPORTING
pe_idoc_number = lv_idoc_num
* PE_ERROR_PRIOR_TO_APPLICATION =
TABLES
pt_idoc_data_records_40 = lt_data
EXCEPTIONS
idoc_not_saved = 1
OTHERS = 2.
IF sy-subrc = 0.
COMMIT WORK.
ENDIF.