Settings
Las configuraciones o "Settings" se localizan dentro del Expediente en "Tipo de Expedientes". Dichas configuraciones le permiten realizar funciones lógicas de forma automática según en qué situación o estado se encuentre el Expediente.
En la edición del Tipo de Expediente se incluye la opción para configurar la exportación personalizada y los eventos previos a la carga de un Expediente y al grabado del mismo.
Custom Export
Permite definir una exportación personalizada para el Tipo de Expediente. Para tal fin se utiliza la definición de un objeto Json
{"CustomSPName":"SP_Custom_Export","Columns":
[{"Section":"Header","Header":"TipoLinea:C;Empresa;CodSucursal;Marca;Emisor;FechaDelDia;FechaFactura;Numero;Departamento;TipoDocumento;TipoProveedor"},{"Section":"Items","Header":"TipoLinea:D;ReferenciaDoc;Concepto;ImpTotal;CuentaCliente;CuentaPersonal;Diferencia"},{"Section":"Impuestos","Header":"TipoLinea:I;Codigo;ImporteSinImpuesto;Alicuota"}]}
CustomSPName: es el nombre del store procedure creado para la exportación personalizada.
Columns: corresponde a la lista de objetos que representa las columnas que vamos a exportar. Cada elemento columna a su vez contiene las siguientes propiedades:
- Section: representa un objeto dentro del Tipo de Expediente. Siendo "Header" la sección por defecto que incluye los campos del Tipo de Expediente que no son grilla. Luego para los campos del tipo grilla, debemos colocar aquí el nombre del campo.
- Header: es una concatenación (utilizando “;”) de nombre de campos a exportar en el caso de estar en la sección “Header”. De lo contrario, Nombre de columnas en el caso de estar en una Sección del tipo grilla.
Evento PreLoad
Permite definir un script para realizar validaciones previas a la carga del formulario de Expedientes.
Es útil cuando queremos configurar previamente valores de campos del Expediente, o realizar validaciones enviando los mensajes a la pantalla para que las pueda visualizar el usuario.
Para este tipo de evento solo se puede utilizar TSQL y se realiza de la siguiente manera:
BEGIN
--New or Update
If({cc_LegajoId}=0)
Begin
Select '{"ResultMessage":"", "LegajoName":"", "Fields":[{"RowId":0,"Name":"Total", "Values":[{"Name":"","Value":"102"}]}]}' As Result;
End
Else
Begin
Select '{"ResultMessage":"", "LegajoName":"", "Fields":[{"RowId":0,"Name":"Total","View":"1","Edit":"1","Values":[{"Name":"","Value":"304,3"}]}]}' As Result;
End;
END
Si queremos evaluar un nuevo Expediente ingresará cuando el id de mismo es 0, de lo contrario es para un Expediente existente.
El resultado que devuelve es un objeto JSON donde:
ResultMessage: es el mensaje que se visualiza en pantalla (en caso de dejarlo vacío no se muestra nada).
LegajoName: Si se utiliza, reemplaza el nombre del Expediente con el valor creado aquí. Es útil para dar mayor dinamismo a la inicialización del nombre de un Expediente según los requerimientos particulares de cada cliente.
Fields: es una lista de objetos que representan los campos del Expediente. Los campos cargados aquí serán utilizados para configurar previamente sus valores en el Expediente.
Evento PreSave
Tiene el mismo formato que el evento PreLoad. Es muy útil para realizar validaciones previas al grabado de un Expediente.
En caso de devolver el objeto con un valor establecido en ResultMessage, el Expediente no es grabado y se reporta el error por pantalla.
Adjuntos obligatorios al crear Expediente
Uno de los usos mas comunes del "Presave" es para la realizar la validación de campo completo, en particular para los adjuntos.
BEGIN
If('@pedidoCotizacion' = '')
Begin
Select '{"ResultMessage":"Debe completar el Adjunto Pedido de Cotización", "LegajoName":"", "Fields":[{"RowId":0,"Name":"","View":"","Edit":"","Values":[{"Name":"","Value":""}]}]}' As Result;
End
Else
Begin
Select '{"ResultMessage":"", "LegajoName":"", "Fields":[{"RowId":0,"Name":"","View":"","Edit":"","Values":[{"Name":"","Value":""}]}]}' As Result;
End;
END
Para el uso de este script, debemos modificar en la sentencia IF el nombre del adjunto que queremos validar precedido de "@" (en el caso de ejemplo el tipo de adjunto tiene como nombre "pedidoCotizacion"), para realizar la comprobación.
Si el adjunto no se encuentra cargado, "@pedidoCotizacion" devuelve un campo vacío. Por lo que entra por la primera sentencia y devuelve un mensaje de error que pueden personalizar dentro del "ResultMessage", que en el ejemplo es "Debe completar el Adjunto Pedido de Cotización".
Evento Postsave
Se ejecuta una vez que el Expediente ya se encuentra grabado. Por ejemplo, a la espera de autorizaciones de otros sistemas, solo funciona para tomar acciones una vez que el Expediente es grabado.
BEGIN
END
Evento Tabchange
Al momento de disponer varias solapas en el Tipo de Expediente (Grupos), esta acción permite realizar funciones lógicas al momento de desplazarse: validaciones, eventos, controles.
BEGIN
DECLARE @LeavingTab nvarchar(100) = '{cc_LeavingTab}';
DECLARE @EnteringTab nvarchar(100) = '{cc_EnteringTab}';
--Treat Leaving Tab
If(@LeavingTab!='')
Begin
Select '{"ResultMessage":"", "LegajoName":"", "Fields":[{"RowId":0,"Name":"","View":"","Edit":"","Values":[{"Name":"","Value":""}]}]}' As Result;
End;
--Treat Entering Tab
If(@EnteringTab!='')
Begin
Select '{"ResultMessage":"", "LegajoName":"", "Fields":[{"RowId":0,"Name":"","View":"","Edit":"","Values":[{"Name":"","Value":""}]}]}' As Result;
End;
END
Creado con el Personal Edition de HelpNDoc: Por qué Microsoft Word no está recortado para la documentación: los beneficios de una herramienta de creación de ayuda