采购订单审批BAPI —BAPI_PO…

采购订单审批BAPI —BAPI_PO_RELEASE

REPORT z_release_po.

DATA gc_frggr LIKE ekko-frggr. “Release Group

DATA gc_frgsx LIKE ekko-frgsx. “Release Strategy

DATA gc_frgke LIKE ekko-frgke. “Release Status.

DATA ret_code LIKE sy-subrc.

DATA msg(255) TYPE c.

DATA: gt_t16fs LIKE t16fs OCCURS 0 WITH HEADER LINE.

DATA: gc_new_status LIKE bapimmpara-rel_status.

DATA: gc_indicator_new LIKE bapimmpara-po_rel_ind.

DATA: gt_log LIKE bapiret2 OCCURS 0 WITH HEADER LINE.

DATA: gc_no_commit LIKE bapimmpara-selection.

DATA: et_log LIKE bapiret2 OCCURS 0 WITH HEADER LINE.

DATA:BEGIN OF it_po_rel_code OCCURS 0,

rel_code TYPE frgco,

END OF it_po_rel_code.

SELECTION-SCREEN BEGIN OF BLOCK block WITH FRAME TITLE title.

PARAMETERS:po_num LIKE ekko-ebeln,”采购订单号

rel_code TYPE frgco.”审批代码

SELECTION-SCREEN END OF BLOCK block.

SELECT SINGLE ekko~frgke INTO gc_frgke FROM ekko WHERE ekko~ebeln = po_num.

IF gc_frgke = ‘1’.

ret_code = -1.

CONCATENATE: po_num ‘已经通过审核’ INTO msg.

  • EXIT.

ELSE.

SELECT SINGLE ekko~frggr ekko~frgsx INTO (gc_frggr,gc_frgsx) FROM ekko WHERE ekko~ebeln = po_num.

IF ( gc_frggr IS NOT INITIAL ) AND ( gc_frgsx IS NOT INITIAL ).

REFRESH gt_t16fs.

CLEAR gt_t16fs.

SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_t16fs FROM t16fs WHERE t16fs~frggr = gc_frggr AND t16fs~frgsx = gc_frgsx.

ELSE.

ret_code = -1.

msg =’未找到对应审批策略,请检查输入’.

EXIT.

ENDIF.

IF rel_code IS NOT INITIAL.

CLEAR gc_new_status.

CLEAR gc_indicator_new.

CALL FUNCTION ‘BAPI_PO_RELEASE’

EXPORTING

purchaseorder = po_num

po_rel_code = rel_code

use_exceptions = ‘X’

  • no_commit =

IMPORTING

rel_status_new = gc_new_status

rel_indicator_new = gc_indicator_new

  • ret_code =

TABLES

return = gt_log.

IF sy-subrc = 0.

et_log-type = ‘S’.

CONCATENATE: ‘采购订单通过审核码’ rel_code ‘的审核成功!’ ‘返回采购订单审批状态为:’ gc_new_status ‘ 审批标识为:’

gc_indicator_new INTO et_log-message.

APPEND et_log.

IF NOT gt_log[] IS INITIAL.

et_log-type = gt_log-type.

et_log-message = gt_log-message.

APPEND et_log.

ENDIF.

ENDIF.

ELSE.

ret_code = -1.

msg = ‘未找到对应审批策略,请检查输入’.

EXIT.

ENDIF.

IF et_log[] IS NOT INITIAL.

READ TABLE et_log WITH KEY type = ‘E’.

IF sy-subrc = 0.

msg = ‘po审核存在错误,请查看错误日志’.

ret_code = -1.

EXIT.

ELSE.

msg = ‘PO已审核成功,请查看日志’.

ret_code = 0.

ENDIF.

ENDIF.

ENDIF.

WRITE:msg.

Original: https://blog.51cto.com/u_15680210/5392441
Author: sapLiuMeng
Title: 采购订单审批BAPI —BAPI_PO…

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/517274/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球