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.