Programa para la Fiscalización del Gasto Federalizado (PROFIS) 2015 Herramientas Tecnológicas para apoyar el trabajo de Fiscalización – ACL Avanzado ACL ANALYTICS Ing. Arturo Pérez Cancino Unidad General de Administración Instituto de Capacitación y Desarrollo en Fiscalización Superior Agosto 2015 Herramientas Tecnológicas para apoyar Indice el trabajo de Fiscalización - ACL Avanzado INDICE OBJETIVO .............................................................................................................................................................5 INTRODUCCIÓN ......................................................................................................................................................5 LECCIÓN 1: PROCESO DE AUTOMATIZACIÓN ...........................................................................................................6 ANTECEDENTES ............................................................................................................................................... 6 SCRIPTS ........................................................................................................................................................... 6 GENERACIÓN Y EDICIÓN DE SCRIPT ................................................................................................................... 7 EJECUCIÓN DEL SCRIPT .................................................................................................................................... 8 EDICIÓN DEL SCRIPT DE FORMA MANUAL ........................................................................................................... 9 GRABADOR DE SCRIPTS .................................................................................................................................. 10 SET SAFETY ................................................................................................................................................ 12 CREACIÓN DE UN SCRIPT DESDE LA HISTORIA DE TABLA .................................................................................. 12 SCRIPT DESDE EL LOG................................................................................................................................... 14 LECCIÓN 2: DOCUMENTACIÓN Y CONFIGURACIÓN .................................................................................................16 DOCUMENTACIÓN SCRIPTS ............................................................................................................................. 16 LOG DE COMANDOS ....................................................................................................................................... 16 NOTAS ........................................................................................................................................................... 17 COMANDO COMMENT................................................................................................................................... 19 COMANDOS DE CONFIGURACIÓN ..................................................................................................................... 20 COMANDOS SET ............................................................................................................................................ 20 SET BEEP ................................................................................................................................................ 20 SET DATE ................................................................................................................................................ 21 SET ECHO................................................................................................................................................ 21 SET FOLDER ........................................................................................................................................... 22 SET LOOP .................................................................................................................................................... 23 ACL Analytics -1- ASF - ICADEFIS Herramientas Tecnológicas para apoyar Indice el trabajo de Fiscalización - ACL Avanzado SET SEPARATORS ..................................................................................................................................... 23 CONFIGURACIÓN DEL ACL ............................................................................................................................. 23 LECCIÓN 3: CICLOS EN SCRIPTS AVANZADOS .......................................................................................................35 GRUPO........................................................................................................................................................... 35 GRUPOS SIMPLES ........................................................................................................................................... 36 GRUPOS CONDICIONALES ............................................................................................................................... 38 CLÁUSULA ELSE ........................................................................................................................................... 39 GRUPOS ANIDADOS ........................................................................................................................................ 41 EJERCICIOS DE GRUPOS ................................................................................................................................. 42 COMANDO LOOP ........................................................................................................................................... 43 VARIABLES .................................................................................................................................................... 44 UTILIZACIÓN DE VARIABLES EN GRUPOS .......................................................................................................... 44 TOMA DE DECISIONES EN BASE EN VARIABLES................................................................................................. 45 Variables Fijas .......................................................................................................................................... 45 PARÁMETROS DE ÁMBITO ............................................................................................................................... 45 IF............................................................................................................................................................... 45 WHILE ...................................................................................................................................................... 46 Comando WHILE prueba .......................................................................................................................... 47 APLICACIONES ............................................................................................................................................... 47 Constantes ................................................................................................................................................ 47 Parámetros ............................................................................................................................................... 47 Sustitución de variables ............................................................................................................................ 48 Contenido de registro anterior .................................................................................................................. 48 Cálculos continuos .................................................................................................................................... 48 LECCIÓN 4: SCRIPTS INTERACTIVOS.....................................................................................................................49 ACL Analytics -2- ASF - ICADEFIS Herramientas Tecnológicas para apoyar Indice el trabajo de Fiscalización - ACL Avanzado COMANDO ASSIGN ....................................................................................................................................... 49 COMANDO ACCEPT ...................................................................................................................................... 50 VARIANTES DEL COMANDO ACCEPT .............................................................................................................. 50 COMANDO DIRECTORY ................................................................................................................................ 51 COMANDO LOCATE ...................................................................................................................................... 52 SUBSTITUCIÓN DE VARIABLE ........................................................................................................................... 53 COMANDO PAUSE ......................................................................................................................................... 53 FUNCIÓN RECNO( ) ....................................................................................................................................... 54 UTILIZACIÓN DE VARIABLES ............................................................................................................................ 55 CUADRO DE DIÁLOGO ..................................................................................................................................... 55 CONTROLES EN CUADRO DE DIÁLOGO ............................................................................................................. 56 AGREGAR CONTROLES ................................................................................................................................... 57 CONTROL: MENSAJE DE TEXTO ....................................................................................................................... 58 CUADRO DE EDICIÓN....................................................................................................................................... 59 CASILLA DE VERIFICACIÓN .............................................................................................................................. 60 BOTONES DE RADIO ........................................................................................................................................ 61 LISTA DESPLEGABLE ...................................................................................................................................... 62 LISTA DE ELEMENTOS DEL PROYECTO ............................................................................................................. 63 OTRAS OPCIONES DEL DIÁLOGO...................................................................................................................... 63 SCRIPTS INTERACTIVOS .................................................................................................................................. 64 MANEJO DE ERRORES..................................................................................................................................... 68 LECCIÓN 5: IMPLEMENTACIÓN DE SCRIPTS ...........................................................................................................69 DEFINE ......................................................................................................................................................... 69 DEFINE FIELD.............................................................................................................................................. 69 Campos de Datos ..................................................................................................................................... 69 ACL Analytics -3- ASF - ICADEFIS Herramientas Tecnológicas para apoyar Indice el trabajo de Fiscalización - ACL Avanzado Campos computados no condicionales .................................................................................................... 70 Campos computados condicionales ......................................................................................................... 70 DEFINE RELATION...................................................................................................................................... 71 DEFINE REPORT ......................................................................................................................................... 72 COMANDO DELETE ....................................................................................................................................... 72 COMANDO DO SCRIPT .................................................................................................................................... 73 COMANDO ESCAPE ...................................................................................................................................... 74 COMANDO CLOSE ......................................................................................................................................... 75 TAREAS PROGRAMADAS DE WINDOWS ............................................................................................................ 75 COMANDO QUIT............................................................................................................................................. 75 COMANDO DISPLAY...................................................................................................................................... 76 BIBLIOGRAFÍA .....................................................................................................................................................77 ACL Analytics -4- ASF - ICADEFIS Herramientas Tecnológicas para apoyar Objetivo Introducción el trabajo de Fiscalización - ACL Avanzado Objetivo Aprender las facilidades del software de auditoría ACL Analytics para el diseño y desarrollo y aplicación de rutinas para la programación de procesos. Introducción Este curso de la herramienta ACL Analytics, que sigue siendo la herramienta más utilizada a nivel mundial; recordemos que es una TAAC’s (CAAT’s -Computer Assisted Audit Tools and Techniques) ocupada por los fiscalizadores y auditores. Ahora después de haber trabajado con la herramienta, es el momento de aprender nuevas funcionalidades que te ayudara a agilizar tus procesos de Análisis Electrónico de Datos y comprender los beneficios adicionales que te puede ofrecer el ACL Analytics en la utilización de los Scripts: Automáticos o Semi-automáticos. En ocasiones tenemos la idea de que solo se deben generar procesos automáticos cuando estamos realizando revisiones a la misma entidad, pero se explicará que una de las ventajas de la automatización es que podemos utilizar algún Script (o programa) ya realizarlo y adaptarlo a las nuevas circunstancias. Como el ACL permite acceder virtualmente a cualquier tipo de archivos, no se requiere que el archivo con una estructura en particular, en este curso aprenderemos a acceder otros tipos de archivos. Observaremos a lo largo del curso, que este tipo de revisiones podrán beneficiarnos en disminuir tiempos y ser oportunos en nuestras revisiones. La Auditoría Superior de la Federación pretende con estos cursos que los procesos proporcionen herramientas para coadyuvar en el proceso de revisiones, que día a día tienen que hacer los Auditores de la ASF. . ACL Analytics -5- ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 1: Proceso de automatización el trabajo de Fiscalización - ACL Avanzado Lección 1: Proceso de automatización Antecedentes Una de las grandes ventajas del uso de las herramientas TAAC’s, es poder reutilizar los análisis manuales, con la finalidad de realizar un determinado análisis o producir un reporte determinado, definir un campo o personalizar una vista, con un filtro determinado, etc. El ACL Analytics permite combinar diferentes funciones en una aplicación sofisticada. Comenzaremos por conocer algunos conceptos básicos en las automatizaciones con el ACL: Scripts; Comandos de configuración; Variables; Comandos; y Grupos. Cada función de automatización puede guardarse y reutilizarse individualmente o en combinaciones. Puedes ahorrar tiempo y obtener ganancias de productividad utilizando las funciones de automatización existentes para crear un nuevo análisis. Scripts Un Script almacena una serie de comandos, donde permite ejecutarlos de manera secuencial, repetida, sistemática y automática en su proyecto ACL. Pero también es posible solicitar información al usuario que ejecute el Script, lo que ayuda a cambiar las condiciones cada vez que se ejecute el Script. En el Navegador de proyectos el icono que representa a un Script es: Un Script nos permite analizar datos utilizando una serie específica de comandos, para utilizar el Script más adelante. Cuando creas aplicaciones estándar repetitivas reduces tiempo y recursos en tu proyecto de análisis de datos, solo trabajaras la primera vez. Para diseñar un nuevo Script, debes dedicar tiempo en la planificación, pero lograras ahorrar tiempo y esfuerzos posteriores. En dicha planeación deberás tratar de responder lo siguiente: Explicar con nuestras palabras ¿Cómo funcionara el Script?; ¿Qué datos requieres?; ACL Analytics -6- ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 1: Proceso de automatización el trabajo de Fiscalización - ACL Avanzado ¿De dónde tomaras los archivos fuentes?; ¿Cómo accedes a dichos archivos?; ¿Requiere entradas de datos del usuario?, y en dicho caso ¿cómo se recopilan?; ¿Se pueden presentar errores? y ¿cómo se identifican y trataran?; ¿Quién ejecutará el Script?; ¿Se requiere realizar de manera automática?; y ¿Qué tipos de archivos de salida y / o reportes requerimos generar?. Una buena práctica es realizar esta planeación en conjunto con más fiscalizadores, no es necesario que conozcan el ACL, pero sí que conozcan el procedimiento manual de análisis que se requiere. Generación y edición de script Para realizar un Script, existe más de una forma para hacerlo: Utilizando el Editor de Scripts: Manualmente; Captura de Sintaxis. Utilizando el Grabador de Scripts; A partir de la Historia de Tabla; Utilizando el Log de Comandos. Es importante señalar que los procedimientos para generar expresiones se añaden de forma manual. Si el comando aparece en el Log de Comandos, se puede capturar en un Script. Para iniciar trabajaremos con el Proyecto que se llama "ACL Nivel Avanzado.ACL", que encontrará en la ruta "D:\ACL\ACL_03_Avanzado". Sobre la carpeta llamada b1_Generacion_Scripts, dar clic con el botón derecho, enseguida seleccionar la opción de Nuevo, y finalmente la opción Script...; Se abre una ventana que es el Editor de Scripts; Dar un clic en el icono llamado: Comenzar la captura de sintaxis ACL Analytics -7- ; ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 1: Proceso de automatización el trabajo de Fiscalización - ACL Avanzado Al activarlo, todos los comandos que se ejecuten a partir de este momento, el ACL agrega la sintaxis de cada comando ejecutado; NOTA: No se ejecutan solo se escriben los comandos; Abrir la Tabla llamada Cobranza; Se debe finalizar la captura , con la finalidad de abrir la tabla de Cobranza de forma manual. Al abrirlo se debe volver a Activar la captura de sintaxis ; Realiza un Filtro de todos los Importes negativos, es decir los menores que 0.00; Ejecutar el comando Recuento / Contar Registros..., y dar clic en el botón Aceptar; Ahora realiza el cálculo del total del campo Importe y dar clic en el botón Aceptar; Realizar una extracción tipo registro y guardar la Tabla con el nombre de "Cobranza Importes Negativos"; Finalizar la Captura de sintaxis con el botón ; NOTA: Es importante notar que por este método, todos los comandos, no se van ejecutando en el momento, solo se va guardando los comandos en el Script Por default el nombre del Script se llama Nuevo_Script, y se renombra, llamando el menú contextual sobre el icono de Script Script 01"; , elegir la opción Renombrar, con el nombre "Ejemplo Ahora se cierra la ventana del Script, con el icono guarde los cambios, oprimiendo el botón Sí. . Aparece un mensaje donde se confirma que Ejecución del script Para ejecutar el Script: En el icono del Script llamado Ejemplo_Script_01, dar clic con el botón secundario para abrir el Menú Contextual; Después seleccionar la opción Ejecutar; ACL Analytics -8- ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 1: Proceso de automatización el trabajo de Fiscalización - ACL Avanzado El resultado es: Edición del script de forma manual Para editar el Script se realizan los siguientes pasos: Desde el Navegador del Proyecto, dar doble clic al icono del Script Ejemplo_Script_01; Para cambiar el importe del filtro negativo por valores positivos, lo que se hace es que en la línea que dice: "SET FILTER TO Importe < 0.00", se cambia por "SET FILTER TO Importe > 0.00"; Se cambia el nombre del archivo de salida es decir en la línea que dice: "EXTRACT RECORD TO "Cobranza Importes Negativos" OPEN", cambia la palabra "Negativos" por "Positivos"; Cierra la ventana del Script con el icono , y dar clic en el botón Aceptar. Podemos ejecutar ahora el Script con el nuevo parámetro, pero es importante recordar que al ejecutar el ACL, genera una nueva tabla es decir se presenta la siguiente tabla. ACL Analytics -9- ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 1: Proceso de automatización el trabajo de Fiscalización - ACL Avanzado Ejecutar nuevamente el script. El ACL identifica que el archivo que se está generado existe, por lo que se da clic en el botón Sí, para sobrescribir, tanto el Archivo como la Tabla. Al ejecutarse el script, nuevamente se genera la tabla Cobranza_Importes_Positivos. Nota: Con esta modalidad de construcción de Scripts, puedes inferir que, de haber algún error en el mismo, no te darás cuenta sino hasta que lo ejecutes. Grabador de scripts El Grabador de Scripts nos alerta de los posibles errores en parámetros conforme progresamos en la construcción del Script. Para construir otro Script para la selección de los registros de la tabla Cobranza, de los montos negativos es decir menores a 0.00, los siguientes pasos son: ACL Analytics - 10 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 1: Proceso de automatización el trabajo de Fiscalización - ACL Avanzado Cerrar todas las Tablas y ventanas de resultado que tengas abierta, a través del icono en la parte derecha inferior a la Barra de herramientas; , que está Seleccionar la opción Activar el grabador de scripts del menú Herramientas; Nota que en la parte derecha de la barra de información aparece un icono con movimiento similar al de un Script ; Abrir la tabla Cobranza, desde la ventana del Navegador del Proyecto para abrirlo; Realizar un Filtro de todos los importes menores a 0.00, por cualquier método (filtro rápido o constructor de expresiones); Ejecutar el comando Recuento / Contar Registros..., y dar clic en el botón Aceptar; Ahora realiza el cálculo del total del campo Importe y dar clic en el botón Aceptar; Realizar una extracción tipo registro y guardar la Tabla con el nombre de "Cobranza Negativa"; Ahora elegir la opción Activar el grabador de scripts del menú Herramientas; ACL Analytics - 11 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 1: Proceso de automatización el trabajo de Fiscalización - ACL Avanzado El ACL Analytics solicita el nombre del Script, y se guarda como "Ejemplo Script 02", y dar clic en el botón Aceptar; Para ejecutar el Script, dar clic en el botón derecho en el Script llamado Ejemplo_Script_02 y seleccionar la opción Ejecutar. Nuevamente el ACL, identifica que los archivos que se están generando existen, por lo que deberemos dar clic en el botón Sí, para sobrescribir, tanto el Archivo como la Tabla. Para ver el contenido del Script, dar doble clic en el Script Ejemplo_Script_02. SET SAFETY SET SAFETY permite activar o desactivar las advertencias de cuando el ACL detecta que va a sobrescribir un archivo existente. La sintaxis es la siguiente: SET SAFETY { ON | OFF } La opción ON, activa el aviso cuando trata de sobrescribir archivos, y con la opción OFF no saldrá ningún aviso y sobrescribe de forma automática. NOTA: Esta instrucción se recomienda que se introduzca al final cuando estemos seguros que el Script funciona como nosotros queremos. Creación de un script desde la historia de tabla Uno de los métodos sencillos para realizar nuestros Scripts, es activar la opción de Crear Script de la Historia de Tabla..., directamente del menú Herramientas. Abrir la tabla Grande; Seleccionar del Menú Herramientas la opción Crear script desde Historia de tabla...; Se guarda con el nombre de "Generar Grande" y dar clic en el botón Aceptar; ACL Analytics - 12 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 1: Proceso de automatización el trabajo de Fiscalización - ACL Avanzado Normalmente sugiere el ACL, que guardemos la Vista actual con otro nombre, pero en nuestro caso daremos un clic en el botón Sí. El comando Ver Historia del Archivo, nos explica como generamos la Tabla que tenemos abierta. Pero con la opción de Crear Script desde Historia de tabla..., nos genera un Script en automático, normalmente nos pide que cambiemos el nombre de la vista, tienes dos opciones Renombrar o seleccionar Si para continuar. Además de pedir el nombre del Script. Para ejecutarlo de manera correcta es necesario editarlo. El Script está compuesto de las siguientes líneas de comandos: Es importante que revises el Script, observando si el procedimiento es correcto, en este caso hay que editar el Script y lo harás de la siguiente forma: Entra a editar el Script llamado Generar_Grande; Coloca el cursor al inicio de la primera línea y presiona ENTER, con la finalidad de insertar una línea; Al comenzar a escribir el comando aparece una ventana que me permite seleccionar el comando o parámetros requeridos; Escribe en la primera línea: SET SAFETY OFF; ACL Analytics - 13 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 1: Proceso de automatización el trabajo de Fiscalización - ACL Avanzado NOTA: Ésta instrucción sirve para sobrescribir los archivos sin preguntar A final de la segunda línea que tenga la palabra EXTRACT, agrega la palabra APPEND. Esta cláusula te permite agregar los registros al final de la tabla Grande; Al final del Script en una línea adicional escribe SET SAFETY ON; NOTA: Siempre debes reactivar las advertencias antes de sobrescribir los archivos Una buena práctica es reacomodar las líneas de la forma que se muestra el Script a continuación: Finalizar cerrando el Script a través del icono de la ventana contextual. . Ejecuta el Script, a través del menú En la nueva versión, aparece de forma automática un comentario donde indica que ha concluido la ejecución del Script llamado Generar_Grande. ACL nos muestra en el log todos los comandos usados para crear la Tabla y si se deseas ver el detalle de la acción bastara con dar doble clic sobre el comando. Script desde el LOG Para crear un Script exportando partes del Log basta con ir al Log, marca los cuadros que tienen al inicio de los comandos que deseas copiar y posteriormente con el botón secundario debes seleccionar la opción Exportar elementos seleccionados y después elegirla opción Script. El Log de comandos ofrece un excelente método para crear Scripts. Todos los comandos que se ejecutan en ACL se graban dentro del Log de comandos. Con la posibilidad de guardar partes del Log de comandos como Scripts en ACL. Para crear un Script a partir de entradas en el Log de comandos: En el Navegador del proyecto, dar clic en la ficha Log para mostrar el Log de comandos; ACL Analytics - 14 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 1: Proceso de automatización el trabajo de Fiscalización - ACL Avanzado Marca los comandos individuales que deseas incluir en el Script (deberán de marcarse los cuadros que están del lado izquierdo del comando); Dar clic con el botón derecho del ratón y seleccionar del menú contextual la opción Guardar los elementos seleccionados y en seguida la opción Script; ACL presenta una ventana donde solicita se asigne un nombre al Script en nuestro caso asígnale el nombre de Script del Log; Dar clic en el botón Aceptar. Este script, se guarda en el Navegador del Proyecto en la misma Carpeta que su Tabla actual; Es importante deseleccionar los comandos ya que se quedan seleccionados; Para editar el Script, localiza el Script; Dar doble clic sobre el Script llamado Script_del_LOG en el Navegador del Proyecto en el Editor de Scripts; El Script del Log se vera de la siguiente manera: ACL Analytics - 15 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar el trabajo de Fiscalización - ACL Avanzado Lección 2: Documentación y configuración Lección 2: Documentación y configuración Dentro del Análisis Electrónico de Datos, es muy importante la documentación; es tan importante como cuando realizamos nuestro legajo en nuestras fiscalizaciones y/o auditorias ya que es parte de nuestro respaldo de nuestras revisiones. De la misma forma, es importante documentar de una mejor forma nuestros análisis dentro del ACL Analytics, lo que nos proporcionara ventajas, entre otras: Agilizar revisiones futuras del mismo proceso y área previamente auditada; Coadyuvar en la integración de nuevo personal, ya que contaría con una guía del procedimiento a realizar; Compartir la experiencia con todo el equipo de fiscalizadores y auditores, en ciertos problemas que se suscitaron en la ejecución de sus revisiones; Es un soporte para cualquier aclaración de alguna revisión en particular. La documentación es útil, es una parte integral del Proyecto ACL. El ACL ofrece un alto grado de flexibilidad y control para documentar las etapas realizadas durante el transcurso de un análisis. Documentación Scripts Además de los reportes, ACL puedes agregar comentarios y observaciones sobre su trabajo: Las notas registran comentarios sobre cada Proyecto, Tabla, Vista, Campo, Registro o Script; Utiliza los comentarios en el LOG de comandos para registrar información y observaciones sobre los comandos y sus resultados; Utiliza el LOG de comandos para ver e imprimir un registro de comandos y resultados; Visualiza la información detallada en la historia de tabla; Seleccionar entre las opciones de impresión de documentación para imprimir reportes específicos. LOG de comandos Es la herramienta de documentación más completa en el ACL. El Log registra cada comando que ejecuta y los resultados de cada proyecto en el ACL. En el momento que se crea el Proyecto de ACL se crea a la par, el Log de Auditoría, y continúa registrando todos los comandos ejecutados hasta la fecha actual. ACL Analytics - 16 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar el trabajo de Fiscalización - ACL Avanzado Lección 2: Documentación y configuración La información es acumulativa. En el Log se pueden agregar comentarios siempre al final del Log, además de imprimir y eliminar. Dar clic sobre la pestaña Log del Navegador del Proyecto para visualizarlo. Utiliza el comando Comentario / Agregar Comentario... del menú Herramientas con la finalidad de insertar un comentario o explicación en el archivo de Log de ACL sin afectar su procesamiento o ejecución. El comando permite documentar una sesión incluyendo elementos tales como fines, descripciones y otras explicaciones necesarias. Al terminar de escribir los comentarios, seleccionar el botón Aceptar. Y el comentario ahora aparece en la última línea del Log. Los comentarios pueden contener más de una línea y siempre se agregarán solamente en el Log. Notas Se pueden usar Notas para proveer información acerca de los Proyectos, Tablas, Archivos, Vistas, Campos, Registros o Scripts. A diferencia de los Comentarios las Notas no aparecen en el Log. Las únicas notas que se pueden imprimir son las Notas de Proyectos, con el comando Imprimir contenidos del proyecto..., desde el menú Archivo. Las notas se pueden agregar de las siguientes formas: ACL Analytics - 17 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar el trabajo de Fiscalización - ACL Avanzado Lección 2: Documentación y configuración Notas de Proyecto: Se selecciona el menú contextual en la carpeta principal , entrar Propiedades y enseguida la pestaña Notas; a Notas de Tabla: Seleccionar la Tabla con el Botón derecho la opción de Propiedades, y seleccionar la pestaña llamada Notas y ahí escribe los comentarios; Notas de Vista: En la etiqueta de la Vista con el botón secundario, seleccionar la pestaña llamada Notas y ahí agrega la Nota; Notas a nivel registro: Para escribir las notas se debe llamar el menú contextual en el registro que se desea agregar la nota y seleccionar la opción Editar Nota; ACL Analytics - 18 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar el trabajo de Fiscalización - ACL Avanzado Lección 2: Documentación y configuración Notas de expresiones: Dentro de la opción de Formato de Tabla... del menú de Edición; al momento de seleccionar un campo o una expresión, debes seleccionar el icono de Editar nota de campo . Comando COMMENT Con el comando COMMENT insertas un comentario o explicación en el archivo de log de ACL sin afectar su procesamiento o ejecución. Nos permite documentar un proyecto, incluyendo elementos tales como propósitos, descripciones y otras explicaciones necesarias. Es una buena práctica incluir los comentarios adecuados a fin de ayudar a futuros usuarios, así como agilizar las modificaciones. Estos comentarios se pueden agregar desde el archivo de Log y desde el Script. La sintaxis del comando es alguna de está dos: COMMENT Texto_comentario O cuando agregas más de una línea quedará de la siguiente manera: COMMENT Texto_comentario Texto_comentario ... Dónde: END Texto_comentario: Son los comentarios que agregas, no necesitas agregar las comillas; Nota importante: Cuando agregas comentarios de varias líneas antes del comando END, debes dejar una línea en blanco; Una buena práctica es tener al inicio de todos los Scripts información que nos indique datos generales del mismo Script. Algunos datos que se pueden agregar son los siguientes: Nombre de este script: El nombre asignado del Script; Descripción: Cuál es la funcionalidad de dicho Script; ACL Analytics - 19 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar el trabajo de Fiscalización - ACL Avanzado Lección 2: Documentación y configuración Entrada: Todos los nombres de los archivos que alimentan al Script, en caso de que hubiera, sino lo dejaremos en blanco; Salida: En caso de que el Script genere archivos de salida, debes indicar los archivos que genera, ya sean de ACL, u otro programa; Requerido por: En caso de que lo solicite alguien en particular, en lugar de esta línea podríamos agregar el nombre de la entidad y proceso auditado; Escrito por: Es importante saber quien elaboró el Script original; Fecha: Es la fecha original del Script, cuando se elaboró; Última Modificación: Es la fecha de la última modificación. Comandos de configuración Comandos SET El ACL dentro del Menú Herramientas en la Opción de Configuración, tenemos la oportunidad de realizar cambios en la configuración de forma manual, pero en ocasiones es necesario cambiar ciertos parámetros en tiempo de ejecución de nuestro Script. SET BEEP SET BEEP nos indica la cantidad de bips que se escucharan al terminar una tarea, es decir es una alarma audible. ACL Analytics - 20 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar el trabajo de Fiscalización - ACL Avanzado Lección 2: Documentación y configuración La sintaxis es la siguiente: SET BEEP {0 - 255} Se usa cuando tenemos una tarea que lleve mucho tiempo, y requerimos que al terminar tengamos una señal audible. Podemos señalar el valor desde 0 hasta 255, por default tiene el valor de 0. NOTA: Se recomienda al finalizar el proceso o script regresar el parámetro a 0. SET DATE SET DATE nos permite especificar cómo se mostrarán las fechas en el ACL. Esto es de forma visual en todas las vistas y tablas en los campos tipo fecha. La sintaxis es la siguiente: SET DATE { 0 | 1 | 2 | "cadena" } Los formatos serán de la siguiente forma: Parámetro 0 Formato de Fecha MM/DD/AAAA 1 MM/DD/AA 2 DD/MM/AA "Formato Fecha" Se especifica el formato que deseamos tener en las fechas. Se ocupan las letras asignadas para el día, mes y año. "DD/MMM/YYYY" Solo afecta a los campos de fecha de forma visual de todas las tablas. SET ECHO SET ECHO activa y desactiva el Log de comandos. La sintaxis es la siguiente: SET ECHO { ON | NONE } Además puede utilizarse para ocultar contraseñas o para eliminar detalles de comandos innecesarios del Log de comandos. El valor predeterminado es Activado. ACL Analytics - 21 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar el trabajo de Fiscalización - ACL Avanzado Lección 2: Documentación y configuración Cuando utiliza el comando SET ECHO NONE, el Log de comandos no registra nada hasta que active SET nuevamente. Puede resultar de utilidad cuando realice una prueba prolongada o repita un comando como por ejemplo los comandos DO y DO - WHILE. Quizás no desee registrar todo el resultante de las pruebas y comandos que generan una gran cantidad de resultados en el Log de comandos. Desactivar el Log de comandos implica que los comandos y resultados que no aparecen en el Log no se encontrarán disponibles para una futura revisión. Por lo tanto, recuerde reactivar el Log de comandos. El mejor modo de hacerlo es ingresar los comandos SET ECHO NONE y SET ECHO ON en dos líneas continuas. Luego inserte los comandos que no desea que se registren entre estas dos líneas. Ejemplo: Para desactivar el Log de comandos mientras repite 100 veces una serie de comandos: v_recuento = 0 SET ECHO NONE DO Repetir_script WHILE v_recuento < 100 SET ECHO ON SET FOLDER SET FOLDER nos permite especificar la carpeta de salida para los archivos creados en el Navegador del Proyecto. Por defecto, cuando un comando genera un archivo, ACL coloca el archivo nuevo en la misma carpeta que la Tabla primaria. Después de utilizar el comando SET FOLDER, los archivos que resulten de los comandos subsiguientes que generen una tabla, aparecerán en la carpeta que se especifique. Si la carpeta que especificó no existe, ACL la creará. La sintaxis es la siguiente: SET FOLDER </> SET FOLDER </Carpeta> SET FOLDER </Carpeta/SubCarpeta> La carpeta especifica la ubicación en la estructura en forma de árbol de la carpeta Panorama. Ejemplo: Después de utilizar el siguiente comando, los archivos que resulten de un comando se enviarán a la carpeta “/Tablas/AP” en el Navegador del Proyecto. SET FOLDER /Tablas/AP ACL Analytics - 22 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar el trabajo de Fiscalización - ACL Avanzado Lección 2: Documentación y configuración SET LOOP Debido a que existe la probabilidad de que un script entre accidentalmente en un ciclo infinito. El comando SET LOOP lo evita, interrumpiendo el procesamiento después que se ejecutó el número de comandos especificado para cualquier registro. La sintaxis es la siguiente: SET LOOP TO { 0 – 32767 } Si el máximo se configura en cero se desactiva la prueba de ciclo. El intervalo es 0 a 32767. El valor predeterminado es de 10000. Ejemplo: Para detener el procesamiento si se ejecutan más de 50 comandos para cualquier registro: SET LOOP TO 50. SET SEPARATORS Especifica los caracteres que representan al punto decimal, al separador de miles y separador de lista que utilizar ACL, normalmente se escriben los tres valores seguidos en el siguiente orden: decimal; miles; lista. La sintaxis es la siguiente: SET SEPARATORS TO "Valores" Nota: Una buena práctica es asegurarnos que estos tres parámetros estén siempre correctos, y no tengamos problemas en nuestros scripts. SET SEPARATORS TO " .,," Configuración del ACL La configuración o preferencias del ACL se pueden modificar desde el menú Herramientas y seleccionamos la opción Opciones. Pestaña: Sistema Esta pestaña permite controlar de qué manera se utiliza la memoria para las operaciones de ordenamiento e índice. ACL Analytics - 23 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar el trabajo de Fiscalización - ACL Avanzado Lección 2: Documentación y configuración Pestaña: Interfaz Esta pestaña permite determinar la apariencia básica y el comportamiento del ACL. Opción Incluir filtros en las listas de campos Seleccionada Incluye los filtros y campos lógicos en las listas de campos Muestra una ventana de Avisar antes de sobrescribir advertencia antes de sobrescribir un archivos archivo existente Activar integración del Servidor ACL Bips al completarse la tarea ACL Analytics No Seleccionada Muestra los filtros y campos lógicos en las listas de campos ACL sobrescribe archivos sin solicitar confirmación y sobrescribe Activa conexión al Desactiva conexión al ACL Analytics Exchange ACL Analytics Exchange En esta casilla se indica el número de pitidos que se oirán cuando el ACL termina una tarea - 24 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar el trabajo de Fiscalización - ACL Avanzado Lección 2: Documentación y configuración Pestaña: Tabla Esta pestaña determinar el modo que el ACL manejará las Tablas. Opción Perfil automático al abrir Eliminar archivo de datos con tabla No compartir los formatos de tabla Comparaciones de caracteres exactos Mostrar el formato al abrir Definir archivos planos de forma manual Seleccionada No Seleccionada Cuando un proyecto es abierto, un filtro cambia, o un archivo cambia, automáticamente ACL ejecuta el comando Perfil en todos los campos numéricos en las tablas No ejecuta el comando Perfil Automáticamente borra los archivos ligados a la tabla cuando elimina una tabla Al borrar una tabla el archivo ligado permanecerá en el disco duro Crea un nuevo formato de tabla, cuando un comando del ACL crea una tabla de salida Comparte los formatos de tablas cuando genera una Tabla de salida ACL compara los campos de carácter Las comparaciones de campos de o expresiones que no tienen la misma carácter o expresiones se realizan con longitud realiza la comparación en respecto a su longitud total base a la longitud más pequeña Despliega automáticamente el formato de tabla actual y las definiciones de los campos computados al abrir una tabla No despliega la información del formato de tabla actual ni las definiciones de los campos calculados Al seleccionar ciertas pantallas se omiten del Asistente de Definición de Tablas a partir un archivo plano y completo la definición de datos en la ventana Formato de Tabla Al definir con el Asistente el Formato de Tabla no se salta ninguna pantalla Tamaño del Búfer (k) Especifica el tamaño de los bloques de datos que utiliza el ACL para leer (5 a 255 KB). Por default se tiene 33 KB Memoria para ordenar (MB) (deje 0 para que ACL decida) Se define la cantidad de memoria que se quiere designar únicamente para procesos de Ordenamiento e Indexación (0 a 2000 MB – Incrementos de 20 MB) Criterio de Ordenamiento Indica el orden del criterio de ordenamiento de los campos de carácter, el predeterminado es en base a la Tabla del Código ASCII En caso de seleccionar la opción de personalizar el cuadro de texto podemos definir el orden que requerimos. Por ejemplo: AaBbCc...xXyYzZ ACL Analytics - 25 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar el trabajo de Fiscalización - ACL Avanzado Lección 2: Documentación y configuración Pestaña: Tabla ACL Analytics - 26 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar el trabajo de Fiscalización - ACL Avanzado Lección 2: Documentación y configuración Pestaña: Vista Esta pestaña determina las características de la Vista. Opción Ocultar registros filtrados Mostrar cuadrícula Probar los anchos de columnas Seleccionada No Seleccionada Despliega únicamente los registros que cumplen con el filtro Muestra todos los registros pero los que cumplen con la condición aparece en video inverso La cuadricula se muestra Se oculta la cuadricula en las vistas en las vistas Cuando se modifica alguna columna No preguntara los cambios que se hagan el ancho el ACL preguntará si desea con respecto al ancho de la columna guardar o descartar los cambios Mostrar el borde derecho de la página Muestra una línea punteada para indicar el margen derecho en la impresión No muestra la línea punteada indicando el margen derecho Mostrar datos no válidos como blancos o ceros Reemplaza los datos de caracteres no válidos con espacios en blanco y datos numéricos no válidos con ceros Muestra los caracteres en un campo, aceptando todos los caracteres no válidos en un campo Segundos para volver a dibujar Muestra el tiempo máximo que requiere para volver a dibujar la vista Título de la página global Este valor aparecerá justificado a la izquierda, debajo del número de página en la parte superior de cada página que imprima ACL Analytics - 27 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar el trabajo de Fiscalización - ACL Avanzado Lección 2: Documentación y configuración Pestaña: Comando Esta pestaña determina el modo que ACL ejecuta los comandos. Opción No Seleccionada Seleccionada Comandos de ejecución automática Ejecuta inmediatamente los comandos sin abrir la ventana de dialogo del comando Muestra la ventana de dialogo del comando seleccionado. Nombres de archivos de salida automáticos Sugiere un nombre para cualquier tabla generado por un comando No sugiere ningún nombre Utilizar la tabla de salida Abre la tabla generada por un comando y cierra la que actualmente está en uso Genera la Tabla generada por un comando sin cierra la Tabla que está en uso Mostrar pruebas de grupos en Log Cuando ejecuta un Script, muestra la visualización de los resultados ACL no muestra las pruebas cuando se ejecuta un script grupales como aparecen en el log de comandos Suprimir salida de XML para los resultados de comandos El ACL genera una salida de los resultados de comandos como texto plano Genera la salida de los comandos en formato XML Interpreta los valores de caracteres nulos como un comodín. Un valor nulo es cuando está vacío o No se interpretan los nulos Devolver coincidencias para campos nulos como caracteres nulos no contiene datos Indica el número de intervalos para el comando Intervalos Estratificación o Histograma, los valores son del 1 al 255, el valor predeterminado es 10 Límites de Errores Notificar configuración ACL Analytics Específica el máximo número de errores para ser listados por ACL, si sobrepasa este número dejará de procesar los comandos Secuencia y Verificar, el valor predeterminado es 10 Reintentos Intentos para mandar la notificación vía correo electrónico 0 a 255 veces Intervalos de reintentos (seg) Tiempo en segundos para volver a intentar mandar la notificación vía correo electrónico ( 1 a 255 segundos) Detener el script si falla la notificación En caso de fallar la notificación se detiene el script que se está ejecutando - 28 - Todos los Scripts continuará ejecutándose a pesar de que fallen las notificaciones ASF - ICADEFIS Herramientas Tecnológicas para apoyar el trabajo de Fiscalización - ACL Avanzado Lección 2: Documentación y configuración Pestaña: Comando ACL Analytics - 29 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar el trabajo de Fiscalización - ACL Avanzado Lección 2: Documentación y configuración Pestaña: Fecha y Hora Esta pestaña determina el manejo de las fechas en las Tablas. Opción Descripción Día. Mes. Año Cambia los caracteres "D", "M" o "A", en los cuadros de texto que se identificaran para las formulas y comandos de fecha Formato de fecha Predetermina como se mostrarán todas las fechas de las tablas en todas las vistas Principio del siglo En fechas de dos dígitos en el año, este valor indicara a partir de qué año se debe tomar como del siglo 20 y no del siglo 19. Los valores van del 00 hasta el 99 Períodos de expiración Indica los períodos de expiración que se utilizan en el comando de antigüedad Define las abreviaturas que se utilizaran en los nombres de los meses Abreviaturas de los meses del año con formato MMM, dichas abreviaciones serán de tres caracteres y doce (sin espacios) valores Hora. Minuto. Segundo Cambia los caracteres "h", "m" o "s", en los cuadros de texto que se identificaran para las formulas y comandos de la hora Formato de hora Predetermina como se mostrarán todas los campos que sean del tipo FechaHora en las tablas en todas las vistas Mostrar las horas con desplazamiento de UTC como UTC Cuando está seleccionada, ACL incorpora el desplazamiento de UTC en la parte principal de los datos de hora y ajusta la parte principal de los datos de hora en la cantidad adecuada de horas ACL Analytics - 30 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar el trabajo de Fiscalización - ACL Avanzado Lección 2: Documentación y configuración Pestaña: Fecha y Hora ACL Analytics - 31 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar el trabajo de Fiscalización - ACL Avanzado Lección 2: Documentación y configuración Pestaña: Numérico Esta pestaña determina como maneja los datos numéricos. Opción Interrumpir ante desborde numérico Seleccionada Termina el proceso cuando un desbordamiento numérico (tal como una división entre cero) Verificar datos Valida automáticamente la validez de los datos Datos no válidos en blanco Es habilitada solo si selecciono la opción anterior. Automáticamente cambia los datos inválidos con blancos o ceros en datos inválidos Ancho del campo de expresión No Seleccionada No terminara el proceso en caso de un desbordamiento numérico No realiza la validez de los datos Todos los datos podrán ser mostrados Indica el ancho por default para un campo calculado numérico o expresiones numéricas Separador de miles Indica el carácter para que ACL separe en los números los miles. Por default se utiliza la coma "," Símbolo de posición decimal Indica el carácter que ACL utilizara para separar la parte entera de los decimales. Por default se utiliza el punto "." Separador de Listas Indica el carácter para separar los parámetros de las funciones. Por default se utiliza la coma "," Formato numérico predeterminado Indica el formato predeterminado de los campos numéricos calculados o expresiones ACL Analytics - 32 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar el trabajo de Fiscalización - ACL Avanzado Lección 2: Documentación y configuración Pestaña: Imprimir Esta pestaña determina algunas opciones generales de impresión. Opción Seleccionada No Seleccionada Incluir historia de reportes en los reportes Incluye la historia del archivo en la última página de la impresión No incluye la historia del archivo Incluir definiciones de campos en la historia de tabla Incluye una descripción del formato de tabla, incluyendo los campos calculados y campos No incluye la descripción del formato de tabla Incluir nota de vista en la historia de tabla Incluye en la impresión las notas asociadas a la vista No incluye la impresión de las notas asociadas a la vista Margen: izquierdo, superior, Configura los márgenes de las impresiones de todos los reportes que genera el derecho e inferior ACL ACL Analytics - 33 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar el trabajo de Fiscalización - ACL Avanzado Lección 2: Documentación y configuración Pestaña: Fuente de la aplicación Determina el modo en que se muestran los datos en todas las ventanas, excepto en la ventana Vista. Descripción Fuente de ancho fijo Es la fuente que se utiliza para la información que se muestra en las ventanas formato de tabla, script y área de trabajo Fuente Proporcional Esta fuente se utiliza en vistas, reportes y para mostrar información en la barra de estado, como el nombre de archivo de proyecto, la tabla y el recuento de registros Idioma de versión ACL permite utilizar caracteres estándar o emplear caracteres tailandeses Parámetros de configuración del editor de script Opción ACL Analytics Estilo predeterminado Permite configurar el color, estilo normal, negritas y/o cursivas Color de Fondo Permite configurar el color Estilo de los comentarios Permite configurar: Estilo de los comandos el color, estilo normal Estilo de los parámetros negritas y/o cursivas Estilo de las funciones - 34 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 3: Ciclos en Scripts avanzados el trabajo de Fiscalización - ACL Avanzado Lección 3: Ciclos en scripts avanzados Grupo Es una serie de comandos que son procesados como una unidad en una sola lectura de la tabla. Los grupos aumentan considerablemente la velocidad de proceso y pueden ser usados para procesar tablas con múltiples tipos de registro y para el proceso de datos en archivos complejos de registros variables. Cuando utilizas los Grupos obtienes los siguientes beneficios: Procesa archivos de tamaño variable y complejos de registros variables, en las cuales debes obtener la información contenida en otras partes del archivo para establecer una longitud correcta del registro; Calcula operaciones complejas dentro de un archivo, con información de registros anteriores o realizar cálculos acerca de un número de registros; Procesa archivos con varios tipos de registros. Los únicos comandos que pueden utilizarse dentro de un Grupo son los siguientes: Comando COUNT AGE CLASSIFY DUPLICATES EXTRACT ASSIGN GROUP Comando TOTAL ASSIGN SUMMARIZE GAPS EXPORT COMMENT JOIN Comando STATISTICS BENFORD STRATIFY SECUENCE MERGE REPORT LOOP Comando PROFILE HISTOGRAM CROSSTAB VERIFY LIST Existen tres tipos fundamentales de grupos: Grupos Simples: Estos grupos inician con un comando GROUP seguido, por una serie de comandos y terminando con un comando END; Grupos Condicionales: Procesan comandos en base a una condición que puede ser Verdadera o Falsa; Los registros que no satisfacen la condición de la prueba son ignorados, a menos que, incluya la instrucción Else; Grupos Anidados: Varios comandos incrustados en otro Grupo de comandos. ACL Analytics - 35 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 3: Ciclos en Scripts avanzados el trabajo de Fiscalización - ACL Avanzado El hecho de anidar Grupos permite que se extienda la potencia de los Grupos, asimismo permite controlar cuales comandos se ejecutan en cada registro. Grupos simples Supongamos que queremos ejecutar los comandos: Recuento, Estadísticas, Histograma y Estratificar, para tomar control de los datos en la tabla Inventario. Cerrar todas la tabla abierta; En el Navegador del proyecto dar clic con el Botón secundario sobre la carpeta del curso y después en Nuevo Script; Activa la Captura de sintaxis con el botón ; Abrir la Tabla llamada Inventarios; Con apoyo del botón Grupo , se abre el cuadro de diálogo llamada Grupo; Dar clic en Aceptar. ACL agrega el comando GROUP a la ventana de edición del Script; Ahora ejecuta los siguientes comandos: Recuento; Estadísticas sobre el campo ValorInv; Histograma sobre el campo ValorInv, indicando como Mínimo -10167.60 y como Máximo 100800.00; Estratificar sobre el campo ValorInv, indicando ValorMercado, se deben acumular los campos ValorInv, los valores Mínimo -10167.60 y en Máximo 100800.00. Escribe la cláusula End, para terminar el grupo y dar clic sobre el botón de sintaxis; para detener la captura Para guardar el Script abierto dar clic en la opción Guardar como... del menú Archivo y se teclea el nombre de Grupo 01 Simple: ACL Analytics - 36 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 3: Ciclos en Scripts avanzados el trabajo de Fiscalización - ACL Avanzado Para ejecutar el script seleccionamos el botón ejecutar ; Para comprobar que se ejecutó podemos revisar el Log, para revisar los resultados arrojados por el script. Si abrimos el resultado del comando GROUP, veremos que todos los comandos ejecutados dentro del Grupo, ACL Analytics le asigna un número consecutivo comenzando por el número 2, como se muestra a continuación: Para ver las variables seleccione de la ventana del Navegador la pestaña Log. ACL Analytics - 37 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 3: Ciclos en Scripts avanzados el trabajo de Fiscalización - ACL Avanzado Como se observa hay dos variables COUNT que hacen referencia al número de registros, la primera variable COUNT2 hace referencia al resultado del comando Recuento y COUNT3 hace referencia al resultado del comando Estadísticas. Es decir al nombre de la variable le agrega al final el número asignado dentro del Grupo. Grupos condicionales Por ejemplo para procesar los comandos del Script que acabamos de crear, pero para ejecutar solamente los productos de la Clase menores a 05. Regresamos a la pestaña del script Grupo_01_Simple, oprimiendo la tecla Fin o End, para situar el cursor al final de la tercera línea, tecleando un espacio y enseguida IF Clase < "05". Antes de ejecutar se debe guardar con otro nombre para conservar el primer Script. Guardar este Script con el nombre de Grupo_02_Condicional dando clic en Guardar como... del menú Archivo. Se ejecuta el script que acabas de crear y se presenta la siguiente información: ACL Analytics - 38 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 3: Ciclos en Scripts avanzados el trabajo de Fiscalización - ACL Avanzado Cláusula ELSE Para los registros que no satisfacen la condición establecida se usa la cláusula ELSE, por ejemplo para totalizar el monto de los mismos. Edita el Script llamado Grupo_02_Condicional, posicionando el cursor al principio de la línea que contiene el comando END; Inserta una línea en blanco y pon el cursor en la línea en blanco; Escribir la instrucción ELSE y dar clic en el botón Aceptar; Activa la Captura de sintaxis con el botón ; Seleccionar el comando Total del menú Analizar sobre el campo ValorMercado, y dar clic en el botón Aceptar; Para terminar la captura, debes dar clic sobre el botón , para detener la Captura de sintaxis; Guarda el Script con la opción de Guardar como... desde el menú Archivo como Grupo_03_Condicional_Else; Ejecuta el script y el ACL reporta el total de los registros que no reúnen la condición establecida; ACL Analytics - 39 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 3: Ciclos en Scripts avanzados el trabajo de Fiscalización - ACL Avanzado Ahora entra a editar el script Grupo_03_Condicional_Else Similarmente, se pueden indicar múltiples comandos ELSE, como sigue: Este último Script lo guardamos como Grupo_03_Diversas_Condiciones. Al ejecutarlos se muestran los siguientes resultados: ACL Analytics - 40 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 3: Ciclos en Scripts avanzados el trabajo de Fiscalización - ACL Avanzado Grupos anidados Este tipo de Grupos son grupos incluidos dentro de otros grupos. Los grupos anidados proporcionan un poderoso método para controlar qué comandos se ejecutan para un determinado registro. No es muy común utilizar este tipo de funcionalidad. Como en otros grupos, utilice el comando END para finalizar un grupo anidado. ACL inicia el procesamiento de los datos sólo cuando todos los comandos del grupo se han cerrado. Por ejemplo: GROUP IF Clase < "05" COUNT STRATIFY ON Existencia SUBTOTAL Existencia MIN 0 MAX 100 INT 10 GROUP IF Existencia > 0 STATISTICS ON Existencia END ELSE TOTAL FIELDS Existencia END En ese ejemplo, todos los comandos desde COUNT hasta el próximo GROUP inclusive se ejecutan sólo si la Clase es menor que “05”. El comando STATISTICS (Estadísticas) se ejecuta si la Existencia es mayor que cero. Sin embargo, dado que el segundo comando GROUP está anidado, el comando STATISTICS se ejecuta sólo para aquellos registros que cumplan con las condiciones Clase < "05" y Existencia > 0. ACL Analytics - 41 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 3: Ciclos en Scripts avanzados el trabajo de Fiscalización - ACL Avanzado Ejercicios de grupos Ejercicio: Utilización de Grupos en Scripts Documento ACL: ACL nivel Avanzado.ACL Archivo de datos: Grande_parcial.fil Duración: 20 minutos Propósito: Conocer el manejo de los grupos simples y condicionales. Antecedentes: Se requiere realizar diferentes consultas al archivo de datos Grande_parcial, los requisitos son los siguientes: Ejecuta los comandos necesarios: Para calcular el número de registros, mostrar los datos estadísticos del campo Monto y que realices una suma del campo Monto; Con ayuda de la ventana de comandos, copia los comandos en un Script nuevo; Integra dichos comandos dentro de un grupo; Agregar un Grupo condicional para los indicadores en blanco; Finalmente agrega condiciones para indicadores en blanco, A0, A1, A2 con Grupos Simples. ACL Analytics - 42 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 3: Ciclos en Scripts avanzados el trabajo de Fiscalización - ACL Avanzado Comando LOOP Utiliza el Comando LOOP en el comando GROUP para procesar un registro más de una vez. Los ciclos se utilizan frecuentemente cuando un registro contiene información repetida, algunas veces llamada buckets o segmentos, que desea procesar. Los comandos entre LOOP y END se ejecutan repetidamente en el registro actual hasta que el resultado de la prueba sea falso. La sintaxis es la siguiente: LOOP WHILE Prueba1 Comandos ... END Cada comando LOOP deberá cerrarse con un comando END. Dentro de un ciclo, debe especificar los parámetros WHILE para probar la condición Prueba1. Los Comandos entre LOOP y END se ejecutan repetidamente para el registro actual siempre que el resultado de la Prueba1 sea verdadero. Si el resultado de la Prueba1 es falso inicialmente, los Comandos no se ejecutarán. Para evitar crear un ciclo infinito, asegúrese de que la prueba especificada eventualmente dé como resultado Falso. NOTA: En ACL, un Archivo de Bucket es un archivo cuyos registros contienen bloques repetidos de campos de tamaño y estructura similar. Cada uno de los bloques se denomina bucket. Ejemplo: El siguiente comando LOOP totaliza 100 campos de buckets en un registro, suponiendo que cada bucket tiene cinco bytes (caracteres) de longitud: GROUP v_recuento = 0 v_total = 0 LOOP WHILE v_recuento < 100 v_total = v_total + OFFSET(Monto; v_recuento * 5) v_recuento = v_recuento +1 END END ACL Analytics - 43 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 3: Ciclos en Scripts avanzados el trabajo de Fiscalización - ACL Avanzado Variables Una Variable guarda un valor con un nombre específico. Esta Variable es utilizada en Scripts en lugar de un valor constante. Algunas variables se crean automáticamente por medio de comandos. Variable ABSn AVERAGEn COUNTn GAPDUPn Comando Significado del valor guardado Estadística El valor absoluto del campo numérico Perfil Estadística El valor medio del campo numérico Contar Número de registros contados Estadística Faltantes Duplicados Cantidad total de faltantes y duplicados detectados HIGHn Estadística El enésimo valor más alto LOWn Estadística El enésimo valor más bajo MAXn Estadística El valor más alto encontrado MINn Estadística El valor más bajo encontrado SET FOLDER Ubicación de la carpeta donde se coloca las tablas generadas: OUTPUTFOLDER /Nombre_Carpeta/Nombre_Subcarpeta RANGEn TOTALn Estadística Diferencia entre el valor más alto y el valor más bajo Estadística La suma de los números Total WRITEn Cantidad de registros escritos por un comando con salida a una Tabla Donde n es un valor numérico. Utilización de variables en grupos Los resultados de los comandos al ejecutar Grupos se ubicarán en variables numeradas consecutivamente comenzando desde el 2. El valor de n aumenta en uno por cada comando del grupo. Por ejemplo, si el comando Total es el tercer comando de un grupo los resultados se mantienen en la variable TOTAL3. ACL Analytics - 44 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 3: Ciclos en Scripts avanzados el trabajo de Fiscalización - ACL Avanzado Los usos principales de las variables son: Especificar constantes para utilizar en la aplicación; Proporcionar información especial a ACL, como encabezados de página automáticos y márgenes; Guardar información de registros previos o para otros fines de control. Toma de decisiones en base en variables Es importante señalar que además de las clasificaciones de variables por el tipo de datos que guardan existe un tipo de variable, que su uso es muy importante en el ámbito de los Scripts, esta es la Variable Fija. Variables Fijas Todos los valores de las Variables, que se calculan internamente, tanto las definidas en los Scripts y las variables creadas por el ACL, se borran cuando cerramos el Proyecto de ACL o cerramos el ACL. Pero existe una forma en que algunas Variables queden fijas dentro del Proyecto de ACL, y la única variante es que en el nombre de la variable debemos iniciar el nombre con un guión bajo "_", un ejemplo de una variable fija es: _Nombre_Archivo Otra de las aplicaciones directas de las Variables, es que dependiendo de los valores de las Variables, podemos hacer que ejecute determinados comandos dependiendo de dichos valores. Para ello los parámetros de ámbito que nos ayudarán son los siguientes: Parámetros de ámbito IF El IF permite especificar una condición que debe cumplirse a fin de que se ejecute el comando siguiente. La condición se aplica al comando completo y debe cumplirse para que el comando siga procesándose. Sintaxis: IF Prueba comando Expresión ACL Analytics - 45 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 3: Ciclos en Scripts avanzados el trabajo de Fiscalización - ACL Avanzado El comando IF evalúa la prueba cuando ACL encuentra el comando por primera vez. Si la prueba se evalúa como verdadera, el comando siguiente se procesa. Si el resultado de la prueba es falso, ACL ignora el resto del comando. En un Script, puedes ingresar una serie de pruebas de comando IF y ejecutar diferentes comandos de acuerdo con el resultado. El comando IF resulta de gran utilidad para probar una Variable para determinar si un archivo se procesará. Cualquier comando válido de ACL puede seguir la prueba. Ejemplo: Para realizar un comando Clasificar, pero sólo si la variable v_Recuento es superior a diez, la instrucción es la siguiente: IF v_Recuento > 10 CLASSIFY ON Número_Cliente Supongamos que tenía un comando DIALOG anterior, con una casilla de verificación que crea la variable v_Clasificar_Casilla de verificación (para que el usuario pueda seleccionar que la casilla de verificación muestre el comando Clasificar). Puede utilizar el siguiente comando para ejecutar el comando Clasificar, si fuera necesario: IF v_Clasificar_Casilla CLASSIFY ON Número_Cliente WHILE WHILE es un parámetro de ámbito que permite la ejecución de un comando siempre que una condición sea verdadera. WHILE determina que el procesamiento de comandos termine tan pronto como la prueba especificada lo evalúe como falso, o cuando se llegue al final de la tabla. WHILE depende de la posición actual del registro. Para comenzar el procesamiento, el registro actual debe evaluarse como verdadero. WHILE se utiliza por lo general con bloques de elementos, donde la condición se evalúa como verdadera. Si se llega al final de la Tabla durante la ejecución, la posición de registro se restablecerá en el registro 1. WHILE también puede utilizarse junto con IF, NEXT o FIRST. Después de ejecutar un comando que contenga WHILE, IF o FIRST, el parámetro WHILE determina la posición del registro. Después de la ejecución de un comando en el que están especificados tanto WHILE como NEXT, la posición del registro se determina por la primera de las dos cláusulas que finaliza el procesamiento. ACL Analytics - 46 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 3: Ciclos en Scripts avanzados el trabajo de Fiscalización - ACL Avanzado NOTA: Dado que WHILE puede hacer que el procesamiento se interrumpa anticipadamente, no puede especificarse dentro de un Grupo, aunque puede utilizarse en el comando GROUP Externo. Comando WHILE prueba En el siguiente ejemplo, el comando COUNT se ejecuta si Clase_producto tiene el valor de 07: COUNT WHILE Clase_producto = "07" Cuando el comando no pasa la prueba WHILE, el procesamiento se interrumpe y la posición del registro se establece en el primer registro que no pasa la prueba. Aplicaciones Las aplicaciones principales de las variables de forma general son: Para especificar constantes que se utilizan en la aplicación; Para proporcionar información especial al ACL, como por ejemplo márgenes y encabezados de página automáticos; En las aplicaciones tales como los grupos, para retener información de registros anteriores, o para otros fines de control. Existen muchas otras posibilidades para utilizar variables que descubrirá rápidamente a medida que comience a utilizarlas. Constantes Una Variable puede tener el valor de una Constante. Por ejemplo, este valor al guardarlo nos permite utilizarlo a lo largo de todos los procedimientos, y en cualquier momento puedes cambiar el valor de la Variable. Parámetros Las Variables también resultan de utilidad para retener Parámetros. Los Parámetros a menudo se ingresan en Scripts utilizando el comando Aceptar, que permite crear un Script en el que los comandos permanecen iguales y sólo los valores de las Variables cambian a medida que se requieren los diferentes parámetros. ACL Analytics - 47 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 3: Ciclos en Scripts avanzados el trabajo de Fiscalización - ACL Avanzado Sustitución de variables Puede sustituir una Variable en un comando en lugar de una Constante. Contenido de registro anterior El uso de Variables para almacenar el contenido de registros anteriores puede ser muy efectivo cuando se procesan archivos con Múltiples tipos de registros. Como el contenido de los Campos de datos cambia cada vez que pasa a un nuevo Registro, puedes asignar el valor a una variable si deseas retenerla mientras se procesan otros Registros. La función RECOFFSET( ) te permite conocer valores de campos, en función al registro actual del número de un cierto número específico. La sintaxis de la función es: RECOFFSET(Campo, número_de_registros) Dónde: Campo: es el nombre del campo desde el que se recupera un valor; Número_de_registros: especifica el número de registros del registro actual. Un número positivo especifica el registro posterior al registro actual; un número negativo especifica el registro anterior al registro actual. Cuando el número de registros es negativo tomará los registros anteriores, por ejemplo si tienes la función RECOFFSET(Importe, -3), en el registro 7 tomará el valor del campo Importe del registro 8. En cambio si la expresión RECOFFSET(Fecha, 4) en el mismo registro 10, tendremos que nos dará el valor de la fecha del registro 17. Cálculos continuos En algunos casos, es posible que necesites realizar cálculos que abarquen una gran cantidad de registros o incluso una Tabla completa. Por ejemplo, puedes utilizar variables para totalizar las cantidades detalladas en una factura y luego asegurar que el total de la factura concuerde con la suma de los detalles. Asimismo, si desea un total de toda una Tabla, puedes utilizar una Variable y actualizarla con el contenido de cada Registro. ACL Analytics - 48 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 4: Scripts interactivos el trabajo de Fiscalización - ACL Avanzado Lección 4: Scripts interactivos Para crear Scripts Interactivos, necesitas algunos comandos como los comandos ASSIGN y ACEPT que los utilizaremos con Sustitución de Variables. Nos permite personalizar nuestros Scripts con Ventanas de Diálogos, y que pueden ser construidos con entradas para usuario de forma interactiva. Una Variable guarda temporalmente datos numéricos, de carácter, de fecha o lógicos. Estos valores pueden establecerse y cambiarse a voluntad, de acuerdo a las necesidades que se requieran. Comando ASSIGN Podemos guardar valores en variables usando el comando ASSIGN. Puedes usarla como un comando individual o como parte de un Grupo. El comando tiene la siguiente sintaxis: ASSIGN Nombre_Variable = Expresión <IF Prueba> Dónde: Nombre_Variable: En este punto deberemos dar un nombre específico a dicha Variable. Pero debemos apegarnos a la convención de la nomenclatura requerida por ACL para el nombre de Campo o nombres de Expresiones; Expresión: Puede ser cualquier expresión válida en ACL, estas pueden incluir constantes numéricas, cadena de caracteres o lógicas; <IF Prueba>: La Expresión puede ser condicionada. Lo que permite es que solo cambiara el valor de la Variable cuando la Prueba sea verdadera, en caso contrario permanecerá el valor que tenía en un inicio. Algunas de las características del comando ASSIGN: Las Variables son dinámicas (pueden cambiar); Cuando cerramos el proyecto o el ACL, dichas Variables desaparecen, excepto las Variables permanentes; Si volvemos a utilizar el comando ASSIGN, para una variable existente el contenido de las Variables se actualizan; ACL Analytics - 49 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 4: Scripts interactivos el trabajo de Fiscalización - ACL Avanzado Una buena práctica, es que cuando utilizamos en un Script Variables, se deben reiniciar todas las variables al iniciar el Script para asegurar el buen funcionamiento del mismo. Comando ACCEPT El comando ACCEPT es otra forma de guardar valores en Variables. Está diseñado para utilizarlo en los Scripts o directamente sobre la Línea de Comandos. El comando tiene la siguiente sintaxis: ACCEPT "Mensaje" TO Nombre_Variable Dónde: Mensaje: Es una frase rodeada entre comillas, dicho mensaje será desplegado en una ventana; Nombre_Variable: Este comando le pide al usuario introduzca información que se deposita en dicha variable de texto; Algunas de las características del comando ACCEPT: Cuando se utiliza este comando el ACL, realizará una pausa hasta que responda el usuario desde el teclado; En cuanto el usuario responde se guarda el Valor escrito en una Variable; Par utilizar las Variables Numéricas debes ocupar la función VALUE( ), para que el contenido de la variable convertirlo en campo numérico; Al usar Variables de FechaHora, debes ocupar la función CTOD( ), para que el contenido de la variable lo conviertas en campo FechaHora. Es posible solicitar más de un dato en un mismo comando ACCEPT. Variantes del comando ACCEPT El comando ACCEPT permite insertar menús de listas desplegables para seleccionar campos o expresiones de tipo Carácter, Numérico, FechaHora, Lógicos, Variables, Tablas, Scripts, Vistas, etc. Todo esto en lugar de solicitar la información de manera manual. Esta variante del Comando tiene la siguiente sintaxis: ACCEPT "Mensaje" FIELDS "Tipos_de_Campos" TO Nombre_Variable ACL Analytics - 50 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 4: Scripts interactivos el trabajo de Fiscalización - ACL Avanzado Dónde: Mensaje: Es una frase rodeada con comillas, dicha frase será desplegada en una ventana; CAMPOS: Este parámetro permite que la caja de texto sea reemplazado por un menú dropdown con nombres validos; Nombre_Variable: Este comando guarda la información que seleccionar el usuario y la deposita en dicha variable; Tipos_Campos: Especifica qué tipos de valores se desplegaran: Tipo de contenido Campos Variables Carácter C c Numérico N n Lógico L L FechaHora D d Mostrado Otros Scripts xb Tablas xf Índices xi Vistas y Reportes xr Áreas de Trabajo xw Comando DIRECTORY Utiliza el comando DIRECTORY para generar una Tabla con el directorio de archivos y carpetas almacenadas en disco. En la Tabla también informa sobre las propiedades de los archivos (el tamaño, los atributos, las fechas, la hora y el recuento total de archivos de la lista de archivos de cada carpeta). En un Script, permite interactuar con el sistema de archivos. En una aplicación por Script avanzada, por ejemplo, puede utilizar el comando DIRECTORY junto con otros comandos para detectar la presencia o la ausencia de archivos, verificar el tamaño de un archivo o tomar decisiones basándose en otras propiedades de los archivos. El comando DIRECTORY, que puede abreviarse como "DIR", debe ingresarse como una sola línea en la Línea de comandos o en un Script. ACL Analytics - 51 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 4: Scripts interactivos el trabajo de Fiscalización - ACL Avanzado La sintaxis del comando es la siguiente: DIRECTORY Ruta_archivo <SUPPRESS> <SUBDIRECTORY> <APPEND> <TO Nombre_tabla> Dónde: Ruta_archivo: Es la ruta y tipo de archivo. Se puede utilizar el carácter comodín asterisco. Tienes tres formas para especificar la carpeta donde quieres validar el directorio: Ruta relativa: Abc\*.*; Ruta completa: C:\Carpeta01\SubCar\*.*; Sin Ruta: Muestra los archivos en base a la carpeta de trabajo de ACL. SUPPRESS: Desactiva la ruta en el Nombre del Archivo, por lo que sólo muestra los nombres de los archivos y sus propiedades; SUBDIRECTORY: Puede abreviarse como "SUB" y hace que también se creen reportes de todas las subcarpetas que se encuentran por debajo de la carpeta especificada; APPEND: Es un parámetro que agrega la salida producida por un Comando al final de un archivo existente en lugar de sobrescribirlo; TO Nombre_tabla: Especifica el nombre de la Tabla en la que se escriben los datos. En caso de no utilizar esta sección en el comando el resultado se mostrará directamente en una ventana de resultados llamada Directorio. Comando LOCATE Utiliza el comando LOCATE para pasar al registro requerido o al primer registro de una Tabla que cumpla una condición especificada. La búsqueda siempre se inicia en el primer registro (a menos que se usen los parámetros de ámbitos WHILE o NEXT en el comando) y no depende de ningún campo clave predefinido. El comando LOCATE RECORD es un método rápido para pasar a un número de registro específico en una Tabla; El cuadro de diálogo de este comando se localiza en el menú Datos, se selecciona la opción Buscar; La sintaxis del comando se puede utilizar cualquiera de las siguientes: LOCATE <IF Prueba1> <WHILE Prueba2> <FIRST | NEXT intervalo> ACL Analytics - 52 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 4: Scripts interactivos el trabajo de Fiscalización - ACL Avanzado LOCATE RECORD n Dónde: IF Prueba1: Busca el primer registro que cumple la condición de Prueba1; WHILE Prueba2: Permite la ejecución del comando mientras que la condición Prueba2 sea verdadera; FIRST intervalo: Es un parámetro de ámbito que permite ejecutar el comando en un número consecutivo de registros, comenzando en el registro 1. No depende de la posición actual; NEXT intervalo: Es un parámetro de ámbito que permite ejecutar el comando en un número consecutivo de registros, comenzando a partir del registro actual. Depende de la posición actual; n: es el número de registro que se debe localizar. Substitución de variable Las variables creadas por cualquiera de los comandos ASSIGN o ACCEPT, pueden ser utilizadas en la Substitución de variable. Es simplemente la substitución de los contenidos de las variables dentro de un comando en lugar del nombre de campos, constantes o valores. Esta variante del comando tiene la siguiente sintaxis: ... %Nom_Variable% ... Dónde: %Nom_Variable%: Se identifica por una variable encerrada entre signos de porcentaje (%). Cuando encontramos en un comando, la Substitución de variable (en lugar de su nombre) tomará en ese momento el valor que en ese momento tenga la variable. Son usadas particularmente cuando no pueden ser usadas directamente. ACCEPT "Introduce el nombre de la tabla:" TO Nombre_Archivo OPEN %Nombre_Archivo% En este caso, cuando el usuario teclea el Nombre de la Tabla correctamente, la Tabla correspondiente se abrirá. Lo anterior, debido a que en la segunda línea este comando permite abrir una Tabla, que tiene el nombre del contenido de la variable tecleada previamente. Comando PAUSE Este comando PAUSE se utiliza para crear un comando personalizado como un mensaje de error o una explicación de entrada. ACL Analytics - 53 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 4: Scripts interactivos el trabajo de Fiscalización - ACL Avanzado Muestra un mensaje o un aviso mientras se ejecuta un Script. El comando PAUSE no se debe incluir dentro de un Grupo. La sintaxis del comando es la siguiente: PAUSE "Mensaje" <IF Prueba> Dónde: Mensaje: Es una cadena de caracteres que queremos mostrar y se escribe entre dobles comillas, es posible mostrar hasta 200 caracteres; <IF Prueba>: Permite desplegar el mensaje siempre y cuando se cumpla cierta condición ( Prueba ). Para mostrar un mensaje en un Script, ingrese el comando siguiente: PAUSE "Este es un mensaje generado con el comando PAUSE" Este comando va ajustado el texto en la ventana creada. Función RECNO( ) La función RECNO( ) devuelve el número de registro lógico actual, contando desde 1. Utilice RECNO( ) para enviar los números de registro a una Tabla o para determinar la ubicación relativa de un registro determinado en una Tabla. La sintaxis de la función es la siguiente: RECNO( ) Si la Tabla no se encuentra indexada, RECNO( ) comienza con el valor 1 y va aumentando de uno en uno para cada registro de la Tabla. Si la Tabla se encuentra indexada, RECNO( ) se maneja de manera similar, pero en un orden lógico, pero no físico. Ejemplo: Si seleccionamos el registro 99: RECNO( ) = 99 ACL Analytics - 54 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 4: Scripts interactivos el trabajo de Fiscalización - ACL Avanzado Utilización de variables En ACL Analytics, una variable es similar a un Campo, con una diferencia, su valor sólo cambiará si usted la altera o la elimina, con excepción de las variables que comienzan con guión bajo, las cuales conservan su valor incluso si usted sale del ACL. El uso de Variables es un método efectivo para almacenar información de un registro para utilizarla en registros relacionados posteriormente. Las Variables también permiten que los valores se acumulen para un conjunto de registros relacionados. Al igual que los Campos, las Variables se pueden eliminar, renombrar, exportar, extraer y utilizar en cualquier lugar donde sea válido un nombre de campo. Algunas Variables son creadas automáticamente por los comandos. Por ejemplo, imagine que tiene una Tabla de transacciones de Cobranza ordenada por el campo Cliente. Se requiere crear un campo que acumule el Importe, por cada Cliente. Finalmente se debe guardar en una Tabla nueva llamada Acumulado_x_Cliente. OPEN Cobranza v_Cliente v_Cliente_Importe = Cliente = 0.00 GROUP IF v_Cliente = Cliente v_Cliente_Importe = v_Cliente_Importe + Importe EXTRACT v_Cliente Importe v_Cliente_Importe TO "Acumulado_x_Cliente.fil" ELSE v_Cliente_Importe = Importe v_Cliente = Cliente EXTRACT v_Cliente Importe v_Cliente_Importe TO "Acumulado_x_Cliente.fil" END OPEN Acumulado_x_Cliente Este Script se debe guardar como Generar_Totales. Cuadro de diálogo Con la finalidad de no estar editando el Script cada vez que requerimos nuevos parámetros, podemos escribirlo de tal manera que solicite al usuario datos requeridos. Para ello utilizamos el Cuadro de diálogo, el cuál controla la ejecución del Script pidiendo al usuario que introduzca datos y /o realice selecciones. Un buen Tip, es que antes de personalizar el Cuadro de diálogo, se deben tomar en consideración las siguientes preguntas: ACL Analytics - 55 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 4: Scripts interactivos el trabajo de Fiscalización - ACL Avanzado ¿Qué deseo que haga el Script?; ¿Necesito cuadros de diálogo personalizados para este Script?; ¿Dónde y cómo pueden aumentar la capacidad de uso?; ¿Cuál es la funcionalidad los cuadros de diálogo personalizados?; ¿Qué información recopilarán los Cuadros de diálogo personalizados?; ¿Dónde y cómo se utiliza la información recopilada?; ¿Cuáles son los posibles errores que puede encontrar en el Script y cómo los resuelvo?; ¿Quién será la persona o personas que ejecuten el Script?. Estas preguntas, permiten concentrarse primero en la funcionalidad del Script y al final la interfaz del usuario. Controles en cuadro de diálogo Un cuadro de diálogo permite personalizar una ventana que interactúa con el usuario final del Script, lo que permite que cualquier usuario pueda utilizar los scripts de una forma más sencilla. El cuadro de diálogo permite incluir algunos elementos de los seis controles que permiten personalizar el cuadro de diálogo de una forma profesional. La apariencia nos dará la apariencia que un programador realizo las ventanas personalizadas. Los seis controles que existen son: Mensaje de Texto: Agrega un texto estático con la finalidad de informar al usuario. Tiene una longitud máxima de 250 caracteres ; Cuadro de Edición: Crea un área para que el usuario introduzca datos. Este control crea una variable de texto ; Casilla de Verificación: Este control crea una variable lógica, que indica valor verdadero si la casilla de verificación está seleccionada, y valor falso en caso de que no esté activa ; Botones de Radio: Presenta diversas opciones donde sólo puede seleccionarse una opción. Ese control crea una Variable numérica ; Lista Desplegable: Crea una Lista desplegable con elementos definidos. Este control crea una Variable de carácter, contiene el texto del elemento seleccionado ACL Analytics - 56 - ; ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 4: Scripts interactivos el trabajo de Fiscalización - ACL Avanzado Lista de elementos del proyecto: Crea una Lista desplegable de los elementos que se encuentran en el Proyecto ACL . Crea una Variable de carácter; Podrá mostrar una o más definiciones, incluyendo: Campos de Caracteres, Numéricos, Lógicos o de FechaHora; Variables de Caracteres, Numéricas, Lógicas o de FechaHora; Tablas; Scripts; Vistas; Áreas de trabajo; Índices. Agregar controles Para crear nuestro Cuadro de Diálogo, debemos editar el Script, y para agregar el Cuadro de Diálogo damos un clic en el icono que dice Crear nuevo diálogo. La siguiente ventana me permite personalizar el Cuadro de Diálogo Usuario. En la parte izquierda aparecen los seis controles. ACL Analytics - 57 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 4: Scripts interactivos el trabajo de Fiscalización - ACL Avanzado El procedimiento para agregar y editar los Controles en el Cuadro de Diálogo es el siguiente: Primero debes dar clic en el Botón del control que queramos agregar; Mueve el ratón a la zona delimitada. Observa que el cursor cambia a una caja con un signo de cruz en la parte superior izquierda; Dar clic en la zona delimitada, se requiere posicionar la parte superior izquierda del control. ACL mostrara la ventana de diálogo de edición del control para el tipo de control que has seleccionado; Se introducen los parámetros para dicho control, concluyendo al dar clic en el botón Aceptar; Si se desea volver a editar, solamente se da doble clic sobre la sección donde se encuentra el control, aparecerá la ventana para configurar; Para acomodar y ajustar cualquier control, es posible arrastrarla hasta que se ubiquen en la posición deseada. Así mismo el Cuadro de Diálogo, para hacer más grande, coloca el cursor en la parte inferior de la ventana , y arrástrala hasta ajustarla al tamaño deseado. Control: Mensaje de texto En el Constructor de Diálogos, entra con el icono En la ventana de diálogo de edición del control de Mensaje de Texto, nos permite: Introducir el texto o mensaje que solicitara la información en la caja de texto; La posición y tamaño de los controles ( en Pixeles ); La alineación de los botones de control el lugar del texto dentro de la caja de texto; Mantiene mensajes cortos y claros hasta 250 caracteres incluyendo espacios. NOTA: Píxel es el elemento más pequeño de una imagen gráfica. Es la abreviatura de Picture Element, es un único punto en una imagen gráfica. ACL Analytics - 58 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 4: Scripts interactivos el trabajo de Fiscalización - ACL Avanzado Cuadro de edición En el Constructor de Diálogos, entra con el icono . En esta ventana de diálogo de edición del control de Cuadro de edición, nos permite: Esta entrada es para capturar una Variable Tipo Carácter; El contenido de la Variable puede ser utilizado como un parámetro por un comando posterior en el ACL, utilizando la Substitución de Variables; El nombre por default del contenido de la variable aparece como EDIT1; El texto predeterminado es el valor que aparecerá en un inicio, y se utiliza para auxiliar al usuario final; La posición y tamaño de los controles (en Pixeles). ACL Analytics - 59 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 4: Scripts interactivos el trabajo de Fiscalización - ACL Avanzado Casilla de verificación En el Constructor de Diálogos, entra con el icono . En esta ventana de diálogo de edición del control de Casilla de Verificación, las características son: El control captura una Variable Tipo Lógica (Verdadero / Falso): El parámetro por default se define en las opciones de estado inicial, esto es si está en Desactivado será Falso (F), y si está en Activado la variable será Verdadero (T); Esto pasa en tiempo de ejecución si se marca la casilla el valor de la variable será Verdadero (T) y si se deja sin marcar será Falso (F); La Etiqueta especifica el texto que se mostrará a la derecha de la Casilla de Verificación; El nombre por default del contenido de la variable aparece como CHECKBOX1; La posición y tamaño de los controles (en Pixeles). ACL Analytics - 60 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 4: Scripts interactivos el trabajo de Fiscalización - ACL Avanzado Botones de radio En el Constructor de Diálogos, entra con el icono. Nos permite: Este control genera un grupo de Botones en el Diálogo, que se puede configurar desde uno ó más botones; Esta entrada es para capturar una Variable Tipo Numérico. Este es el valor seleccionado a partir del 1 en adelante; La Lista de Etiquetas contiene las posibles elecciones diseñadas para el Cuadro de diálogo. Etiqueta especifica el texto que se mostrará a la derecha del botón de radio; El nombre por default del contenido de la variable aparece como RADIO1; La posición y tamaño de los controles (en Pixeles); Los botones se pueden alinear de forma Horizontal o Vertical; En la Etiqueta nos permite ir agregando valores a la Lista de Etiquetas así como definir el Valor predeterminado. ACL Analytics - 61 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 4: Scripts interactivos el trabajo de Fiscalización - ACL Avanzado Lista desplegable En el Constructor de Diálogos, entra con el icono . En esta ventana de diálogo de edición del control de Lista Desplegable, nos permite: Esta entrada es para capturar una Variable Tipo Carácter. Esta variable guarda el valor del seleccionado en la Lista Desplegable; La Lista de Etiquetas contiene las posibles elecciones diseñadas para el Cuadro de diálogo; En la Etiqueta nos permite ir agregando valores a la Lista de Etiquetas así como definir el Valor predeterminado. El límite es de 250 Caracteres incluidos espacios por lista desplegable; El nombre por default del contenido de la variable aparece como DROPDOWN1; La posición y tamaño de los controles (en Pixeles). ACL Analytics - 62 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 4: Scripts interactivos el trabajo de Fiscalización - ACL Avanzado Lista de elementos del proyecto En el Constructor de Diálogos, entra con el icono . Nos permite: Muestra una lista de elementos que son parte del Proyecto activo de ACL; Puedes seleccionar uno o más características de elementos, por ejemplo: los campos y variables: tipo carácter, numéricos, lógicos o de fecha; Tablas, Scripts, Vistas, Áreas de Trabajo, e Índices; Esta entrada es para capturar una Variable Tipo Carácter. Esta variable guarda el valor del seleccionado en la Lista de Elementos del Proyecto; En la casilla Predeterminado, se especifica cuál elemento es el default por cada Categoría seleccionada (solo un valor predeterminado); La Lista de Categorías contiene las restricciones de los elementos que el usuario podrá elegir; El nombre por default del contenido de la variable aparece como ITEM1; La posición y tamaño de los controles (en Pixeles). Otras opciones del diálogo La opción de Ajustar a la Cuadrícula puedes acceder con el icono de diálogos. ACL Analytics - 63 - , es útil para la alineación ordenada ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 4: Scripts interactivos el trabajo de Fiscalización - ACL Avanzado Para cambiar el Título de la caja de diálogos, debemos dar doble clic en cualquier parte del fondo del Cuadro de Diálogo y se abre una Ventana donde podemos editar el Título. Para editar un Diálogo generado, se debe primero colocar el cursor en cualquier parte del comando del Dialogo (siempre comienza con la palabra DIALOG); en seguida deberemos dar clic en el icono de Editar el comando . NOTA: También es posible editar el Diálogo directamente modificando sobre la línea del comando en la Ventana del Script, pero no es recomendable, debido a que necesitaríamos comprender la sintaxis de cada control del Cuadro de Diálogo. Scripts interactivos En lugar de editar el Script cada vez que lo ejecutemos, podemos estructurarlo de tal manera, que solicite la información requerida. Vamos a modificar un Script y aprender cómo cambiarlo de una forma Interactiva: Desde la ventana del Navegador del Proyecto, dar doble clic en el Script llamado Ejemplo_Script_01. Cuando abras el Script inserta una línea en blanco al principio; Con el cursor en la línea en blanco, dar clic en el siguiente icono la parte superior izquierda de la ventana; que se encuentra ubicado en Se abre la ventana Cuadro de Diálogo Usuario; ACL Analytics - 64 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 4: Scripts interactivos el trabajo de Fiscalización - ACL Avanzado Ajusta el cuadro de diálogo utilizando el cursor desde la esquina inferior derecha arrastrando el cursor; Dar clic en el icono y después clic en cualquier parte del área punteada; Escribir en la caja de texto el mensaje siguiente: "Seleccionar el archivo deseado"; Presionar el botón Aceptar; Dar clic en el icono ; Dar clic en cualquier parte del área punteada. El objetivo es crear una Lista Desplegable que contenga todas las tablas para poder seleccionar cualquier archivo. La ventana que aparece inmediatamente es la siguiente: Dar clic aquí Nombre de la variable Dar clic en la flecha del combo que tiene como leyenda Categoría y seleccionar Tablas de la Lista Desplegable que se muestra dando un clic sobre esta. Es importante visualizar que el nombre de la variable es "ITEM1"; Presionar el botón Agregar, enseguida dar clic en Aceptar; Cierra la ventana de diálogo, dar clic en el icono derecha; ACL Analytics - 65 - que se localiza en la parte superior ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 4: Scripts interactivos el trabajo de Fiscalización - ACL Avanzado Se guardan los cambios; Para abrir la tabla seleccionada es necesario modificar la segunda línea con el siguiente comando: OPEN %ITEM1% Al finalizar la línea DEFINE REPORT Vista_predeterminada inserta una línea con un clic en ENTER o INTRO; Vuelve a presionar el icono para crear otro Cuadro de Diálogo; Dar clic en el icono para escribir el siguiente mensaje: "Seleccionar el campo numérico sobre el que filtraras la información"; Dar clic en el botón de Aceptar; Presionar nuevamente el icono , del combo Categoría selecciona "Campos Numéricos". Cambia el nombre de la variable por "ITEM2". Dar clic en el botón Aceptar; La ventana podría quedar como la que se muestra a continuación en la siguiente imagen; Cierra la ventana de diálogo; Cambia el Campo Importe por %ITEM2%, en este caso solo deberemos cambiar en TOTAL FIELDS Monto, los comandos quedarán escritos de la siguiente manera: TOTAL FIELDS %ITEM2% Antes de la línea SET FILTER inserta otra línea en blanco; Vuelve a presionar el icono para crear otra ventana; Dar clic en el icono , para escribir el siguiente mensaje: "Elegirlos parámetros para filtrar la información:" y el botón Aceptar; ACL Analytics - 66 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 4: Scripts interactivos el trabajo de Fiscalización - ACL Avanzado Dar clic en el icono , para escribir el siguiente mensaje: "Filtro: %ITEM2%" y el botón Aceptar; Después con el icono , agrega varias etiquetas que son: Todos los registros; Igual; Mayor o Igual; Mayor a; Menor o igual a y Menor a. Se guarda la variable como RADIO1; Después presiona el botón . Dar clic en cualquier parte del área gris para crear un cuadro de edición. Es importante visualizar que el nombre de la variable es "EDIT1" y en Texto Predeterminado será 0.00. Dar clic en el botón Aceptar; La ventana podría quedar como se muestra a continuación: Cierra la ventana de diálogo; Ahora la línea SET FILTER TO Monto < 0.00, cámbiala por las siguientes líneas: IF RADIO1 = 1 SET FILTER IF RADIO1 = 2 SET FILTER TO %ITEM2% = %EDIT1% IF RADIO1 = 3 SET FILTER TO %ITEM2% >= %EDIT1% IF RADIO1 = 4 SET FILTER TO %ITEM2% > %EDIT1% IF RADIO1 = 5 SET FILTER TO %ITEM2% <= %EDIT1% IF RADIO1 = 6 SET FILTER TO %ITEM2% < %EDIT1% Cambia en la última "%ITEM1%_Filtro01.fil"; línea el nombre de "Cobranza Importes Positivos" por Renombra el nombre del Script por Filtrar_Tabla y dar clic en el botón Aceptar. ACL Analytics - 67 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 4: Scripts interactivos el trabajo de Fiscalización - ACL Avanzado Manejo de errores Uno de los grandes retos en la creación de los Scripts, es tratar de considerar todas las posibilidades para minimizar los errores. Algunos ejemplos como: Cuando calculamos Variables Numéricas, Expresiones Numéricas o Campos Numéricas. Se debe asegurar en casos de que las operaciones se indeterminen, por ejemplo: dar una opción si el divisor es cero; Cuando ocupamos Sustitución de Variables, y tratamos de abrir una Tabla que no existe o no existe el Archivo Origen; sería recomendable mandar un aviso al usuario que no existe. Uno de los grandes problemas, es que siempre cuando automatizamos, olvidamos que muchos Scripts lo podrán ejecutar personas que no están tan relacionadas con la creación y edición de los Scripts, por lo que necesitamos pensar en todas las situaciones que se pueden presentar y manejar dichos errores de forma preventiva. Para manejar los errores, debemos pensar en todas las opciones posibles. Una buena práctica es desactivar el Log al ejecutar los scripts. Es importante desactivar hasta que se hayan realizado las pruebas de escritorio y se hayan solventado todos los errores; porque si no se tiene el Log, sería complicado saber qué fue lo que fallo o saber la causa, para poder hacer las correcciones adecuadas. ACL Analytics - 68 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 5: Implementación de scripts el trabajo de Fiscalización - ACL Avanzado Lección 5: Implementación de scripts DEFINE El comando DEFINE le permite definir Campos, Relaciones de Tablas y Reportes utilizando los parámetros FIELD, RELATION o REPORT. DEFINE FIELD Utilice el comando DEFINE FIELD para crear campos de datos o campos computados. Puede ejecutar este comando desde la línea de comandos o desde un Script, excepto cuando crea campos computados condicionales, que necesitan sintaxis multilínea. Campos de Datos Los campos de datos contienen valores de los campos correspondientes en los datos de origen. Ingresa la sintaxis de los campos de datos en una sola línea, sin retornos de carro. La sintaxis es la siguiente (una sola línea): DEFINE FIELD Nombre_campo Tipo_datos Posición_inicial Longitud_campo < Decimales | Formato FechaHora > < AS "Título columna alternativo" > < WIDTH > < PIC "formato" > Dónde: Nombre_campo: Hasta 31 caracteres alfanuméricos con letras mayúsculas y minúsculas, en su caso se debe incluir el carácter subrayado ( "_" ); Tipo_datos: Especifica cómo desea que ACL reconozca los datos (ASCII, NUMERIC, DATETIME o LOGICAL); Posición_inicial: Especifica la posición donde comienza el campo; Longitud_campo: Indica la longitud de campo; Decimales: Número de decimales de origen del campo numérico; Formato_fecha: Describe el formato de fecha de los datos de origen; AS "Título_columna_alternativo": Especifica el Encabezado de la columna, que puede ser diferente del nombre de campo en el origen; WIDTH: Especifica el ancho del campo de datos; PIC: Formato en un campo numérico que queremos mostrar. ACL Analytics - 69 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 5: Implementación de scripts el trabajo de Fiscalización - ACL Avanzado Campos computados no condicionales Los Campos Computados contienen valores que ACL calcula de una expresión. Para crear Campos Computados, aplica las expresiones del ACL a los campos existentes. Después, ACL devuelve el valor de esa expresión para cada registro. Ingresa la sintaxis de los Campos Computados NO Condicionales en una sola línea, sin retornos de carro. La sintaxis es la siguiente: DEFINE FIELD Nombre_campo COMPUTED Expresión Dónde: Nombre_campo: Hasta 31 caracteres alfanuméricos con letras mayúsculas y minúsculas, incluyendo el carácter subrayado ( "_ " ); Expresión: especifica cualquier expresión de ACL válida. Ejemplo: Para definir un campo computado llamado IVA como el producto de los campos Subtotal y 0.16: DEFINE FIELD IVA COMPUTED Subtotal * 0.16 Campos computados condicionales Además de un valor predeterminado, los campos computados condicionales necesitan al menos un valor condicional. Utilice la sintaxis múltiple para definir esos campos en Scripts. Para los campos computados condicionales debemos seguir estar reglas: Los parámetros opcionales aparecen en la segunda línea; El primer valor condicional debe comenzar en la tercera línea; Cada instrucción de valor condicional necesita una línea separada; El valor predeterminado aparece en la última línea; Los valores tanto el predeterminado como los de cada valor condicional deben ser del mismo tipo, numéricos, de carácter, lógicos o fecha; El orden de las condiciones es importante, la primera condición que se aplica es la de la tercera línea y continúa hacia abajo, en caso de que ninguna condición coincida tomara el valor predeterminado es decir la última línea. La sintaxis es la siguiente: ACL Analytics - 70 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 5: Implementación de scripts el trabajo de Fiscalización - ACL Avanzado DEFINE FIELD Nombre_campo COMPUTED <IF Condición> <COMMENT> <STATIC> <PIC "Formato"> <AS "Título_alternativo"> Valor_1 IF Condición_1 Valor_2 IF Condición_2 Valor_n IF Condición_n Valor_predeterminado Dónde: Nombre_campo: Hasta 31 caracteres alfanuméricos con letras mayúsculas y minúsculas, incluyendo el carácter subrayado ( "_ " ); Condición: Especifica una prueba lógica, la condición que se debe cumplir; COMMENT: Puedes agregar una nota al campo directamente; STATIC: Identifica un campo que muestra un valor en cada línea de la tabla hasta que ACL encuentra un nuevo valor; PIC: Formato en un campo numérico; AS "Título_ alternativo": Especifica el título de la columna diferente del nombre de campo en el origen; Valor_n: Es el valor que toma cuando la Condición es verdadera; Condición_n: Es una prueba lógica que en caso de que se cumpla tomará el Valor_n; Valor_predeterminado: Es el valor que toma el Campo Computado Condicional cuando no se pueden cumplir las otras condiciones. Ejemplo: Para definir un campo que calcula los impuestos por ventas correctos, según el estado en que se realizó la transacción: DEFINE FIELD Impuestos_ventas COMPUTED AS "Impuestos;Ventas" 0.16 * Monto_venta IF Estado = "CA" 0.11 * Monto_venta IF Estado = "AZ" 0.00 DEFINE RELATION Con el comando DEFINE RELATION permite relacionar tablas. La sintaxis es la siguiente: DEFINE RELATION Nombre_campo_clave WITH Nombre_tabla_relacionada INDEX Nombre_índice < AS Nombre_relación > Dónde: ACL Analytics - 71 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 5: Implementación de scripts el trabajo de Fiscalización - ACL Avanzado Nombre_campo_clave: El Campo Clave de la Tabla principal. Sólo puede seleccionar un Campo para cada relación; Nombre_tabla_relacionada: Especifica la Tabla relacionada, conocida como Tabla secundaria; Nombre_índice: Especifica el archivo índice para el Campo Clave de la Tabla relacionada; Nombre_relación: Especifica un nombre de la relación exclusiva. Ejemplo: Relaciona la tabla abierta con la Tabla Cliente utilizando el campo de Número de Cliente como Campo Clave. DEFINE RELATION Número WITH Clientes INDEX Cliente_número Cliente_número: es el índice de la Tabla Clientes, en la que el campo Número es el campo Clave. DEFINE REPORT Con el comando DEFINE REPORT puedes crear un nuevo reporte o modificar un reporte existente. La sintaxis es la siguiente: DEFINE REPORT Nombre_vista Dónde: Nombre_vista: le permite acceder una vista existente o crear una nueva vista con un nombre específico. Comando DELETE Se utiliza el comando DELETE para quitar Archivos, Tablas, Campos o Variables que no desea del proyecto ACL activo. El elemento especificado se elimina de dondequiera que esté almacenado, por ejemplo en el proyecto ACL, en una unidad local o en una unidad de red y no estará más accesible. NOTA: No es posible eliminar un campo o una variable con referencia a un campo computado, si primero no elimina dicho campo computado. Además, no puede eliminar ningún campo relacionado con la vista actual. A menos que especifique OK al final de la línea de comandos; se solicita una confirmación antes de que se elimine cualquier elemento. ACL Analytics - 72 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 5: Implementación de scripts el trabajo de Fiscalización - ACL Avanzado Puede utilizar el comando DELETE en un Script en la Línea de comandos, con cualquiera de las palabras clave mostradas a continuación. La sintaxis es la siguiente: DELETE < Nombre_campo | Nombre_variable | Nombre_archivo | ALL > < BATCH Nombre_script > < FOLDER Nombre_carpeta > < FORMAT Nombre_tabla > < HISTORY Número_para_retener > < RELATION Nombre_relación > < REPORT Nombre_vista > < WORKSPACE Área_de_trabajo > < INDEX Nombre_índice > < OK > Dónde: Nombre_campo: Especifica el campo para eliminar; Nombre_Variable: Especifica la variable para eliminar; Nombre_archivo: Especifica el archivo para eliminar; ALL: Indica que solamente todas las variables en el ambiente ACL actual se deberán eliminarse; FORMAT Nombre_tabla: Elimina la Tabla especificada, su vista predeterminada y sus índices y relaciones asociadas. Se conservan todas las demás vistas para la Tabla especificada; Nota: Si seleccionar la opción Eliminar archivo de datos con Tabla en Opciones, el archivo de datos de la Tabla también es eliminado; HISTORY: Borra las historias del archivo activo; Número_para_retener: Indica el número de historiales para retener; RELATION: Elimina las relaciones que no tengan relaciones dependientes ni campos relacionados con referencias en la vista activa o en un campo computado activo; Nombre_relación: Especifica qué relación eliminar; si no agrega este calificador, ACL eliminará la última relación definida; Nombre_Vista: Especifica la Vista a eliminar; Área_de_trabajo: Especifica el área de trabajo para eliminar; Nombre_índice: Especifica el archivo índice para eliminar; OK: Esta cláusula desactiva el mensaje de confirmación de la eliminación, sino más bien elimina sin preguntar. Comando DO Script Utilice el comando DO SCRIPT para ejecutar un Script. Puede especificar las pruebas IF o WHILE en un Script. La sintaxis es la siguiente: ACL Analytics - 73 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 5: Implementación de scripts el trabajo de Fiscalización - ACL Avanzado DO < SCRIPT > nombre_script < IF Prueba1 | WHILE Prueba2 > Dónde: Nombre_Script: Es el nombre del Script que se quiere ejecutar; IF Prueba1: En este caso se evalúa la condición Prueba1. En caso de que sea Verdadera él Script se ejecuta o si Falso no se ejecuta. No se aplica individualmente a cada registro de la Tabla; WHILE Prueba2: En este caso se ejecutará el Script de forma continua hasta que el valor de la Prueba2 sea Falso. Debemos asegurarnos que en alguno momento debe resultar la Prueba2 sea Falsa, para evitar los "Ciclos infinitos". Comando ESCAPE Utilice ESCAPE para terminar un Script sin salir del ACL. ESCAPE sólo termina el Script desde el cual ejecuta el Comando. La sintaxis es la siguiente: ESCAPE < ALL > < IF prueba > Dónde: ALL: Termina todos los Scripts activos; IF prueba: Con esto se especifica las condiciones en las cuales deben realizarse ESCAPE. Ejemplo: Script A .... DO Script B .... Script B Script_A contiene DO Script_B; Script_B contiene ESCAPE; ... ESCAPE ... Entonces ACL termina Script_B; Los comandos en Script_B después de ESCAPE no se ejecutarán; En cambio, ACL reanuda el procesamiento en la primera línea en Script_A que sigue a DO Script_B; Si Script_B contiene ESCAPE ALL, entonces ACL cierra Script_A y Script_B. ACL Analytics - 74 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 5: Implementación de scripts el trabajo de Fiscalización - ACL Avanzado Comando CLOSE El comando CLOSE cierra una Tabla, un Archivo, el Aprendizaje, un Índice o el Log. La sintaxis es la siguiente: CLOSE CLOSE { PRIMARY | SECONDARY | LEARN | INDEX | LOG } CLOSE Nombre_Tabla Dónde: PRIMARY: Cierra la Tabla Primaria; SECONDARY: Cierra la Tabla Secundaria; LEARN: Cierra la sección del Grabador de Scripts; INDEX: Cierra el Archivo Índice actual; LOG: Vuelve al archivo del Log predeterminado. Si no se especifica ningún parámetro, se cierra la Tabla primaria. Si cierra una Tabla Primaria o Secundaria, ACL elimina todas las definiciones de campo correspondientes al ambiente actual. Si se definieron relaciones en su proyecto ACL, el comando CLOSE cerrará tanto la Tabla Primaria como la Secundaria, además de las Tablas relacionadas. Tareas programadas de Windows Existen dos comandos que nos ayudan al proceso de Monitoreo Continuo, ya que nos ayuda a cerrar uno de ellos y el otro es para guardar el dato de la hora en que se procesó cierto comando. Comando QUIT Utiliza el comando QUIT para cerrar una sesión de ACL. Todos los archivos abiertos se guardan y se cierran antes de salir. Si cambiaste la vista activa o un Script y no guardó los cambios, ACL muestra un mensaje preguntándote si deseas guardar los cambios antes de salir. ACL Analytics - 75 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar Lección 5: Implementación de scripts el trabajo de Fiscalización - ACL Avanzado Este comando es especialmente útil cuando desea tener un Script que salga de ACL al terminar de ejecutarse. La sintaxis es la siguiente: QUIT Comando DISPLAY Se utiliza para mostrar información acerca de proyectos de ACL o de la computadora en que se ejecuta ACL Dos ejemplos clásicos es mostrar la Fecha y la Hora actuales, definidas por el sistema operativo de la computadora. La sintaxis es la siguiente: DISPLAY DATE DISPLAY TIME Cuando nos interesa llevar un record de las fechas y tiempos de procesos de los comandos, podremos guardar en el Log dicha información. ACL Analytics - 76 - ASF - ICADEFIS Herramientas Tecnológicas para apoyar el trabajo de Fiscalización - ACL Avanzado Bibliografía Bibliografía http://www.acl.com Fraud Detection - Using Data Analysis Techniques to Detect Fraud – David G. Coderre Normas Internacionales de Auditoría emitidas por IFAC (International Federation of Accountants) 15 y 16 Norma ISA 401 sobre Sistemas de Información por Computadora SAS 94 Norma SAP 1009 ACL Analytics - 77 - ASF - ICADEFIS
© Copyright 2024