After the creation of the SQL action, paying attention to the datasource and to the parameters name needed for the call.
var vo_par = new Object()
/* I'll use this variables in SQL with :COD_SOCIETA_FILTER, :COD_DIVISIONE_FILTER, :COD_ENTE, :ANNO */
vo_par['codSocietaFilter'] = vo['codSocieta'];
vo_par['codDivisioneFilter'] = ...;
vo_par['codEnte'] = ...;
vo_par['anno'] = ...;
var json = Ext.encode(vo_par);
/* EXECUTEQUERY is used just because the action contains a SELECT */
var url = contextPath +'/executesql/executequery?appId=' +applicationId+ '&applicationId=' + applicationId + '&actionId=2749&datastoreId=9';
/* Execute the call */
var response = new SyncRequest().send(url, 'POST', json, 'application/json');
/* Parse the response */
var parsed = JSON.parse(jsonrowsconfNegozio);
if (response != null && response != '') {
risp = Ext.decode(response);
if (risp['success'] == false) {
showMessageDialog("dialog.title.error", risp['message'], function() {}, false);
return false;
}
}
//the response will be a valueobject
if(risp.valueObjectList[0].GESTIONE_A_TEAM == 'F') {
...
}
Where actionId=XXX is the ID of the SQL Action that must be executed and datastoreId=YYY is the ID of the additional datastore (omit to use the main Database)
The SQL action will be composed like this.
SELECT GESTIONE_A_TEAM FROM INC007_MATRICE_ENTE
WHERE COMPANY_ID=:COMPANY_ID
AND SITE_ID=:SITE_ID
AND COD_SOCIETA=:COD_SOCIETA_FILTER
AND COD_DIVISIONE=:COD_DIVISIONE_FILTER
AND COD_ENTE=:COD_ENTE
AND ANNO=:ANNO
AND MESE=:MESE
NOTE:
If the SQL action is a SELECT the following method must be used: /executesql/executequery?appId=… while for all the other SQL operation (UPDATE, INSERT, DELETE) just use /executesql?appId=…