方法一:系统标准方法
如何查找到production order的修改记录呢?因为有很多用户 "赖皮",明明自己修改过某些资料,如qty or component,可就是不承认,并且还大骂SAP大大的有问题 ,真会气死人,所以想记录下来.
HEHE,这里我就摘录一段SAP的NOTES给大家看看,如何去整这玩意.
Note 390635 - Change documents for production and process order
Summary
Symptom
You cannot activate the creation of change documents for production orders and process orders.
Customizing table T399X (parameters dependent on order type) contains field FLG_DOC but you cannot maintain it using the Customizing transactions for production or process orders.
Other terms
Production order, process order
T399X-FLG_DOC
SPRO, BADI
Reason and Prerequisites
It is not intended to use the SAP standard tool for the creation of change documents for production or process orders in the SAP standard system. The indicator in table T399X is only interpreted by maintenance orders and networks.
The reason for this is that the tool cannot determine dependencies of changes and thus would log too many changes that would have a negative effect on the runtime.
Example: A production order contains 10 operations and 1000 components
Case 1: You change the requirements quantity for a component manually.
           The system creates a change document for the changed component.
Case 2: You change the planned quantity in the order header manually.
           The change causes that the quantites are changed automatically for all operations and components. The system would create
a change document for the changed header quantity,
ten change documents for the automatically changed operation quantities (if defined) and
thousand change documents for automatically changed component quantities.
Solution
Use the SAP enhancement PPCO0007  that is processed when you save order changes. You can find the SAP enhancement in Customizing under the menu path "Shop Floor Control or Production Planning for Process Industries -> Process Order -> System Modifications -> Enhancements for Order Maintenance -> Enhancement when Saving an Order (Header Fields)".
Here you can define additional logic to decide whether or not the system creates change documents.
For this, you can access either the SAP standard tool for creating change documents or your own tool.
The call of the customer exit takes place in function module CO_ZV_ORDER_POST when you save. The current data of an order header is supplied via parameter HEADER_IMP. For collective orders the exit can be called several times - once for each order in the collective order.
Remember that a dialog box must not be accessed and a message must not be issued from the exit.
You can use the attached source code as a template for accessing the creation of change documents.
You can also see in the source code how the current and original data of the different order objects can be provided by internal tables.
The example source code uses function module ORDER_WRITE_DOCUMENT that logs - for the ORDER change document object - the changes for the tables transferred to the module.
It may be appropriate to define a separate object for change documents for orders, for example ZZORDER. If required, you can use the ORDER standard object as a template.
The following tables of the order may have to be taken into ac_countfor this type of change document object:
           Table       Description                        Production Process order
