Manual - Auditoría Superior del Estado de Hidalgo

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