是否可以对多个记录调用 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 **。
恐怕这是一个非常简单的问题。在这里被问到可能太容易了,但我自己想不通,我只是想知道。
它是关于 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 **。