Como modificar registros de Vtiger con WebService

Buen dia tengan todos.

Ya antes habia usado la libreria de Vtiger para WebService, como lo explico en esta entrada. Pero nunca me tope con el tema de Actualizar registros utilizando dicha libreria.

El día de hoy recibi un comentario aqui en mi blog de como se hacia para hacer un UPDATE de un registro, asi que me puse manos a la obra.

Lo que tenemos que hacer es agregar un pequeño codigo a la libreria vtwsclib.
Abrimos el archivo vtwsclib/Vtiger/WSClient.php y agregamos el siguiente codigo aproximadamente despues de la linea 288 (Despues del metodo doCreate:

        /**
	 * Do Update Operation
	 */
	function doUpdate($VtigerObject) {
		// Perform re-login if required.
		$this->__checkLogin();

		$postdata = Array(
			'operation'   => 'update',
			'sessionName' => $this->_sessionid,
			'element' => $this->toJSONString($VtigerObject)
		);
		$resultdata = $this->_client->doPost($postdata, true);
		if($this->hasError($resultdata)) {
			return false;
		}
		return $resultdata[result]; // Return Updated Record
	}

Un ejemplo de uso del método doUpdate

<?php
    include_once('vtwsclib/Vtiger/WSClient.php');
    $url = 'http://en.vtiger.com/wip';
    $client = new Vtiger_WSClient($url);
    $login = $client->doLogin('admin', 'KpS9EjNz16JtPmoe');
    if(!$login) echo 'Login Failed';
    else {
        $module = 'PriceBooks';
        // Retrieve PriceBook record with id 2966
        $record = '12x2966';
        $recordInfo = $client->doRetrieve($record);
        if($recordInfo) {
            // Modificamos el nombre de la lista de precio
            $recordInfo['bookname'] = 'Nuevo Nombre de PriceBook';
        }

        /* Como parametro pasamos el Objeto (Array) devuelto por ejemplo por el metodo doRetrieve,
         * o bien pasar un array con la estructura del mismo, para "PriceBooks" seria la siguiente:
             Array
             (
                 [bookname] => Price Book Name
                 [active] => 1
                 [createdtime] => 2008-09-11 14:55:31
                 [modifiedtime] => 2013-06-19 13:52:27
                 [description] => Price Book description
                 [currency_id] => 21x1
                 [pricebook_no] =>
                 [modifiedby] => 19x1
                 [id] => 12x2966
             )
        */

        $registro_actualizado = $client->doUpdate($recordInfo);
        if($registro_actualizado) {
            echo "Se actualizo el registro con éxito";
        }
}
?>

*Referencia: Vtiger Wiki
Espero esta información les sea util.

Saludos cordiales!

Anuncios

3 comentarios en “Como modificar registros de Vtiger con WebService

      1. Hola disculpa por la tardanza, hemos instalado Odoo 9 y deseamos migrar nuestra bd de Vtiger 6 a Odoo, nos interesa la sección de CRM, Oportunidades, calendario, clientes, contactos y así, espero puedas apoyarme, de antemano muchísimas gracias.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s