AFAB        Relationships                                        X
AFFH        Production resource/tool                  X
AFFL        Work order sequence                      X          X
AFFT        Process instructions                                X
AFFV        Process instruction values                          X
AFKO        Order header data PP                      X          X
AFPO        Order item                                X          X
AFVC        General operation                        X          X
AFVU        User-specific data operation              X          X
AFVV        Quantities/dates/values in the operation  X          X
AUFK        Order header general                      X          X
DRAD_PORDER Link: Document to order                   X
MLST        Trigger point                            X
RESB        Reservation                              X          X
RSDB        Index reservation/direct procurement      X          X
Important:
The creation of change documents using the SAP standard tool requires that the indicator for change document creation is set for the data element that defines the affected table field. For example, this indicator is not set for data element GAMNG (total order quantity) in the standard system which is the reason why changes to the planned order quantity of the order header are not logged. The reason for this is that the GAMNG field of the AFKO table is defined using data element GAMNG.
To be able to set the indicator for the creation of change documents without modifications and display change document data at a later stage, refer to Note 394887 (Enhancements for installing PH-ELR_100_46C) for Release 4.6C; as of Release 4.70 (SAP Enterprise), the Add-On is part of the R/3 standard system.
You can of course set the indicator for activating the creation of document changes manually for each data element using Transaction SE11, however, this changes the data element.
You can display the change documents using, for example, programs RSSCD100, RSSCD150, or RSSCD200. The display from the standard transactions of the order is not supported.
For Release 45B to 46B, you must also create function module CO_BR_AFFX_GET_TABLES_POST in function group COBR using Transaction SE37. Define the following TABLES parameters for the interface:
Parameter name        Type spec.      Reference type    Optional EXP_AFFT               LIKE            AFFTB
EXP_AFFV               LIKE            AFFVB
To be able to archive the generated change documents, you must implement the program modification from Note 508212 in your system.
方法二:通过增强程序记录。
SAP生产工单更改(CO02)记录详细教程
In SAP system, it has not prodution order's change record. it is very pity! how to solve it? you can use below ways :
需求:SAP在更改生产工单时并没有提供详细的更改记录,查看SAP的Notes,如果强行开启FLG_DOC(控制往更改记录CDHDR,CDPOS里写数据)标记,在批量处理组件过多的生产工单时会导致程序运行出错,SAP建议不开启。User要求对保护字段进行更改记录,无奈只有使用SAP提供的增强功能,东西经过测试初步完成,发出来共享一下,如果大家有更好的方法,发出来讨论讨论,步骤如下:
1.CMOD新增一项目ZCO02,增加增强PPCO0001。
2.查看、Debug SAP源代码,了解数据流向,主要了解在变更工单组件和表头未保存前这些数据存放在哪里?最后查到这两数据放在调用出口函数参数表:component_table,header_table。
3.设计数据表结构:ZPCO02,记录更改,结构如下:
MANDT MANDT CLNT 3
AUFNR AUFNR_char 12
MATNR MATNR_char 18
FILED FIELDNAME_char 30
AENAM AENAM_char 12
LAEDA LAEDA DATS 8
TCODE TCODE_char 20
CHNID CDCHNGIND_char 1
HOSTIP_char20_char 20
HOST MSHOST2_char 32
VALUE_OLD_char20_char 20
VALUE_NEW_char20_char 20
TIMES CDUZEIT TIMS 6
ALPOS        ALPOS       _char        1        0        指示符:替代项目
LOOPID        INT4        INT4        10        0        自然数
4.在EXIT_SAPLCOBT_001的ZXCO1U01写入代码,component_table中的数据跟RESB中的相应保护字段值对比,得出组件更改记录,表头更改记录由header_table与视图CAUFV对比而来。对于因工单总数更改导至组件数量更改的记录可以写一程序从ZPCO02里分开,开放给用户使用,其他一些更改情况请自行研究。代码如下:
-----------------------------------------------------------------------------------------------------------------
代码通过了User测试更正已传至生产系统,改善了保存时的速度,不用拿更改后的工单组件与RESB里的一个个对比了。
*&---------------------------------------------------------------------*
*& 包括 ZXCO1U01_*
*&---------------------------------------------------------------------*
TABLES:caufv,resb.
DATA: BEGIN OF old_resb OCCURS 0, "更改后未保存之RESB.
aufnr LIKE resb-aufnr,
posnr LIKE resb-posnr,
matnr LIKE resb-matnr,
rsnum LIKE resb-rsnum,
rspos LIKE resb-rspos,
xloek LIKE resb-xloek,
bdmng LIKE resb-bdmng,
objnr LIKE resb-objnr,
END OF old_resb.
DATA: BEGIN OF new_resb OCCURS 0. "数据库中的RESB.
INCLUDE STRUCTURE old_resb.
DATA: END OF new_resb.
DATA: BEGIN OF obj_resb OCCURS 0. "插入的RESB
INCLUDE STRUCTURE old_resb.
DATA: END OF obj_resb.
DATA: i_zpco02 LIKE zpco02 OCCURS 0 WITH HEADER LINE.
DATA: i_temp LIKE zpco02 OCCURS 0 WITH HEADER LINE.
DATA: iporg LIKE msxxlist-hostadr,
ipdec(16) TYPE c,
host(18) TYPE c.
DATA:_char1(20) TYPE c,
char2(20) TYPE c.
DATA: inst_flg TYPE c VALUE 'N',
chan_had TYPE c VALUE 'N'.
* teco_flg TYPE c VALUE 'N',
* read_flg TYPE c .
*BREAK-POINT.
CHECK sy-tcode EQ 'CO02'.
** Get user IP,hostname
CALL FUNCTION 'TH_USER_INFO' " Get user IP,hostname
EXPORTING
client = sy-mandt
user = sy-uname
IMPORTING
hostaddr = iporg
terminal = host
EXCEPTIONS
OTHERS = 1.
**"Conv.IP addr to format 'xxx.xxx.xxx.xxx'
CALL FUNCTION 'GWY_IPADR2STRING' "Conv.IP addr
EXPORTING
ipadr = iporg
IMPORTING
string = ipdec.
***Common var.
MOVE: sy-mandt TO i_temp-mandt,
sy-uname TO i_temp-aenam,
sy-datum TO i_temp-laeda,
sy-uzeit TO i_temp-times,
sy-tcode TO i_temp-tcode,
ipdec TO i_temp-hostip,
host TO i_temp-host,
header_table-aufnr TO i_temp-aufnr.
***Check M/O header
**check if status eq 'TECO'.
*LOOP AT status_table WHERE objnr EQ header_table-objnr
* AND stat EQ 'I0045'.
*
* MOVE: 'Y' TO teco_flg.
*ENDLOOP.
*CHECK teco_flg NE 'Y'.
*CHECK read_flg NE 'Y'.
_selectSINGLE gamng gltrp INTO (caufv-gamng, caufv-gltrp)
FROM caufv WHERE aufnr EQ header_table-aufnr.
**qty
IF header_table-gamng NE caufv-gamng.
MOVE: caufv-gamng TO_char1, header_table-gamng TO_char2.
MOVE-CORRESPONDING i_temp TO i_zpco02.
MOVE: '更改工单总数' TO i_zpco02-filed,
'U' TO i_zpco02-chnid,
char1 TO i_zpco02-value_old,
char2 TO i_zpco02-value_new.
APPEND i_zpco02.
inst_flg = 'Y'.
chan_had = 'Y'.
ENDIF.
**date
IF header_table-gltrp NE caufv-gltrp.
MOVE-CORRESPONDING i_temp TO i_zpco02.
MOVE: '更改完成时间' TO i_zpco02-filed,
'U' TO i_zpco02-chnid,
caufv-gltrp TO i_zpco02-value_old,
header_table-gltrp TO i_zpco02-value_new.
APPEND i_zpco02.
inst_flg = 'Y'.
ENDIF.
IF inst_flg = 'Y'.
_insertzpco02 FROM TABLE i_zpco02 ACCEPTING DUPLICATE KEYS.
inst_flg = 'N'.
ENDIF.
*_deletecomponent_table WHERE vbkz EQ 'I'.
LOOP AT component_table WHERE vbkz EQ 'U'
OR vbkz EQ 'I'
OR vbkz EQ 'D'.
CASE component_table-vbkz.
WHEN 'I'.
MOVE-CORRESPONDING i_temp TO i_zpco02.
MOVE: '新增组件' TO i_zpco02-filed,
'I' TO i_zpco02-chnid,
'' TO i_zpco02-value_old, "old_resb-matnr
component_table-matnr TO i_zpco02-value_new,
'新增的组件' TO i_zpco02-matnr,
* read_flg TO i_zpco02-readf,
component_table-alpos TO i_zpco02-alpos,
sy-tabix TO i_zpco02-loopid.
APPEND i_zpco02.
inst_flg = 'Y'.
WHEN 'D'.
MOVE-CORRESPONDING i_temp TO i_zpco02.
MOVE: '删除组件' TO i_zpco02-filed,
'D' TO i_zpco02-chnid,
resb-xloek TO i_zpco02-value_old,
component_table-xloek TO i_zpco02-value_new,
component_table-matnr TO i_zpco02-matnr,
* read_flg TO i_zpco02-readf,
component_table-alpos TO i_zpco02-alpos,
sy-tabix TO i_zpco02-loopid.
APPEND i_zpco02.
inst_flg = 'Y'.
WHEN 'U'.
_selectSINGLE matnr bdmng INTO (resb-matnr, resb-bdmng)
FROM resb WHERE aufnr EQ component_table-aufnr
AND posnr EQ component_table-posnr
AND matnr EQ component_table-matnr
AND rsnum EQ component_table-rsnum
AND rspos EQ component_table-rspos.
IF component_table-matnr NE resb-matnr.
MOVE-CORRESPONDING i_temp TO i_zpco02.
MOVE: '更改组件' TO i_zpco02-filed,
'U' TO i_zpco02-chnid,
resb-matnr TO i_zpco02-value_old,
component_table-matnr TO i_zpco02-value_new,
'更改的工单组件' TO i_zpco02-matnr,
* read_flg TO i_zpco02-readf,
component_table-alpos TO i_zpco02-alpos,
sy-tabix TO i_zpco02-loopid.
APPEND i_zpco02.
inst_flg = 'Y'.
ELSEIF component_table-bdmng NE resb-bdmng.
CHECK chan_had NE 'Y'.
MOVE: component_table-bdmng TO_char1, resb-bdmng TO_char2.
MOVE-CORRESPONDING i_temp TO i_zpco02.
MOVE: '需求数量' TO i_zpco02-filed,
'U' TO i_zpco02-chnid,
char2 TO i_zpco02-value_old,
char1 TO i_zpco02-value_new,
component_table-matnr TO i_zpco02-matnr,
* read_flg TO i_zpco02-readf,
component_table-alpos TO i_zpco02-alpos,
sy-tabix TO i_zpco02-loopid.
APPEND i_zpco02.
inst_flg = 'Y'.
ENDIF.
ENDCASE.
ENDLOOP.
IF inst_flg = 'Y'.
_insertzpco02 FROM TABLE i_zpco02 ACCEPTING DUPLICATE KEYS.
IF sy-subrc EQ 0.
inst_flg = 'N'.
chan_had = 'N'.
* MESSAGE ID 'ZX' TYPE 'W'
* NUMBER '000' WITH 'SAP系统已记录您的更改!'.
ENDIF.
ENDIF.
--------------------------------------------------------------------------------------------------------
5.更改记录:
集团 400
订单 400000063
物料 5017000533A
字段名 删除标记
更改者 SAP003
上一次修改 2005.09.12
事务代码 CO02
修改标识符 D
字符20 (HOSTIP) 192.168.4.95
Host Name SAP-8
字符20 (VALUE OLD)
字符20 (VALUE NEW) X

