sap-cloud-sdk - VdmComplex 更改不适用于 PATCH
问题描述
使用带有 3.39.0 的 SAP B1 .edmx 并尝试DeliveryNotes
使用新的DocumentPackages
. 但是,DocumentPackage
最终通过执行更新操作传递的列表是空的。
代码:
var packagesUpdateDocument = new Document();
packagesUpdateDocument.setDocEntry(1);
var documentPackages = new ArrayList<DocumentPackage>();
var documentPackage = new DocumentPackage();
documentPackage.setNumber(10);
documentPackages.add(documentPackage);
packagesUpdateDocument.setDocumentPackages(documentPackages);
var updateDeliveryPackagesRequest = service.withServicePath("etc")
.updateDeliveryNotes(packagesUpdateDocument);
var updateDeliveryPackagesResponse = updateDeliveryPackagesRequest.tryExecute(serviceLayerDestination);
查看服务层的日志,我可以看到这是最终由客户端发送的请求:
PATCH /b1s/v2/DeliveryNotes(1)
{"DocEntry":1,"DocumentPackages":[{}],"@odata.type":"SAPB1.Document"}
据我了解,PATCH 请求将自动忽略生成的客户端认为“未更改”的任何内容。
打印更改的字段:
System.out.println(packagesUpdateDocument.getChangedFields());
产量:
{
DocEntry=175017,
DocumentPackages=
[DocumentPackage
(
super=VdmObject(customFields={},
changedOriginalFields={}),
odataType=SAPB1.DocumentPackage,
number=10,
)
]
.....
}
我相信包没有记录已更改的字段。虽然我不确定。
有没有我遗漏的步骤或者这是一个功能差距?
解决方案
从 SAP Cloud SDK 3.42.0 开始,我们支持使用开箱即用的 PATCH 更新复杂属性。有关更多详细信息,请参阅发行说明。
推荐阅读
- c# - 无法从程序集中加载任务工厂“CodeTaskFactory”,客户端未持有所需的权限
- javascript - 我正在尝试使用 JS 制作更新引擎,但我不知道我做错了什么
- java - 如何在 IntelliJ IDEA 中为 Maven Java 项目禁用 Kotlin 编译器?
- wordpress - 在已经有 Wordpress 主题的主页上添加内容
- java - 获取所有类参数及其名称?
- java - @Column 注释还不足以让 JPA 将一个驼峰式 Java 属性映射到数据库上的一个蛇形列吗?
- android-studio - 安装 android studio 时出现 Stacktrace.txt 错误
- filemaker - Filemaker Pro 18 从所有表中删除所有记录
- java - 无法弄清楚如何访问由 swagger 自动生成的 jaxrs 服务器中的请求标头
- flutter - OAuth2:注销后没有登录对话框,直接登录最后一个用户