2020-08-26 15:24发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
如何实现与源不同的日子就要结束,开始日期和差异我需要发送给目标。
例如:结束日期= 2006年1月1日-开始日期= 2005年1月1日
目标:365
致谢,桑迪亚
Hello Sandya,
您可以稍微调整一下代码以获取相同的代码。
导入com.sap.it.api.mapping。*; 导入java.text.SimpleDateFormat; 导入java.util.Date; 导入java.io. * 导入java.lang。*; 导入java.util。*; def字符串customFunc1(String P1,String P2){ 字符串inpStartDate = P1.toString(); 字符串inpEndDate = P2.toString(); SimpleDateFormat sdf = new SimpleDateFormat(" dd-MM-yyyy"); 日期EmpStartDate = sdf.parse(inpStartDate); 日期EmpEndDate = sdf.parse(inpEndDate); //使用dateDiffInDays获得天数差异 def dateDiffInDays = EmpEndDate-EmpStartDate dateDiffInDays = dateDiffInDays + 1 返回dateDiffInDays.toString(); }
问候,
Sriprasad Shivaram Bhat
嗨,Sirprasad, Am从动态的源系统中获取数据 格式为dd-mm-yyyy,所以我应该改个头,用日期格式更改日期,并在消息映射中使用它吗?
此致, Sandya
Hello Sandhya
下面的代码将完成上述操作。由于您没有提到是否要在Script中使用它, 步骤或作为MessageMapping中的customFunction我正在传递以下代码,您可以根据需要对其进行调整。
import java.text.SimpleDateFormat; 导入java.util.Date; 导入java.io. * 导入java.lang。*; 导入java.util。*; //通过脚本或自定义函数获取startDate和endDate的PassYourinputDates ef startDate =" 01.01.2006" def endDate =" 31.12.2006" SimpleDateFormat sdf = new SimpleDateFormat(" dd.MM.yyyy"); 日期EmpStartDate = sdf.parse(startDate); 日期EmpEndDate = sdf.parse(endDate); //使用dateDiffInDays获得天数差异 def dateDiffInDays = EmpEndDate-EmpStartDate //println dateDiffInDays
嗨,Sirprasad,
感谢您的回复!
在源xsd中提取数据时,没有获取数据。我更改了上下文,但是数据没有到达结构中。我能知道为什么会这样。
源端的有效载荷。
<?xml版本=" 1.0"编码=" UTF-8"?> <行> TEST USER TEST GCA 默认 C1 CC CC1 FIELD28> 337F 87 默认 SAR 印度 2019-09-18 2020-01-18 2020-01- 18 现金 1700.00 1700.00 1700.00 GC 2019-09-18 3 会议 Q AW 0.00 Y 旅行 < FIELD89> 96 允许
此致
Sandya
您好 Sandhya ravi ,
I 建议使用Groovy映射来解决此任务。 您可以使用类似这样的方法:
def dateEnd = new Date()。parse(" dd.MM.yyyy"," 01.01.2006") def dateStart = new Date()。parse(" dd.MM.yyyy"," 01.01.2005") def daysDifference = dateEnd.minus(dateStart)
致谢, Raffael
你好,Sri Prasad, 感谢您的答复,我已经整理出上下文的问题,最后 我需要为输出添加+1的东西,我可以继续进行add函数,并在输出中将值1传递为映射函数中的常量,就像我们在PI中所做的那样,还是应该在Groovy中进行更改。
关于, Sandya
Hello Sandhya,
如果您想使用下面的消息映射,则是一种方法。
创建 一个自定义函数(类似于SAP PI/PO的UDF概念),并以2个日期作为输入,并将输出映射到所需字段。
自定义功能脚本:
import com.sap.it.api.mapping。*; 导入java.text.SimpleDateFormat; 导入java.util.Date; 导入java.io. * 导入java.lang。*; 导入java.util。*; def字符串customFunc1(String P1,String P2){ 字符串inpStartDate = P1.toString(); 字符串inpEndDate = P2.toString(); SimpleDateFormat sdf = new SimpleDateFormat(" dd-MM-yyyy"); 日期EmpStartDate = sdf.parse(inpStartDate); 日期EmpEndDate = sdf.parse(inpEndDate); //使用dateDiffInDays获得天数差异 def dateDiffInDays = EmpEndDate-EmpStartDate 返回dateDiffInDays.toString(); }
致谢
最多设置5个标签!
Hello Sandya,
您可以稍微调整一下代码以获取相同的代码。
问候,
Sriprasad Shivaram Bhat
嗨,Sirprasad,
Am从动态的源系统中获取数据 格式为dd-mm-yyyy,所以我应该改个头,用日期格式更改日期,并在消息映射中使用它吗?
此致,
Sandya
Hello Sandhya
下面的代码将完成上述操作。由于您没有提到是否要在Script中使用它, 步骤或作为MessageMapping中的customFunction我正在传递以下代码,您可以根据需要对其进行调整。
问候,
Sriprasad Shivaram Bhat
嗨,Sirprasad,
感谢您的回复!
在源xsd中提取数据时,没有获取数据。我更改了上下文,但是数据没有到达结构中。我能知道为什么会这样。
源端的有效载荷。
<?xml版本=" 1.0"编码=" UTF-8"?> <行> TEST USER TEST GCA 默认 C1 CC CC1 FIELD28> 337F 87 默认 SAR 印度 2019-09-18 2020-01-18 2020-01- 18 现金 1700.00 1700.00 1700.00 GC 2019-09-18 3 会议 Q AW 0.00 Y 旅行 < FIELD89> 96 允许
此致
Sandya
您好 Sandhya ravi ,
I 建议使用Groovy映射来解决此任务。 您可以使用类似这样的方法:
致谢,
Raffael
你好,Sri Prasad,
感谢您的答复,我已经整理出上下文的问题,最后 我需要为输出添加+1的东西,我可以继续进行add函数,并在输出中将值1传递为映射函数中的常量,就像我们在PI中所做的那样,还是应该在Groovy中进行更改。
关于,
Sandya
Hello Sandhya,
如果您想使用下面的消息映射,则是一种方法。
创建 一个自定义函数(类似于SAP PI/PO的UDF概念),并以2个日期作为输入,并将输出映射到所需字段。
自定义功能脚本:
致谢
Sriprasad Shivaram Bhat
一周热门 更多>