cancel
Showing results for 
Search instead for 
Did you mean: 

TimeoutError: DOM Exception 23

eozkan
Explorer
0 Kudos

We are having the same issue as described in Forum Thread

The application is working fine when is run from a browser in the same network.

However when we run it from Airwatch browser, it is populating this error and not submitting the request.

I already tried the solution suggestions to the referred thread from Sarbjeet Singh, however I cannot seem to get this working.

I extended the application and redefined the _postOData method. And also tried copying the application and making changes directly on the copy.

I replaced the contents of the method with the following.

_postOData:  function(sPath, sBody, successCallback, errorCallback) {

var oParameters = {};

oParameters.success = successCallback;

oParameters.error = errorCallback;

oParameters.async = true;

setTimeout( function() {

_modelBase.create(sPath, sBody, oParameters, successCallback, errorCallback);

},1000);

};

Neither did work.

Has anyone successfully implemented Fiori Leave Application in an Airwatch managed system?

Accepted Solutions (1)

Accepted Solutions (1)

gill367
Active Contributor
0 Kudos

Hi

Modify the onSend method as follow and see wht is the output

onSend: function() {

var that = this;

try {

setTimeout(function(){

that.submit(true);

},1);

}catch(err) {

alert(err.stack);

}

},

Regards,

Sarbjeet Singh

eozkan
Explorer
0 Kudos

Hi Sarbjeet,

Should I use this along with _postOData modification or should this be the only modification?

Kind Regards

Emre

gill367
Active Contributor
0 Kudos

Use this one first.

Regards,

Sarbjeet Singh

Answers (1)

Answers (1)

eozkan
Explorer
0 Kudos

Hi ,

I solved this problem using the approach recommended by Sarbjeet along with some other tweaks such as closing the confirmation dialog box as soon as it is called. Enveloping the submit method in setTimeout and redefining _postOdata as async.

I created a controller extension for S1 and chose to copy the original code.

I made following changes to the extension code .

added this code to the end of _initCntrls method.


  this.cale.setSwipeToNavigate(false); //swipe is required to select dates in mobile devices

  this.cale.setSelectionMode(sap.me.CalendarSelectionMode.RANGE); //Range selection is required

  hcm.myleaverequest.utils.DataManager._postOData = function(sPath, sBody, successCallback, errorCallback) {

  var _modelBase = hcm.myleaverequest.utils.DataManager.getBaseODataModel(),   

       oParameters = {};

  oParameters.success = successCallback;

  oParameters.error = errorCallback;

  oParameters.async = true;

  setTimeout(function() {

       _modelBase.create(sPath, sBody, oParameters, successCallback, errorCallback);

  }, 1);

defined extHookCallDialog method for CallDialog extension.


extHookCallDialog: function(oDialog) {

  // close the dialog before display and submit

  oDialog.close();

  var _ = hcm.myleaverequest.utils.UIHelper.getControllerInstance();

  _.submit(false); //simulation off

},

redefined onSend method


onSend: function() {

  // Modified by Emre Ozkan

  // this.submit(true);

  var that = this;

  try {

       setTimeout(function() {

       that.submit(true);

  }, 1);

  } catch (err) {

  //alert(err.stack);

       jQuery.sap.log.error("Extension Error: " + err.message, [], [

            "hcm.myleaverequest.view.S1.controller.onSend"

       ]);

  }

  // end of modification

},

Kind Regards

Emre