不更新CD *表的Z *程序的旧值和新值的问题

2020-09-22 22:53发布

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

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


尊敬的所有专家,

我创建了一个Zprogram。 现在,用户需要更改日志。 因此,我编写了代码,例如,我正在共享zprogram中的一些代码,


呼叫功能" CHANGEDOCUMENT_OPEN"
   出口
     OBJECTCLASS ='ZMISHT'
     OBJECTID ='AR36'" OBJECTID
     PLANNED_OR_REAL_CHANGES ='R'" PLANNED_OR_REAL_CHANGES
   例外情况
     SEQUENCE_INVALID = 1
     其他= 2。

 通话功能" CHANGEDOCUMENT_SINGLE_CASE"
   出口
     TABLENAME ='ZMISHT'
     WORKAREA_OLD = O_ZMISHT
     WORKAREA_NEW = N_ZMISHT
     CHANGE_INDICATOR ='I'" UPD_ZMISHT
     REFAREA_NEW = N_ZMISHT
     REFAREA_OLD = O_ZMISHT
     DOCU_DELETE ='X'
   例外情况
     NAMETAB_ERROR = 1
     OPEN_MISSING = 2
     POSITION_INSERT_FAILED = 3
     其他= 4。

 通话功能" CHANGEDOCUMENT_CLOSE"
   出口
     OBJECTCLASS ='ZMISHT'
     OBJECTID ='AR36'" OBJECTID
     DATE_OF_CHANGE = sy-datum" UDATE
     TIME_OF_CHANGE = sy-uzeit" UTIME
     TCODE = sy-tcode" TCODE
     USERNAME = sy-uname" USERNAME
     OBJECT_CHANGE_INDICATOR ='U'" OBJECT_CHANGE_INDICATOR
     NO_CHANGE_POINTERS ='X'" NO_CHANGE_POINTERS
     PLANNED_OR_REAL_CHANGES ='R'
   输入
     changenumber = lv_changenr
   例外情况
     HEADER_INSERT_FAILED = 1
     OBJECT_INVALID = 2
     OPEN_MISSING = 3
     NO_POSITION_INSERTED = 4
     其他= 5。
 

因此,我已经经历了与此相关的一些话题,但这不能满足我的要求。 它适用于标准交易,但在我的Z区域中,它更新了CDHDR和CDPOS的所有字段,除了VALUE_NEW和VALUE_OLD。 在这种情况下如何做。 请建议我。

谢谢大家。

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

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


尊敬的所有专家,

我创建了一个Zprogram。 现在,用户需要更改日志。 因此,我编写了代码,例如,我正在共享zprogram中的一些代码,


呼叫功能" CHANGEDOCUMENT_OPEN"
   出口
     OBJECTCLASS ='ZMISHT'
     OBJECTID ='AR36'" OBJECTID
     PLANNED_OR_REAL_CHANGES ='R'" PLANNED_OR_REAL_CHANGES
   例外情况
     SEQUENCE_INVALID = 1
     其他= 2。

 通话功能" CHANGEDOCUMENT_SINGLE_CASE"
   出口
     TABLENAME ='ZMISHT'
     WORKAREA_OLD = O_ZMISHT
     WORKAREA_NEW = N_ZMISHT
     CHANGE_INDICATOR ='I'" UPD_ZMISHT
     REFAREA_NEW = N_ZMISHT
     REFAREA_OLD = O_ZMISHT
     DOCU_DELETE ='X'
   例外情况
     NAMETAB_ERROR = 1
     OPEN_MISSING = 2
     POSITION_INSERT_FAILED = 3
     其他= 4。

 通话功能" CHANGEDOCUMENT_CLOSE"
   出口
     OBJECTCLASS ='ZMISHT'
     OBJECTID ='AR36'" OBJECTID
     DATE_OF_CHANGE = sy-datum" UDATE
     TIME_OF_CHANGE = sy-uzeit" UTIME
     TCODE = sy-tcode" TCODE
     USERNAME = sy-uname" USERNAME
     OBJECT_CHANGE_INDICATOR ='U'" OBJECT_CHANGE_INDICATOR
     NO_CHANGE_POINTERS ='X'" NO_CHANGE_POINTERS
     PLANNED_OR_REAL_CHANGES ='R'
   输入
     changenumber = lv_changenr
   例外情况
     HEADER_INSERT_FAILED = 1
     OBJECT_INVALID = 2
     OPEN_MISSING = 3
     NO_POSITION_INSERTED = 4
     其他= 5。
 

因此,我已经经历了与此相关的一些话题,但这不能满足我的要求。 它适用于标准交易,但在我的Z区域中,它更新了CDHDR和CDPOS的所有字段,除了VALUE_NEW和VALUE_OLD。 在这种情况下如何做。 请建议我。

谢谢大家。

付费偷看设置
发送
4条回答
浮生未央
1楼-- · 2020-09-22 23:21

你好

您是否要在z程序中更新CDPOS和CDHDR表

闻人可可
2楼-- · 2020-09-22 23:22

是否有引发任何异常的机会? 您是否在每次通话后检查sy-subrc的值?

樱桃小丸子0093
3楼-- · 2020-09-22 23:31

您是否

  • 通过事务 SCDO 。 "生成更新pgm"将创建一个更新任务FM(例如ZMISHT_WRITE_DOCUMENT)以及一些包含调用并声明工作区的内容。
  • 在数据元素上设置标志"更改文档"。


NB:如果参考表是基表,请不要在变更文档FM的调用中使用它,而最好(更容易)使用生成的WRITE_DOCUMENT FM。

SAP小黑
4楼-- · 2020-09-22 23:36

Yaa 马修·比林汉姆,下次我会照顾您。 非常感谢。 Yaa sy-subrc始终为0。

并且 srinivas K我没有直接更新CDHDR和CDPOS来更改日志 应该反映(旧值和新值)。

例如,在z *中,如果我更改了归档的先前值而新值应反映在CDPOS中,则屏幕上会有一个域代码ID。

因此,我使用上述标准功能模块编写了此代码。 请帮助我如何以这种方式纠正此问题,否则,我需要以其他任何方式来照顾这一问题。

非常感谢您。

一周热门 更多>