gpt4 book ai didi

sap-cloud-sdk - VDM 的更新不更新 S/4 上的数据

转载 作者:行者123 更新时间:2023-12-04 10:37:56 26 4
gpt4 key购买 nike

我们正在使用 com.sap.cloud.sdk.s4hana.datamodel.odata.services.DefaultOutboundDeliveryV2Service用于更新 S/4 上的项目。请在下面找到代码片段:

DefaultOutboundDeliveryV2Service service = new DefaultOutboundDeliveryV2Service();

service.updateOutbDeliveryItem(
OutbDeliveryItem.builder()
.deliveryDocument("some key")
.deliveryDocumentItem("some key")
.actualDeliveryQuantity(BigDecimal.TEN)
.build()
).execute(someDestination);

此代码成功执行,但在 S/4 上没有更新。在检查日志时,我发现了以下内容:
Update strategy is to modify with PATCH, but no fields have changed. The request may be bound to fail in the target system.
这个问题的原因是什么?我已经清楚地对 actualDeliveryQuantity 进行了更改 field 。为什么更新不起作用?

最佳答案

“未更改任何字段”是因为您编辑了一个离线实体实例,您刚刚构建了该实例。

为了让您的示例工作,必须进行一些调整:

OutbDeliveryItem item =  OutbDeliveryItem.builder()
.deliveryDocument("some key")
.deliveryDocumentItem("some key")
.build();

// The following method registers a change of the entity.
item.setActualDeliveryQuantity(BigDecimal.TEN);

// Then execute the actual update operation, which only uses the actually changed fields.
service
.updateOutbDeliveryItem(item)
.execute(someDestination);

如果服务提示缺少提供的 ETag,请按照下面使用 get-by-key 方法进一步描述的示例进行操作。或者您明确告诉请求忽略版本标识符:

service
.updateOutbDeliveryItem(item)
.ignoreVersionIdentifier()
.execute(someDestination);

就是这样!

或者,为了实现完整的 OData 更新工作流,您需要首先使用 get-by-key 方法获取实体,如下所述。

String deliveryDocument;
String deliveryDocumentItem;
HttpDestinationProperties someDestination;

// First get the item by key.
OutbDeliveryItem item = service
.getOutbDeliveryItemByKey(deliveryDocument, deliveryDocumentItem)
.execute(someDestination)

// The following method registers a change of the entity.
itme.actualDeliveryQuantity(BigDecimal.TEN);

// Then execute the actual update operation, which only uses the actually changed fields.
service.updateOutbDeliveryItem(item).execute(someDestination);

这样,ETag 将在内部设置。实体版本标识符是大多数 S/4 OData 服务启用更新/删除操作所必需的。

注:您不仅限于按 key 获取。您还可以使用带有过滤器的 get-all 方法来解析多个实体,为进一步的更新更改做准备。

关于sap-cloud-sdk - VDM 的更新不更新 S/4 上的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60076072/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com