问题标签 [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.

0 投票
1 回答
247 浏览

javascript - SAP Cloud SDK for JavaScript 的 AttachmentService 问题

目前我们使用 SAP REST API 来上传和管理附件

我们想用 SDK 替换标准请求,因为我们在通过CloudConnector相应的代理设置获取连接时遇到问题,而且我们还使用 SDK 处理所有其他请求。

带有二进制数据的内容/正文会以这种方式设置吗?是否slug还必须设置标头值?附件服务是否也支持GOS?到目前为止,我们得到了错误:

“附件名称不能为空”

0 投票
2 回答
99 浏览

sap-cloud-sdk - 如何在 SAP Cloud SDK 中为自己的 OData 服务执行集成测试

我们目前在 Spring Boot 应用程序中使用 SAP Cloud Platform Provisioning SDK 提供自己的 OData 服务,该 SDK 是 SAP Cloud SDK 的一部分。我们正在各自的 Maven 模块中创建集成测试,但是当通过 Maven 执行它时,它会失败并显示以下堆栈跟踪:

查看代码,这似乎与以下帖子有关:

为什么我的 URI 不是分层的?

在 SDK 中,OData EDMX 文件作为文件读取,但是由于在 Maven 执行期间它位于(应用程序模块的)单独的 JAR 文件中,因此无法以这种方式访问​​。相反,它需要作为流读取,这反过来似乎需要一些重构。

作为一种解决方法,我将 EDMX 文件复制到了集成测试模块的 src/test/resources/edmx 中。

我现在想知道我是否在这里遗漏了什么,或者按照 SAP Cloud SDK 通常执行的集成测试的执行是否与供应框架不兼容?

0 投票
1 回答
144 浏览

sap-cloud-sdk - 如何通过 SAP Cloud SDK 为密钥中包含 DateTime 的实体提供 OData 服务?

我们目前正在努力为实体提供 OData 服务,该实体的键的一部分是 DateTime 类型的属性。此键属性不是 SAP Cloud Provisioning SDK 提供的 OData 请求中的键映射的一部分。这似乎是由于 com.sap.cloud.sdk.service.prov.v2.data.provider.CXSDataProvider.getKeys(List) 方法中的请求解析中的错误:

由于 OData 标准中没有 Edm.Date 类型,我的猜测是以下内容是正确的:

这是正确的还是我们在这里做错了什么?此外,方法本身上有一个 TODO 标记,指出当前仅支持 EDM 类型的子集作为键。有没有计划修复这个 TODO?

0 投票
2 回答
406 浏览

sap-cloud-sdk - 如何对 ODataQuery 和 ODataQueryBuilder 进行单元测试?

如何对这段代码进行单元测试?

更准确地说:如何验证我的代码是否调用了所有正确的函数,例如不会忘记调用withoutMetadata或设置所需的标头?

不幸的是,ODataQueryBuilderandODataQuery是类,而不是接口。这使嘲笑变得棘手。ODataQueryBuilder甚至final,完全禁用模拟。此外,该链以一个静态方法开始,该方法withEntity也不能被模拟。

是否有允许我监视行为或模拟数据的助手,类似于https://blogs.sap.com/2017/09/19/step-12-with-sap-s4hana-cloud-sdk-automatedMockUtil中描述的-测试/

0 投票
1 回答
56 浏览

sap-cloud-sdk - ScpCfHttpDestination 在 cloudplatform-connectivity-3.3.1.jar 中不可用

我正在尝试使用 cloudplatform-connectivity-3.3.1.jar 中的 ScpCfHttpDestination,但它似乎在 3.0.0 到 3.3.1 的版本中不可用。我错过了什么吗?

0 投票
1 回答
567 浏览

sap-cloud-sdk - Oauth2ClientCredentials - 目标服务返回错误:未授权客户端

我尝试使用定义为 Oauth2ClientCredentials 的 CF 目标,其中身份验证服务器只需要用户/密码而不需要 clientid/clientsecret 来生成令牌。我在目标配置中有一个虚拟的客户端 ID 和客户端密码,因为它是强制性的,但它似乎只考虑了客户端 ID/密码,而不考虑令牌用户/密码。堆栈跟踪是:

调试器中的 ScpCfHttpDestination 值为:

我有一个好的客户端密码/客户端 ID 的另一个目的地工作正常。

0 投票
1 回答
187 浏览

cloud-foundry - Spring 计划任务的租户上下文 - Cloud Foundry

我们有一个通过 Spring Scheduler ( @Scheduled ) 运行的作业。此处的任务/可调用应在特定租户上下文中执行。这不是通过 HTTP 请求调用的,因此我们无法直接从 URL 获取租户上下文。在 SCP Neo 中,作业像这样使用 TenantContext API - String result = tenantContext.execute(tenant.getTenantId(), new MeteringJobExecutor()); 其中 MeteringJobExecutor 是需要为特定租户执行的可调用对象。

  • CF 中 TenantContext API 的替代方案是什么?
  • 我们如何执行这些任务?

我们需要一种方法,通过这种方法我们可以在 Neo 和 CF 上共存,而设计更改最少。

0 投票
1 回答
147 浏览

sap-cloud-sdk - 无法将 Spring Security 与 SAP Cloud SDK 应用程序集成

我在 SAP Cloud Foundry 上部署了一个 SAP Cloud SDK 项目,我想使用 Spring Security 保护后端 API,而不使用 SAP 提供的应用路由器和 OAuth 解决方案,例如 http basic。

除了使用 SAP Cloud SDK 在本地调用 S/4HANA 的 API 之外,这些 API 都可以正常使用 http basic。

我在每个 http 请求中都有一个 Authorization 标头来访问我的 rest api。例如,授权基本 YWRtaW46YWRtaW4=。

我会收到以下错误消息。

似乎源代码正在尝试将 Authorization 标头解码为 JWT 承载。

你能推荐一个如何摆脱这个的建议吗?

顺便说一句,只要请求包含 Authorization 标头,sdk 就会将其解析为已知租户,但实际上我根本没有使用应用路由器。

SAP Cloud SDK 版本:2.16.0

0 投票
0 回答
617 浏览

sap-cloud-platform - 通过 SCP SDK APi 执行 OData 元数据请求失败

当我们将 odata 服务迁移到另一个 s4 hana 本地系统时,我们遇到了显示停止问题,相同的 odata 服务正在通过云 sdk api 从本地 1809 系统上的不同 s4 获取,所有配置,如 CC、安全性、目标、连接服务已经到位,但相同的代码在迁移的 s4 系统上不起作用,我们遇到以下错误:

无法获取元数据:无法执行 OData 元数据请求。

在日志中,我们收到以下消息:

com.sap.cloud.sdk.s4hana.datamodel.odata.helper.ODataVdmErrorResultHandler$ErpODataException:端点响应 HTTP 错误代码 401。Anmeldung fehlgeschlagen。401 Nicht autorisiert。

相同的代码适用于其他 s4 系统。

我们也尝试通过 TrustAll 真正的道具在本地执行,但没有运气,请帮忙。

0 投票
1 回答
141 浏览

sap-cloud-sdk - VDM 调用以获取具有 0 到 1 的多重性的导航属性,为 0 响应提供 NullPointerException

我正在使用 VDM 来获取多重性为 0..1 的导航属性。

每当从 S4 返回的响应为 0(即“204 No Content”)时,我就会得到一个NullPointerException.

requisitionHeader.getGuidedProcmtReqnDelivAddrOrFetch();是导航实体,只要没有数据,它就会从 S4 产生“204 No Content”。

实体的元数据

这里的问题是导航