SugarCRM: Come ottenere l’elenco di tutti i documenti relativi a un account
Qualche giorno addietro ho risposto a una domanda posta su stackoverflow.com la quale poneva il quesito su come poter recuperare attraverso i servizi web esposti da SugarCRM la lista dei documenti relativi a un determinato account.
Tra le operazioni disponibili come servizi web quella che prende il nome di get_relationships è proprio quella che risponde alla domanda posta. Sul sito di supporto di SugarCRM è disponibile ampia documentazione su quest'operazione, inoltre, quest'operazione è accessibile sia via REST sia via SOAP. L'operazione get_relationships recupera i dati di una specifica relazione per uno specifico record.
La sezione esempi della documentazione su get_relationships riporta un esempio d'utilizzo, basta effettuare le sole modifiche ai parametri d'input dell'operazione per il nostro caso d'interesse. Al Listato 1 è mostrato l'array dei parametri d'input per recuperare i documenti legati all'account mentre il Listato 2 mostra il risultato dell'operazione.
All'indirizzo https://gist.github.com/amusarra/6436845 è disponibile l'esempio completo della chiamata al servizio REST get_relationships. Lo stesso vale per la chiamata al servizio utilizzando SOAP. Riguardo l'interazione con i servizi SOAP di SugarCRM, esistono svariate risorse, alcune delle quali disponibili sul mio blog e slideshare:
- Building a Client .NET for SugarCRM
- Costruire un client Java per SugarCRM
- Alloy UI Autocomplete: Get data from SugarCRM
I servizi REST di SugarCRM andranno pian piano sostituendo i servizi SOAP, questi ultimi rimasti un pò indietro riguardo i più recenti standard.
$session_id, //The name of the module from which to retrieve records. 'module_name' => 'Accounts', //The ID of the specified module bean. 'module_id' => '13111fcd-1884-2a71-0b37-50b7d0f188f6', //The relationship name of the linked field from which to return records. 'link_field_name' => 'documents', //The portion of the WHERE clause from the SQL statement used to find the related items. 'related_module_query' => '', //The related fields to be returned. 'related_fields' => array( 'id', 'name', ), //For every related bean returned, specify link field names to field information. 'related_module_link_name_to_fields_array' => array( ), //To exclude deleted records 'deleted'=> '0', //order by 'order_by' => '', //offset 'offset' => 0, //limit 'limit' => 5, ); $get_relationships_result = call("get_relationships", $get_relationships_parameters, $url); ?>
Listato 1. Parametri d'imput per il recupero dei documenti legati all'account
stdClass Object ( [entry_list] => Array ( [0] => stdClass Object ( [id] => 8b4c0450-1922-498f-4601-52272fa6e494 [module_name] => Documents [name_value_list] => stdClass Object ( [id] => stdClass Object ( [name] => id [value] => 8b4c0450-1922-498f-4601-52272fa6e494 ) [name] => stdClass Object ( [name] => name [value] => WebProxyService_A.png ) ) ) ) [relationship_list] => Array ( ) )
Listato 2. Risultato restituito dall'operazione get_relationships