ABAP BAPI 审批采购订单

 1 *&---------------------------------------------------------------------*
 2 *& Report ZGER_1910LK_031403
 3 *&---------------------------------------------------------------------*
 4 *&
 5 *&---------------------------------------------------------------------*
 6 REPORT ZGER_1910LK_031403.
 7 *--------------------------------------------------------------------*
 8 DATA:
 9   BEGIN OF LS_GRP,
10     FRGGR TYPE T16FC-FRGGR,  "审批组
11     FRGCO TYPE T16FC-FRGCO,  "审批代码
12   END OF LS_GRP,
13 
14   LT_GRP    LIKE TABLE OF LS_GRP,                 "审批
15   LT_RETURN TYPE STANDARD TABLE OF BAPIRETURN,    "返回参数内表
16   LS_RETURN TYPE BAPIRETURN.                      "返回参数工作区
17 *--------------------------------------------------------------------*
18 PARAMETERS:P_EBELN TYPE EKKO-EBELN.   "采购凭证号
19 PARAMETERS:P_FRGCO TYPE T16FC-FRGCO.  "审批代码
20 *--------------------------------------------------------------------*
21 * 根据PR获得审批组,从而获取审批码
22 SELECT T16FC~FRGGR
23        T16FC~FRGCO
24   INTO TABLE LT_GRP
25   FROM EKKO
26  INNER JOIN T16FC ON EKKO~FRGGR = T16FC~FRGGR  "审批组
27   WHERE EKKO~EBELN = P_EBELN.
28 "   AND eban~frgrl = 'X'."FRGRL 字段标示审批是否结束(X未结束,需要审批, ''审批结束
29 *循环审批码将PR逐级
30 SORT LT_GRP BY FRGGR FRGCO.  "排序
31 
32 DELETE ADJACENT DUPLICATES FROM LT_GRP  COMPARING FRGGR  FRGCO.  "删除相邻重复
33 *--------------------------------------------------------------------*
34 LOOP AT LT_GRP INTO LS_GRP.
35   CALL FUNCTION 'BAPI_PO_RELEASE'
36     EXPORTING
37       PURCHASEORDER          = P_EBELN   "采购凭证号
38       PO_REL_CODE            = P_FRGCO   "审批代码
39 *     USE_EXCEPTIONS         = 'X'
40 *     NO_COMMIT              = ' '
41 * IMPORTING
42 *     REL_STATUS_NEW         =
43 *     REL_INDICATOR_NEW      =
44 *     RET_CODE               =
45     TABLES
46       RETURN                 = LT_RETURN  "返回参数内表
47     EXCEPTIONS
48       AUTHORITY_CHECK_FAIL   = 1
49       DOCUMENT_NOT_FOUND     = 2
50       ENQUEUE_FAIL           = 3
51       PREREQUISITE_FAIL      = 4
52       RELEASE_ALREADY_POSTED = 5
53       RESPONSIBILITY_FAIL    = 6
54       OTHERS                 = 7.
55   IF SY-SUBRC <> 0.
56 * Implement suitable error handling here
57 
58   ENDIF.
59 *--------------------------------------------------------------------*
60   LOOP AT LT_RETURN INTO LS_RETURN WHERE TYPE = 'A'
61                                       OR TYPE = 'E'
62                                       OR TYPE = 'X'.
63 
64     MESSAGE ls_return-MESSAGE TYPE 'I' DISPLAY LIKE 'W'.   "消息
65 BREAK-POINT.
66   ENDLOOP.
67 ENDLOOP.

 

 

posted @ 2020-03-14 15:26  独孤like  阅读(19)  评论(0)    收藏  举报