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

2020-08-18 21:44发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 如果发票是在当月创建...

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

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


专家们,

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

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

我的方法如下:

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

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

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

此致

Pavan G

2条回答
黑丝骑士
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

一周热门 更多>