FORM frm_reset_release_po USING lv_ebeln TYPE ekko-ebeln CHANGING cs_alv TYPE ty_alv_w.
DATA:lv_rel_code LIKE bapimmpara-rel_code.
DATA:lt_return TYPE TABLE OF bapireturn,
ls_return TYPE bapireturn.
DATA:lv_str TYPE string,lv_offset TYPE i.
DATA:BEGIN OF ls_grp,
frgco TYPE t16fc-frgco,
END OF ls_grp,
lt_grp LIKE TABLE OF ls_grp.
DATA:lv_times TYPE i.
FIELD-SYMBOLS:<lfs_v1> TYPE any.
* 获取采购订单的审批代码
* 根据PO获取审批组和审批策略,然后获取审批级别代码
SELECT k~ebeln,k~frgzu,s~frgc1,s~frgc2,s~frgc3,s~frgc4,
s~frgc5,s~frgc6,s~frgc7,s~frgc8
FROM t16fs AS s
INNER JOIN ekko AS k
ON k~frggr = s~frggr
AND k~frgsx = s~frgsx
WHERE k~ebeln = @lv_ebeln
* AND k~frgrl = @abap_true "FRGRL 字段标示审批是否结束
INTO TABLE @DATA(lt_t16fs).
READ TABLE lt_t16fs ASSIGNING FIELD-SYMBOL(<lfs_t16fs>) INDEX 1.
IF sy-subrc EQ 0.
lv_times = strlen( <lfs_t16fs>-frgzu ).
DO lv_times TIMES.
lv_str = sy-index.
lv_str = 'FRGC' && lv_str.
CONDENSE lv_str NO-GAPS.
ASSIGN COMPONENT lv_str OF STRUCTURE <lfs_t16fs> TO <lfs_v1>.
IF sy-subrc EQ 0.
IF <lfs_v1> IS NOT INITIAL.
DATA(lv_x) = <lfs_t16fs>-frgzu+lv_offset(1).
IF lv_x IS NOT INITIAL."已审批
ls_grp-frgco = <lfs_v1>.
APPEND ls_grp TO lt_grp.
ENDIF.
ENDIF.
ENDIF.
lv_offset = lv_offset + 1.
ENDDO.
CLEAR lv_str.
ENDIF.
* 循环审批码将PO逐级release
* 调用BAPI审批PO
SORT lt_grp DESCENDING BY frgco.
LOOP AT lt_grp INTO ls_grp.
CALL FUNCTION 'BAPI_PO_RESET_RELEASE'
EXPORTING
purchaseorder = lv_ebeln
po_rel_code = ls_grp-frgco
TABLES
return = lt_return.
LOOP AT lt_return INTO ls_return
WHERE type = 'E' OR type = 'A'.
lv_str = lv_str && '|' && ls_return-message.
DATA(lv_flag) = abap_true.
ENDLOOP.
SHIFT lv_str LEFT DELETING LEADING '|'.
IF lv_flag EQ abap_true.
EXIT.
ENDIF.
WAIT UP TO 1 SECONDS.
ENDLOOP.
IF lv_flag EQ abap_true."失败
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
* cs_alv-icon = icon_red_light.
* cs_alv-msg = '反审批出错:' && lv_str.
* SHIFT cs_alv-msg LEFT DELETING LEADING '|'.
MESSAGE '反审批出错'&& lv_str TYPE 'E'.
ELSE."成功
* cs_alv-icon = icon_green_light.
* cs_alv-type = '3'.
* cs_alv-msg = '反审批通过'.
ENDIF.
ENDFORM.
SAP ABAP 采购申请取消审批 BAPI_PO_RESET_RELEASE
最新推荐文章于 2024-07-15 10:02:20 发布