SAP 创建会计冲销凭证
创始人
2024-05-30 20:01:54

“功能描述:根据传输过来数据创建会计冲销凭证,并返回消息和状态
*”----------------------------------------------------------------------
"“本地接口:
*” IMPORTING
*" VALUE(IW_ZTFKCX0010) TYPE ZTFKCX0010
*" EXPORTING
*" VALUE(E_JSON) TYPE STRING
*"----------------------------------------------------------------------

DATA : l_bkpf TYPE bkpf.
DATA : l_reversal TYPE bapiacrev,

  •   l_bus_act  TYPE bapiache09-bus_act,l_obj_key  TYPE bapiacrev-obj_key,
    
  •   gt_return  TYPE TABLE OF bapiret2 WITH HEADER LINE,lt_return  TYPE TABLE OF bapiret2 WITH HEADER LINE,lw_return  TYPE          bapiret2.
    
  •   i_return   TYPE bapiret2.
    

    DATA:BEGIN OF ls_msg,
    type TYPE bapi_mtype, "
    message TYPE bapi_msg, "

     END OF ls_msg.
    

    DATA:lt_msg LIKE TABLE OF ls_msg.

  • 获取数据
    *验证是否已创建过会计凭证
    CLEAR: ls_msg,l_bkpf.
    SELECT SINGLE * FROM bkpf INTO CORRESPONDING FIELDS OF l_bkpf WHERE bukrs = iw_ztfkcx0010-awkey+10(4)
    AND belnr = iw_ztfkcx0010-awkey+0(10)
    AND gjahr = iw_ztfkcx0010-awkey+14(4)
    AND xreversal = ‘’.
    IF sy-subrc <> 0.
    ls_msg-type = ‘W’.
    CONCATENATE iw_ztfkcx0010-awkey ‘之前已冲销过,请确认!’ INTO ls_msg-message.
    APPEND ls_msg TO lt_msg.
    e_json = /ui2/cl_json=>serialize( data = lt_msg ).

    RETURN.

ENDIF.

  • bapi 参数赋值
    l_reversal-obj_type = l_bkpf-awtyp.
    l_reversal-obj_key_r = l_bkpf-awkey.
    l_reversal-pstng_date = iw_ztfkcx0010-bldat."冲销日期
    l_reversal-fis_period = iw_ztfkcx0010-bldat+4(2)."冲销期间
    l_reversal-comp_code = iw_ztfkcx0010-awkey+10(4)."公司代码
    l_reversal-reason_rev = iw_ztfkcx0010-stgrd."冲销原因代码 03

  • 取得系统 LOGICAL SYSTEM
    CALL FUNCTION ‘OWN_LOGICAL_SYSTEM_GET’
    IMPORTING
    own_logical_system = l_reversal-obj_sys.

  • 调用 BAPI 函数,冲销会计凭证
    CALL FUNCTION ‘BAPI_ACC_DOCUMENT_REV_POST’
    EXPORTING
    reversal = l_reversal
    bus_act = l_bkpf-glvor
    IMPORTING
    obj_key = l_obj_key
    TABLES
    return = lt_return.

  • S 成功,E 错误,W 警告,I 信息,A 中断
    LOOP AT lt_return INTO lw_return WHERE type = ‘E’
    OR type = ‘A’.

    EXIT.

ENDLOOP.

  • 创建成功
    IF sy-subrc <> 0.
    CALL FUNCTION ‘BAPI_TRANSACTION_COMMIT’
    EXPORTING
    wait = ‘X’.

    CLEAR ls_msg.
    ls_msg-type = ‘S’.
    ls_msg-message = l_obj_key.
    APPEND ls_msg TO lt_msg.

*存表ZTFKCX0010
iw_ztfkcx0010-bukrs = iw_ztfkcx0010-awkey+10(4)."新赋值
iw_ztfkcx0010-gjahr = iw_ztfkcx0010-awkey+14(4)."新赋值
iw_ztfkcx0010-belnr = iw_ztfkcx0010-awkey+0(10)."新赋值
iw_ztfkcx0010-awkey = l_obj_key."对此字段从新赋值冲销凭证号
iw_ztfkcx0010-createdby = sy-uname."创建人
iw_ztfkcx0010-cr_date = sy-datum."创建日期
iw_ztfkcx0010-cr_time = sy-uzeit."创建时间
iw_ztfkcx0010-mod_by = sy-uname."修改人
iw_ztfkcx0010-mod_date = sy-datum."修改日期
iw_ztfkcx0010-mod_time = sy-uzeit."修改时间
MODIFY ztfkcx0010 FROM iw_ztfkcx0010.

ELSE.
CALL FUNCTION ‘BAPI_TRANSACTION_ROLLBACK’.

LOOP AT lt_return INTO lw_return WHERE type = 'E'.CLEAR ls_msg.ls_msg-type = 'E'.ls_msg-message = lw_return-message.APPEND ls_msg TO lt_msg.ENDLOOP.

ENDIF.

  • **内表->JSON
    e_json = /ui2/cl_json=>serialize( data = lt_msg ).

***测试数据
*IW_ZTFKCX0010-XBLNR = ‘付款申请单号’.
*IW_BKPF-XREF1_HD = ‘付款交易流水号’.
*IW_BKPF-MTYPE = ‘1’.
*IW_BKPF-WRBTR = ‘700’.
*IW_BKPF-STGRD = ‘03’.
*IW_BKPF-BLDAT = ‘20220723’.
*IW_BKPF-RESON = ‘ceshi’.
*IW_BKPF-AWKEY = ‘150000000652002020’.
**

相关内容

热门资讯

重大通报作弊器!乐乐上海麻将a... 重大通报作弊器!乐乐上海麻将ai智能透视辅助插件,乐乐上海麻将本来存在有外挂(有辅助挂方略)1、很好...
分享给玩家透视挂!家乡大贰ai... 分享给玩家透视挂!家乡大贰ai智能透视辅助工具,家乡大贰其实真的有外挂(有辅助挂细节)家乡大贰破解侠...
科普攻略开挂!英豪娱乐城ai智... 科普攻略开挂!英豪娱乐城ai智能透视辅助教程,英豪娱乐城好像真的是有外挂(有辅助挂头条)1、英豪娱乐...
总算了解辅助器!和悦游戏ai智... 总算了解辅助器!和悦游戏ai智能透视辅助教程,和悦游戏确实是真的有外挂(竟然有辅助挂)暗藏猫腻,小编...
揭秘关于辅助器!九九麻将ai智... 揭秘关于辅助器!九九麻将ai智能透视辅助技巧,九九麻将一贯是有外挂(有辅助挂方略)1、用户打开应用后...