? ME54N采购申请逐级审批BAPI_REQUISITION_RELEASE_GEN - SAP顾问圈 亚博体育娱乐 ,亚博体育app怎么样,亚博2018网上投注
二维码

[BAPI] ME54N采购申请逐级审批BAPI_REQUISITION_RELEASE_GEN

Twilight发表于 2019-08-07 10:23Twilight 最后回复于 2019-08-07 10:23 [复制链接] 204 0

采购申请只有行项目数据,没有抬头数据,所以审批SAP也提供了两个BAPI,分别按行项目审批和订单审批。采购申请只能逐级审批不能跨级审批。

1、BAPI_REQUISITION_RELEASE_GEN 按订单审批
  1. FUNCTION zpufm005.
  2. *"----------------------------------------------------------------------
  3. *"*"本地接口
  4. *"??IMPORTING
  5. *"? ???VALUE(I_BANFN) TYPE??BANFN
  6. *"? ???VALUE(I_FRGZU) TYPE??FRGZU
  7. *"??EXPORTING
  8. *"? ???VALUE(E_MESSAGE) TYPE??ZOTS001
  9. *"----------------------------------------------------------------------
  10. ??DATA:lt_return TYPE TABLE OF bapireturn WITH HEADER LINE.
  11. ??DATA:BEGIN OF lt_eban OCCURS 0,
  12. ? ?? ?? ?banfn TYPE eban-banfn,
  13. ? ?? ?? ?bnfpo TYPE eban-bnfpo,
  14. ? ?? ?? ?frgst TYPE eban-frgst, "批准策略
  15. ? ?? ?? ?frggr TYPE eban-frggr, "审批组
  16. ? ?? ? END OF lt_eban.
  17. ??DATA:ls_t16fs TYPE t16fs.
  18. ??DATA:lv_level TYPE n.
  19. ??DATA:lv_pre_field TYPE string VALUE 'FRGC'.
  20. ??DATA:lv_fieldname TYPE string.
  21. ??FIELD-SYMBOLS: TYPE t16fs-frgc1.

  22. ??PERFORM frm_inputsap_banfn CHANGING i_banfn.

  23. ??SELECT banfn
  24. ? ?? ?? ?bnfpo
  25. ? ?? ?? ?frgst??"批准策略
  26. ? ?? ?? ?frggr??"审批组
  27. ??INTO TABLE lt_eban
  28. ??FROM eban
  29. ??WHERE banfn = i_banfn
  30. ? ? AND frgzu = i_frgzu "批准状态
  31. ? ? AND frgrl = 'X'.? ? "X有待审批,未审核完成
  32. ??IF sy-subrc = 0.
  33. ? ? READ TABLE lt_eban INDEX 1.
  34. ? ? IF sy-subrc = 0.
  35. ? ?? ?SELECT SINGLE * INTO ls_t16fs FROM t16fs WHERE frggr = lt_eban-frggr AND frgsx = lt_eban-frgst.
  36. ? ?? ?IF sy-subrc = 0.
  37. ? ?? ???lv_level = strlen( i_frgzu ).
  38. ? ?? ???lv_level = lv_level + 1.
  39. ? ?? ???CONCATENATE lv_pre_field lv_level INTO lv_fieldname.
  40. ? ?? ???"通过指针获取批准代码
  41. ? ?? ???ASSIGN COMPONENT lv_fieldname OF STRUCTURE ls_t16fs TO .

  42. ? ?? ???CALL FUNCTION 'BAPI_REQUISITION_RELEASE_GEN'
  43. ? ?? ?? ? EXPORTING
  44. ? ?? ?? ?? ?number? ?= i_banfn
  45. ? ?? ?? ?? ?rel_code =
  46. ? ?? ?? ? TABLES
  47. ? ?? ?? ?? ?return? ?= lt_return.

  48. ? ?? ???LOOP AT lt_return WHERE type CA 'AEX'.
  49. ? ?? ?? ? IF e_message-message IS INITIAL.
  50. ? ?? ?? ?? ?e_message-message? ?= lt_return-message.
  51. ? ?? ?? ? ELSE.
  52. ? ?? ?? ?? ?CONCATENATE e_message-message lt_return-message INTO e_message-message SEPARATED BY '/'.
  53. ? ?? ?? ? ENDIF.
  54. ? ?? ???ENDLOOP.
  55. ? ?? ???IF sy-subrc = 0.
  56. ? ?? ?? ? e_message-type? ?= 'E'.
  57. ? ?? ?? ? EXIT.
  58. ? ?? ???ELSE.
  59. ? ?? ?? ? e_message-type? ? = 'S'.
  60. ? ?? ?? ? e_message-message = '采购申请审批通过!'.
  61. ? ?? ???ENDIF.
  62. ? ?? ?ENDIF.
  63. ? ? ENDIF.

  64. ??ELSE.
  65. ? ? e_message-type? ? = 'S'.
  66. ? ? e_message-message = '没有发现需要审批的采购订单!'.
  67. ??ENDIF.

  68. ENDFUNCTION.
  69. FORM frm_inputsap_banfn CHANGING pc_banfn TYPE eban-banfn.
  70. ??CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
  71. ? ? EXPORTING
  72. ? ?? ?input??= pc_banfn
  73. ? ? IMPORTING
  74. ? ?? ?output = pc_banfn.
  75. ENDFORM.
复制代码

2、BAPI_REQUISITION_RELEASE 按行项目审批
  1. CALL FUNCTION 'BAPI_REQUISITION_RELEASE'
  2. ??EXPORTING
  3. ? ? number? ?? ?? ?? ?? ???= i_banfn
  4. ? ? rel_code? ?? ?? ?? ?? ?= ls_t16fs-frgc1
  5. ? ? item? ?? ?? ?? ?? ?? ? = lt_eban-bnfpo
  6. ? ? use_exceptions? ?? ?? ?= 'X'
  7. ??TABLES
  8. ? ? return? ?? ?? ?? ?? ???= lt_return
  9. ??EXCEPTIONS
  10. ? ? authority_check_fail? ?= 1
  11. ? ? requisition_not_found??= 2
  12. ? ? enqueue_fail? ?? ?? ???= 3
  13. ? ? prerequisite_fail? ?? ?= 4
  14. ? ? release_already_posted = 5
  15. ? ? responsibility_fail? ? = 6
  16. ? ? OTHERS? ?? ?? ?? ?? ???= 7.
复制代码

快速回帖

本版积分规则
您需要登录后才可以回帖 登录 | 注册有礼

快速回复 返回顶部 返回列表