修改会计凭证抬头行项目文本

会计凭证修改行项目文本

使用BAPI FI_ITEMS_MASS_CHANGE或FARP_ITEMS_MASS_CHANGE,一个同步更新,一个异步更新

DATA:WA_BSEG LIKE BSEG,
IT_BUZTAB TYPE TPIT_T_BUZTAB WITH HEADER LINE,
IT_FLDTAB TYPE TPIT_T_FNAME WITH HEADER LINE,
IT_ERRTAB TYPE TPIT_T_ERRDOC WITH HEADER LINE.

  WA_BSEG-SGTXT = 'V'."修改值

  IT_BUZTAB-BUKRS  = LS_BSEG-BUKRS.
  IT_BUZTAB-BELNR  = LS_BSEG-BELNR.
  IT_BUZTAB-GJAHR  = LS_BSEG-GJAHR.
  IT_BUZTAB-BUZEI  = LS_BSEG-BUZEI.
  IT_BUZTAB-BSCHL  = 'XX'. "过账码
  IT_BUZTAB-UMSKZ = ''."特别总账标示
  APPEND IT_BUZTAB .

  IT_FLDTAB-FNAME = 'SGTXT'."要更改的字段
  IT_FLDTAB-AENKZ  = 'X'."给该字段打上标示
  APPEND IT_FLDTAB.
  
  CALL FUNCTION 'FI_ITEMS_MASS_CHANGE'
    EXPORTING
      S_BSEG     = WA_BSEG
    IMPORTING
      ERRTAB     = **IT_ERRTAB[]**
    TABLES
      IT_BUZTAB  = IT_BUZTAB
      IT_FLDTAB  = IT_FLDTAB
    EXCEPTIONS
      BDC_ERRORS = 1
      OTHERS     = 2.
  IF SY-SUBRC <> 0.
  ENDIF

同时修改抬头和行项目文本

使用 CHANGE_DOCUMENT
先查询数据,再修改数据


  SELECT *
     FROM BKPF
     INTO CORRESPONDING FIELDS OF TABLE T_BKPF
    WHERE BUKRS = BUKRS
      AND GJAHR = GJAHR
      AND BELNR = BELNR.
  IF SY-SUBRC NE 0 .
    EXIT.
  ENDIF.

  SELECT *
    FROM BSEG
    INTO CORRESPONDING FIELDS OF TABLE T_BSEG
     FOR ALL ENTRIES IN T_BKPF
   WHERE BELNR = T_BKPF-BELNR
     AND BUKRS = T_BKPF-BUKRS
     AND GJAHR = T_BKPF-GJAHR.

  LOOP AT T_BKPF.
    T_BKPF-XREF1_HD = XREF1_HD.
    MODIFY T_BKPF TRANSPORTING XREF1_HD .
  ENDLOOP.

  CALL FUNCTION 'CHANGE_DOCUMENT'
    TABLES
      T_BKDF = T_BKDF
      T_BKPF = T_BKPF
      T_BSEC = T_BSEC
      T_BSED = T_BSED
      T_BSEG = T_BSEG
      T_BSET = T_BSET.

ENDFUNCTION.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值