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: 

IDoc is not sending FM IDOC_INBOUND_WRITE_TO_DB

naotoxxx
Participant
0 Kudos

Hello i have some time checking my code and i don't know why my idoc is not send, it's an inbound idoc . HEre's my code:

DATA: idoc_data           TYPE TABLE OF edidd.
DATA: t_comm_control  TYPE TABLE OF edidc,
      wa_comm_control TYPE edidc,
      idoc_control    TYPE edidc.
DATA: c_invrev_idoc_type(29) TYPE c VALUE 'SHP_OBDLV_CONFIRM_DECENTRAL03'. " IDOC TIPO BASE
DATA: c_invrev_mestype(27)   TYPE c VALUE 'SHP_OBDLV_CONFIRM_DECENTRAL'.   " TIPO DE MENSAJE
DATA: ls_e1shp_obdlv_confirm_decentr TYPE e1shp_obdlv_confirm_decentr,
      ls_e1bpobdlvhdrcon             TYPE e1bpobdlvhdrcon,
      ls_e1bpobdlvhdrctrlcon         TYPE e1bpobdlvhdrctrlcon.
DATA: ls_idoc_data TYPE edidd.
DATA: lv_numidoc TYPE edi_docnum.
DATA dummy TYPE string.
DATA ls_idoctrl  TYPE ZTB_ACUER_INTER.
DATA idoc_data2  TYPE TABLE OF  edi_dd40.
DATA: ls_idoc_data2 TYPE edi_dd40.
DATA: lv_idocnum TYPE edidc-docnum.
data it_idoc_control TYPE TABLE OF edidc.


TRY.
    IF ( activity_code = '20' AND ref_value = '99' ) .
      " Asignando valores a campos de los segmentos
      ls_e1shp_obdlv_confirm_decentr-delivery  = order_nbr.
      ls_e1bpobdlvhdrcon-deliv_numb            = order_nbr.
      ls_e1bpobdlvhdrctrlcon-deliv_numb        = order_nbr.
      ls_e1bpobdlvhdrctrlcon-dlv_del           = 'X'.


      " Agregando lineas a tabla con segmentos
      ls_idoc_data-segnam = 'E1SHP_OBDLV_CONFIRM_DECENTR'.
      ls_idoc_data-sdata  = ls_e1shp_obdlv_confirm_decentr.
      APPEND ls_idoc_data TO idoc_data.


      ls_idoc_data-segnam = 'E1BPOBDLVHDRCON'.
      ls_idoc_data-sdata  = ls_e1bpobdlvhdrcon.
      APPEND ls_idoc_data TO idoc_data.


      ls_idoc_data-segnam = 'E1BPOBDLVHDRCTRLCON'.
      ls_idoc_data-sdata  = ls_e1bpobdlvhdrctrlcon.
      APPEND ls_idoc_data TO idoc_data.


      SELECT SINGLE * from ZTB_ACUER_INTER into ls_idoctrl.


      idoc_control-mestyp  = c_invrev_mestype.
      idoc_control-IDOCTP  = c_invrev_idoc_type.
      idoc_control-DIRECT  = '2'.               " Sentido del IDoc: Entrada
      idoc_control-rcvprt  = ls_idoctrl-rcvprt.
      idoc_control-rcvprn  = ls_idoctrl-rcvprn.
      idoc_control-sndprt  = ls_idoctrl-sndprt.
      idoc_control-sndprn  = ls_idoctrl-sndprn.
      idoc_control-SNDPOR  = ls_idoctrl-SNDPOR. " Puerta remitente
      idoc_control-RCVPOR  = ls_idoctrl-RCVPOR. " Puerta destinatario
DATA:
ld_pe_idoc_number	TYPE EDIDC-DOCNUM,
ld_pe_state_of_processing	TYPE SY-SUBRC,
ld_pe_inbound_process_data  TYPE TEDE2.


      CALL FUNCTION 'IDOC_INBOUND_WRITE_TO_DB'
       IMPORTING
         PE_IDOC_NUMBER                = ld_pe_idoc_number
         PE_STATE_OF_PROCESSING        = ld_pe_state_of_processing
         PE_INBOUND_PROCESS_DATA       = ld_pe_inbound_process_data
        TABLES
          t_data_records                = idoc_data
*         T_LINKED_OBJECTS              =
        changing
          pc_control_record             = idoc_CONTROL
*       EXCEPTIONS
*         IDOC_NOT_SAVED                = 1
*         OTHERS                        = 2
.
      IF sy-subrc <> 0.
        ls_log-msgid = sy-msgid.
        ls_log-msgno = sy-msgno.
        ls_log-msgty = sy-msgty.
        ls_log-msgv1 = order_nbr.
        ls_log-msgv2 = activity_code.
        ls_log-msgv3 = ref_value.


        APPEND ls_log TO lt_log.
      ELSE.
          
        COMMIT WORK.
        SUBMIT rseout00.
      ENDIF.
    ENDIF.
CATCH CX_ROOT.
    ls_log-msgty = 'E'.
    CONCATENATE 'ORDER: ' order_nbr                       INTO ls_log-msgv1.
    CONCATENATE 'ACTIVITY_CODE' activity_code             INTO ls_log-msgv2.
    ls_log-msgv3 = ' Error en ejecucion GAP 154'.
    APPEND ls_log TO lt_log.
ENDTRY.

and stay on state warning (idoc ready to transfer application)

Executing tx bd87 with my idoc num my idoc y processing correctly buy how can i do this automatically ?

0 REPLIES 0