Software Lab

SageCRM v7.3 – Entidad ‘personas’. Actualizar campo de ficha de empresa al actualizar persona. Tablescripts

Oct
02

Dentro de la funcionalidad avanzada de Sage CRM encontramos un elemento muy útil de programación, basado en javascript, para automatizar las actualizaciones de datos.

Se trata de los tablescripts o scripts de tabla. Se programan en cada entidad (no funcionan con entidades creadas por los usuarios).

Técnicamente son inserciones de código javasript dentro de los eventos del registro

InsertRecord() , PostInsertRecord(), UpdateRecord() , function DeleteRecord()

…y utilizando el API de Sage CRM integrado en el código javascript se pueden realizar por ejemplo procesos como el siguiente:

Modificar un campo de la ficha de empresa al modificar un registro de persona de esa empresa:

function InsertRecord()
{
// Handle insert record actions here
}

function PostInsertRecord()
{
// Handle post insert record actions here
}

function UpdateRecord()
{

var compctext = CRM.GetContextInfo(‘person’,’pers_companyid’);
var complink = CRM.FindRecord(‘company’,’comp_companyid=’+compctext);

while (!complink.EOF)
{
complink.comp_integradox3 = ‘N’;
complink.NextRecord();
}
complink.SaveChanges();

}

function DeleteRecord()
{
// Handle delete record actions here
}

 

SageCRM 7.1 – Automatización de campo texto con valor de campo selección de búsqueda avanzada

Sep
26

Sabemos que el valor que devuelve un campo de selección de búsqueda avanzada es integer, es decir, el identificador del registro de la entidad primaria a la que apunta. El dato de la selección no tiene que pertenecer a la identidad del contexto en el que estamos, por lo tanto no tenemos acceso implícito a sus campos.

Por ejemplo, en un campo de selección de empresa, el valor que devuelve no es el nombre (varchar), sino el identificador (int).

Pero podemos hacer uso de las funciones JavaScript de captura de datos del formulario para que en tiempo real, del lado del cliente, tomemos el texto del campo de selección y lo utilicemos para almacenarlo en otro campo varchar creado por nosotros.

El ejemplo está focalizado en la tabla de presupuestos (Quotes).

Estos son nuestros campos creados:

Ambos campos los hemos ubicado en la cabecera de presupuestos con el propósito de utilizar la entidad de empresa para seleccionar a un comisionista alternativo diferente a la empresa de la oportunidad de ventas en curso.

Al desplegar en el campo ‘Empresa Comisionista’ y seleccionar una empresa el programa rellena automáticamente el campo Empresa con el nombre de la misma.

Tengamos en cuenta que el valor texto no se pude tomar del contexto del presupuesto, que es una empresa diferente, y por lo tanto tiene una complicación mayor pues el dato que se guarda en el campo Empresa Comisionista es un integer.

La pantalla de Resumen de Presupuestos la hemos preparado así:

El script de contenido personalizado:

<script language=»JavaScript»>
window.attachEvent(«onload», seed);
//funciona al entrar al formulario y al modificar el campo de seleccion
function grab(){
var dato;
dato = document.getElementById(«_HIDDENquot_comisionistaTEXT»).value;
return dato;
}
function seed(){
EntryForm.quot_comis_emp.value = grab();
}
</script>

Eso es todo.
Se agradecen comentarios y sugerencias.