楼主: Robinyan

工单修改记录的问题

[复制链接]
论坛徽章:
0
11#
发表于 2007-3-5 21:27 | 只看该作者
首先SCDO在Object ORDER下增加Table(如AUPO for order item),如果已经有的话就省事啦;然后确定相应的表字段的Data Element是relevant for the creation of change documents的,就是打上那个勾。这样维护之后修改纪录就会记到CDHDR和CDPOS这两个表里这样不好用的话偶就没有办法啦

使用道具 举报

回复
论坛徽章:
100
问答徽章
日期:2013-12-02 14:55:04喜羊羊
日期:2015-03-04 14:49:39懒羊羊
日期:2015-03-18 13:56:32射手座
日期:2015-08-25 12:25:52秀才
日期:2015-11-12 17:43:40ITPUB15周年纪念
日期:2016-10-13 13:15:34技术图书徽章
日期:2016-11-30 11:28:29喜羊羊
日期:2015-03-10 17:14:25暖羊羊
日期:2015-04-15 09:12:29慢羊羊
日期:2015-06-16 14:25:04
12#
发表于 2007-3-6 08:14 | 只看该作者
再问下楼上,选中change document时需要Access Key吧?

谢谢

使用道具 举报

回复
论坛徽章:
3
ERP板块每日发贴之星
日期:2005-05-21 01:01:38ERP板块每日发贴之星
日期:2005-09-22 01:01:42授权会员
日期:2005-10-30 17:05:33
13#
发表于 2007-3-6 14:26 | 只看该作者
写出口解决:看偶的blog: sap003.itpub.net->SAP之路

使用道具 举报

回复
论坛徽章:
3
ERP板块每日发贴之星
日期:2005-05-21 01:01:38ERP板块每日发贴之星
日期:2005-09-22 01:01:42授权会员
日期:2005-10-30 17:05:33
14#
发表于 2007-3-6 14:27 | 只看该作者
需求:SAP在更改生产工单时并没有提供详细的更改记录,查看SAP的Notes,如果强行开启FLG_DOC(控制往更改记录CDHDR,CDPOS里写数据)标记,在批量处理组件过多的生产工单时会导致程序运行出错,SAP建议不开启。User要求对保护字段进行更改记录,无奈只有使用SAP提供的增强功能,东西经过测试初步完成,发出来共享一下,如果大家有更好的方法,发出来讨论讨论,步骤如下:

1.CMOD新增一项目ZCO02,增加增强PPCO0001。
2.查看、Debug SAP源代码,了解数据流向,主要了解在变更工单组件和表头未保存前这些数据存放在哪里?最后查到这两数据放在调用出口函数参数表:component_table,header_table。
3.设计数据表结构:ZPCO02,记录更改,-----------------------------------------------------------------------------------------------------------------
代码通过了User测试更正已传至生产系统,改善了保存时的速度,不用拿更改后的工单组件与RESB里的一个个对比了。
*&---------------------------------------------------------------------*
*& 包括 ZXCO1U01 *
*&---------------------------------------------------------------------*
TABLES:caufv,resb.
DATA: BEGIN OF old_resb OCCURS 0,
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.
INCLUDE STRUCTURE old_resb.
DATA: END OF new_resb.
DATA: BEGIN OF obj_resb OCCURS 0.
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'.

SELECT SINGLE 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'.
INSERT zpco02 FROM TABLE i_zpco02 ACCEPTING DUPLICATE KEYS.
inst_flg = 'N'.
ENDIF.
*DELETE component_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 '*'.
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 '*'.
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 '*'.
SELECT SINGLE 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,
'*' 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'.
INSERT zpco02 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

时间 14:53:27

其他的关于生产订单的增强在IMG->SFC->系统修正那都可以找得到,如PPCO0007 保存生产订单时,PPCO0008 在增加和改变组件时的增强(这里就写数据到ZPCO02一但用户没保存.....所以只有放在PPCO0001里了),大家多研究研究。

使用道具 举报

回复
论坛徽章:
0
15#
发表于 2007-3-6 17:42 | 只看该作者
最初由 sap003 发布
[B]写出口解决:看偶的blog: sap003.itpub.net->SAP之路 [/B]

谢谢不过偶不懂编程现在开始学习

使用道具 举报

回复
论坛徽章:
0
16#
发表于 2007-3-6 17:42 | 只看该作者
最初由 niuchao 发布
[B]再问下楼上,选中change document时需要Access Key吧?

谢谢 [/B]

嗯,是这样的

使用道具 举报

回复
论坛徽章:
100
问答徽章
日期:2013-12-02 14:55:04喜羊羊
日期:2015-03-04 14:49:39懒羊羊
日期:2015-03-18 13:56:32射手座
日期:2015-08-25 12:25:52秀才
日期:2015-11-12 17:43:40ITPUB15周年纪念
日期:2016-10-13 13:15:34技术图书徽章
日期:2016-11-30 11:28:29喜羊羊
日期:2015-03-10 17:14:25暖羊羊
日期:2015-04-15 09:12:29慢羊羊
日期:2015-06-16 14:25:04
17#
发表于 2007-3-6 18:31 | 只看该作者
非常谢谢sap003提供的这个程序,能不能再把ZPCO02表结构也提供下。

谢谢!

使用道具 举报

回复
论坛徽章:
3
ERP板块每日发贴之星
日期:2005-05-21 01:01:38ERP板块每日发贴之星
日期:2005-09-22 01:01:42授权会员
日期:2005-10-30 17:05:33
18#
发表于 2007-3-7 14:24 | 只看该作者
最初由 niuchao 发布
[B]非常谢谢sap003提供的这个程序,能不能再把ZPCO02表结构也提供下。

谢谢! [/B]


集团 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

自己对对号吧,具体的不太记得了.进不了原来那系统了。

使用道具 举报

回复
论坛徽章:
3
数据库板块每日发贴之星
日期:2006-11-03 01:02:53会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44
19#
发表于 2007-3-13 13:11 | 只看该作者
不知道下面的方法是不是楼主所需要的:co03->go to->Documented goods movements

使用道具 举报

回复
论坛徽章:
8
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44生肖徽章2007版:兔
日期:2009-03-30 12:59:22生肖徽章2007版:猪
日期:2009-10-22 11:32:512010新春纪念徽章
日期:2010-03-01 11:08:272010广州亚运会纪念徽章:篮球
日期:2010-12-10 14:38:022010广州亚运会纪念徽章:马术
日期:2010-12-10 14:40:302014年新春福章
日期:2014-02-18 16:42:02马上有房
日期:2014-02-18 16:42:02
20#
发表于 2007-3-14 09:11 | 只看该作者
我們公司是在工單release 後拋到SFCS 去生產,修改工單也會在拋,  順便也把 Qty, SL, B/F... 等等也送過去,這樣就有log 可以查到工單的change Log了..

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表