SAPui5 создать запись с дочерними записями - PullRequest
1 голос
/ 15 января 2020

Я хочу создать запись и ее дочерний элемент из ui5, поэтому я использовал подход create entry, проблема в том, что я хочу, чтобы пользователь мог обновлять значения дочерних узлов, поэтому я сделал следующее

var oParentContext = this._oODataModel.createEntry("/Parent",
{ changeId: "edit", properties: {object}, success: this._fnEntityCreated.bind(this), error: this._fnEntityCreationFailed.bind(this) });
    for (var i = 0; i < childArray.length; i++) {
                var child = childArray[i];

                aChildCtx = this._oODataModel.createEntry("/child", {
                    changeId: "edit",
                    properties: child,
                    context: oParentContext
                });
                aChildEntries.push(aChildCtx.getPath().substring(1));
            }
    this.getView().setBindingContext(oParentContext);
 // I attached also the relation to the front end
this.getView().getModel().setProperty("ToChild", aChildEntries, oParentContext);

В представлении я сделал привязку к отношению ToChild к таблице, чтобы пользователь мог ввести его значения.

Отображение родительского и дочернего элементов работает, однако я столкнулся с проблемой, что представление отправляет запрос на получение Odata с временным ID / ToChild. Я не мог найти никакого решения для этого. Как мы должны делать глубокую вставку в стандарте?

PS Я не хочу использовать deep_create

Спасибо

С наилучшими пожеланиями

1 Ответ

0 голосов
/ 16 января 2020

Запросы на создание в настоящее время создаются асинхронно. Окончательный идентификатор родителя будет известен во внешнем интерфейсе только после возврата родительского запроса на создание, но запросы на создание дочерних элементов генерируются до этого.

Я вижу два способа убедиться, что дочерние элементы будут созданы. с окончательным идентификатором родителя:

  1. Отправляйте запросы на создание родительского и дочернего элементов синхронно. Подождите, пока родительский запрос на создание успешно вернется, прежде чем создавать дочерние элементы.
  2. Отправьте оба как набор изменений. Позвольте реализации службы oData сначала создать родителя, а затем потомков с уже созданным родительским идентификатором. (Вы устанавливаете changeId, API определяет changeSetId)
...