ITPub博客

首页 > 应用开发 > IT综合 > IDOC example

IDOC example

原创 IT综合 作者:sapkitty 时间:2007-04-14 21:11:38 0 删除 编辑
source is as follows:[@more@]

REPORT YZTTEST0003 .
*--- Data declaration statements
DATA: C_SEGNAME(7) TYPE C VALUE 'Z1ORDER',
C_MESTYPE(6) TYPE C VALUE 'ZORDER',
C_IDOC_TYPE(8) TYPE C VALUE 'ZORDER01',
Z1ORDER LIKE Z1ORDER,
Z1INVRV LIKE Z1INVRV,
C_INVREV_DOCTYPE LIKE BKPF-BLART VALUE 'YY',
IDOC_CONTROL LIKE EDIDC,
T_COMM_CONTROL LIKE EDIDC OCCURS 0 WITH HEADER LINE,
IDOC_DATA LIKE EDIDD OCCURS 0 WITH HEADER LINE.

DATA:VBRK_TAB TYPE TABLE OF VBRK WITH HEADER LINE.
*--- Get data from table VBRK
*select * from vbrk into table vbrk_TAB up to 2 rows.

*--- Move the document header into a structure
*LOOP AT DOC_HEAD_TAB INTO DOC_HEAD.
*ENDLOOP.

*--- Move the document item data into a structure
*LOOP AT DOC_ITEM_TAB INTO DOC_ITEM WHERE NOT ( LIFNR IS INITIAL ).
*ENDLOOP.
*

*--- Populate the IDoc segment’s field with the required data
*loop at vbrk_tab.
CLEAR Z1ORDER.
Z1ORDER-VBELN = '40000016'. "tore vendor number for filter
Z1ORDER-POSNR = '000010'. "Billing number
IDOC_DATA-SEGNAM = C_SEGNAME. "Segment name
IDOC_DATA-HLEVEL = 1.
IDOC_DATA-SDATA = Z1ORDER. "Segment data
APPEND IDOC_DATA. "Populate IDoc internal table
CLEAR IDOC_DATA.

CLEAR Z1INVRV.
Z1INVRV-LIFNR = 'ALE TEST01'.
Z1INVRV-XBLNR = '8000001'.
IDOC_DATA-SDATA = Z1INVRV.
IDOC_DATA-SEGNAM = 'Z1INVRV'. "Segment name
IDOC_DATA-HLEVEL = 2.
APPEND IDOC_DATA.
CLEAR IDOC_DATA.


CLEAR Z1ORDER.
Z1ORDER-VBELN = '40000017'. "tore vendor number for filter
Z1ORDER-POSNR = '000010'. "Billing number
IDOC_DATA-SEGNAM = C_SEGNAME. "Segment name
IDOC_DATA-HLEVEL = 1.
IDOC_DATA-SDATA = Z1ORDER. "Segment data
APPEND IDOC_DATA. "Populate IDoc internal table

CLEAR Z1INVRV.
Z1INVRV-LIFNR = 'ALE TEST02'.
Z1INVRV-XBLNR = '8000022'.
IDOC_DATA-SDATA = Z1INVRV.
IDOC_DATA-SEGNAM = 'Z1INVRV'. "Segment name
IDOC_DATA-HLEVEL = 2.
APPEND IDOC_DATA.
CLEAR IDOC_DATA.
*endloop.
*--- Move the control data info required for the distribution
IDOC_CONTROL-MESTYP = C_MESTYPE.
IDOC_CONTROL-DOCTYP = C_IDOC_TYPE.

*IDOC_CONTROL-RCVPOR
IDOC_CONTROL-RCVPRT = 'LS'.
IDOC_CONTROL-RCVPRN = 'LS800'.
*--- Call the distribute function with the required parameters
CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE' IN UPDATE TASK
EXPORTING
MASTER_IDOC_CONTROL = IDOC_CONTROL
TABLES
COMMUNICATION_IDOC_CONTROL = T_COMM_CONTROL
MASTER_IDOC_DATA = IDOC_DATA
EXCEPTIONS
ERROR_IN_IDOC_CONTROL = 1
ERROR_WRITING_IDOC_STATUS = 2
ERROR_IN_IDOC_DATA = 3
SENDING_LOGICAL_SYSTEM_UNKNOWN = 4
OTHERS = 5.


COMMIT WORK.

BREAK-POINT.

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8214011/viewspace-910659/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: SAP 用户权限解剖
请登录后发表评论 登录
全部评论

注册时间:2008-08-04

  • 博文量
    62
  • 访问量
    213947