on 12-23-2020 3:41 PM
Hi Experts,
Here I am again with another question. I created a button on my Fiori app to load customer parameters from a CDS view and use them in 4 different dropdown lists. The code is working fine and the values are being loaded. But when I click GO to execute the query, the app is not passing those values to the URI.
Here an example:
Inform customer number and click on the button Load Customer Parameters
Result after click:
Filled the other 2 fields and executed:
Here is the request sent:
GET UIShipmentSet?$skip=0&$top=20&$filter=Customer%20eq%20%271001902%27%20and%20Material%20eq%20%271000039-CONTI%27%20and%20OrderQty%20eq%20%274%27%20and%20RequestDate%20eq%20datetime%272020-12-23T00%3a00%3a00%27&$select=Plant%2cMaterial%2cConfirmedQty%2cShuttleFlag%2cShippingFees%2cDeliveryDate%2cDeliveryTime%2cDescription
If I select manually the options from the list, I have this request:
GET UIShipmentSet/$count?$filter=Customer%20eq%20%271001902%27%20and%20Material%20eq%20%271000039-CONTI%27%20and%20OrderQty%20eq%20%274%27%20and%20RequestDate%20eq%20datetime%272020-12-23T00%3a00%3a00%27%20and%20Studded%20eq%20true%20and%20ShippingMethod%20eq%20%2701%27%20and%20AcceptSaturday%20eq%20true%20and%20CustomerCluster%20eq%20%27R%27
Here is the code to load the parameters:
onLoadParameters: function(oEvent) { var oModel = new sap.ui.model.odata.ODataModel("/sap/opu/odata/sap/ZLE_SOURCING_LOGIC_SRV_BKP_SRV/"); // connect to OData service var customer = this.getView().byId("smartFilter").getControlByKey("Customer").getValue(); // create new variable and bind to smart filter parameter // MessageToast.show(customer); // show message toast var oFilters = [ new sap.ui.model.Filter("kunnr", "EQ", customer) ]; // create filter for OData query var sStudded = this.getView().byId("smartFilter").getControlByKey("Studded"); // create new variable and bind to smart filter parameter var sSaturday = this.getView().byId("smartFilter").getControlByKey("AcceptSaturday"); // create new variable and bind to smart filter parameter var sShipping = this.getView().byId("smartFilter").getControlByKey("ShippingMethod"); // create new variable and bind to smart filter parameter var sInventory = this.getView().byId("smartFilter").getControlByKey("CustomerCluster"); // create new variable and bind to smart filter parameter
oModel.read("/ZI_SD_CUSTOMER_PARAMETERS", { // read OData entity filters: oFilters, // using the filter created above urlParameters: { "$select": "katr2,katr5,katr7,vsbed" }, // using the following parameters to select success: function(oData, response) { if (oData.results[0].katr7 == 'X') { sStudded.setValue(sStudded.mAggregations.items[1].mProperties.text); } else { sStudded.setValue(sStudded.mAggregations.items[0].mProperties.text); } if (oData.results[0].katr5 == 'N') { sSaturday.setValue(sSaturday.mAggregations.items[1].mProperties.text); } if (oData.results[0].katr5 == 'Y') { sSaturday.setValue(sSaturday.mAggregations.items[0].mProperties.text); } var n = sShipping.mAggregations.items["length"]; var i = 0; for (i = 0; i < n; i++){ if (sShipping.mAggregations.items[i].mProperties.key == oData.results[0].vsbed){ sShipping.setValue(sShipping.mAggregations.items[i].mProperties.text); }; }; n = sInventory.mAggregations.items["length"]; i = 0; for (i = 0; i < n; i++){ if (sInventory.mAggregations.items[i].mProperties.key == oData.results[0].katr2){ sInventory.setValue(sInventory.mAggregations.items[i].mProperties.text); }; }; }.bind(this), error: function(oError) { MessageToast.show("Error loading customer parameters"); } }); },
Why the app is not getting the automatic filled parameters and using them to create the request?
It's fixed. Here is the solution:
onLoadParameters: function(oEvent) { var oModel = new sap.ui.model.odata.ODataModel("/sap/opu/odata/sap/ZLE_SOURCING_LOGIC_SRV_BKP_SRV/"); // connect to OData service var customer = this.getView().byId("smartFilter").getControlByKey("Customer").getValue(); // create new variable and bind to smart filter parameter var oFilters = [ new sap.ui.model.Filter("kunnr", "EQ", customer) ]; // create filter for OData query var sStudded = this.getView().byId("smartFilter").getControlByKey("Studded"); // create new variable and bind to smart filter parameter var sSaturday = this.getView().byId("smartFilter").getControlByKey("AcceptSaturday"); // create new variable and bind to smart filter parameter var sShipping = this.getView().byId("smartFilter").getControlByKey("ShippingMethod"); // create new variable and bind to smart filter parameter var sInventory = this.getView().byId("smartFilter").getControlByKey("CustomerCluster"); // create new variable and bind to smart filter parameter oModel.read("/ZI_SD_CUSTOMER_PARAMETERS", { // read OData entity filters: oFilters, // using the filter created above urlParameters: { "$select": "katr2,katr5,katr7,vsbed" }, // using the following parameters to select success: function(oData, response) { if (oData.results[0].katr7 == 'X') { sStudded.setValue(sStudded.mAggregations.items[1].mProperties.text); sStudded.setSelectedKey(sStudded.mAggregations.items[1].mProperties.key); sStudded.setSelectedItemId(sStudded.mAggregations.items[1].sId); } else { sStudded.setValue(sStudded.mAggregations.items[0].mProperties.text); sStudded.setSelectedKey(sStudded.mAggregations.items[0].mProperties.key); sStudded.setSelectedItemId(sStudded.mAggregations.items[0].sId); } if (oData.results[0].katr5 == 'N') { sSaturday.setValue(sSaturday.mAggregations.items[1].mProperties.text); sSaturday.setSelectedKey(sSaturday.mAggregations.items[1].mProperties.key); sSaturday.setSelectedItemId(sSaturday.mAggregations.items[1].sId); } if (oData.results[0].katr5 == 'Y') { sSaturday.setValue(sSaturday.mAggregations.items[0].mProperties.text); sSaturday.setSelectedKey(sSaturday.mAggregations.items[0].mProperties.key); sSaturday.setSelectedItemId(sSaturday.mAggregations.items[0].sId); } var n = sShipping.mAggregations.items["length"]; var i = 0; for (i = 0; i < n; i++){ if (sShipping.mAggregations.items[i].mProperties.key == oData.results[0].vsbed){ sShipping.setValue(sShipping.mAggregations.items[i].mProperties.text); sShipping.setSelectedKey(sShipping.mAggregations.items[i].mProperties.key); sShipping.setSelectedItemId(sShipping.mAggregations.items[i].sId); }; }; n = sInventory.mAggregations.items["length"]; i = 0; for (i = 0; i < n; i++){ if (sInventory.mAggregations.items[i].mProperties.key == oData.results[0].katr2){ sInventory.setValue(sInventory.mAggregations.items[i].mProperties.text); sInventory.setSelectedKey(sInventory.mAggregations.items[i].mProperties.key); sInventory.setSelectedItemId(sInventory.mAggregations.items[i].sId); }; }; }.bind(this), error: function(oError) { MessageToast.show("Error loading customer parameters"); } }); },
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
87 | |
10 | |
10 | |
9 | |
7 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.