Я пытаюсь создать новую запись, используя oDataModel.createEntry ().
Я назначаю созданный контекст для SmartForm и открываю его в диалоговом окне.
вот мой код :
var oModel = new sap.ui.model.odata.v2.ODataModel({
serviceUrl: serviceURL,
loadAnnotationsJoined: true,
defaultBindingMode: "TwoWay"
});
createdContext = oModel.createEntry(sBindingPath, {
groupId: "changes",
success: fnSuccess,
error: fnError
});
oModel.submitChanges({ groupId: "changes" });
var fnSuccess = function(oData, oResponse) {
var oSmartForm = new sap.ui.comp.smartform.SmartForm({
entityType : oEntityType.name
});
oSmartForm.setBindingContext(createdContext);
oCreateDialog = new sap.m.Dialog({ content : oSmartForm });
oController._oCreateDialog.bindElement(sPath);
oController.getView().addDependent(oController._oCreateDialog);
oController._oCreateDialog.open();
}
Мой путь CreatedContext будет примерно таким "/000001(row_id='0000000001',rmprf='')"
.
, когда я когда-либо изменяю значение в oSmartForm, запрос на слияние будет отправлен со значением rmprf="SOMEVALUE"
.
в результате я получу такие данные
"__metadata": {
"id": "https:..../000001(row_id='0000000001',rmprf='SOMEVALUE')",
"uri": "https:../000001(row_id='0000000001',rmprf='SOMEVALUE')",
"type": "000001Type"
},
"row_id": "0000000001",
"rmprf": "SOMEVALUE",
Но проблема здесь в том, что путь bindingContext моего oSmartForm по-прежнему
"/000001(row_id='0000000001',rmprf='')"
, где как и должно быть "/000001(row_id='0000000001',rmprf='SOMEVALUE')"
.
Эта проблема существует только в версиях 1.74 и выше, в версии 1.73 она работает нормально.
Кто-нибудь может дать мне решение