更改文档中的错误时间(数据元素)

Wrong Time in Change Documents (Data Element)

我创建了数据元素 ZDT_NKS_DESCR 并在创建时标记了 Change Document 以记录 Web 上的更改UI table。一切都很好,但更改日志记录的时间错误。它将当前时间增加 +3 小时。

例如:如果当前时间是 10:00,它正在 Web UI.

上记录 13:00

我该如何解决?任何人都可以解释发生了什么吗?

这是我的数据元素(注意:实际上我稍后勾选了 "Change Document" 复选框):

这里是Web上的变更记录UItable,时间应该是9:48,9:48,9:45:

P.S:网络上 UI 时区正确。

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

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

我猜是系统时间显示的次更改文件

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

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

  1. xxxxx_WRITE_DOCUMENT FM 中,我们应该将 time_of_change 值从 utime 更改为 sy-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->Personalization->Timezone 上我选择 UTC from F4.

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