ADVANCED SEARCH
|
|
You can post a advanced search request directly using a JSON formatted criteria object to the /rpc/... endpoint. You can pass your criteria using JSON. If posting (the recommended method) the criteria can either be the data, or be posted as criteria=. If doing a GET, the criteria should be passed via criteria= - make sure it is encoded, eg. encodeURIComponent(sCriteria), and under ~1600 characters. If you are posting using a agent that does not provide cookie support, then add &logonkey= and &sid= to the data. |
Example of Javascript to POST the criteria | |
$.ajax({ type: 'POST', url: '/rpc/financial/?method=FINANCIAL_INVOICE_SEARCH';, data: 'criteria=...', success: function(asData) { SearchComplete(asData) }, dataType: 'json' }); |
JSON | |
{ "fields": [ { "name": "..." } ], "summaryFields": [ { "name": "..." } ], "filters": [ { "name": "...", "comparison": "...", "value1": "...", "value2": "...", "value3": "..." } ], "sorts": [ { "name": "...", "direction": "..." } ], "options": { "rf": "...", "startrow": "...", "rows": "...", "returnparameters": "..." }, "customoptions": [ { "name": "...", "value": "..." } ] } |
EXAMPLES | |
1. | Using JSON, return the sentdate, and the count, of all sent invoices, ordering by their reference. Return the data in JSON format. You would post this to FINANCIAL / FINANCIAL_INVOICE_SEARCH |
{ "fields": [ { "name": "sentDate" } ], "summaryFields": [ { "name": "count(*) invoicecount" } ], "filters": [ { "name": "sent", "comparison": "EQUAL_TO", "value1": "N", "value2": "" } ], "sorts": [ { "name": "reference", "direction": "asc" } ], "options": { "rf": "JSON" } } |
|
2. | Sample Javascript to generate the above JSON |
function Go() { var sURL = '/rpc/financial/?method=FINANCIAL_INVOICE_SEARCH'; var sData = ''; var oSearch = {}; oSearch.fields = []; oSearch.fields.push({}); oSearch.fields[0]['name'] = 'sentdate'; oSearch.summaryFields = []; oSearch.summaryFields.push({}); oSearch.summaryFields[0]['name'] = 'count(*) invoicecount'; oSearch.filters = []; oSearch.filters.push({}); oSearch.filters[0]['name'] = 'sent'; oSearch.filters[0]['comparison'] = 'EQUAL_TO'; oSearch.filters[0]['value1'] = 'N'; oSearch.sorts = []; oSearch.sorts.push({}); oSearch.sorts[0]['name'] = 'reference'; oSearch.sorts[0]['direction'] = 'asc'; oSearch.options = {}; oSearch.options.rf = 'JSON'; sData = JSON.stringify(oSearch); $.ajax({ type: 'POST', url: sURL, data: 'criteria=' + sData, success: function(asData) { SearchComplete(asData) }, dataType: 'JSON' }); } |
|
3. | ajax call |
$.ajax({url:'', type: 'POST', data: 'criteria={fields: [{name: ""}], filters: [{name: "", comparison: "EQUAL_TO", value1: "", value2: ""}]}'}); |