SAP ABAP KB11N 批量导入

场景

通过BAPI: BAPI_ACC_PRIMARY_COSTS_POST批量导入到KB11N

参数简介

在这里插入图片描述

抬头

抬头参数中大部分参数都可参照KB11N界面设置,其中变式字段VARIANT需要指定,货币一般都是固定的,视成本范围业务配置而定

  doc_header = VALUE #( co_area    = 'XXX'
                        docdate    = v_date_l
                        postgdate  = v_date_l
                        period     = ei_monat
                        variant    = '03SAP'
                        trans_curr = 'CNY'
                        username   = sy-uname ).

行项目

可参照KB11N界面查找所需字段

    doc_items = VALUE #( BASE doc_items
                       ( send_cctr  = <data>-kostl_f
                         trans_curr = doc_header-trans_curr
                         cost_elem  = <data>-kstar
                         value_tcur = <data>-wog001_f
                         rec_order  = <data>-aufnr ) ).

完整代码

  DATA: doc_header LIKE  bapidochdru12p,
        doc_no     LIKE  bapidochdru12p-doc_no,
        doc_items  TYPE TABLE OF  bapircitm,
        return     TYPE TABLE OF bapiret2,
        l_msg      TYPE msgtx.

  DATA(t_data) = eo_data[].
  DELETE t_data WHERE sel <> 'X'.
  DELETE t_data WHERE wog001_f IS INITIAL.
  CHECK t_data[] IS NOT INITIAL.

  doc_header = VALUE #( co_area    = 'YHGP'
                        docdate    = v_date_l
                        postgdate  = v_date_l
                        period     = ei_monat
                        variant    = '03SAP'
                        trans_curr = 'CNY'
                        username   = sy-uname ).


  LOOP AT t_data ASSIGNING FIELD-SYMBOL(<data>).

    doc_items = VALUE #( BASE doc_items
                       ( send_cctr  = <data>-kostl_f
                         trans_curr = doc_header-trans_curr
                         cost_elem  = <data>-kstar
                         value_tcur = <data>-wog001_f
                         rec_order  = <data>-aufnr ) ).

  ENDLOOP.
  CALL FUNCTION 'BAPI_ACC_PRIMARY_COSTS_CHECK'
    EXPORTING
      doc_header = doc_header
    TABLES
      doc_items  = doc_items
      return     = return.
  LOOP AT return INTO DATA(lwa_return) WHERE type CA 'AEX'.
    l_msg = l_msg && '/' && lwa_return-message.
  ENDLOOP.

  IF l_msg IS NOT INITIAL.

    LOOP AT eo_data ASSIGNING <data> WHERE sel = 'X'.
      <data>-light = '@5C@'.
      <data>-msg = l_msg.
    ENDLOOP.

  ELSE.

    CLEAR:return,doc_no.
    CALL FUNCTION 'BAPI_ACC_PRIMARY_COSTS_POST'
      EXPORTING
        doc_header      = doc_header
        ignore_warnings = 'X'
      IMPORTING
        doc_no          = doc_no
      TABLES
        doc_items       = doc_items
        return          = return.

    LOOP AT return INTO lwa_return WHERE type CA 'AEX'.
      l_msg = l_msg && '/' && lwa_return-message.
    ENDLOOP.
    IF l_msg IS INITIAL.
      COMMIT WORK.
    ELSE.
      ROLLBACK WORK.
    ENDIF.
    LOOP AT eo_data ASSIGNING <data> WHERE sel = 'X'.

      IF l_msg IS INITIAL.
        <data>-light = '@5B@'.
        <data>-msg =  '凭证创建成功'.
        <data>-belnr = doc_no.
      ELSE.
        <data>-light = '@5C@'.
        <data>-msg = '凭证创建失败'.
      ENDIF.

    ENDLOOP.

  ENDIF.
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一些常见的SAP ABAP面试题,但并不会提供答案,因为这些问题需要您自己思考和回答。以下是一些可能会被问到的SAP ABAP面试题: 1. SAP ABAP是什么? 2. 如何在SAP ABAP中定义变量? 3. 什么是函数模块? 4. 如何在SAP ABAP中处理异常? 5. 如何在SAP ABAP中进行调试? 6. 什么是内表?如何定义内表? 7. 如何在SAP ABAP中处理日期和时间? 8. 如何在SAP ABAP中处理字符串? 9. 如何在SAP ABAP中使用SELECT语句? 10. 如何在SAP ABAP中使用LOOP语句? 11. 如何在SAP ABAP中使用IF语句? 12. 如何在SAP ABAP中使用CASE语句? 13. 如何在SAP ABAP中使用BREAK-POINT语句? 14. 如何在SAP ABAP中使用MESSAGE语句? 15. 如何在SAP ABAP中使用CATCH语句? 16. 什么是数据字典?如何定义数据字典对象? 17. 如何在SAP ABAP中使用ABAP OO? 18. 如何在SAP ABAP中使用ALV报表? 19. 如何在SAP ABAP中使用BAPI? 20. 如何在SAP ABAP中使用RFC? 21. 如何在SAP ABAP中使用IDoc? 22. 如何在SAP ABAP中使用ALE? 23. 如何在SAP ABAP中使用EDI? 24. 如何在SAP ABAP中使用BDC? 25. 如何在SAP ABAP中使用LSMW? 26. 如何在SAP ABAP中使用用户退出? 27. 如何在SAP ABAP中使用BADI? 28. 如何在SAP ABAP中使用Enhancement Spot? 29. 如何在SAP ABAP中使用Enhancement Section? 30. 如何在SAP ABAP中使用Function Exit? 31. 如何在SAP ABAP中使用事件? 32. 如何在SAP ABAP中使用ABAP List Viewer(ALV)? 33. 如何在SAP ABAP中使用SAP Query? 34. 如何在SAP ABAP中使用Smart Forms? 35. 如何在SAP ABAP中使用Adobe Forms? 36. 如何在SAP ABAP中使用BSP? 37. 如何在SAP ABAP中使用Web Dynpro? 38. 如何在SAP ABAP中使用SAPUI5? 39. 如何在SAP ABAP中使用Fiori Launchpad? 40. 如何在SAP ABAP中使用SAP HANA?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值