问题标签 [sap-cloud-sdk]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sap-cloud-sdk - 使用 SDK 创建销售订单时出现错误消息“处理资源时出错”的 Http 状态 500
我使用的 OData 服务是 SAP API Business Hub 中的 API_SALES_ORDER_SRV。
创建销售订单的有效载荷如下。它在 SAP 网关客户端中运行良好。
但是当我使用 Cloud SDK 创建销售订单时,我收到以下错误消息。
我用来创建销售订单的代码如下。首先,我构建了一个销售订单对象,然后将其用作方法 createSalesOrder 的参数。
你能看看这个问题吗?
SAP Cloud SDK 版本:3.3.1
S/4HANA 本地版本:1909
提供电报日志。
DestinationUtil 类
sap-cloud-sdk - 使用 S4Hana SDK 的补丁请求中的空值
在我们的应用程序中,我们使用 S4Hana SDK 来使用 S4Hana 的服务。
对于对 S4 的更新调用,我们使用 PATCH 请求类型。这样做时发现我们无法在更新(PATCH)期间设置空值。
例如:
在这里,我试图将 ExtPlantForPurg 设置为 null,但是实体没有得到相同的更新,而调试发现更新请求正文不只包含这个字段(它被忽略,因为它包含 null)
让我知道是否有任何方法可以使用 PATCH 请求更新属性的空值。
java - 如何使用配置了主体传播的目标从 java 后端进行后续 API 调用
我们无法从主要传播目的地的 Java 后端代码(cloud s4/sdk.maven tomee arch-type)进行后续 API 调用。
用例:
初始 API 调用工作正常,因为请求通过 app-router 从 UI5 触发到我们的 java 后端,因为 app-router 将获得正确的 oauth-token (JWT),身份正在传播到 Java 后端代码和相同传递给 S/4Hana 系统,我们正在取回 ODATA 响应。
当我们尝试从我们的 Java 后端代码进行后续 API 调用时,我们得到 403(授权异常)。我们试图合并 JwtBasedRequestContextExecutor 类,withJwt (),withXsuaaServiceJwt() 我们收到以下错误
com.sap.cloud.sdk.cloudplatform.exception.ShouldNotHappenException:无法设置当前上下文:com.sap.cloud.sdk.frameworks.hystrix.HystrixRequestContextFacade 返回的 RequestContext 已经初始化。您是否正确配置了接口 com.sap.cloud.sdk.cloudplatform.servlet.RequestContextFactory?
如果您能为这个用例提供帮助,我们将不胜感激。
javascript - 使用 SAP Cloud SDK JavaScript 的 API_BILL_OF_MATERIAL_SRV 版本 2 的 MaterialBOMItem 的空键字段
我正在尝试使用 SAP Cloud SDK JavaScript(版本 1.12.0)更新/删除物料清单项目。该项目属于一个组 BOM,即属性“工厂”是一个空字符串。
这会导致以下不言自明的错误消息(PATCH 请求的示例):
此行为与MaterialBOMItem
服务实体的文档API_BILL_OF_MATERIAL_SRV (Version 2)
( https://api.sap.com/api/API_BILL_OF_MATERIAL_SRV_0002/resource ) 一致,其中更新和删除 MaterialBOMItem 的实体需要“Plant”和一些其他字段。
详细地说,这会影响需要这些属性的路径 PATCH 和 DELETE:BillOfMaterial、BillOfMaterialCategory、BillOfMaterialVariant、BillOfMaterialVersion、BillOfMaterialItemNodeNumber、HeaderChangeDocument、Material、Plant。
对于其中的一些,空值可能是有效的(例如,组 BOM 的空工厂)。
但是,尽管“工厂”被标记为必需,但在使用 API_BILL_OF_MATERIAL_SRV 的 PATCH/UPDATE 端点时可以将其留空。这样我可以更新/删除一个组 BOM 项目。
SDK 是否也应该支持这种行为?
sap-cloud-sdk - SAP Cloud SDK Spring 安全 JARS
我有一个 SAP Cloud SDK 项目,目前我正在使用版本“0.27.2”作为安全公共依赖项,如下所示:
在进行集成测试时,出现如下依赖错误:
[警告] com.sap.xs2.security:security-commons:jar:0.28.6 的 POM 丢失,没有可用的依赖信息 [警告] com.sap.xs2.security:java-container-security 的 POM: jar:0.28.6 丢失,没有可用的依赖信息
由于上述原因,我无法运行集成测试脚本。此外,我尝试从 SAP 支持门户获取版本,如图所示。但我找不到哪个包可以让我获得 0.28.6 版本?请帮我获取正确的版本?
sap-cloud-sdk - Java VDM 生成器不适用于带有 SAP Cloud SDK 版本 3.7.0 的 API_SALES_ORDER_SIMULATION_SRV
我正在使用 Java VDM Generator 生成具有 SAP Cloud SDK 原型项目的服务类,版本为 3.7.0。
我使用的 OData 服务是 API_SALES_ORDER_SIMULATION_SRV。我从 SAP API Business Hub 下载了元数据。实际上,我还在 S/4HANA 本地 1909 上测试了元数据。问题仍然存在。
我在 pom.xml 中使用的插件如下:
生成的服务接口/类是 APISALESORDERSIMULATIONSRVService 和 DefaultAPISALESORDERSIMULATIONSRVService。某些方法在服务中丢失。例如 createSalesOrderSimulationAPI()。
它适用于 SAP Cloud SDK 版本 3.3.1。所有方法都在服务中生成。
顺便说一句,对于 3.7 版的某些 OData 服务,它运行良好是很奇怪的。
sdk - 使用 SAP 云 SDK 运行本地应用程序时缺少 VCAP_SERVICES
我在https://developers.sap.com/tutorials/s4sdk-odata-service-cloud-foundry.html阅读教程。我在没有用户和密码的情况下将目标设置为 Internet 上正在运行的 Mockserver。我正在使用最新版本的 3.xx SDK。
set destinations=[{name: "dest", url: "https://businesspartner-odata-mock-server-timely-lynx.cfapps.eu10.hana.ondemand.com"}]
我已经验证了目的地变量,它看起来很好。我按照描述添加了 businessServlet。
private final ErpHttpDestination destination = DestinationAccessor.getDestination("dest").asHttp().decorate(DefaultErpHttpDestination::new);
我按照教程在本地运行它并使用调试器。错误是:
com.sap.cloud.sdk.cloudplatform.exception.CloudPlatformException: Environment variable 'VCAP_SERVICES' is not defined.
我似乎没有使用目标环境变量。我有两个问题:
- 如何解决此问题以针对具有业务数据的模拟服务器在本地运行应用程序?我阅读了故障排除区域并尝试了很多机会。
- 可以在 application.properties 中或以其他方式设置此环境变量吗?
非常感谢彼得
sap-cloud-platform - 使用 SAP Cloud SDK JS 应用程序“无法为服务绑定构建目标”
我正在尝试在 SAP CF 上构建一个 OData 客户端,该客户端将连接并从 S4 本地系统获取内容。我已遵循本教程:https ://developers.sap.com/group.s4sdk-js-cloud-foundry.html 我尚未创建和部署自定义目标和 xs-uaa 服务。相反,我想使用 cFLP 产品目的地和 xs-uaa 服务。部署 ts 客户端应用程序工作正常,但https://odataclient-quick-antelope.cfapps.sap.hana.ondemand.com/business-partners的 GET 查询返回 {} 结果,在日志中我观察到错误:
代码基本上是:控制器:
服务:
xs-security.json
manifest.yml,(设置为远程调试)
非常感谢任何建议。谢谢!
sap-cloud-sdk - 开启Spring Security后本地启动应用失败
根据教程https://blogs.sap.com/2017/07/18/step-7-with-sap-s4hana-cloud,我正在尝试启用spring security来保护我在基于Spring的SDK原型项目中的后端服务-sdk-secure-your-application-on-sap-cloud-platform-cloudfoundry/。
在我本地启动应用程序后,会显示一条错误消息 - “未设置环境变量 VCAP_SERVICES”。以下是此错误的堆栈跟踪。
重现问题的步骤:</p>
基于 Spring 创建一个全新的 sdk 原型项目
取消注释掉 SecurityConfig.java 中的所有代码
导入所有安全库
在本地启动应用程序
该应用程序在 SCP Cloud Foundry 上运行良好。
我知道根本原因是应用程序将在 SecurityConfig.java 中初始化 bean 时读取环境变量 VCAP_SERVICES。但它在本地环境中找不到它。
如果我想在本地运行应用程序,有什么解决方法吗?