Open
Description
Not mentioned anywhere in the docs. Arguments for JSON REST API must be provided in strict order. Re-ordering encoded JSON request will cause random issues.
Following line expects argument as an indexed array:
// Works correctly
$params = array();
$params['session'] = $this->sessionToken;
$params['module_name'] = 'Accounts';
$params['query'] = "accounts.id IS NOT NULL");
$params['order_by'] = '';
$params['offset'] = 0;
$params['select_fields'] = array();
$params['link_name_to_fields_array'] = array(array('name'=>'accounts', 'value'=>array('id', 'name')));
$params['max_results'] = 5;
$params['deleted'] = false;
$jsonEncodedData = json_encode($params);
// Folllowing will fail
$params = array();
$params['module_name'] = 'Accounts';
$params['session'] = $this->sessionToken; // Moved entry as second argument
$params['query'] = "accounts.id IS NOT NULL");
$params['order_by'] = '';
$params['offset'] = 0;
$params['select_fields'] = array();
$params['link_name_to_fields_array'] = array(array('name'=>'accounts', 'value'=>array('id', 'name')));
$params['max_results'] = 5;
$params['deleted'] = false;
$jsonEncodedData = json_encode($params);
Environment
- SuiteCRM Version used: 7.12.2