方法三:Tcode-aut10

生产订单修改记录的跟踪方法!相关推荐

  1. S/4HANA生产订单增强WORKORDER_UPDATE方法

    题目这个增强的输入参数很恐怖,长长的一串: CALL BADI l_badi->BEFORE_UPDATEEXPORTINGIT_PIINSTRUCTIONVALUE = IT_PIINSTRU ...

  2. S/4HANA生产订单增强WORKORDER_UPDATE方法BEFORE_UPDATE参数分析

    题目这个增强的输入参数很恐怖,长长的一串: CALL BADI l_badi->BEFORE_UPDATEEXPORTINGIT_PIINSTRUCTIONVALUE = IT_PIINSTRU ...

  3. SAP中如何实现<生产订单>的批量删除方法!

    一.计划订单部份: 1.SAP 生产模块的计划订单批量删除的功能代码 MD16. 二.生产订单部份: 2.生产订单批量做删除标记.程序名:PPARCHP1 ,运行SE38,做pro.ORD 的批量删除 ...

  4. S/4HANA生产订单增强WORKORDER_UPDATE方法BEFORE_UPDATE参数分析 1

    题目这个增强的输入参数很恐怖,长长的一串: CALL BADI l_badi->BEFORE_UPDATEEXPORTINGIT_PIINSTRUCTIONVALUE = IT_PIINSTRU ...

  5. SAP S/4HANA生产订单的BAdI增强点之Initialize方法

    在S/4HANA里创建生产订单时,有一个增强点WORKORDER_UPDATE: 这个CAUFVDB里存放的是生产订单抬头级别的数据: 我们来观察下运行时这个结构里存放的数据. 请大家用我github ...

  6. TECO状态的生产订单结算到在制品怎么办?

    最近出现一件怪事,被标记为 TECO 的生产订单仍然被结算到 WIP,导致生产订单存在余额.这里给出两个类似的订单的状态截图,一个订单 OK,另外一个订单存在问题. 正常的订单: 可以看出,2021. ...

  7. 机械行业ERP系统生产订单管理 分享式操作轻松协同

    产品生产制造过程,就像大厨按单做菜,按照清单提前采购配料,拣菜.洗菜.切菜.配菜.烧菜.装盘.上桌,只需快速分工协作,分分钟就能搞定一道道美味.可实际却远没这么简单,要么没顾客,要么来一堆,同一道菜, ...

  8. 【PP生产订单】入门介绍(十三)

    之前关于生产订单的整个流程都有讲过(如下图所示): 那么,到了最后我们就不得不提一下成本这块的相关概念了. 那么SAP中收集成本的方法有几种呢? ●一种时按销售订单去收集的,比如Make to ord ...

  9. 【PP生产订单】入门介绍(十一)

    一.重大确认 重大确认:比如有10.20.30三个工序,30设置成了重大确认,当你做30报工的时候系统会自动对10和20也做报工. 设定方法:工序设置里面的"控制码". 然后我们使 ...

