前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SAP FB02 BAPI

SAP FB02 BAPI

作者头像
matinal
发布2020-11-27 12:03:21
1.2K0
发布2020-11-27 12:03:21
举报
文章被收录于专栏:SAP Technical

对于会记凭证文本更改,前台Tcode:FB02,后台调用BAPI:FI_ITEMS_MASS_CHANGE 有测试过更改文本字段:SGTXT,ZLSPR

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.

代码语言:javascript
复制
  WA_BSEG-ZLSPR = '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  = '31'. "过账码
  IT_BUZTAB-UMSKZ = ''."特别总账标示
  APPEND IT_BUZTAB .

  IT_FLDTAB-FNAME = 'ZLSPR'."要更改的字段
  IT_FLDTAB-AENKZ  = 'X'."给该字段打上标示
  APPEND IT_FLDTAB.

*该函数是一行一行改的

代码语言:javascript
复制
  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

IF IT_ERRTAB IS NOT INITIAL.
  READ TABLE IT_ERRTAB INDEX 1.*BDC消息處理.
  CLEAR L_TEXT.
  CALL FUNCTION 'FORMAT_MESSAGE'
    EXPORTING
      ID        = IT_ERRTAB-ERR-MSGID
      NO        = IT_ERRTAB-ERR-MSGNR
      V1        = IT_ERRTAB-ERR-MSGV1
      V2        = IT_ERRTAB-ERR-MSGV2
      V3        = IT_ERRTAB-ERR-MSGV3
      V4        = IT_ERRTAB-ERR-MSGV4
    IMPORTING
      MSG       = L_TEXT
    EXCEPTIONS
      NOT_FOUND = 1
      OTHERS    = 2.

  CONCATENATE LS_BSEG-BELNR L_TEXT INTO L_TEXT.
  E_STATUS = 'E'.
  E_MESS = L_TEXT.

ELSE.
  E_STATUS = 'S'.
  E_MESS = '成功!'.
  
ENDIF.

由于这个函数是一行一行改数据的,可能会出现凭证被锁,解决方法:拷贝原函数出来,原函数中的:

代码语言:javascript
复制
call transaction 'FB02'  using    bdcdata
                         mode     bdcmode
                         update   'A'
                         messages into msgtab. 

改为

代码语言:javascript
复制
call transaction 'FB02'  using    bdcdata
                         mode     bdcmode
                         update   'S'
                         messages into msgtab. 

同步更新,但是比较慢点 。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/11/22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档