NW750中CDS的CDS会话system_date属性

2020-08-15 16:22发布

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

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


大家好,

我构建了一个用于管理任务的工具,我想创建一个新的计算字段,其中包含当前日期和计划的结束日期之间的天数。

问题是我正在ABAP 750中构建它,此后我认为该映像是错误的,应该建议CDS大于(不等于)750:

有很多注释不存在,我现在和我打开的答案都是主要问题:$ session.system_date不存在:

那么,750中还有一些替代方法可以获取当前日期?

注意:虚拟元素不是选项

谢谢。

(116.3 kB)

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

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


大家好,

我构建了一个用于管理任务的工具,我想创建一个新的计算字段,其中包含当前日期和计划的结束日期之间的天数。

问题是我正在ABAP 750中构建它,此后我认为该映像是错误的,应该建议CDS大于(不等于)750:

有很多注释不存在,我现在和我打开的答案都是主要问题:$ session.system_date不存在:

那么,750中还有一些替代方法可以获取当前日期?

注意:虚拟元素不是选项

谢谢。

(116.3 kB)
付费偷看设置
发送
5条回答
SKY徐
1楼-- · 2020-08-15 16:37
zZ12138
2楼-- · 2020-08-15 16:43

噢,对不起,我没有正确检查:)无论如何,您高兴地解决了该问题!

N-Moskvin
3楼-- · 2020-08-15 16:51

您好,Jaime,

确实,这很烦人。 您不能在日期函数中使用会话变量。。但是,我找到了另一种转换时间戳的方法。尽管尽管有很多代码只是为了获取当前日期,但它确实有效,您可以使用它代替会话变量。

将视图ZSD_000_TEST_CDS定义为从t000中选择的{
  ort01,
  TSTMP_TO_DATS(TSTMP_CURRENT_UTCTIMESTAMP(),abap_system_timezone($ session.client,'NULL'),$ session.client,'NULL'
  )作为current_datum,
  dats_days_between(TSTMP_TO_DATS(TSTMP_CURRENT_UTCTIMESTAMP(),abap_system_timezone($ session.client,'NULL'),$ session.client,'NULL'
  ),更改为date_difference
 }
 

另一种选择是在基础CD中将$ session.system_date添加为字段,然后在date函数中使用该字段

礼物

软件心理学工程师
4楼-- · 2020-08-15 16:39

我开始认为这是不可能的,事情如此简单...

我有两个CDS:用于管理BOPF的ZTT_I_TASKS和用于消费的ZTT_C_TASKS。

  • 添加参数不是一种选择,因为我需要直接将其用于列表报告模板。
  • 如果我在CDS中用当前日期定义一个字段(使用时间戳记功能,由于它位于UTC中,因此并不完全有效),因此无法在同一CDS中使用它。 我试图在ZTT_I_TASKS中定义当前日期,以在ZTT_C_TASKS中使用该日期来计算天差,创建一个新字段daysToDeadline,并使用它来计算关键程度,结果是:

  • 我没有HANA数据库,因此无法使用表函数返回日期

软件心理学工程师
5楼-- · 2020-08-15 16:52

最后,我找到了一种正确管理它的方法。

我创建了一个新字段以将计划的结束日期存储在时间戳UTC中,并通过BOPF确定完成此操作,并使用该字段来计算当前时间戳与计划的时间戳之间的秒数

一周热门 更多>