2021-06-23 SAP 预制凭证 BAPI

4 篇文章 0 订阅
该段代码展示了在SAP系统中如何使用BAPI函数模块自动化处理会计凭证。首先调用BAPI_ACC_DOCUMENT_POST创建和修改预制凭证,然后进行事务提交或回滚,最后处理可能出现的错误并显示日志信息。
摘要由CSDN通过智能技术生成

查找:CODE_SCANNER事务
创建:BAPI_ACC_DOCUMENT_POST 修改:预制会计凭证 BAPI PRELIMINARY_POSTING_DOC_WRITE
F-65生成预制凭证
在这里插入图片描述 CALL FUNCTION ‘BAPI_ACC_DOCUMENT_POST’
EXPORTING
DOCUMENTHEADER = WA_DOCUMENTHEADER "录入凭证头
TABLES
ACCOUNTGL = IT_ACCOUNTGL "总帐科目项
ACCOUNTRECEIVABLE = IT_ACCOUNTRECEIVABLE "客户项目
ACCOUNTPAYABLE = IT_ACCOUNTPAYABLE "供应商项目
CURRENCYAMOUNT = IT_CURRENCYAMOUNT "货币项目
ACCOUNTTAX = IT_ACCOUNTTAX "税收项目
EXTENSION2 = IT_EXTENSION2 "扩展字段
RETURN = IT_RETURN "返回值
CRITERIA = IT_CRITERIA " CO-PA
VALUEFIELD = IT_VALUEFIELD. "CO-PA

DESCRIBE TABLE IT_RETURN LINES L_RETURN_TABCOUNT.

 LOOP AT IT_RETURN INTO WA_RETURN WHERE TYPE CA 'XAE'.
  L_ERROR = 'X'.
ENDLOOP.

 IF L_ERROR = 'X'.
  CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'
  •   IMPORTING
    
  •     RETURN        =
              .
    CALL FUNCTION 'SUSR_DISPLAY_LOG'
    EXPORTING
      DISPLAY_IN_POPUP     = 'X'
    
  •   LOG_TITLE            =
    
  •   DISPLAY_IN_SUBSCREEN =
    TABLES
    
  •   IT_LOG_SPROT         =
      IT_LOG_BAPIRET2      = IT_RETURN
    EXCEPTIONS
      PARAMETER_ERROR      = 1
      OTHERS               = 2.
    

    ELSE.
    CALL FUNCTION ‘BAPI_TRANSACTION_COMMIT’.
    ENDIF.

    DATA: L_MSG TYPE STRING,
    L_POS1 TYPE I,
    L_POS2 TYPE I,
    L_POS3 TYPE I.

    IF L_ERROR IS INITIAL.
    LOOP AT it_return into wa_return where id = ‘RW’ .
    IF WA_RETURN-MESSAGE CA ‘BKPFF’.
    L_POS1 = SY-FDPOS + 6.
    L_POS2 = L_POS1 + 10.
    L_POS3 = L_POS2 + 4.
    CONCATENATE ‘成功生成凭证号码:’ WA_RETURN-MESSAGE+L_POS1(10) ‘公司代码:’ WA_RETURN-MESSAGE+L_POS2(4) ‘年度:’ WA_RETURN-MESSAGE+L_POS3(4) INTO L_MSG.

  •       MESSAGE L_MSG TYPE 'I'.
    

CALL FUNCTION ‘PRELIMINARY_POSTING_DOC_WRITE’
EXPORTING

  • I_UF05A =
    I_BSTAT = ‘V’
    TABLES
    T_VBKPF = TVBKPF
    T_VBSEC = TVBSEC
    T_VBSEG = TVBSEG
    T_VBSET = TVBSET
  • T_VACSPLT =
  • T_VSPLTWT =
  • EXCEPTIONS
  • ABNORMAL_TERMINATION = 1
  • INSERT_ERROR = 2
  • UPDATE_ERROR = 3
  • READ_ERROR = 4
  • OTHERS = 5
    .
    IF SY-SUBRC <> 0.
  • Implement suitable error handling here
    ENDIF.
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值