Descripción de la necesidad a cubrir: Leer los datos de los proyectos existentes en SugarCRM y mostrarlos en un portal desarrollado con Drupal. Además cada elemento del listado debe enlazar a una página que muestre los datos del proyecto (una ficha).
Vamos a utilizar la librería nusoap, la ponemos en sites/all/libraries/nusoap
Creamos un módulo que hemos llamado sugarintegration
Ya en el módulo definimos las constantes de conexión con SOAP:
En el hook_menu definimos la opción donde mostraremos el listado de proyectos recuperados de SugarCRM.
- 'title' => 'Listado de proyectos',
- 'page callback' => 'sugarintegration_listado_proyectos',
- 'access callback' => TRUE,
- 'type' => MENU_NORMAL_ITEM,
- );
y finalmente definimos la función que realiza la conexión y consuta a través de nusoap:
- function sugarintegration_listado_proyectos() {
- $soapclient = new nusoapclient(FRONTENDSOAP,true);
- 'user_name' => USUARIO,
- 'version' => '.01')
- );
- $sesion = $soapclient->call('login',$user_auth);
- "session" => $sesion['id'],
- "module_name" => "Project",
- "query" => 'project.deleted=0',
- "order_by" => 'project.name',
- "max_results" => 0
- );
- $result1 = $soapclient->call('get_entry_list', $get_entry_params);
- $soapclient->call('logout',$sesion['id']);
- foreach($result1['entry_list'] as $r){
- $name = $r['name_value_list'][0]['value'];
- $id = $r['id'];
- $items[] = l($name, 'oficina/proyectos/'.$id);
- }
- $output = "<div class='view'>";
- $output .= theme('item_list',$items, NULL, 'ul', '');
- $output .= "</div>";
- return $output;
- }
En $get_entry_params definimos:
- session: el resultado del login en nusoap.
- module_name: nombre del móduilo Srugar sobre el que hacemos la consulta.
- query: la parte que va en el where.
- order_by: la parte de la consulta del order bay.
- select_fields: los campos que queremos recuperar.
Esta línea ejecuta la consulta a SUGARCRM
- $result1 = $soapclient->call('get_entry_list', $get_entry_params);
Y el resto de la función constuye una lista de items y se llama a la función de theming item_list.
Es sencillo, lo principal es conocer la API de la librería que se utilice y unos conocimientos básicos en el desarrollo de módulos de Drupal.
Cualquier consulta respondemos en los comentarios.



Enviar un comentario nuevo