Не удается запросить BAPI через OData на S/4Hana с помощью Cloud SDK
Я пытаюсь следовать https://blogs.sap.com/2017/09/15/step-11-with-sap-s4hana-cloud-sdk-virtual-data-model-for-bapi/ для вызова BAPI через OData в системе S/4 Hana.
Я успешно вызвал другие сервисы OData, которые я включил через /IWFND/MAINT_SERVICE
,
Тем не менее, при попытке выполнить образец вызова
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.
2 ответа
Для справки,
Проблема заключалась в том, что я использовал назначение HTTP для службы, которая выполняет запросы BAPI с использованием RFC. Необходима была также настройка RFC-адреса.
Ответ на мой дополнительный вопрос объясняет, как можно настроить RFC-адрес, чтобы эта служба, а также другие BapiQuerys работали.
Не могли бы вы уточнить, чего именно вы хотите достичь: позвонив в BAPI или службу OData? Из вашего кода я вижу, что вы хотите вызвать BAPI для получения финансовых транзакций. С другой стороны, вы упомянули также OData. Так что, пожалуйста, уточните это.
Во-вторых, как вы упомянули, вы не используете SAP Cloud Connector. Вы выполняете данный код локально?
Также просьба поделиться с нами конфигурацией назначения.