0

我创建了 Data 元素并在创建用于记录 WebUI 表上的更改时进行了ZDT_NKS_DESCR标记。Change Document一切都很好,但是更改日志记录的时间错误。它为当前时间增加了 +3 小时。

例如:如果当前时间是 10:00,它会在 Web UI 上记录 13:00。

我该如何解决?谁能解释会发生什么?

这是我的数据元素(注意:实际上我稍后勾选了“更改文档”复选框):

标记数据元素设置中的红色区域

这是 Web UI 表上的更改日志,时间应该是 9:48, 9:48, 9:45 :

更改 Web UI 表上的日志记录。 时间应该是 9:48, 9:48, 9:45

PS:Web UI 上的时区是正确的。

4

2 回答 2

2

在基于 ABAP 的软件中,不幸的是,许多屏幕使用 SAP 系统时间显示日期(这一直是个大问题)。有些模块有时会显示本地时间(根据用户的时间)或根据合作伙伴的本地时间(例如交通模块)。因此,用户必须了解每个模块或每个屏幕的日期/时间类型。

即使在数据库表中,也无法确定它是哪种日期/时间。通常是系统时间。但有些模块可能会根据 UTC 存储日期/时间。

我猜更改文件的时间显示在系统时间中。

系统时间可以通过经典的 SAP GUI,在菜单系统 > 状态 > 系统时间中查看。

于 2019-08-19T08:46:28.437 回答
2

这是我基于 Sandra 回答的最终解决方案:

  1. xxxxx_WRITE_DOCUMENTFM 中,我们应该将time_of_change值从更改utimesy-uzeit。您的CHANGEDOCUMENT_CLOSE函数应如下所示:
CALL FUNCTION 'CHANGEDOCUMENT_CLOSE'
    EXPORTING
      objectclass             = 'ZCHD00005'
      objectid                = objectid
      date_of_change          = udate
      time_of_change          = sy-uzeit (it's current system time)
      tcode                   = tcode
      username                = username
      object_change_indicator = object_change_indicator
      no_change_pointers      = no_change_pointers
    EXCEPTIONS
      header_insert_failed    = 1
      object_invalid          = 2
      open_missing            = 3
      no_position_inserted    = 4
      OTHERS                  = 5.
  1. 如果有必要,您应该更改 WebUI 上的时区。我正在使用系统时区,因为在 WebUI->个性化->时区上我UTC从 F4 中选择。

  2. 保存并激活您的解决方案!

于 2019-08-19T13:21:22.883 回答