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

“功能描述:根据传输过来数据创建会计冲销凭证,并返回消息和状态
*”----------------------------------------------------------------------
"“本地接口:
*” 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’.
**

相关内容

热门资讯

民生情报站丨电瓶车“飞线充电”... 川观新闻记者 刘珩据媒体报道,6月25日凌晨,成都市金牛区一小区发生一起电动自行车火灾,事故造成一家...
甬矽电子:6月份公司未回购股份 证券日报网讯 7月2日晚间,甬矽电子发布公告称,2025年6月份,公司未通过上海证券交易所交易系统以...
赛意信息:累计回购公司股份26... 证券日报网讯 7月2日晚间,赛意信息发布公告称,截至2025年6月30日,公司通过股份回购专用证券账...
华润材料:累计回购公司股份78... 证券日报网讯 7月2日晚间,华润材料发布公告称,截至2025年6月30日,公司累计通过回购专用证券账...
挪威人有什么忌讳 挪威人有什么忌讳挪威人与人庆穗谈话时,习惯双方的距离州歼稍远些,最好1.2米以外。公共场所禁止吸烟。...
2025年券商金融“五篇大文章... 中国证券报·中证金牛座记者7月2日从业内独家获悉,备受证券行业瞩目的券商“五篇大文章”试评价结果正陆...
热热热,来石景山首钢园“清凉一... 转自:北京号夏天逃进首钢园也太爽了!滑雪大跳台“顽酷心跳塔”品高空咖啡,群明湖上划浆板,无论智能科技...
华明装备:累计回购公司股份11... 证券日报网讯 7月2日晚间,华明装备发布公告称,截至2025年6月30日,公司通过股份回购专用证券账...
争光股份:7月18日将召开20... 7月2日晚间,争光股份发布公告称,公司将于2025年7月18日召开2025年第一次临时股东大会。本次...
智信精密:董事张国军拟减持公司... 人民财讯7月2日电,智信精密(301512)7月2日晚间公告,公司持股8.83%的股东、董事张国军计...