SAP 更新已过账物料凭证文本

简介: 更新已过账物料凭证文本

DATA: IS_MKPF TYPE  MKPF,
       IS_MSEG TYPE  MSEG,
       IT_MKPF LIKE TABLE OF IS_MKPF,
       IT_MSEG LIKE TABLE OF MSEG.

 GS_DATA-MSG = ''.
 MODIFY GT_DATA FROM GS_DATA TRANSPORTING MSG WHERE MBLNR NE ''.

 CLEAR:IT_MKPF[],GT_LOG[].
 SELECT *
   FROM MKPF
   WHERE EXISTS ( SELECT * FROM @GT_DATA AS A WHERE A~MBLNR = MKPF~MBLNR                  AND A~SEL = 'X' )
   INTO CORRESPONDING FIELDS OF TABLE @IT_MKPF.

   IF LINES( IT_MKPF ) > 1000.
     MESSAGE '单次最多修改一千行' TYPE 'S' DISPLAY LIKE 'E'.
     RETURN.
   ENDIF.
 LOOP AT IT_MKPF INTO IS_MKPF.

   GS_LOG-MBLNR = IS_MKPF-MBLNR.
   GS_LOG-XBLNR = IS_MKPF-XBLNR.
   GS_LOG-CPUDT = SY-DATUM.
   GS_LOG-CPUTM = SY-UZEIT.
   GS_LOG-USNAM = SY-UNAME.
   GS_LOG-BKTXT_OLD = IS_MKPF-BKTXT.
   READ TABLE GT_DATA INTO GS_DATA WITH  KEY MBLNR = IS_MKPF-MBLNR.
   IF SY-SUBRC = 0.
    IS_MKPF-BKTXT = GS_DATA-BKTXT.
   ENDIF.
   GS_LOG-BKTXT_NEW = IS_MKPF-BKTXT.

   MODIFY IT_MKPF FROM IS_MKPF.
   APPEND GS_LOG TO GT_LOG.
   CLEAR:IS_MKPF,GS_LOG.
  ENDLOOP.

 CALL FUNCTION 'MB_CHANGE_DOCUMENT'
 TABLES
   ZMKPF         = IT_MKPF
   ZMSEG         = IT_MSEG.
 IF SY-SUBRC = 0.
   GS_DATA-MSG = '更新成功'.
   MODIFY GT_DATA FROM GS_DATA TRANSPORTING MSG WHERE SEL = 'X'.
   modify ZMMF112_LOG FROM TABLE GT_LOG.
   CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
   EXPORTING
     WAIT          = 'X'.

 ELSE.
   CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
   GS_DATA-MSG = '更新失败'.
   MODIFY GT_DATA FROM GS_DATA TRANSPORTING MSG WHERE SEL = 'X'.
 ENDIF.

目录
相关文章
SAP 解决物料主数据扩展字段无法写入到MARA配置问题详解
配置物料主数据的自建字段(避免创建时传入字段但是无法写入MARA表)
503 0
|
BI
SAP ALV报表选择屏幕筛选字段动态文本
SAP ALV报表选择屏幕筛选字段动态文本
240 0
SAP 批量更新会计凭证文本
批量更新会计凭证文本
508 0
SAP 生产工单长文本保存
小坑: 创建完成之后,必须根据工单号更新aufk的ltext = 1 否则CO03前台看不到写入的长文本。
705 0
SAP 批量更改物料描述
由于公司业务部门需要,向我提出的这个要求,我就在网上查了下,看到了一位知乎的前辈大神写了但是不是特别详细,笔者测试了下,把过程更详细的记录了一下,也挺好用,就在这里记录和分享一下! 比如现在业务部门提出物料主数据中物料描述维护错了,要批量进行修改,而且每个物料这个字段的值是不一样的,此时可以使用MASS事物码通过EXCEL进行批量维护。经常使用MASS将主数据的某个字段修改为相同的值,其实可以使用MASS导入EXCEL进行字段修改,也可将统一字段修改为不同的值,主数据的更改可以不通过LSMW实现。MASS可以实现很多主数据的修改,进入事物码MASS选择对象类型,可实现对不同主数据的更改!
SAP 批量更改物料描述
SAP MM/FI_运费处理方式
常见的采购运费处理方式
SAP MM 途损处理方式
通常客户采购业务需求提到货物运输有损耗,需要针对此业务给出合理方案输出,下面笔者针对此类业务分析下各种实现方案的可行性!
SAP MM初阶之事务代码MIGO界面批次拆分最多输入15行?
SAP MM初阶之事务代码MIGO界面批次拆分最多输入15行?
SAP MM初阶之事务代码MIGO界面批次拆分最多输入15行?