*&---------------------------------------------------------------------* *& Report YCLASSICAL_JOINING *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT yclassical_joining NO STANDARD PAGE HEADING LINE - SIZE 110 LINE - COUNT 255 MESSAGE - ID zsan. ** T Y P E D E C L A R A T I O N ** TYPES : BEGIN OF ty_mara, matnr TYPE matnr, ernam TYPE ernam, pstat TYPE pstat_d, END OF ty_mara, BEGIN OF ty_makt, matnr TYPE matnr, spras TYPE spras, maktx TYPE maktx, END OF ty_makt, BEGIN OF ty_final, matnr TYPE matnr, ernam TYPE ernam, pstat TYPE pstat_d, maktx TY
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
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZIDOC_PROGRAM.
types : begin of zidoc_table,
zid type zid,
zname type znname2,
zcity type zcity,
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,
wa_zidoc type zidoc_table,
s_segment type zidoc_segment,
it_ddic type TABLE OF edidc,
wa_ddic type 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.
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 :
*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.
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 .
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.
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.
*&---------------------------------------------------------------------*
*& 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.
*&---------------------------------------------------------------------*
*& 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.
s_segment-zname = wa_zidoc-zname.
s_segment-zcity = wa_zidoc-zcity.
wa_eddid-segnam = c_zseg.
wa_eddid-sdata = s_segment.
wa_eddid-sdata = s_segment.
append wa_eddid to it_eddid.
clear wa_eddid.
endloop.
clear wa_eddid.
endloop.
ENDFORM. " ARRANGE-DATARECORDS.
Comments
Post a Comment