批量更新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.
 

猜你喜欢

转载自blog.csdn.net/z_x_xing_/article/details/90080111