SAP Cloud SDK для javascript с использованием пункта назначения - PullRequest
1 голос
/ 10 марта 2020

Я следовал учебному пособию и создал базовое приложение nodejs на основе CF *1018* для отображения всех BusinessPartners из моего локального пункта назначения S4 Hana.

function getAllBusinessPartners(): Promise<BusinessPartner[]> {
  return BusinessPartner.requestBuilder()
    .getAll()
    .execute({
      destinationName: 'MockServer'
    });
}

Пункт назначения настроен для виртуального хоста из облачного соединителя.

Но после развертывания в Cloud Foun dry я получаю следующую ошибку для запроса GET

{"message": " Служба типа destination не поддерживается! Рассмотрите возможность предоставления собственной функции преобразования при вызове destinationForServiceBinding, например: \ n destinationServiceForBinding (yourServiceName, {serviceBindingToDestination: yourTransformationFunction}); "," level ":" warn "," custom_fields ": {" пакет ":" ядро ​​" "MessageContext": "адресат-сбруя"}, "регистратор": "сок-облако СДК-регистратор", "метка": "2020-03-09T18: 15: 41.856Z"," msg ":" Служба типа destination не поддерживается! Рассмотрите возможность предоставления собственной функции преобразования при вызове destinationForServiceBinding, например: \ n destinationServiceForBin ding (yourServiceName, {serviceBindingToDestination: yourTransformationFunction}); "," wrote_ts ": 1583777741856," wrote_at ":" 2020-03-09T18: 15: 41.856Z "}

Приложение уже связано а также в Службу назначения.

Может ли кто-нибудь помочь мне, что пошло не так? или подход к использованию пункта назначения отличается в новой версии Cloud-SDK?

Ответы [ 2 ]

1 голос
/ 12 марта 2020

После многих попыток я заставил это работать.

Мои наблюдения:

  1. Connectivity услуга также необходима для быть привязанным, при использовании локального бэкенда S4.

  2. В журнале не было ошибок, я внес определенные изменения в код для использования 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 из пункта назначения, он начал работать.

0 голосов
/ 10 марта 2020

Если ваш запрос действительно содержит ошибку, то, что вы разместили здесь из своих журналов, скорее всего, не является причиной сбоя. Мы знаем, что это сообщение сбивает с толку и улучшит его (https://github.com/SAP/cloud-sdk/pull/32). Можете ли вы проверить, есть ли еще ошибки в ваших журналах? На основании кода, который вы разместили, и описанных вами настроек, это должно работать. У вас есть привязка к сервису XSUAA.

...