Skip to Content
-1
Nov 09, 2017 at 12:03 PM

Init funtion called twice and causes Odata service to be called twice

1391 Views Last edit Nov 10, 2017 at 09:46 AM 4 rev

Hi,

I have a problem with an oataModel bounded to a table, in a Fiori app with XML based views, that's being called twice in the init funtion. I have seen this thread, and this one, none of them is answered in a way it could help me.

Under I provide the screenshots of google network tab, also the code of the init function, and when I put the breakpoints in the beginning of the init, it simply stops twice.

I hope someone could help me or guide me to a possible cause/solution, as this is pretty fast in test environment, but in production, the first call is pretty fast, but the second one takes like 20 seconds to complete, and meanwhile leaves the user awaiting.

The chrome network tab, after the repeated calls are completed and everything is showing fine:

The XML view of table bound to the oDataModel EXPSet

The init function in the controller:

onInit: function() {
			var sServiceUrl, oModel;
			this.oModelI18n = new sap.ui.model.resource.ResourceModel({
				bundleUrl: "i18n/i18n.properties"
			});
			sServiceUrl = this.oModelI18n.getResourceBundle().getText("webServiceURL");
			oModel = new sap.ui.model.odata.ODataModel(sServiceUrl, true, "{i18n>user}", "{i18n>pass}");
			oModel.setHeaders({
				"Access-Control-Allow-Origin": "*"
			});
			this.getView().setModel(oModel);
                        //Filter Odata services
			var oView = this.getView();
			this.filtroGlobal = [];
			this.filtroEmbudo = [];
			oModel.read("FiltroDetSet?$filter=Columna eq 'Contratista'", null, null, false, function(oData, oResponse) {
				var oModelCont = new JSONModel(oData.results);
				oView.setModel(oModelCont, "contratistas");
			});
                        //Coordinadas
			oModel.read("FiltroDetSet?$filter=Columna eq 'Coordinador'", null, null, false, function(oData, oResponse) {
				var oModelCoor = new JSONModel(oData.results);
				oView.setModel(oModelCoor, "coordinadores");
			});
			//Poblaciones
			oModel.read("FiltroDetSet?$filter=Columna eq 'Poblacion'", null, null, false, function(oData, oResponse) {
				var oModelPob = new JSONModel(oData.results);
				oView.setModel(oModelPob, "poblaciones");
			});
			//Directores de obra
			oModel.read("FiltroDetSet?$filter=Columna eq 'Director'", null, null, false, function(oData, oResponse) {
				var oModelDir = new JSONModel(oData.results);
				oView.setModel(oModelDir, "directores");
			});
			//Estados de obra
			oModel.read("FiltroDetSet?$filter=Columna eq 'Estado'", null, null, false, function(oData, oResponse) {
				var oModelEst = new JSONModel(oData.results);
				oView.setModel(oModelEst, "estados");
			});
			this._propiedadATextoCol = function(prop) {
				if (prop === "Name1") {
					return "Contratista";
				} else if (prop === "Poblacion") {
					return "Población";
				} else if (prop === "Name2") {
					return "Dir.Obra";
				}
			};
			this._GroupByField = null;
			this.mGroupFunctions = {
				Name1: function(oContext) {
					var name1 = oContext.getProperty("Name1");
					return {
						key: name1,
						text: name1
					};
				},
				Poblacion: function(oContext) {
					var poblacion = oContext.getProperty("Poblacion");
					return {
						key: poblacion,
						text: poblacion
					};
				},
				Name2: function(oContext) {
					var name2 = oContext.getProperty("Name2");
					return {
						key: name2,
						text: name2
					};
				}
			};
		}

Attachments

odata-tab.jpg (43.2 kB)