API调用以基于CPI中的当前月份获取数据

2020-08-18 21:44发布

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

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


专家们,

如果发票是在当月创建的,我需要进行API调用以获取发票。

但是,发票中的创建日期是Unix时间戳。

我的方法如下:

*将当前月份的第一天和最后一天的范围转换为Unix Timestamp并将其存储在属性中。

*在API查询中使用该属性进行提取。 因此,这将是每次IFlow运行的动态API调用。

因此,寻找常规脚本或其他更好的替代方法(如果有)。

此致

Pavan G

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

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


专家们,

如果发票是在当月创建的,我需要进行API调用以获取发票。

但是,发票中的创建日期是Unix时间戳。

我的方法如下:

*将当前月份的第一天和最后一天的范围转换为Unix Timestamp并将其存储在属性中。

*在API查询中使用该属性进行提取。 因此,这将是每次IFlow运行的动态API调用。

因此,寻找常规脚本或其他更好的替代方法(如果有)。

此致

Pavan G

付费偷看设置
发送
2条回答
黑丝骑士
1楼 · 2020-08-18 22:22.采纳回答

嗨Pavan

您的做法是正确的。 但是,细节在于细节。

如果API需要两个时间戳A和B,则该范围可能包括A,但是否不包括B? 即 是否找到时间戳A <= x

此外,还留下了实际查找问题 那些时间戳。 请记住,服务器可能不在您所在的时区中(也可能不在该时区中)。 因此,请确保明确声明您的时区。

下面是一些使用Java 8 java.time包查找时间戳的代码:

 ZonedDateTime midnightToday = ZonedDateTime.now(ZoneId。  of(" UTC + 2"))。truncatedTo(ChronoUnit.DAYS)
 ZonedDateTime firstOfThisMonth = midnightToday.withDayOfMonth(1)
 ZonedDateTime firstOfNextMonth = firstOfThisMonth.plusMonths(1)

 long timestampLower = firstOfThisMonth.toEpochSecond()
 long timestampUpper = firstOfNextMonth.toEpochSecond()

记住要调整时区! 上面的UTC + 2是丹麦的:-)另外,该代码还要求以下导入:

 import java.time.ZonedDateTime
 导入java.time.ZoneId
 导入java.time.temporal.ChronoUnit 

让我知道它的工作原理。

问候,

Morten

能不能别闹
2楼-- · 2020-08-18 22:37

您好莫滕·威特洛克

在使用您的代码时,我错过了设置属性的权限。
我更正了,它现在可以正常工作。
非常感谢您向我提供代码。 这对我帮助很大。 :)


致谢,
Pavan

一周热门 更多>