在SAP CPI中使用的Groovy脚本中验证SystemDateTime

2020-08-19 05:04发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我试图通过在conten...

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

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


嗨,

我试图通过在content修饰符中声明该日期,然后将该值放入groovy脚本中进行验证来获取系统日期。

//在CM中声明日期

使用的格式是:

$ {date:now:yyyy-MM-dd'T'HH:mm:ss'Z'}

在groovy脚本中,我声明如下。

今天的

def = map.get(" Today");

it.employmentNav.EmpEmployment.endDate.text()<今天

EC的'endDate'值为'2020-02-16T00:00:00.000'。

因此,当我尝试执行iflow时,这无法识别正确的日期格式,某处出现了错误,

您能帮忙吗?

(14.7 kB)
付费偷看设置
发送
3条回答
微wx笑
1楼-- · 2020-08-19 05:46

您好Sethuraman

您无需使用内容修改器将系统日期存储在属性中即可。 在脚本中执行以下操作:

 def today = new Date()
 def endDate = Date.parse(" yyyy-MM-dd'T'HH:mm:ss.SSS",it.employmentNav.EmpEmployment.endDate.text())

 如果(endDate <今天){
    //结束日期已经发生。
 } 

这会将EC字段的内容转换为Date对象,并将其与当前日期和时间进行比较。

问候

Morten

SKY徐
2楼-- · 2020-08-19 05:22

您好 Sethuraman Tamilarasan

这可能可能 像这样:

 def今天=新的Date()
 xmlData.EmpJob.findAll {
   it.emplStatusNav.PicklistOption.picklistLabels.PicklistLabel.label.text()=='已终止'&&
     Date.parse(" yyyy-MM-dd'T'HH:mm:ss.SSS",it.employmentNav.EmpEmployment.endDate.text())<今天
 }。每个{
   it.replaceNode {}
 } 

但是要运行特定的脚本是您的任务。 将粘贴代码(您尚未完全理解)复制到您负责维护的解决方案中永远不是一个好主意。

问候,

Morten

奄奄一息的小鱼
3楼-- · 2020-08-19 05:42

Hi Sethuraman,

您可以将endDate分配给Date类型变量。

当前,您正在尝试比较可能引起问题的日期类型的文本。

请通过 Sriprasad Shivaram Bhat

/img/questions/12931868/date-difference-in-days-in-sap-cpi.html?childToView=12935540#answer-12935540

希望这会有所帮助!

感谢和问候,

Praveen T

一周热门 更多>