1

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 クラウド システムに問題なくアクセスできます。SAP Cloud SDK for Javaを使用すると、すべてが期待どおりに機能します。つまり、オンプレミス システムにアクセスできます。オンプレミス システムで十分な権限を持っています。基本認証が使用されます。

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 ヘッダーが必要ですか?

UPDATE : コード スニペットに宛先情報を追加し、エラー メッセージを完成させました。

2 回目の更新:宛先構成は次のようになります。

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>
4

2 に答える 2

0

アップデート:

正直なところ、私は現在少し困惑しています。あなたの要求が Java SDK で機能することを考えると、私も、JS で失敗する理由について混乱しています。

Java でまったく同じサービスを照会しようとしましたか? (つまり、クラウド コネクタのパス マッピングが正しく機能していると確信していますか?) クラウド コックピットから宛先設定を共有できますか? 既に投稿したエラー以外のログ出力はありますか? クラウド コネクタのログにアクセスできますか? (つまり、リクエストが失敗した場所をどうにかして見つけることができますか?


元の答え:

これが使用している正確なコードである場合:

DocumentInfoRecord.requestBuilder()
  .getAll()
  .execute({});

関数に正しい宛先を指定していないため、リクエストはとにかく機能しませんexecute。次のように、宛先自体を渡す必要があります。

.execute({
  url: 'https://my.onprem.system',
  ...
})

(しかし、これはオンプレミスの送信先では非常に難しいと思います)、または現在のリクエストの JWT に送信先名を指定します。例:

.execute({
  destinationName: 'my-on-prem-destination',
  jwt: myJwt
})

これが使用しているコードでない場合は、より代表的なコード スニペットとエラーの完全なスタック トレースを提供していただけますか?

于 2019-07-19T10:28:05.230 に答える