云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

服务器_电子图书数据库_评分榜

小七 141 0

在我们的一个客户中,我们希望实现一次订购机制。默认情况下,此功能在SAP云平台集成中不可用。现在已经有了一个"一次到位"的机制。这也不是一个标准函数。但一位同事在博客中写道,如何在SAP云平台集成中建立精确的一次性机制。请参阅下面的博客链接。然而,这种机制并没有满足客户的要求。

博客:SAP Hana云集成中只有一次

我们的出发点是标准的内容接口复制销售订单。SAP ECC可以发送新的销售订单和销售订单更新。如果销售订单更新消息无法传递给接收方。消息将存储在数据存储中。"恰好一次"机制有一个计时器启动事件。每60分钟,SAP云平台集成将从数据存储中获取消息。同时,对于同一销售订单,可能会有另一条销售订单更新消息。如果此消息在第一次成功传递,则数据存储中仍会有以前的旧销售订单更新。使用"精确一次"机制,旧的数据存储消息将发送到C4C,购物返现,因此旧的销售订单更新消息将在SAP C4C中执行,并覆盖新的销售订单。

解决方案:

精确一次排序。

我们使用了"精确一次"机制,并添加了一些功能,使其工作为"精确一次顺序"。我们的定制版本不完全相同。因为我们并不是按照收到信息的顺序来传递每一条信息。我们的版本只发送最新消息并删除旧消息。下面我们将详细解释我们的版本是如何工作的。

存储最新的日期时间戳

对于我们在SAP云平台集成中收到的每条消息,我们都存储当前的日期时间戳,SalesOrderID作为条目ID。在本例中,云服务器哪里好,字段SenderSequenceNumber值包含当前的日期和时间。如果当前日期时间戳在消息中不可用,服务器云平台,您可以使用表达式在属性中定义自己的日期时间戳。

图1

在写入模式中使用SalesOrderID作为entryID。因此,物联网公司,对于每个SalesOrder,最新的时间戳将存储在数据存储中。

不要忘记选中"覆盖现有消息"选项。

图2

比较重试日期时间戳

第二个主集成流从计时器开始。此进程将从数据存储中提取重试消息。通用拆分器将拆分消息。对于每条消息,我们将SalesOrderID、retry DateTimeStamp和retry消息体存储在一个变量中。

图3

存储后,我们将使用SalesOrderID作为条目ID执行"GET"操作,以获取最新的DateTimeStamp。您还需要将其存储在一个变量中,并将重试消息放入正文中。见下图

图4

图5

现在我们可以比较SalesOrder的最新日期时间戳和重试日期时间戳。为此,我们将使用具有以下条件表达式的路由器。

图6

用重试消息中的DateTimeStamp检查latest DateTimeStamp。如果retry DateTimeStamp大于latest DateTimeStamp,则数据存储中的消息是最新的,iFlow随后将继续向接收方发送消息。如果retry DateTimeStamp小于latest DateTimeStamp,则数据存储中的消息将不会发送给接收方,大数据局,并将从数据存储中删除。

图7

注意:

这只适用于发送完整的消息。如果消息的一部分被发送,它将不起作用。