Skip to Content

Display OData error message in bindelement( )

Hi there

I've a problem with OData where I can't access the error message when it goes wrong.

My controller has the following code - it all works fine.

onInit: function(){
	this.getRouter().getRoute("display").attachPatternMatched(this.onObjectMatched, this);
},
onObjectMatched: function(oEvent){
	var sObjectPath = this.oModel.createKey("DataSet", {
		Var1: oEvent.getParameter("arguments").Var1,
		Var2: oEvent.getParameter("arguments").Var2
	});
	this.getView().bindElement({
		path: "/" + sObjectPath,
		events: {
			change: this.onBindingChange.bind(this)
		}
	});
},
onBindingChange: function(){
	var oElementBinding = this.getView().getElementBinding();
	if (!oElementBinding.getBoundContext()) {
		this.getRouter().getTargets().display("notFound");
	}
}

If the bindElement fails (because I manipulate the URL to access something I shouldn't, for example) I get an error in the console.

This error of course has an error message. My question is; how could I access this error message in the onBindingChange method? Is it possible? Or, even, anywhere (I could store it in the UIHelper if need be).

I've been looking all over Google and here but have not gotten nowhere.

In the bindElement method, I've tried to add the dataReceived event but that returns nothing. I've tried the attachRequestFailed on the oModel but that didn't work either.

Any help appreciated,
Thomas

untitled.png (4.7 kB)
Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

3 Answers

  • Jan 15 at 04:21 AM

    Hi Thomas Arnesen,

    You can go through this link. It is specified there that, the bindElement method has an parameter events. You can define an custom event here, to detect wether your model path is correct or not.

    Regards,

    Arjun Biswas.

    Add comment
    10|10000 characters needed characters exceeded

  • Jun 26 at 01:20 PM

    Hi, did you find solution?

    We have similar request with PO - it may be that header details are returned, but if a specific item properties exist - it is not allowed to change PO - in this case I get error message in console - how to display it to user?

    Add comment
    10|10000 characters needed characters exceeded

    • Hi Shanir

      I haven't found a solution for this yet. Other projects have taken my time but I'll revisit this at some point and if I do find a solution I'll update here.

  • Aug 07 at 03:09 PM

    Hi,

    even though you're saying its not working for you, it is working for me.

    you can add this to your Odata-Service:

    var oModel = this.getView().getModel("myPrettyOdataModel");
    
    oModel.attachRequestFailed(function (response) {
                    this.makeTheErrorInSomethingNice(response);
       }, this);
    

    Maybe you made a mistake somewhere?

    Regards,

    Samuel

    Add comment
    10|10000 characters needed characters exceeded