OData CreateEntry - PullRequest
       43

OData CreateEntry

0 голосов
/ 06 мая 2020

Я пытаюсь создать новую запись, используя 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 она работает нормально.

Кто-нибудь может дать мне решение

...