Integración con Sugar CRM

18-05-2015
 

Sugar CRM Logo

Sugar CRM Logo


Para los que no lo conozcáis, SugarCRM es un CRM(Customer Relationship Management) basado en software libre presente en multitud de empresas. A grandes rasgos, un CRM es un software para gestionar la relación con el cliente, donde implementamos la estrategia de negocio para apalancar el conocimiento de los clientes y conseguir aumentar ventas y rentabilidad.

SugarCRM trae por defecto diferentes módulos: Clientes potenciales, Contactos(Personas), Cuentas(Empresas), Campañas, Leads(Oportunidad), Agenda, etc. Es importante que nuestra empresa tenga un CRM y que este integrado con nuestra plataforma de venta(eCommerce, portal corporativo, etc.).

Si queremos que nuestra aplicación JavaEE(Por ejemplo un portal Liferay) se integre con SugarCRM podemos hacerlos usando Axis(Librería para integraciones SOAP). Para que Axis(Versión 1.4, en axis2 no funciona) nos genere las classes necesarias para la integración ejecutaremos:

	java -cp "/opt/axis-1_4/lib/*" org.apache.axis.wsdl.WSDL2Java https://<URL SugarCRM>/custom/service/v4/soap.php?wsdl

Con las nuevas classes, ya podemos conectarnos al servidor de SugarCRM y obtener un Id de sesión.

Sugarsoap service=new SugarsoapLocator();
SugarsoapPortType port=service.getsugarsoapPort(new java.net.URL("http://<mi SugarCRM>/soap.php"));
 
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] digested = md.digest("Mi Sugar Password".getBytes());
String epassword = new BigInteger(1, digested).toString(16);

User_auth userAuth = new User_auth("Mi sugar User", epassword);

Set_entry_result loginRes=port.login(userAuth, "myAppName");
String sessionID = loginRes.getId();
	

Ahora podemos obtener los campos “name” y “phone_office” de los 10 primeros registros del modulo “Accounts”:

Get_entry_list_result entryList=port.get_entry_list(sessionID,"Accounts","", "",0, new String[]{"name","phone_office"}, 10, 0);

for(Entry_value entry : entryList.getEntry_list()) {
	Name_value[] nvl=entry.getName_value_list();
	System.out.println(  nvl[0].getValue() + " - " + nvl[1].getValue());
	}

O podemos obtener todos los registros de la relación “XXX” que tengan como contacto “ContactId”:

Get_entry_list_result2 entryList=port.get_relationships(
	sessionId, 
	“Contacts”, 
	contactId, 
	“link_field_name”, 
	“Modulo XXX”, 
	related_fields, 
	related_module_link_name_to_fields_array, 
	deleted, /* 0 si no queremos que se devuelvan los registros borrados */
	order_by);

Así de fácil es integrarnos con SugarCRM.

Comments

2 Responses to “Integración con Sugar CRM”
  1. Gemma says:

    Buenos días Alberto

    Tengo un cliente que tiene la necesidad de impartir formación en sugar CRM, ¿podías impartirlo?, me gustaría que contactaras conmigo.

    Un saludo

  2. Hola Gemma, ahora te respondo por mail.

Leave a Reply

© Albert Coronado Calzada