ZTable上发生"插入"后,无法触发"更改文档创建的事件"

2020-09-12 14:41发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家您好,

我有一个有关更改文档对象的探查,我的要求是当ZTable中发生"插入","更新"和"删除"操作时,我想记录日志并执行我的abap代码来发送数据 出来。 我将通过 Change Document 进行操作,因此我使用SCDO创建了一个自定义更改文档对象,并使用SWED,SWEC和SWE2完成了配置。 现在我的问题是在ZTable上执行"插入"操作后无法触发" 已创建"事件,但是"更新"和"删除"工作正常。

以下代码是将数据插入我的ZTable并记录日志:

 *&---------------------------------------------  ------------------------ *
 *&报告ZCD_CHANGE_DOCUMENT_PROG_DEMO
 *&------------------------------------------------  --------------------- *

 报告zcd_change_document_prog_demo。

 "日志表:CDHDR CDPOS
 包括fzchg_doc_democdt。
 包括fzchg_doc_democdc。

 选择开始。
 *首先清除表格
   从以下位置删除:zcd_header,zcd_item。 提交工作并等待。

 *对于结构是新值;  <* tablename>是旧值
   zcd_header-header_id ='5000'。
   zcd_header-header_field1 ='5000插入'。
   zcd_header-header_field2 ='5000插入'。

 *对于表表示新值;  是旧值
   清除xzcd_item。
   xzcd_item-header_id ='5000'。
   xzcd_item-item_id ='01'。
   xzcd_item-item_field1 ='5000-01-insert'。
   xzcd_item-item_field2 ='5000-01-insert'。
   xzcd_item-item_field3 ='5000-01-insert'。
   xzcd_item-item_field4 ='5000-01-insert'。
   xzcd_item-kz ='I'。
   附加xzcd_item。

   清除xzcd_item。
   xzcd_item-header_id ='5000'。
   xzcd_item-item_id ='02'。
   xzcd_item-item_field1 ='5000-02-insert'。
   xzcd_item-item_field2 ='5000-02-insert'。
   xzcd_item-item_field3 ='5000-02-insert'。
   xzcd_item-item_field4 ='5000-02-insert'。
   xzcd_item-kz ='I'。
   附加xzcd_item。

   从zcd_header插入zcd_header。
   从表xzcd_item中插入zcd_item。

 *设置参数
   objectid = sy-mandt && zcd_header-header_id。
   tcode = sy-tcode。
   utime = sy-uzeit。
   udate = sy-datum。
   用户名= sy-uname。
   upd_zcd_header ='I'。" <<<<<<<<<<<确定将触发哪个事件
   upd_zcd_item ='I'。
   cdoc_upd_object ='I'。

   执行cd_call_zchg_doc_demo。
   写:/'sy-subrc =',sy-subrc。

   "触发事件
   提交工作并等待。
   消息"确定",键入" S"。

 

顺便问一下,如何在更改文档对象和对象类型类中配置对象键?

非常感谢您。

最诚挚的问候,

费利克斯

scdo.jpg (40.3 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家您好,

我有一个有关更改文档对象的探查,我的要求是当ZTable中发生"插入","更新"和"删除"操作时,我想记录日志并执行我的abap代码来发送数据 出来。 我将通过 Change Document 进行操作,因此我使用SCDO创建了一个自定义更改文档对象,并使用SWED,SWEC和SWE2完成了配置。 现在我的问题是在ZTable上执行"插入"操作后无法触发" 已创建"事件,但是"更新"和"删除"工作正常。

以下代码是将数据插入我的ZTable并记录日志:

 *&---------------------------------------------  ------------------------ *
 *&报告ZCD_CHANGE_DOCUMENT_PROG_DEMO
 *&------------------------------------------------  --------------------- *

 报告zcd_change_document_prog_demo。

 "日志表:CDHDR CDPOS
 包括fzchg_doc_democdt。
 包括fzchg_doc_democdc。

 选择开始。
 *首先清除表格
   从以下位置删除:zcd_header,zcd_item。 提交工作并等待。

 *对于结构是新值;  <* tablename>是旧值
   zcd_header-header_id ='5000'。
   zcd_header-header_field1 ='5000插入'。
   zcd_header-header_field2 ='5000插入'。

 *对于表表示新值;  是旧值
   清除xzcd_item。
   xzcd_item-header_id ='5000'。
   xzcd_item-item_id ='01'。
   xzcd_item-item_field1 ='5000-01-insert'。
   xzcd_item-item_field2 ='5000-01-insert'。
   xzcd_item-item_field3 ='5000-01-insert'。
   xzcd_item-item_field4 ='5000-01-insert'。
   xzcd_item-kz ='I'。
   附加xzcd_item。

   清除xzcd_item。
   xzcd_item-header_id ='5000'。
   xzcd_item-item_id ='02'。
   xzcd_item-item_field1 ='5000-02-insert'。
   xzcd_item-item_field2 ='5000-02-insert'。
   xzcd_item-item_field3 ='5000-02-insert'。
   xzcd_item-item_field4 ='5000-02-insert'。
   xzcd_item-kz ='I'。
   附加xzcd_item。

   从zcd_header插入zcd_header。
   从表xzcd_item中插入zcd_item。

 *设置参数
   objectid = sy-mandt && zcd_header-header_id。
   tcode = sy-tcode。
   utime = sy-uzeit。
   udate = sy-datum。
   用户名= sy-uname。
   upd_zcd_header ='I'。" <<<<<<<<<<<确定将触发哪个事件
   upd_zcd_item ='I'。
   cdoc_upd_object ='I'。

   执行cd_call_zchg_doc_demo。
   写:/'sy-subrc =',sy-subrc。

   "触发事件
   提交工作并等待。
   消息"确定",键入" S"。

 

顺便问一下,如何在更改文档对象和对象类型类中配置对象键?

非常感谢您。

最诚挚的问候,

费利克斯

scdo.jpg (40.3 kB)
付费偷看设置
发送
1条回答
追夢秋陽
1楼 · 2020-09-12 15:35.采纳回答

大家好,

由我自己解决,调试后,我发现根本原因是SCDO中的配置不正确。 而且我的代码很好。

最诚挚的问候,

费利克斯

一周热门 更多>