Skip to Content

How to get created object when using odata V4

Jun 01, 2017 at 05:56 PM


avatar image


I am currently trying to figure out if oData v4 model implementation fits to our needs/ requirements but I am already struggling with adding new entities. After successful creation, I am not able to fetch the returned object, even though I can see that the server includes it in his response.

I tried to follow the Demo App in Explored but I am not able to get it to work.

My code looks like this:

var oContext = this.getView().byId("mainmenulist").getBinding("items")

Afterwords I am trying to access this newly created record.

            oContext.created().then(function() {
                MessageBox.alert("Created Main Menu Item with id " + oContext.getProperty("id") + ".", {
                    icon: MessageBox.Icon.SUCCESS,
                    title: "Success"
            }, function(oError) {
                MessageBox.alert("Could not create Main Menu Item: " + oError.message, {
                    icon: MessageBox.Icon.ERROR,
                    title: "Error"

but I always keep getting the error "Failed to drill-down into -1/id, invalid segment: id".

What am I doing wrong?

Thanks for help,


10 |10000 characters needed characters left characters exceeded
* Please Login or Register to Answer, Follow or Comment.

3 Answers

Patric Ksinsik
Aug 10, 2017 at 08:02 AM

Hi Oliver,

after successful POST for the create, the OData V4 model only updates the *selected* properties of the newly created entity. Hence your issue might be you did not select "id". Possible reasons

(1) you specify a $select binding parameter for this.getView().byId("mainmenulist").getBinding("items") which does not contain "id"

(2) you have switched on auto-$expand/$select but the UI does not have a binding to "id" for the entity so that the auto-generated $select does not contain "id".


10 |10000 characters needed characters left characters exceeded
Thomas Schmidt Aug 18, 2017 at 02:10 PM

I am facing the same problem and the cause is that the "id" is generated automatically in the backend and should not be included in the entity for the POST. but that is also the reason because we have problems to access the new created id which is included in the response in the .created method

10 |10000 characters needed characters left characters exceeded
Oliver Unknown Sep 21, 2017 at 08:05 AM

Same situation in my case. The id is created automatically in the backend from the database server.

Is there a solution for that?

10 |10000 characters needed characters left characters exceeded