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