BAPI : FI_DOCUMENT_GENERATE_AND_CLEAR

最简单的过账:

FB01或者F-02

26d2c253d6ee465a242b8fe87e1c69b2.jpeg

ab42dd7624aa31a263e75a6f6582284b.jpeg

c493785cc734ed314533b1146927e67a.jpeg

FB03查看

2ab7a0c3fd05c846debc9dc3b42b24a2.jpeg

一般默认都是BAPI_ACC_DOCUMENT_POST

但是也可以用FI_DOCUMENT_GENERATE_AND_CLEAR

428dba4ad9c25b9fbd05a391c17a09ab.jpeg

比较注意的是最后一个参数

85f465114339d58f35e3d690679078fd.jpeg

CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY'
        EXPORTING
*         CLIENT            = SY-MANDT
          date              = gs_info-checkdate
          foreign_amount    = l_price
          foreign_currency  = ls_info-currency
          local_currency    = l_local_currency
          rate              = 0
          type_of_rate      = 'M'
          read_tcurr        = 'X'
        IMPORTING
          local_amount      = l_local_amount
        EXCEPTIONS
          no_rate_found     = 1
          overflow          = 2
          no_factors_found  = 3
          no_spread_found   = 4
          derived_2_times   = 5
          OTHERS            = 6.
      IF sy-subrc <> 0.
* Implement suitable error handling here
      ENDIF.

      "输入币种信息,00为转换的币种
      CLEAR lwa_acccr.
      lwa_acccr-posnr   = l_posnr.
      lwa_acccr-curtp   = '00'.
      lwa_acccr-waers   = l_local_currency.
      lwa_acccr-wrbtr   = l_local_amount.
      APPEND lwa_acccr TO lt_acccr.

      CLEAR lwa_acccr.
      lwa_acccr-posnr   = l_posnr.
      lwa_acccr-curtp   = '10'.

      lwa_acccr-waers   = l_local_currency.
      lwa_acccr-wrbtr   = l_local_amount.

      APPEND lwa_acccr TO lt_acccr.

CALL FUNCTION 'FI_DOCUMENT_GENERATE_AND_CLEAR'
      EXPORTING
        i_clr_trans      = 'AUSGZAHL'
        it_open_item_tab = lt_postab
        i_simulation     = g_simulate
      CHANGING
        cs_acchd         = lwa_acchd
        ct_accit         = lt_accit
        ct_acccr         = lt_acccr.

最简单的demo代码

CLEAR cs_acchd.

    CLEAR ls_accit.

    CLEAR ls_accir.

    CLEAR ct_accit[].

    CLEAR ct_acccr[].

    cs_acchd-usnam = sy-uname.

    cs_acchd-tcode = 'FB01'.

    cs_acchd-cpudt = sy-datum.

    cs_acchd-cputm = sy-uzeit.

    cs_acchd-bktxt =  ‘’

    ls_accit-posnr = 1.

    ls_accit-bukrs =  

    ls_accit-gjahr =  

    ls_accit-bldat =  

    ls_accit-budat =  

    ls_accit-monat =  

    ls_accit-blart = 'SA'.

    ls_accit-bschl = '40'.

    ls_accit-sgtxt =  

    ls_accit-hkont =  

    APPEND  ls_accit TO ct_accit.

    ls_accit-posnr = 2.

    ls_accit-bschl = '50'.

    ls_accit-hkont =  

    APPEND  ls_accit TO ct_accit.

    ls_accir-posnr = 1.

    ls_accir-curtp = '00'.

    ls_accir-waers = gs_t001-waers.

    ls_accir-wrbtr =  

    APPEND ls_accir TO ct_acccr.

    ls_accir-posnr = 1.

    ls_accir-curtp = 10.

    ls_accir-waers = gs_t001-waers.

    ls_accir-wrbtr =  

    APPEND ls_accir TO ct_acccr.

    ls_accir-posnr = 2.

    ls_accir-curtp = '00'.

    ls_accir-waers = gs_t001-waers.

    ls_accir-wrbtr =  

    APPEND ls_accir TO ct_acccr.

    ls_accir-posnr = 2.

    ls_accir-curtp = 20.

    ls_accir-waers = gs_t001-waers.

    ls_accir-wrbtr =  

    APPEND ls_accir TO ct_acccr.

    CALL FUNCTION 'FI_DOCUMENT_GENERATE_AND_CLEAR'

      EXPORTING

        i_clr_trans      = 'AUSGZAHL'

        it_open_item_tab = it_open_item_tab

*       I_SIMULATION     = ' '

      CHANGING

        cs_acchd         = cs_acchd

        ct_accit         = ct_accit

        ct_acccr         = ct_acccr.

这个BAPI的好处是,参数比较多,具体参数可以自己查看。

但是这个bapi没有return参数,出错的时候麻烦,

而如果成功,会直接弹出一个对话框,需要用点一下才能继续,批导不能用,一直弹框烦死了,对话框显示是代码写死的,判断条件是 simulation 非空,所以去不掉。

如果BAPI_ACC_DOCUMENT_POST参数不满足的时候,可以考虑这个BAPI

c8b9a9220acc4380972dd9b8ad8b7b80.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值