Между тем, я решил проблему самостоятельно. Я переместил создание второй записи в обратный вызов успеха первой записи. Таким образом, я смог получить идентификатор из параметра «response» и добавил его как свойство для моей второй записи. Это, вероятно, не лучшее решение, но оно работает для меня. Возможно, у кого-то есть еще одно предложение, чтобы сделать это лучше.
Это всего лишь образец кода, но, возможно, это поможет некоторым людям, у которых возникла аналогичная проблема.
// oView = this.getView();
// First Entry for EntitySampleSet1
var oEntry = {};
oEntry.Id = "0";
oEntry.Label = oView.byId("label").getValue();
oEntry.Status = oView.byId("status").getValue();
// Success Callback for the first Entry Creation
// response contains the Response Header for the POST Request
var fnSuccessCallback = function(oData, response)
{
console.log("Success 1");
// Success Callback for the second create methode
var fnSuccess2Callback = function()
{
console.log("Success 2");
};
// Error Callback for the second create methode
var fnError2Callback = function()
{
console.log("Error 2");
};
// Second Entry for EntitySampleSet2
var o2Entry = {};
// ID = "0" so the ID gets automatically generated by JPA
o2Entry.Id = "0";
o2Entry.SampleRelatedObject = response.data.Id;
// The second Entry gets created in the OData Model
oModel.create("/SampleEntitySet2", o2Entry,
{
urlParameters : null,
success : fnSuccess2Callback,
error : fnError2Callback
});
};
var fnErrorCallback = function(oError)
{
console.log("Error1");
};
// The first Entry gets created in the OData Model
// after the create worked fine the fnSuccessCallback will get
// called and the second entry will be created in that method
oModel.create("/SampleEntitySet1", oEntry,
{
urlParameters : null,
success : fnSuccessCallback,
error : fnErrorCallback
});