Ads

SAP ABAP Program to Send IDOC

SAP ABAP Program to Send IDOC

This is the SAP ABAP Program to send custom Idoc ,it useful for SAP ABAP Developers who are developing idocs .  


*&---------------------------------------------------------------------*
*& Report  ZIDOC_PROGRAM
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZIDOC_PROGRAM.

types : begin of zidoc_table,
       zid type zid,
       zname type znname2,
     zcity type zcity,

   END OF zidoc_table.

DATA :it_zidoc type TABLE OF zidoc_table,
      wa_zidoc type zidoc_table,
      s_segment type zidoc_segment,

      it_ddic type TABLE OF edidc,
      wa_ddic type edidc,

      it_eddis type TABLE OF edids,
      wa_eddis type edids,
      it_eddid type TABLE OF edidd,
      wa_eddid type edidd.

 CONSTANTS : c_zseg like edidd-segnam VALUE 'zidoc_segment'.
*SELECTION-SCREEN :

      select-OPTIONS : s_zid for wa_zidoc-zid.

      PARAMETERS : p_mestyp type edidc-mestyp,

                    p_prtnr type edidc-rcvprt,
                    p_ddidc type edidc-idoctp,
                   p_lgsys type edidc-rcvprn,
                   p_port type edidc-rcvpor,
                   p_sndsys type edidc-sndprn,
                   p_sndprt type edidc-sndprt.



     perform generate_datarecords.
     perform generate_controlrecords.
     perform send_idoc.
*&---------------------------------------------------------------------*
*&      Form  GENERATE_DATARECORDS
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM GENERATE_DATARECORDS .
select zid zname zcity from zidoc_table into table it_zidoc where zid in s_zid.
  PERFORM arrange-datarecords.
ENDFORM.                    " GENERATE_DATARECORDS
*&---------------------------------------------------------------------*
*&      Form  GENERATE_CONTROLRECORDS
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM GENERATE_CONTROLRECORDS .

  wa_ddic-rcvpor = p_port.
  wa_ddic-mestyp = p_mestyp.
  wa_ddic-idoctp = p_ddidc.
  wa_ddic-rcvprt =   p_prtnr.
  wa_ddic-rcvprn =    p_lgsys.
 wa_ddic-sndprt = p_sndprt.
  wa_ddic-sndprn =  p_sndsys.

ENDFORM.                    " GENERATE_CONTROLRECORDS
*&---------------------------------------------------------------------*
*&      Form  SEND_IDOC
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM SEND_IDOC .
   CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE'
     EXPORTING
       MASTER_IDOC_CONTROL                  = wa_ddic
*      OBJ_TYPE                             = ''
*      CHNUM                                = ''
     TABLES
       COMMUNICATION_IDOC_CONTROL           = it_ddic
       MASTER_IDOC_DATA                     = it_eddid
*    EXCEPTIONS
*      ERROR_IN_IDOC_CONTROL                = 1
*      ERROR_WRITING_IDOC_STATUS            = 2
*      ERROR_IN_IDOC_DATA                   = 3
*      SENDING_LOGICAL_SYSTEM_UNKNOWN       = 4
*      OTHERS                               = 5
             .
   IF SY-SUBRC <> 0.
* Implement suitable error handling here
   ENDIF.

ENDFORM.                    " SEND_IDOC
*&---------------------------------------------------------------------*
*&      Form  ARRANGE-DATARECORDS
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM ARRANGE-DATARECORDS .
loop at it_zidoc INTO wa_zidoc.

      s_segment-zid = wa_zidoc-zid.
      s_segment-zname = wa_zidoc-zname.
      s_segment-zcity = wa_zidoc-zcity.

   wa_eddid-segnam = c_zseg.
   wa_eddid-sdata = s_segment.

   append wa_eddid to it_eddid.
   clear wa_eddid.
   endloop.


ENDFORM.                    " ARRANGE-DATARECORDS

Comments

Popular posts from this blog

BADI Interview Questions in SAP ABAP

Sample SAP ABAP Programming Examples for Practice

Module Pool Programming Interview Questions and Answers in SAP ABAP

Step by Step tutorial on BDC Session Method Program in SAP ABAP

SAP ABAP Interview Questions and Answers for 10 Years Experienced