Skip to Content

How to get created object when using odata V4

Hi,

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")
                .create(oMainMenuItem);

Afterwords I am trying to access this newly created record.

            oContext.created().then(function() {
                oDialog.close();
                MessageBox.alert("Created Main Menu Item with id " + oContext.getProperty("id") + ".", {
                    icon: MessageBox.Icon.SUCCESS,
                    title: "Success"
                });
            }, function(oError) {
                oDialog.close();
                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,

Oliver

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

3 Answers

  • avatar image
    Former Member
    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".

    Regards,
    Patric

    Add comment
    10|10000 characters needed characters exceeded

  • 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

    Add comment
    10|10000 characters needed characters exceeded

  • 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?

    Add comment
    10|10000 characters needed characters exceeded