最新文章

  1. 两下或多下回车造成数据库多次提交事物的解决方法
  2. To be a true man
  3. spring 获取配置文件的值
  4. Oracle左右全连接总结
  5. 网络编程中BIO和NIO的区别
  6. LiveVideoStack线上交流分享 ( 四 ) —— 面向QoE的感知视频编码
  7. 同事操作两个数据源保持事务一致_「微服务架构」微服务架构中的数据一致性...
  8. android实践练习_android 练习之路 (四)
  9. Docker安装gbase8s数据库教程
  10. linux 用vi命令的使用以及vi编辑后的后续保存退出等相关命令的使用
  11. GOOD AI Example GREAT AI Company
  12. 如何写一份优秀的java程序员简历
  13. wpf 客户端 添加qq客服咨询
  14. 阿里云云安全中心提供基础版、高级版和企业版有什么区别?
  15. CentOS上安装Docker及docker常用命令
  16. 银河战舰的最后一门重炮──C罗
  17. java ftp ftpClient.storeFile 服务器失败
  18. C语言二进制与十进制互相转换的方法和示例
  19. php中对数组进行转码,PHP 数组转码
  20. 学习UI设计后的就业岗位、薪资大揭秘!

热门文章

  1. 圈子 | 大数据分析汽车O2O的机会
  2. 【干货】写给产品经理和设计师的用户体验说明书
  3. 如何用代码的方式取出SAP C4C销售订单创建后所有业务伙伴的数据
  4. 將軍苑 - 收藏集 - 掘金
  5. android访问html页面
  6. 如何给easyui datagrid toolbar上方添加搜索框
  7. 网络安全系列之十一 系统命令注入***
  8. Spring学习资料之 依赖注入(二)
  9. ServiceStack.Redis的问题与修正
  10. NSArray 与 NSMutableArray 的排序