无法使用 Cloud SDK 在 S/4Hana 上通过 OData 查询 BAPI
Can't query BAPI via OData on S/4Hana using Cloud SDK
我正在尝试按照 https://blogs.sap.com/2017/09/15/step-11-with-sap-s4hana-cloud-sdk-virtual-data-model-for-bapi/ 在本地 S/4 Hana 系统上通过 OData 调用 BAPI。
我已成功调用通过 /IWFND/MAINT_SERVICE
启用的其他 OData 服务。
但是,当尝试执行示例调用时
final ErpConfigContext erpConfigContext = ...
return new DefaultFinancialTransactionService().getList().execute(erpConfigContext).getListOfSelectedTransactions();
我得到:
17:34:20.998 [http-nio-8080-exec-4] ERROR
Query execution failed with status code 404. Response body: <html><head><meta http-equiv="content-type" content="text/html; charset=windows-1252"><title>Service cannot be reached</title>...
...
at com.sap.cloud.sdk.s4hana.connectivity.ErpEndpoint.handleHttpError(ErpEndpoint.java:600)
at com.sap.cloud.sdk.s4hana.connectivity.ErpEndpoint.handleHttpStatus(ErpEndpoint.java:560)
at com.sap.cloud.sdk.s4hana.connectivity.ErpEndpoint.sendPayload(ErpEndpoint.java:925)
at com.sap.cloud.sdk.s4hana.connectivity.ErpEndpoint.executeQuery(ErpEndpoint.java:372)
at com.sap.cloud.sdk.s4hana.connectivity.ErpEndpoint.executeQuery(ErpEndpoint.java:253)
at com.sap.cloud.sdk.s4hana.connectivity.rfc.SoapRemoteFunctionQueryExecutor.execute(SoapRemoteFunctionQueryExecutor.java:121)
at com.sap.cloud.sdk.s4hana.connectivity.rfc.SoapRemoteFunctionQueryExecutor.execute(SoapRemoteFunctionQueryExecutor.java:30)
at com.sap.cloud.sdk.s4hana.connectivity.rfc.BapiQuery.execute(BapiQuery.java:91)
at com.sap.cloud.sdk.s4hana.datamodel.bapi.functions.DefaultFinancialTransactionGetListFunction.execute(DefaultFinancialTransactionGetListFunction.java:469)
基本上就是找不到服务。是否必须启用特定服务才能调用该服务?我实际上想使用其他 BAPI,因此理想情况下,我想启用允许我访问多个 RFC 的单个服务。请注意,我未 使用 Cloud Connector。我正在尝试直接连接到 ERP 端点。
您能否明确说明您想要实现的具体目标:调用 BAPI 或 OData 服务?从您的代码中我可以看出您想调用 BAPI 来获取金融交易。另一方面,您也提到了 OData。所以请澄清一下。
其次,正如您提到的,您不使用 SAP Cloud Connector。
你在本地执行给定的代码吗?
也请与我们分享目标配置。
供参考,
问题是我正在为使用 RFC 执行 BAPI 查询的服务使用 HTTP 目标。还需要配置 RFC 目标。
我的 的答案解释了如何设置 RFC 目标,以便此服务和其他 BapiQuerys 工作。
我正在尝试按照 https://blogs.sap.com/2017/09/15/step-11-with-sap-s4hana-cloud-sdk-virtual-data-model-for-bapi/ 在本地 S/4 Hana 系统上通过 OData 调用 BAPI。
我已成功调用通过 /IWFND/MAINT_SERVICE
启用的其他 OData 服务。
但是,当尝试执行示例调用时
final ErpConfigContext erpConfigContext = ...
return new DefaultFinancialTransactionService().getList().execute(erpConfigContext).getListOfSelectedTransactions();
我得到:
17:34:20.998 [http-nio-8080-exec-4] ERROR
Query execution failed with status code 404. Response body: <html><head><meta http-equiv="content-type" content="text/html; charset=windows-1252"><title>Service cannot be reached</title>...
...
at com.sap.cloud.sdk.s4hana.connectivity.ErpEndpoint.handleHttpError(ErpEndpoint.java:600)
at com.sap.cloud.sdk.s4hana.connectivity.ErpEndpoint.handleHttpStatus(ErpEndpoint.java:560)
at com.sap.cloud.sdk.s4hana.connectivity.ErpEndpoint.sendPayload(ErpEndpoint.java:925)
at com.sap.cloud.sdk.s4hana.connectivity.ErpEndpoint.executeQuery(ErpEndpoint.java:372)
at com.sap.cloud.sdk.s4hana.connectivity.ErpEndpoint.executeQuery(ErpEndpoint.java:253)
at com.sap.cloud.sdk.s4hana.connectivity.rfc.SoapRemoteFunctionQueryExecutor.execute(SoapRemoteFunctionQueryExecutor.java:121)
at com.sap.cloud.sdk.s4hana.connectivity.rfc.SoapRemoteFunctionQueryExecutor.execute(SoapRemoteFunctionQueryExecutor.java:30)
at com.sap.cloud.sdk.s4hana.connectivity.rfc.BapiQuery.execute(BapiQuery.java:91)
at com.sap.cloud.sdk.s4hana.datamodel.bapi.functions.DefaultFinancialTransactionGetListFunction.execute(DefaultFinancialTransactionGetListFunction.java:469)
基本上就是找不到服务。是否必须启用特定服务才能调用该服务?我实际上想使用其他 BAPI,因此理想情况下,我想启用允许我访问多个 RFC 的单个服务。请注意,我未 使用 Cloud Connector。我正在尝试直接连接到 ERP 端点。
您能否明确说明您想要实现的具体目标:调用 BAPI 或 OData 服务?从您的代码中我可以看出您想调用 BAPI 来获取金融交易。另一方面,您也提到了 OData。所以请澄清一下。
其次,正如您提到的,您不使用 SAP Cloud Connector。 你在本地执行给定的代码吗?
也请与我们分享目标配置。
供参考,
问题是我正在为使用 RFC 执行 BAPI 查询的服务使用 HTTP 目标。还需要配置 RFC 目标。
我的