SAP Cloud SDK для javascript с использованием места назначения
Я следил за учебник и построить базовый на основе CF nodejs applciation, чтобы отобразить все программы BusinessPartner от моего S4 Hana на предпосылке назначения.
function getAllBusinessPartners(): Promise<BusinessPartner[]> {
return BusinessPartner.requestBuilder()
.getAll()
.execute({
destinationName: 'MockServer'
});
}
Назначение настроено с помощью виртуального хоста из облачного коннектора.
Но после развертывания в Cloud Foundry я получаю следующую ошибку для запроса GET
{"message":"Служба типа destination не поддерживается! Рассмотрите возможность предоставления вашей собственной функции преобразования при вызове destinationForServiceBinding, например:\n destinationServiceForBinding(yourServiceName, { serviceBindingToDestination: yourTransformationFunction });","level":"warn","custom_fields":{"package":"core","messageContext":"destination-accessor"},"logger":"sap-cloud-sdk-logger","timestamp":"2020-03-09T18:15:41.856Z","msg":" Служба назначения типа не поддерживается! Рассмотрите возможность предоставления вашей собственной функции преобразования при вызове destinationForServiceBinding, например: \ n destinationServiceForBinding(yourServiceName, {serviceBindingToDestination: yourTransformationFunction}); ","Written_ts":1583777741856,"Writ_at":"2020-03-09T18:15:41.856Z"}
Приложение уже привязано к службе назначения.
Может ли кто-нибудь мне помочь, что пошло не так? или в новой версии Cloud-SDK другой подход к использованию пункта назначения?
2 ответа
После многих попыток я заставил это работать.
Мои наблюдения:
Connectivity
также требуется привязка сервиса при использовании локального бэкэнда S4.В журнале ошибок не было, я внес определенные изменения в код, чтобы использовать
async/await
async function getAllBusinessPartners(): Promise<BusinessPartner[]> {
return await BusinessPartner.requestBuilder()
.getAll()
.execute({
destinationName: 'MockServer'
});
}
После этой модификации, когда я нажимал GET-запрос, он выдавал следующую ошибку:
"Не удалось найти деловых партнеров - получить запрос на http://s4h-scc-basic:500/sap/opu/odata/sap/API_BUSINESS_PARTNER/sap/opu/odata/sap/API_BUSINESS_PARTNER не удалось!"
Мог заметить, что suffix
после http://domain:port
дважды. Один я дал в пункте назначения, а другойVDM
добавляется автоматически. В идеале эта ошибка должна выдаваться еще до добавленияasync/await
.
После удаления suffix
от места назначения, он начал работать.
Если ваш запрос действительно вызывает ошибку, то, что вы разместили здесь из своих журналов, скорее всего, не является причиной сбоя. Нам известно, что это сообщение сбивает с толку, и мы его исправим ( https://github.com/SAP/cloud-sdk/pull/32). Можете ли вы проверить, есть ли еще ошибки в ваших журналах? Основываясь на опубликованном вами коде и описанной вами настройке, это должно сработать. У вас есть привязка к сервису XSUAA.