BADI-AC_DOCUMENT-交货单过账科目替代

22 篇文章 0 订阅
BADI-AC_DOCUMENT-交货单过账科目替代
一、业务场景
  1. 事务代码VL02N/VL22N及其他交货单过账事务,在交货单过账生成会计凭证的时候对科目进行替代
    在这里插入图片描述
二、BADI增强:AC_DOCUMENT
  1. 这个BADI理论上可以处理很多的会计凭证科目替代,不止是交货单过账,MIRO和MIGO都会走这个BADI。

  2. 修改方法 CHANGE_INITIAL,可以在这个方法内进行科目替代
    在这里插入图片描述

  3. 注意事项替代的部分代码是必须的 , ex_document - header - bktxt = im_document - header - bktxt .在方法CHANGE_AFTER_CHECK中也必须写一个bktxt的传值。此处 BKTXT 不传替代将不起效 。

  4. 参考代码

    METHOD if_ex_ac_document~change_initial .
      DATA : it_accit TYPE accit_t .
      DATA : wa_accit TYPE accit .
      DATA : it_sub_t TYPE accit_sub_t .
      DATA : wa_accit_sub TYPE accit_sub .
      DATA : l_kosar TYPE kosar .
      DATA : l_kostl TYPE kostl .
      DATA : l_lfart TYPE lfart .
      DATA ls_alter TYPE ztfico_alter .
      IF im_document-header-tcode = 'VL02N' .
        it_accit = im_document-item[] .
        CLEAR wa_accit .
        LOOP AT it_accit INTO wa_accit .
          IF wa_accit-vbeln IS NOT INITIAL AND wa_accit-ktosl EQ 'GBB' .
            CLEAR : l_lfart, l_kosar .
            SELECT SINGLE lfart INTO l_lfart FROM likp WHERE vbeln = wa_accit-vbeln .
            SELECT SINGLE kosar INTO l_kosar FROM csks WHERE kostl = wa_accit-kostl AND kokrs = 'QY00' .
    
            CLEAR ls_alter .
            SELECT SINGLE * INTO ls_alter FROM ztfico_alter WHERE lfart = l_lfart AND kosar = l_kosar .
            IF ls_alter IS NOT INITIAL .
              wa_accit-hkont = ls_alter-hkont .
            ENDIF .
    
            MODIFY it_accit FROM wa_accit .
          ENDIF .
          CLEAR wa_accit .
        ENDLOOP .
    
        CLEAR wa_accit .
        LOOP AT it_accit INTO wa_accit .
          CLEAR wa_accit_sub .
          MOVE-CORRESPONDING wa_accit TO wa_accit_sub .
          APPEND wa_accit_sub TO it_sub_t .
          CLEAR wa_accit .
        ENDLOOP .
    
        ex_document-item[] = it_sub_t[] . " 输入行项目替代输出行项目
        ex_document-header = im_document-header . " 输入的抬头替代输出的
      ENDIF .
      ex_document-header-bktxt = im_document-header-bktxt . " 输入的抬头替代输出的
    ENDMETHOD .
    
    METHOD if_ex_ac_document~change_after_check .
      ex_document-header-bktxt = im_document-header-bktxt .
    ENDMETHOD .
    
  5. 注意:在标准的会计凭证替代不起效的时候考虑使用AC_DOCUMENT增强BTE增强

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值