gpt4 book ai didi

javascript - 无法使用 SAP Cloud SDK for JavaScript 通过 Cloud Connector 访问 S/4HANA on Premise 系统

转载 作者:行者123 更新时间:2023-11-30 13:56:50 34 4
gpt4 key购买 nike

我正在尝试使用 SAP Cloud SDK for JavaScript(版本 1.5.0)通过 Cloud Connector 和 SAP Cloud Platform 连接服务访问 S/4HANA on Premise 系统。

详细的,我有

  • 云连接器
  • 连接服务
  • xsuaa 服务实例
  • 应用路由器(app-router)
  • 目的地
  • 目的地服务

这一切都按预期工作。这些先决条件由不同的教程(https://blogs.sap.com/2019/04/02/a-do-it-yourself-at-home-guide-how-to-connect-a-node.js-app-on-sap-cloud-platform-for-the-cloud-foundry-to-an-s4hana-on-premise-system-securely-via-cloud-connector/https://blogs.sap.com/2017/07/13/part-2-how-to-use-the-sap-cloud-platform-connectivity-and-the-cloud-connector-in-the-cloud-foundry-environment/)解释。

通过此设置,我可以轻松访问 S/4HANA Cloud 系统。使用适用于 Java 的 SAP Cloud SDK 时,一切都按预期工作,即我可以访问内部部署系统。我在本地系统上拥有足够的权限。使用基本身份验证。

使用 SAP Cloud SDK JavaScript 检索文档信息记录的 GET 请求示例:

let destination = await useOrFetchDestination({
destinationName: 'MY_DESTINATION',
jwt: 'MY_JWT' });
DocumentInfoRecord.requestBuilder()
.getAll()
.execute(destination);

但是针对本地系统的测试会使 GET 请求失败,状态代码为 503:

ERR Error: get request failed!
ERR at Object.errorWithCause (/path-to-app/node_modules/@sap/cloud-sdk-util/dist/error.js:14:20)
ERR at specializeError (/path-to-app/@sap/cloud-sdk-core/dist/request-builder/request/odata-request.js:175:32)
ERR at /path-to-app/@sap/cloud-sdk-core/dist/request-builder/request/odata-request.js:162:58
ERR at processTicksAndRejections (internal/process/task_queues.js:86:5)
ERR Caused by:
ERR Error: Request failed with status code 503
ERR at createError (/path-to-app/axios/lib/core/createError.js:16:15)
ERR at settle (/path-to-app/axios/lib/core/settle.js:17:12)
ERR at IncomingMessage.handleStreamEnd (/path-to-app/axios/lib/adapters/http.js:237:11)
ERR at IncomingMessage.emit (events.js:198:15)
ERR at endReadableNT (_stream_readable.js:1139:12)
ERR at processTicksAndRejections (internal/process/task_queues.js:81:17)

我可能错过了什么?是否需要额外的 HTTP header 才能使请求成功?

更新:将目的地信息添加到代码段并完成错误消息。

第二次更新:目标配置类似于:

Name: <MY_DESTINATION>
Type: HTTP
URL: http://... //this matches the cloud connector host, i.e. in SAP Cloud Platform Cockpit --> Cloud Connectors --> Exposed Back-End Systems
ProxyType: OnPremise
Authentication: BasicAuthentication
User: <USERNAME>
Password: <PASSWORD>

最佳答案

经过一些调查,位置 ID 导致了问题。它已在目标和云连接器上设置为特定值。因此,云连接器将只接受提供此属性的请求。

云连接器的日志中没有错误。但是远程调试应用程序(按照 these 说明)提出了这个错误消息:

There is no SAP Cloud Connector (SCC) connected to your subaccount. Requested opening of a tunnel for subaccount "SUBACCOUNT_ID" and SCC location ID, with default value, that is empty string or simply not configured. Check the configuration on SCC and cloud side.

使用 SAP Cloud SDK JavaScript 中的 useOrFetchDestination 检索目的地信息未返回此属性,这就是它从未被添加到请求中的原因。

当前的解决方法是从目标和云连接器中删除位置 ID。然后请求成功。

有没有办法检索目的地的位置 ID?

更新:可以使用 originalProperties 属性从目的地检索位置 ID。如果存在,它包含名为 CloudConnectorLocationId 的属性。如所述here此值可以作为 SAP-Connectivity-SCC-Location_ID header 添加到请求中。

感谢 Dennis H 的支持。

关于javascript - 无法使用 SAP Cloud SDK for JavaScript 通过 Cloud Connector 访问 S/4HANA on Premise 系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57110113/

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