是否可以对多个记录调用 oDataModel 方法 "create"/"update"?

Is calling oDataModel method "create"/"update" possible with more than one record?

恐怕这是一个非常简单的问题。在这里被问到可能太容易了,但我自己想不通,我只是想知道。

它是关于 oDataModel 以及“创建”和“更新”方法的。 在Demo Kit中我发现界面如下:

创建(sPath、oData、mParameters?):对象

更新(sPath、oData、mParameters?):对象

“oData”的描述在两种方法中均表示“应为 created/updated 的条目的数据”。

所以我明白了oData就是一条数据记录。在 SAP 中的相应方法中(例如 StorageUnitSet_Update_Entity),我可以使用 ABAP 中的方法读取这条记录:

CALL METHOD io_data_provider->read_entry_data
  IMPORTING
    es_data = ls_data.

是否有一种通用的方法来传递多个记录?

在我的例子中,我有一个简单的 table,其中只有一列包含存储单元。通过按“保存”,这些将在后端系统中创建。现在我不确定我是否循环 table 并传递每个存储单元并为每个条目调用此“创建方法”。或者我可以将所有存储单元写成一个长字符串,然后只传递一次这个字符串。但是,如果有一种“更正确”的方法来处理这个问题,我很想知道。

这里有一些代码。我试图将它最小化到必要的程度:

sap.ui.define([
    "xxx/namespace/controller/BaseController",
    "sap/ui/model/resource/ResourceModel",
    "sap/ui/model/json/JSONModel",
    "sap/ui/core/ValueState"
], function (BaseController, ResourceModel, JSONModel, ValueState) {
    "use strict";

    return BaseController.extend("xxx.namespace.controller.iPunkt01", {

        onInit: function () {

            
            this._data = {
                LePool: [ {lenum: "123456"},
                    {lenum: "234567"},
                    {lenum: "234567"}
                    ]
            };

            this.jModel = new sap.ui.model.json.JSONModel();
            this.jModel.setData(this._data);

            // bind table
            this.byId("ins").setModel(this.jModel);

        },
        
        onStartVert: function () {
            // call oData Method create 
            
        },
    });
});

这里是 XML:

<mvc:View xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m" xmlns:f="sap.f" xmlns:l="sap.ui.layout"
    controllerName="xxx.namespace.controller.iPunkt01" xmlns:html="http://www.w3.org/1999/xhtml" id="iPunkt01">
    <App>
        <pages>
            <Page title="i - Punkt">
                <content>
                    <Label text="Lagereinheit" labelFor="lenum"/>
                    <Input id="lenum" editable="true" submit="onSubmit"/>
                    <Table id="ins" items="{/LePool}">
                        <columns>
                            <Column width="50px"/>
                            <Column>
                                <Text text="LE Pool"/>
                            </Column>
                        </columns>
                        <items>
                            <ColumnListItem>
                                <cells>
                                    <Button icon="sap-icon://delete" press="onDeleteRow" type="Reject"/>
                                    <Text id="lenumCell" text="{lenum}"/>
                                </cells>
                            </ColumnListItem>
                        </items>
                    </Table>
                    <l:HorizontalLayout>
                        <Button text="Zurück" icon="sap-icon://nav-back" press="onNavBack"/>
                        <Button text="Start Verteilung" icon="sap-icon://share-2" press="onStartVert"/>
                    </l:HorizontalLayout>
                </content>
            </Page>
        </pages>
    </App>
</mvc:View>

嘿,你可以使用批处理。在后端,每个请求都将自行处理。

以下是一些如何传递多个请求的教程:

如果您想在后端同时访问所有数据,您可以使用 **DEEP_INSERT **。