批量更新FB02凭证文本

定义相关变量、结构、表

DATA : W_BSEG    TYPE BSEG,        “ 修改数据的内容结构

        W_MESSAGE TYPE T100-TEXT.  “ 返回的消息接收



  DATA : IT_ERRTAB TYPE TPIT_T_ERRDOC WITH HEADER LINE,

          IT_FLDTAB TYPE TPIT_T_FNAME WITH HEADER LINE,

          IT_BUZTAB TYPE TPIT_T_BUZTAB WITH HEADER LINE.

 

 

 

2、维护要更新的凭证文本字段名

* 更改需要更新凭证字段的字段名,多个就添加多个
IT_FLDTAB-FNAME = 'ZUONR'.  “ 字段名称

  APPEND IT_FLDTAB.

  CLEAR IT_FLDTAB.

3、调用函数前数据准备

*  数据初始化

  CLEAR: IT_ERRTAB[],

          IT_BUZTAB[].

  CLEAR: W_BSEG.



* 要更新的字段的值,根据实际情况赋值

  W_BSEG-ZUONR = LS_IDGT_INFO-GTVBELN. " 此业务场景的更新值



* 固定数据获取参照,按具体更新条件取出以下数据信息即可

  SELECT SINGLE

      BUKRS

      BELNR

      GJAHR

      BUZEI

      KOART

      UMSKZ

      BSCHL

      MWART

      MWSKZ

  FROM BSEG

  INTO CORRESPONDING FIELDS OF IT_BUZTAB

  WHERE BUKRS = LS_BKPF-BUKRS        " 公司代码

    AND BELNR = LS_BKPF-BELNR        " 会计凭证号码

    AND GJAHR = LS_BKPF-GJAHR        " 会计凭证号码

    AND KUNNR <> ''   " 客户编号   *此条件为具体业务添加

                  .   " 

  IF SY-SUBRC = 0.

    APPEND IT_BUZTAB.

    CLEAR IT_BUZTAB.

  ENDIF.

3、函数调用处理

  CALL FUNCTION 'FI_ITEMS_MASS_CHANGE'

    EXPORTING

      S_BSEG     = W_BSEG

    IMPORTING

      ERRTAB     = IT_ERRTAB[]   " 返回消息

    TABLES

      IT_BUZTAB  = IT_BUZTAB

      IT_FLDTAB  = IT_FLDTAB

    EXCEPTIONS

      BDC_ERRORS = 1

      OTHERS     = 2.

  IF SY-SUBRC <> 0.

*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

    PERFORM GENERATE_MESSAGE.   “ 消息信息处理

    MESSAGE W_MESSAGE TYPE 'S' DISPLAY LIKE 'E'.

  ENDIF.

3、返回消息信息处理

FORM GENERATE_MESSAGE.

  CLEAR W_MESSAGE. “ 清空一下消息文本



  READ TABLE IT_ERRTAB INDEX 1.

  IF SY-SUBRC = 0.

    CALL FUNCTION 'FORMAT_MESSAGE'

      EXPORTING

        ID        = IT_ERRTAB-ERR-MSGID

        LANG      = SY-LANGU

        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       = W_MESSAGE “ 消息文本整理返回

      EXCEPTIONS

        NOT_FOUND = 1

        OTHERS    = 2.

  ENDIF.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值