Не удается создать классы виртуальной модели данных с помощью Cloud SDK - PullRequest
0 голосов
/ 20 мая 2019

Я пытаюсь создать VDM, используя EDMX из SFSF, используя этот блог

Я создаю шаблон бизнес-приложения SCP, а затем из модуля srv пытаюсь добавить новую модель данных из внешнего источника - в данном случае API Business Hub. Я пытаюсь использовать SuccessFactors Employee Central - Персональные данные. https://api.sap.com/api/ECPersonalInformation/overview

Процесс запускается и завершается ошибкой с сообщением: «Модели OData с несколькими схемами не поддерживаются», а затем «Не удалось создать классы виртуальной модели данных».

Внешняя папка генерируется, как и ожидалось, с XML в папке EDMX, но папка csn пуста.

Как я понимаю, это должно работать с любым API из бизнес-хаба? Я делаю что-то не так или я что-то упускаю?

Спасибо.

1 Ответ

1 голос
/ 22 мая 2019

Обновление:

Похоже, существует проблема с преобразованием из EDMX в CSN, используемым в Web IDE (которая не является частью SAP Cloud SDK).

Java VDM, созданный генератором OData из SAP Cloud SDK (используется в качестве компонента в Web IDE), должен работать без каких-либо проблем.


Это выглядит как неожиданное поведение. Мы рассмотрим это дальше.

Тем временем, в качестве обходного пути, вы можете использовать наш плагин maven или CLI для создания модели данных для вас. Это подробно описано в этом блоге .

Версия tl; dr (для CLI):

  1. Определите, какую версию SAP Cloud SDK вы используете (найдите sdk-bom в родительском файле pom.xml). Я предполагаю, что это версия 2.16.0 для этого примера.
  2. Загрузите библиотеку CLI из maven central: https://search.maven.org/artifact/com.sap.cloud.s4hana.datamodel/odata-generator-cli/2.16.0/jar
  3. Загрузите файл метаданных (edmx) из API Business Hub (как указано в вашем вопросе)
  4. Запустите CLI, например, следующая команда:
    java -jar odata-generator-cli-2.16.0.jar -i <input-directory> -o <output-directory> -b <base-path>
    
    <base-path> там - это префикс (независимый от службы), который будет использоваться между конфигурацией вашего хоста и фактическим именем службы.
  5. Добавьте сгенерированный код вручную в ваш проект.

Я дополню этот ответ результатами расследования.

...