Scripting Guide PDF
Scripting Guide PDF
scripts de ACL
Versión: 13
Publicado: jueves, 21 de junio de 2018
Tabla de contenidos
Tabla de contenidos 3
Guía de inicio 13
Conceptos básicos de la creación de scripts de ACL 14
Comentarios 19
Tipos de datos 21
Expresiones 22
Definición de campos calculados con expresiones 24
Funciones 26
Variables 28
Estructuras de control 30
Agrupación y bucles 33
Treinta funciones principales de ACL 41
Comandos 53
Comando ACCEPT 54
Comando ACCESSDATA 59
Comando ACTIVATE 65
Comando AGE 67
Comando APPEND 72
Comando ASSIGN 79
Comando BENFORD 82
Comando CALCULATE 85
Comando CLASSIFY 87
Comando CLOSE 92
Comando COMMENT 94
Comando COUNT 96
Comando CREATE LAYOUT 98
Comando CROSSTAB 100
Comando CVSEVALUATE 104
Comando CVSPREPARE 108
Comando CVSSAMPLE 112
Página 3 de 898
Tabla de contenidos
Página 4 de 898
Tabla de contenidos
Página 5 de 898
Tabla de contenidos
Página 6 de 898
Tabla de contenidos
Página 7 de 898
Tabla de contenidos
Página 8 de 898
Tabla de contenidos
Página 9 de 898
Tabla de contenidos
Página 10 de 898
Tabla de contenidos
Página 11 de 898
Guía de inicio
Guía de inicio
Página 13 de 898
Guía de inicio
Comandos
Cada línea de un script ejecuta un comando de ACLScript y comienza con el nombre del comando. Un
comando es una instrucción para ejecutar una operación en ACL.
El nombre del comando va seguido de uno o más parámetros que se especifican como nombre_del_pará-
metro valor_del_parámetro.
Consejo
Según el comando, algunos parámetros son obligatorios y otros, opcionales. No es nece-
sario que especifique los parámetros opcionales. Si se los omite, el comando se ejecuta
sin ellos. Sin embargo, si omite un parámetro obligatorio, ACL utiliza el valor pre-
determinado para ese parámetro.
Página 14 de 898
Guía de inicio
Comentarios
Como en cualquier lenguaje de scripts, en ACLScript puede agregar comentarios usando la palabra
claveCOMMENT. Utilice los comentarios para que el código sea más fácil de comprender y para comu-
nicarse con cualquier persona que intente leer, utilizar o comprender su script. ACLScript admite dos tipos
de comentarios:
l comentarios de una sola línea: se ignora todo el texto que sigue a COMMENT hasta llegar al final
de la línea
l bloques de comentario de varias líneas: comienzan con COMMENT y se ignora cada una de las
líneas siguientes hasta llegar a la palabra clave END o una línea en blanco
Si desea obtener más información y ejemplos, consulte "Comentarios" en la página 19.
Tipos de datos
ACLScript admite cuatro tipos de datos básicos:
l lógicos: el tipo de datos más sencillo. Los datos lógicos expresan un valor de verdad que es ver-
dadero o falso.
l numéricos: contienen dígitos del 0 al 9 y pueden tener un signo negativo y un separador decimal
l carácter: una serie de uno o más caracteres
l fechahora: un valor de fecha, fechahora u hora expresado en un formato admitido
En ACL cada tipo de datos se trata de manera diferente y se puede usar en distintos comandos y funciones.
Si desea obtener más información acerca de los tipos de datos, consulte "Tipos de datos" en la página 21.
Expresiones
Una expresión es cualquier declaración que tenga un valor. La forma más sencilla de expresión es un lite-
ral, como 2 o "prueba"; sin embargo, las expresiones suelen aparecer como cálculos y pueden ser tan com-
plejas como cualquier combinación permitida de operadores, condiciones, funciones y valores que
podamos imaginar:
Página 15 de 898
Guía de inicio
Las expresiones se suelen usar en ACL para completar campos calculados o como entrada para la lógica
condicional. Si desea obtener más información sobre las expresiones, consulte "Expresiones" en la
página 22.
Funciones
Las funciones son rutinas incorporadas que aceptan una cantidad determinada de parámetros y devuel-
ven un valor único. Utilice las funciones para manipular el contenido de los campos y las variables que se
utilizan en los comandos.
Nota
Las funciones no modifican los datos del campo sino que generan y devuelven un nuevo
valor sobre la base de un cálculo o un algoritmo que utiliza los datos del campo o varia-
bles como datos de entrada. Utilice el valor que devuelve la función como entrada para un
comando.
Las funciones comienzan con el nombre de la función, seguido de un paréntesis de apertura, una lista de
0 o más valores separados por un punto y coma que se se pasan a la función como argumentos, y un
paréntesis de cierre.
Ejemplo
La función BETWEEN(valor; mín; máx) tiene tres argumentos y devuelve verdadero si el valor cae dentro
del rango o falso si cae fuera del rango:
l valor: la expresión o el campo que se debe probar
l mín: el mínimo del rango
l máx: el máximo del rango
Si desea obtener más información acerca de las funciones, consulte "Funciones" en la página 26.
Variables
Las variables son una ubicación de almacenamiento temporal para un valor. Las variables tienen un iden-
tificador asociado que le permite hacer referencia al valor almacenado en la memoria de su computadora
y trabajar con él.
ACLScript utiliza el comando ASSIGN para crear una variable y asignarla a un valor al mismo tiempo:
ASSIGN v_age_in_years = 3
Página 16 de 898
Guía de inicio
Para que resulte más simple, puede omitir la palabra clave ASSIGN; sin embargo, se utiliza
ASSIGN implícitamente y se ejecuta el mismo comando:
v_age_in_years = 3
Nota
ACLScript no admite valores en blanco. Todas las variables deben tener un valor asociado
de uno de los tipos de datos admitidos. El interpretador de scripts evalúa el tipo de datos uti-
lizando el formato de datos y el calificador que usted utiliza para asignarle el valor. Si desea
obtener más información, consulte "Tipos de datos" en la página 21.
Utilizar variables
Una vez que se crea una variable, puede hacer referencia a ella en cualquier lugar en el que haga refe-
rencia a nombres de campos o variables. También puede reasignarle un nuevo valor utilizando el comando
ASSIGN.
También puede utilizar la interpolación de cadenas o el reemplazo de variables para incluir una variable en
un literal de cadena encerrando el nombre de la variable entre los caracteres %. Cuando ACL detecta una
variable reemplazada, reemplaza el marcador con su valor correspondiente:
Si desea obtener más información acerca de las variables, consulte "Variables" en la página 28.
Estructuras de control
Una estructura de control es un componente de un script que decide qué dirección seguir según pará-
metros determinados. ACLScript ofrece tanto estructuras de bucle como de lógica condicional.
Lógica condicional
ACLScript implementa la lógica condicional como un comando IF y como un parámetro opcional en muchos
comandos del lenguaje.
Consejo
El comando IF se utiliza para controlar si un comando se ejecuta o no, mientras que el pará-
metro IF se utiliza para decidir con qué registros de una tabla se ejecuta un comando.
Página 17 de 898
Guía de inicio
IF
Parámetro IF
Bucle
El comando LOOP proporciona la estructura de control de bucle en ACLScript. Este comando procesa las
instrucciones dentro del bucle mientras que la expresión de la prueba de control sea verdadera.
Si desea obtener más información acerca de las estructuras de control, consulte "Estructuras de control"
en la página 30
Página 18 de 898
Guía de inicio
Comentarios
Como en un lenguaje de scripts, en ACLScript puede agregar comentarios usando la palabra
claveCOMMENT. Utilice los comentarios para que el código sea más fácil de comprender y para comu-
nicarse con cualquier persona que intente leer, utilizar o comprender su script.
Tipos de comentarios
ACLScript admite dos tipos de comentarios:
l comentarios de una sola línea: se ignora todo el texto que sigue a COMMENT hasta llegar al final
de la línea
l bloques de comentario de varias líneas: comienzan con COMMENT y se ignora cada una de las
líneas siguientes hasta llegar a la palabra clave END o una línea en blanco
COMMENT
**********************
Esta sección del script prepara los datos para la importación
**********************
END
Página 19 de 898
Guía de inicio
COMMENT
************************************************************
*** Nombre del script: {ID_App}{Nombre del script}
***Parámetros: {Descripción detallada}
***Salida: {Describir los parámetros}
*** Escrito por: {Nombre}, ACL Services, {Mes AAAA}
*** Modificado por: {Nombre}, ACL Services, finalidad y lógica del script
*** Versión: 1.1.1 {ver_app.ver_script.defecto.fix}
************************************************************
END
Página 20 de 898
Guía de inicio
Tipos de datos
ACLScript admite cuatro tipos básicos de datos: lógicos, numéricos, de caracteres y de fechahora.
Carácter Una serie de uno o más caracteres 32.767 Comillas comunes o o 'Pedro Pérez'
bytes comillas simples o "Pedro Pérez"
Numérico Los valores numéricos contienen dígitos 22 dígitos Sin calificador o 100
del 0 al 9 y pueden tener un signo nega- o -5
tivo y un separador decimal. o 5,01
o 22222,1232
Lógico El tipo de datos más sencillo. Los datos o T Sin calificador ASSIGN v_truth = 5 > 4
lógicos expresan un valor de verdad que o F se evalúa como T
es verdadero o falso.
Los operadores de comparación, como
'=', '>' y '<', devuelven valores lógicos.
Página 21 de 898
Guía de inicio
Expresiones
Una expresión es cualquier declaración que tenga un valor. La forma más sencilla de expresión es un lite-
ral; sin embargo, las expresiones pueden ser tan completas como cualquier combinación permitida de
operadores, condiciones, funciones y valores que podamos imaginar.
Operadores
Los operadores son símbolos que le indican al interpretador de scripts que realice una evaluación arit-
mética, de cadena, de comparación o lógica de los valores especificados:
Página 22 de 898
Guía de inicio
Funciones
Las expresiones se evalúan utilizando los valores que devuelven las funciones. Las funciones se ejecutan
con la prioridad más elevada de cualquier componente de la expresión. Si desea obtener más información
acerca de las funciones, consulte "Funciones" en la página 26.
Expresiones de ejemplo
Evalúa en 6
(2 + (3 - 2)) * 2
Evalúa en verdadero
((2 + (3 - 2)) * 2) > ROOT(9;0)
Página 23 de 898
Guía de inicio
Consejo
Coloque el prefijo c_ a los campos calculados a fin de identificarlos como calculados en
lugar de datos de origen sin modificar.
Cuando la primera expresión condicional se evalúa como verdadera, se utiliza el valor especificado para
ese caso. En este ejemplo, importe * tasa_general es el valor predeterminado que se utiliza cuando nin-
guna de las expresiones condicionales se evalúa como verdadera.
Página 24 de 898
Guía de inicio
Nota
Debe agregar una línea vacía entre el comando de la línea y las condiciones, a menos que
incluya los parámetros IF , WIDTH, PIC o AS en el comando DEFINE FIELD. Si desea
obtener más información, consulte "Comando DEFINE FIELD . . . COMPUTED" en la
página 125.
Página 25 de 898
Guía de inicio
Funciones
Las funciones son rutinas incorporadas que aceptan una cantidad determinada de parámetros y devuel-
ven un valor único. Utilice las funciones para manipular el contenido de los campos y las variables que se
utilizan en los comandos.
Nota
Las funciones no modifican los datos del campo sino que generan y devuelven un nuevo
valor sobre la base de un cálculo o un algoritmo que utiliza los datos del campo o varia-
bles como datos de entrada. Utilice el valor que devuelve la función como entrada para un
comando.
Ejemplo
La función BETWEEN(valor; mín; máx) tiene tres argumentos y devuelve verdadero si el valor cae dentro
del rango o falso si cae fuera del rango:
l valor: la expresión o el campo que se debe probar
l mín: el mínimo del rango
l máx: el máximo del rango
Página 26 de 898
Guía de inicio
Nota
Si su proyecto trabaja con formatos de números europeos o si está escribiendo scripts que
se pueden utilizar en otras regiones, separe los argumentos de las funciones con un carác-
ter de espacio en lugar de una coma, aunque esté pasando un valor numérico con signo.
Las funciones que aceptan valores numéricos con signos necesitan un delimitador explí-
cito.
Funciones Comandos
Utilice campos, valores o registros como entrada y genere Utilice tablas como entrada y genere nuevos registros y
un nuevo valor para devolverlo. tablas.
Se utilizan en expresiones, campos calculados, valores Se utilizan para analizar datos, importar datos o generar
de parámetros de comandos, variables y filtros para ayu- resultados.
dar a modificar la ejecución del comando.
No puede ser un paso independiente en un script. Puede ser un paso independiente en un script.
Página 27 de 898
Guía de inicio
Variables
Las variables son una ubicación de almacenamiento temporal para un valor. Las variables tienen un iden-
tificador asociado que le permite hacer referencia al valor almacenado en la memoria de su computadora
y trabajar con él.
ASSIGN v_age_in_years = 3
Para que resulte más simple, puede omitir la palabra clave ASSIGN; sin embargo, se utiliza
ASSIGN implícitamente y se ejecuta el mismo comando:
v_age_in_years = 3
Nota
ACLScript no admite valores en blanco. Todas las variables deben tener un valor aso-
ciado de uno de los tipos de datos admitidos. El interpretador de scripts evalúa el tipo de
datos utilizando el formato de datos y el calificador que usted utiliza para asignarle el
valor. Si desea obtener más información, consulte "Tipos de datos" en la página 21.
Utilizar variables
Una vez que se crea una variable, puede hacer referencia a ella en cualquier lugar en el que haga refe-
rencia a nombres de campos o variables. También puede reasignarle un nuevo valor utilizando el
comando ASSIGN.
También puede utilizar la interpolación de cadenas o el reemplazo de variables para incluir una variable
en un literal de cadena encerrando el nombre de la variable entre los caracteres %. Cuando ACL detecta
una variable reemplazada, reemplaza el marcador con su valor correspondiente:
Página 28 de 898
Guía de inicio
Tipos de variables
ACL utiliza los siguientes tipos de variables:
l Variables generadas por el sistema: se crean automáticamente después de ejecutar un comando
l Variables permanentes: permanecen en la memoria de la computadora hasta que se las elimina y
continúan allí incluso después de cerrar el proyecto de ACL
Nota
Para definir una variable permanente, coloque un guion bajo '_' delante del
identificador: _v_nombre_compañía = 'Acme'.
l Variables de la sesión: permanecen en la memoria de su computadora hasta que las elimina o
hasta que se cierra el proyecto de ACL
DISPLAY v_antigüedad_en_años
Cuando el script se encuentra con este comando, lo escribe en el archivo de log. Para ver el valor de la
variable en esta etapa de la ejecución del script, haga clic en la entrada del log.
Consejo
También puede usar las variables para ayudar a depurar insertando puntos de quiebre en
el script e inspeccionando los valores de las variables en la ficha Variables del Navegador.
Página 29 de 898
Guía de inicio
Estructuras de control
Una estructura de control es un componente de un script que decide qué dirección seguir según pará-
metros determinados. ACLScript ofrece tanto estructuras de bucle como de lógica IF condicional.
El comando IF
Al utilizar el comando IF, usted especifica una expresión condicional seguida del comando que se debe
ejecutar si la expresión se evalúa como verdadera:
Esta estructura condicional controla qué código se ejecuta, para que usted pueda usar el comando
IF cuando desee procesar una tabla completa sobre la base de la expresión de prueba. Si la expresión se
evalúa como verdadera, el comando se ejecuta con todos los registros de la tabla. Si desea obtener más
información acerca del comando IF, consulte "IF" en la página 224.
Parámetro IF
Muchos comandos aceptan un parámetro IF opcional, que puede utilizar para filtrar los registros con los
que se ejecuta el comando:
Cuando se ejecuta esta instrucción, el script clasifica todos los registros de la tabla en los que el valor del
campo estado es 'NY'.
Bucle
El comando LOOP
El comando LOOP proporciona la estructura de control de bucle en ACLScript.
Página 30 de 898
Guía de inicio
Nota
El comando LOOP se debe ejecutar dentro del comando GROUP, no puede ejecutarse de
modo independiente.
El comando procesa las instrucciones dentro del bucle mientras que la expresión WHILE sea verdadera:
ASSIGN v_recuento = 10
GROUP
LOOP WHILE v_recuento > 0
v_total = v_total + importe
v_recuento = v_recuento - 1
END
END
Esta estructura se repite 10 veces y agrega el valor del campo importe a la variable v_total. Al final de cada
repetición, la variable v_recuento se reduce en 1 y después se prueba en la expresión WHILE. Una vez que
la expresión se evalúa como falsa, se completa el bucle y el script avanza.
Cuando se completa el bucle, v_total contiene la suma de los 10 campos importe de los registros.
Si desea obtener más información acerca de los bucles, consulte "Comando LOOP" en la página 309.
LOOPING con un subscript
A veces, el comando LOOP no ofrece la función de bucle exacta que usted necesita. En este caso, puede
invocar un script de ACL independiente para ejecutar un bucle utilizando el comando DO SCRIPT: DO
SCRIPT Nombre_del_script WHILE Prueba_condicional.
Puede utilizar uno de los siguientes métodos comunes para controlar cuándo finaliza el bucle:
l bandera: el bucle continúa hasta que la variable de bandera lógica se ajuste en FALSE
l contador: el bucle continúa hasta que una variable que se incrementa o decrece cruza un umbral con-
dicional
Si desea obtener más información acerca de la invocación de subscripts, consulte "Comando DO SCRIPT"
en la página 163.
Ejemplo
Necesita importar todos los archivos CSV de la carpeta C:\data a su proyecto. Puede usar el comando
DIRECTORY para obtener una lista de archivos de la carpeta; sin embargo, no puede usar el comando
IMPORT dentro de la estructura GROUP. Necesita una manera alternativa de realizar bucles a lo largo de
la tabla que crea DIRECTORY.
Para lograrlo, cree un script principal que realice lo siguiente:
1. Ejecute el comando DIRECTORY y guarde los resultados en una tabla.
2. Obtenga la cantidad de registros de la tabla para usar como un contador.
Página 31 de 898
Guía de inicio
3. Invoque un subscript una vez por cada registro de la tabla para ejecutar el comando IMPORT en el
registro actual.
Script principal
Subscript de importación
COMMENT Importar_subscript
OPEN T_Tabla_a_aplicar_bucle
LOCATE RECORD v_Recuento
Las variables se comparten entre todos los scripts que se ejecutan en el proyecto; por lo tanto, el script
principal invoca al subscript hasta que el valor de v_Recuento supera el valor de v_Núm_registros. Cada
vez que se ejecute el subscript, se incrementa v_Counter.
Esta estructura le permite invocar el comando IMPORT para cada registro mientras aplica el bucle a la
tabla. Cuando se complete el script principal, habrá importado todos los archivos CSV desde la carpeta
C:\data.
Página 32 de 898
Guía de inicio
Agrupación y bucles
Los comandos GROUP y LOOP ofrecen dos maneras de ejecutar una serie de comandos de manera rei-
terada. GROUP realiza una sola repetición de uno o más comandos con cada registro. LOOP realiza varias
repeticiones de una serie de comandos con un solo registro y solo se puede usar dentro de un bloque
GROUP.
Para calcular este importe, utiliza el comando GROUP. Dentro de cada repetición de GROUP, usted:
1. Calcula el total acumulado del registro actual.
2. Extrae el número, el importe, la fecha y el total acumulado de las facturas a la tabla de resultados.
OPEN Trans_Cp
COMMENT repita en cada registro de la tabla y después calcule y extraiga el total acumulado
GROUP
ASSIGN v_total_acumulado = v_total_acumulado + Importe_factura
EXTRACT Número_factura; Importe_factura; Fecha_factura; v_total_acumulado AS "Total acu-
mulado" TO resultados1
END
Cuando se ejecuta el script, los comandos dentro del bloque GROUP se procesan en cada registro de la
tabla, de arriba hacia abajo, y se calcula y extrae el total acumulado. Si pudiéramos observar el comando
GROUP a medida que se ejecuta, se vería de este modo:
Página 33 de 898
Guía de inicio
Página 34 de 898
Guía de inicio
Página 35 de 898
Guía de inicio
Nota
Si un registro se evalúa como verdadero para más de un caso, el registro solo es pro-
cesado por el primer bloque IF/ELSE que lo prueba. Los registros nunca son procesados
por más de un bloque IF/ELSE en un comando GROUP.
OPEN Trans_Cp
COMMENT use GROUP IF para ejecutar diferentes comandos ASSIGN y EXTRACT según el
importe de la factura
GROUP IF Importe_factura >= 1000
ASSIGN v_total_acumulado_alto = v_total_acumulado_alto + Importe_factura
EXTRACT Número_factura; Importe_factura; Fecha_factura; v_total_acumulado_alto AS "Total acu-
mulado" TO resultados_alto
ELSE IF Importe_factura >= 100
ASSIGN v_total_acumulado_medio = v_total_acumulado_medio + Importe_factura
EXTRACT Número_factura; Importe_factura; Fecha_factura; v_total_acumulado_medio AS "Total
acumulado" TO resultados_medio
ELSE
ASSIGN v_total_acumulado_bajo = v_total_acumulado_bajo + Importe_factura
EXTRACT Número_factura; Importe_factura; Fecha_factura; v_total_acumulado_bajo AS "Total
acumulado" TO resultados_bajo
END
Página 36 de 898
Guía de inicio
departamento, y los códigos de los departamentos se almacenan en un formato delimitado por comas en la
tabla:
COMMENTuse GROUP para contar las comas en cada campo del código de departamento como una
manera de identificar cuántos departamentos están asociados con el registro"LOOP" en cada registro
por cada código del campo, con la extracción de cada código a su propio registro ENDGROUP v_
recuento_departamentos = OCCURS(Código_departamento;',') v_recuento = 0 LOOP WHILE v_
recuento <= v_recuento_departamentos v_dept = SPLIT (Código_departamento; ','; (v_recuento + 1))
EXTRACT FIELDS Número_factura; Importe_factura; v_dept AS "Departamento" TO resultado1 v_
recuento = v_recuento + 1 END END
Cuando se ejecuta el script, los comandos dentro del bloque GROUP se procesan en cada registro de la
tabla, de arriba hacia abajo. Para cada registro, el comando LOOP se repite en el registro una vez por
código de departamento en la lista delimitada por comas y, a continuación, extrae un registro. Si pudié-
ramos observar los comandos GROUP y LOOP a medida que se ejecutan, se verían de este modo:
Página 37 de 898
Guía de inicio
l v_dept = CCD
l v_dept = RDR
Página 38 de 898
Guía de inicio
Para el tercer registro de la tabla, el valor de v_recuento_departamentos es 2; por lo tanto, LOOP se repite
tres veces:
1. Para la primera repetición de LOOP:
l v_recuento = 0
l v_dept = CCD
l v_dept = LMO
l v_dept = RDR
Página 39 de 898
Guía de inicio
Página 40 de 898
Guía de inicio
ALLTRIM( )
Devuelve una cadena con los espacios iniciales y finales eliminados de la cadena de entrada.
Nota
Es una práctica recomendable utilizar ALLTRIM() en cualquier campo de caracteres que
esté utilizando como entrada para otra función de manera que los espacios al principio o el
final no afecten el valor que se devuelve.
Ejemplo
El campo Número_de_proveedor contiene el valor " 1254". Debe quitar este espacio adicional del
Número_de_proveedor para poder unificar el campo con datos de otra tabla.
UPPER( )
Devuelve una cadena con los caracteres alfabéticos convertidos en mayúsculas.
Ejemplo
El campo Apellido contiene el valor "Smith". Debe pasar este valor a mayúsculas para compararlo con el
Página 41 de 898
Guía de inicio
LOWER( )
Devuelve una cadena con caracteres alfabéticos convertidos en minúsculas.
Ejemplo
El campo Apellido contiene el valor "Smith". Debe pasar este valor a minúsculas para compararlo con el
valor en minúsculas de otra tabla.
PROPER( )
Devuelve una cadena donde el primer carácter de cada palabra está en mayúsculas y el resto de los
caracteres, en minúsculas.
Ejemplo
El campo Apellido contiene el valor "smith". Necesita mostrarlo como un nombre propio en la salida.
SUBSTR( )
Devuelve una subcadena especificada de una cadena.
Ejemplo
El campo Código_de_cuenta_GL contiene el valor "001-458-873-99". Debe extraer los primeros tres
bytes o caracteres de la cadena.
Página 42 de 898
Guía de inicio
LAST( )
Devuelve una cantidad específica de caracteres del final de una cadena.
Ejemplo
El campo Código_de_cuenta_GL contiene el valor "001-458-873-99". Debe extraer los últimos dos bytes o
caracteres de la cadena.
SPLIT( )
Devuelve un segmento especificado de una cadena.
Ejemplo
El campo Código_de_cuenta_GL contiene el valor "001-458-873-99". Debe extraer el segundo segmento
del código de la cadena.
AT( )
Devuelve un número que especifica el lugar de inicio de una incidencia particular de una subcadena dentro
de un valor de caracteres.
Ejemplo
El campo Código_de_cuenta_GL contiene el valor "001-458-873-99". Debe determinar la posición de byte
inicial del valor "458" para probar si el segundo segmento del código de GL es "458" (posición inicial "5").
Página 43 de 898
Guía de inicio
OCCURS( )
Devuelve un recuento del número de veces que aparece una subcadena en un valor de caracteres espe-
cificado.
Ejemplo
El campo Código_de_cuenta_GL contiene el valor "001-458-873-99". Debe determinar que el código de
GL tiene el formato correcto asegurándose de que los datos contengan los tres caracteres de guion.
LENGTH( )
Devuelve la cantidad de caracteres de una cadena.
Ejemplo
El campo Código_de_cuenta_GL contiene el valor "001-458-873-99". Debe determinar que el código de
GL tiene el formato correcto asegurándose de que los datos contengan 14 caracteres.
STRING( )
Convierte un valor numérico en una cadena de caracteres.
Ejemplo
Página 44 de 898
Guía de inicio
El campo Importe_factura contiene el valor 12345,67. Debe convertir este valor en datos de carácter.
VALUE( )
Convierte una cadena de caracteres en un valor numérico.
Consejo
VALUE() se usa frecuentemente con ZONED() para agregar ceros al inicio.
Ejemplo
El campo Importe_factura contiene el valor "12345,67". Debe convertir este valor en datos numéricos.
CTOD( )
Convierte un valor de fecha numérico o de caracteres en una fecha. También se puede extraer la fecha del
valor en caracteres o numérico de fechahora y devolverlo como una fecha. Abreviatura de la expresión
"Carácter a fecha", en inglés.
Ejemplo
El campo Fecha_de_envío contiene el valor "Abril 25, 2016". Debe convertir estos datos en datos de
fechahora.
DATE( )
Extrae la fecha a partir de una fecha o fechahora especificada y la devuelve como una cadena de carac-
teres. También puede devolver la fecha actual del sistema operativo.
Ejemplo
El campo Fecha_de_envío contiene el valor `20160425`. Debe convertir este valor en datos de carácter.
Página 45 de 898
Guía de inicio
ZONED( )
Convierte datos numéricos en datos de caracteres y agrega ceros a la izquierda de los datos de salida.
Ejemplo
El campo Número_de_empleado contiene el valor "254879". Debe convertir el valor en una cadena de 10
dígitos con ceros al principio.
Sugerencia
Debe utilizar la función VALUE() para convertir el carácter en datos numéricos antes de
utilizar el numérico como entrada para ZONED().
BINTOSTR( )
Devuelve datos de caracteres Unicode convertidos a partir de datos de caracteres ZONED o EBCDIC.
Abreviatura de “Binario a cadena”, en inglés.
Nota
Solamente edición Unicode. Para ediciones que no son de Unicode, vea ZONED() arriba.
Ejemplo
El campo Número_de_empleado contiene el valor "254879". Debe convertir el valor en una cadena de 10
dígitos con ceros al principio.
Página 46 de 898
Guía de inicio
Sugerencia
Debe utilizar la función VALUE() para convertir el carácter en datos numéricos antes de uti-
lizar el numérico como entrada para ZONED(). A continuación, utilice BINTOSTR() para
convertir los datos ASCII devueltos por ZONED() a Unicode.
MONTH( )
Extrae el mes de una fecha o fechahora especificada y lo devuelve como un valor numérico (1 a 12).
Ejemplo
El campo Fecha_de_transacción contiene el valor `20160815 100252`. Debe extraer el mes como datos de
carácter con un cero al principio.
DAY( )
Extrae el día del mes a partir de una fecha o fechahora especificada y la devuelve como un valor numérico
(1 a 31).
Ejemplo
El campo Fecha_de_transacción contiene el valor `20160815 100252`. Debe extraer el día como datos de
carácter.
Página 47 de 898
Guía de inicio
YEAR( )
Extrae el año de una fecha o fechahora especificada y lo devuelve como un valor numérico con el formato
YYYY.
Ejemplo
El campo Fecha_de_transacción contiene el valor `20160815 100252`. Debe extraer el año como un
valor numérico.
HOUR( )
Extrae la porción de la hora de una hora o fechahora especificada y la devuelve como un valor numérico,
con un formato de 24 horas.
Ejemplo
El campo Fecha_de_transacción contiene el valor `20160815 100252`. Debe extraer las horas como un
valor numérico.
COMMENT devuelve 10
HOUR(Fecha_de_transacción)
MINUTE( )
Extrae los minutos de una hora o fechahora especificada y la devuelve como un valor numérico.
Ejemplo
El campo Fecha_de_transacción contiene el valor `20160815 100252`. Debe extraer los minutos como
un valor numérico.
COMMENT devuelve 2
MINUTE(Fecha_de_transacción)
Página 48 de 898
Guía de inicio
SECOND( )
Extrae los segundos de una hora o fechahora especificada y la devuelve como un valor numérico.
Ejemplo
El campo Fecha_de_transacción contiene el valor `20160815 100252`. Debe extraer los segundos como
un valor numérico.
COMMENT devuelve 52
SECOND(Fecha_de_transacción)
CDOW( )
Devuelve el nombre del día de la semana de una fecha o fechahora especificada. Abreviatura de la expre-
sión "Día de la semana en caracteres", en inglés.
Ejemplo
El campo Fecha_de_transacción contiene el valor `20160815 100252`. Debe extraer el nombre del día
como datos de carácter.
CMOY( )
Devuelve el nombre del mes de una fecha o fechahora especificada. Abreviatura de la expresión "Mes del
año en caracteres", en inglés.
Ejemplo
El campo Fecha_de_transacción contiene el valor `20160815 100252`. Debe extraer el nombre del mes
como datos de carácter.
Página 49 de 898
Guía de inicio
INCLUDE( )
Devuelve una cadena que incluye solo los caracteres especificados.
Ejemplo
El campo Domicilio contiene el valor "12345 ACL Services Ltd.". Debe extraer el número del domicilio y
excluir el nombre de la compañía.
EXCLUDE( )
Devuelve una cadena que excluye los caracteres especificados.
Ejemplo
El campo Domicilio contiene el valor "12345 ACL Services Ltd.". Debe extraer el nombre de la compañía y
excluir el número del domicilio.
REPLACE( )
Reemplaza todas las instancias de una cadena de caracteres especificada por una nueva cadena de
caracteres.
Ejemplo
El campo Domicilio contiene el valor "12345 Acme&Sons". Debe reemplazar el carácter "&" por la palabra
" and ".
OMIT( )
Devuelve una cadena con una o varias subcadenas especificadas eliminadas.
Página 50 de 898
Guía de inicio
Ejemplo
El campo Domicilio contiene el valor "12345 Fake St". Debe extraer el domicilio sin el sufijo St.
REVERSE( )
Devuelve una cadena con los caracteres en orden inverso.
Ejemplo
El campo Línea_de_reporte contiene el valor "001 Corrección 5874,39 CR ". Debe revertir este valor y omi-
tir los espacios al principio o al final.
BLANKS( )
Devuelve una cadena que contiene un determinado número de espacios en blanco.
Ejemplo
Debe crear un campo calculado para un nombre de región sobre la base de un valor en el campo código_
de_región. Debe asegurarse de que el valor predeterminado que especifique al final del comando sea al
menos tan extenso como el valor de entrada más extenso.
"Southern" IF código_de_región = 1
"Northern" IF código_de_región = 2
"Eastern" IF código_de_región = 3
"Western" IF código_de_región = 4
BLANKS(v_largo)
Página 51 de 898
Comandos
Comandos
Página 53 de 898
Comandos
Comando ACCEPT
Crea un cuadro de diálogo que les pide interactivamente a los usuarios uno o más valores de entrada
para el script. Cada valor de entrada se almacena en una variable de caracteres con nombre.
Nota
No es seguro usar el comando ACCEPT para introducir contraseñas. Por el contrario,
debe usar "Comando PASSWORD" en la página 323.
El comando ACCEPT no se admite en los estudios analíticos del Servidor de AX.
Puede crear un cuadro de diálogo interactivo más avanzado con el "Comando DIALOG"
en la página 144.
Sintaxis
ACCEPT {mensaje_texto <FIELDS categoría_elemento_lista_tipos> TO nombre_variable} <...n>
Parámetros
Nombre Descripción
men- La etiqueta que se muestra en el cuadro de diálogo utilizado para pedir información de entrada. Debe ser
saje_ una variable de caracteres o una cadena entre comillas.
texto
Al introducir varios mensajes, puede separarlos con comas. El uso de comas facilita la lectura del script,
pero no es un requisito obligatorio:
ACCEPT "Especifique una fecha de inicio:" TO v_fecha_inicio; "Especifique una fecha de fina-
lización:" TO v_fecha_finalización
FIELDS En lugar de un cuadro de texto, crea una lista desplegable de los elementos del proyecto para la entrada
cate- de información del usuario. El usuario puede seleccionar un solo elemento del proyecto, campo o varia-
goría_ ble de la lista.
ele-
categoría_elemento_proyecto especifica qué tipos de elementos aparecen en la lista. Por ejemplo, si
mento_
especifica xf, se muestran todas las tablas del proyecto en la lista. Encierre categoría_elemento_proyecto
pro-
entre comillas:
yecto
opcio- FIELDS "xf"
nal
Para conocer los códigos que se utilizan para especificar las categorías, consulte "Códigos de las cate-
gorías de elementos del proyecto" en la página 57.
Puede especificar más de un código en el mismo mensaje, pero no puede mezclar elementos de pro-
yecto, campos o variables.
Página 54 de 898
Comandos
Nombre Descripción
TO nom- El nombre de la variable de caracteres que se utilizará para almacenar la entrada del usuario. Si la varia-
bre_ ble no existe, se crea.
variable
Si la variable ya existe, se muestra su valor actual en el cuadro de diálogo como valor predeterminado.
Nota
No puede utilizar caracteres que no pertenezcan al alfabeto inglés, tales como é, en los
nombres de variables que se utilizarán para la sustitución de variables. Si utiliza este
tipo de caracteres en los nombres de las variables, el script no se podrá ejecutar.
El comando ACCEPT crea únicamente variables de caracteres. Si necesita introducir
otro tipo de datos, debe convertir la variable de caracteres al tipo necesario en un pro-
cesamiento posterior dentro de un script. Si desea obtener más información, consulte
"Tipo de datos de entrada" en la página 58.
Ejemplos
Petición al usuario para que seleccione la tabla de ACL que desea abrir.
Necesita un cuadro de diálogo que le pide al usuario que seleccione el nombre de la tabla que se abrirá. A
continuación, el script abre la tabla seleccionada por el usuario:
Los signos de porcentaje son obligatorios porque indican que el nombre de la tabla que se abrirá está alma-
cenado en la variable v_nombre_tabla. Si se omiten los signos de porcentaje, el script intenta abrir una
tabla denominada "v_nombre_tabla".
Página 55 de 898
Comandos
Uso de un solo cuadro de diálogo con varios mensajes para reunir la información necesaria
Usted desea crear un cuadro de diálogo único para todos los valores que debe introducir el usuario del
script.
Utiliza varios mensajes separados por punto y coma en el comando ACCEPT para solicitarle al usuario
varios valores de información de entrada. El mismo cuadro de diálogo contiene solicitudes de la fecha de
inicio y la fecha de finalización de un intervalo de fechas:
ACCEPT "Especifique una fecha de inicio:" TO v_fecha_inicio; "Especifique una fecha de fina-
lización:" TO v_fecha_finalización
Observaciones
Interactividad
Use ACCEPT para crear un script interactivo. Cuando se procesa el comando ACCEPT, el script se
detiene y aparece un cuadro de diálogo que le pide al usuario información de entrada que ACL utilizará en
el procesamiento subsiguiente.
Puede crear cuadros de diálogo separados que soliciten información de a un elemento por vez o crear un
cuadro de diálogo que solicite múltiples elementos.
Página 56 de 898
Comandos
Categorías de proyectos
Código Categoría
xf Tablas
xb Scripts
xi Índices
xr Vistas y reportes
xw Áreas_de_trabajo
Categorías de campos
Código Categoría
C Campos de caracteres
N Campos numéricos
D Campos de fechahora
L Campos lógicos
Categorías de variables
Código Categoría
c Variables de caracteres
n Variables numéricas
d Variables de fechahora
Página 57 de 898
Comandos
Código Categoría
l Variables lógicas
En el ejemplo, las fechas de inicio y finalización de este filtro se almacenan como valores de caracteres.
Se deben convertir en valores de fecha para ser utilizadas en un campo de fecha con el tipo de datos
Fechahora.
Al encerrar el nombre de la variable entre signos de porcentaje (%), se reemplaza el nombre de la varia-
ble por los valores de caracteres de la variable. A continuación, la función CTOD( ) convierte el valor de
caracteres en un valor de fecha.
Página 58 de 898
Comandos
Comando ACCESSDATA
Importa datos de una variedad de orígenes de datos compatibles con ODBC.
El comando toma la forma de ACCESSDATA64 o ACCESSDATA32; todo depende de si usted está
usando un controlador ODBC de 64 bits o de 32 bits.
Sintaxis
{ACCESSDATA64 | ACCESSDATA32} {CONNECTOR | ODBC {"Controlador"|"Dsn"|"Archivo"}}
NAME valor <USER id_usuario> <PASSWORD núm | PROMPT_PASSWORD> TO nombre_tabla
CHARMAX longitud_campo_máx MEMOMAX longitud_campo_máx <ALLCHARACTER> SOURCE
(configuración_conexión)
SQL_QUERY
(sintaxis_SQL)
) END_QUERY
Parámetros
Nombre Descripción
NAME valor El nombre del conector de datos de ACL, el controlador de ODBC o el DSN.
Por ejemplo:
o NAME "Amazon Redshift"
o NAME "Microsoft Access Driver (*.mdb, *.accdb)"
o NAME "My Excel DSN"
o NAME "excel.dsn"
USER id_usuario La identificación de usuario para los orígenes de datos que requieren una ID de usua-
rio.
opcional
PASSWORD núm | PROMPT_ Para orígenes de datos que requieren una contraseña:
PASSWORD o PASSWORD núm: utilice la definición de contraseña numerada.
opcional o PROMPT_PASSWORD: muestra una solicitud de contraseña
Página 59 de 898
Comandos
Nombre Descripción
CHARMAX longitud_campo_ La longitud máxima en caracteres de cualquier campo en la tabla de ACL que se ori-
máx gina como datos de carácter en el origen desde el cual está realizando la impor-
tación.
El valor predeterminado es 50. Los datos que superen la longitud de campo máxima
se truncan al importarlos a ACL.
MEMOMAX longitud_campo_ La longitud máxima en caracteres para los campos de texto, nota o memo que está
máx importando.
El valor predeterminado es 100. Los datos que superen la longitud de campo
máxima se truncan al importarlos a ACL.
ALLCHARACTER Asigne automáticamente el tipo de datos de Carácter a todos los campos importados.
opcional Una vez que los datos se encuentran en ACL, puede asignarles diferentes tipos de
datos, como Numéricos o Fechahora, a los campos y especificar los detalles de for-
mato.
Página 60 de 898
Comandos
Nombre Descripción
Consejo
ALLCHARACTER es útil si está importando una tabla que contiene
valores de identificación numéricos. Puede usar ALLCHARACTER
para impedir que ACL asigne automáticamente los tipos de datos
Numéricos a valores que deberían usar el tipo de datos de Carácter.
Ejemplos
Importación de datos mediante un conector de datos ACL nativo
Necesita importar datos desde el servicio de datos en la nube Amazon Redshift. Para hacerlo, usted utiliza
el conector de datos de ACL para Amazon Redshift:
Página 61 de 898
Comandos
SQL_QUERY(
SELECT
"historial_autorización"."organización" AS "organización",
"historial_autorización"."correo_electrónico_usuario" AS "correo_electrónico_usuario",
"historial_autorización"."id_plan" AS "id_plan",
"historial_autorización"."fecha_desde" AS "fecha_desde",
"historial_autorización"."fecha_hasta" AS "fecha_hasta"
FROM
"prm"."historial_autorización" "historial_autorización"
) END_QUERY
Página 62 de 898
Comandos
`Producto`.`Precio_Unitario` AS `Precio_Unitario`,
`Producto`.`Descripción` AS `Descripción`,
`Producto`.`Peso_embarque` AS `Peso_embarque`
FROM
(`Cliente` `Cliente`
INNER JOIN
`Pedidos` `Pedidos`
ON `Cliente`.`ID_Cliente` = `Pedidos`.`ID_Cliente`
)
INNER JOIN
`Producto` `Producto`
ON `Pedidos`.`ID_Producto` = `Producto`.`ID_Producto`
WHERE
(
`Cliente`.`Región` = 'BC'
OR `Cliente`.`Región` = 'WA'
)
) END_QUERY
Página 63 de 898
Comandos
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Página 64 de 898
Comandos
Comando ACTIVATE
Agrega definiciones de campo almacenadas en un área de trabajo de ACL al conjunto existente de defi-
niciones de campo de un formato de tabla de ACL.
Sintaxis
ACTIVATE <WORKSPACE> nombre_área_de_trabajo <OK>
Parámetros
Nombre Descripción
Aceptar Elimina o sobrescribe los elementos sin pedirle que confirme la acción.
opcional Si la tabla incluye un campo que tiene el mismo nombre que un campo del área de tra-
bajo activada, ese campo se sobrescribirá sin confirmación. No puede reemplazar nin-
gún campo que esté relacionado con un campo calculado.
Ejemplos
Activación de un área de trabajo en su proyecto de ACL
Usted activa el área de trabajo FórmulasComplejas :
Activación de un área de trabajo guardada como un archivo (.wsp) en la misma carpeta que su proyecto de ACL
Usted activa el área de trabajo FórmulasComplejas que se guardó en un archivo .wsp:
Página 65 de 898
Comandos
Observaciones
Cómo funciona
ACTIVATE hace que las definiciones de campo del área de trabajo se encuentren disponibles para la
tabla activa. Una vez que activa un área de trabajo, sus campos permanecen disponibles para ser uti-
lizados con la tabla activa hasta que se cierra la tabla.
Página 66 de 898
Comandos
Comando AGE
Agrupa registros en períodos de antigüedad sobre la base de los valores de un campo de fecha o
fechahora. Cuenta la cantidad de registros en cada período y también calcula el subtotal de campos numé-
ricos especificados para cada período.
Sintaxis
AGE <ON> campo_fecha <CUTOFF fecha_de_corte> <INTERVAL días <;...n>> <SUPPRESS>
<SUBTOTAL campo_numérico <...n> |ALL> <IF prueba> <WHILE prueba> <FIRST rango|NEXT
rango> <TO {SCREEN|nombre_de_archivo|GRAPH|PRINT}> <KEY salto_campo>
<HEADER texto_encabezado> <FOOTER texto_pie_de_página> <APPEND> <LOCAL>
<STATISTICS>
Parámetros
Nombre Descripción
ON campo_fecha El nombre del campo de fecha o de fechahora, o la expresión cuya antigüedad se deter-
minará.
A pesar de que puede determinar la expiración de un campo de fechahora, solo se con-
siderará la porción fecha de los valores de fechahora. La porción hora se ignora. No se
puede establecer la expiración sobre los datos de la hora solamente.
INTERVAL días <;...n> Los intervalos de fechas (es decir, la cantidad de días) que se deben utilizar para cal-
cular los períodos de antigüedad.
opcional
días representa el inicio de cada período de antigüedad que se mide hacia atrás a partir
de la fecha_de_corte:
o el primer valor de días identifica el inicio del primer período de antigüedad
o un primer valor de días de '0' especifica que el primer período de antigüedad
comienza en la fecha_de_corte especificada.
o el último valor de días identifica el final del último período de antigüedad
Debe especificar los intervalos como una cadena sin comillas con valores separados por
punto y coma:
Página 67 de 898
Comandos
Nombre Descripción
INTERVAL
0;90;180;270;365
Los períodos predeterminados de expiración son 0; 30; 60; 90; 120 y 10.000 días. Para
aislar registros con fechas que probablemente no sean válidas, se usa un intervalo de
10.000 días.
Si es necesario, los intervalos de fechas se pueden personalizar para que coincidan con
otros reportes internos de antigüedad.
SUPPRESS Suprime las fechas que caen fuera del período de antigüedad de la salida del comando.
opcional
SUBTOTAL campo_numé- Uno o más campos numéricos o expresiones que se subtotalizarán para cada grupo.
rico <...n> | ALL
Múltiples campos se deben separar con espacios. Especifique ALL para calcular sub-
opcional totales de todos los campos numéricos de la tabla.
IF prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta únicamente en los registros que cumplen la condición.
opcional
WHILE prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta hasta que la condición se evalúa como falsa o hasta que se llega al
opcional
final de la tabla.
TO SCREEN | nombre_ El lugar al que se deben enviar los resultados del comando:
archivo | GRAPH | PRINT o SCREEN: muestra los resultados en el área de visualización de ACL
o nombre_de_archivo: guarda los resultados en un archivo
Especifique el nombre_de_archivo como una cadena entre comillas con la extensión
de archivo adecuada. Por ejemplo: TO "Salida.TXT".
Por valor predeterminado, el archivo se guarda en la carpeta que contiene el pro-
yecto de ACL.
Utilice una ruta de archivo absoluta o relativa para guardar el archivo en una carpeta
existente o una diferente:
l TO "C:\Salida.TXT"
l TO "Resultados\Salida.TXT"
o GRAPH: muestra los resultados en un gráfico en el área de visualización de ACL
o PRINT: envía los resultados a la impresora predeterminada
KEY salto_campo El campo o la expresión que agrupa los cálculos de subtotal de grupos. Se calcula un
subtotal cada vez que cambia el valor de salto_campo.
opcional
salto_campo debe ser un campo de caracteres o una expresión. Puede especificar un
Página 68 de 898
Comandos
Nombre Descripción
solo campo, pero puede usar una expresión que contenga más de un campo.
HEADER texto_enca- El texto que se debe insertar en la parte superior de cada página de un reporte.
bezado
texto_encabezado_de_página se debe especificar como una cadena entre comillas. El
opcional valor anula la variable de sistema HEADER de ACL.
FOOTER texto_pie_de_ El texto que se debe insertar en la parte inferior de cada página de un reporte.
página
texto_pie_de_página se debe especificar como una cadena entre comillas. El valor
opcional anula la variable de sistema FOOTER de ACL.
APPEND Anexa la salida del comando al final de un archivo existente en lugar de sobrescribir el
archivo.
opcional
Nota
Debe asegurarse de que la estructura de la salida del comando y del
archivo existente sean idénticas:
l los mismos campos
l el mismo orden de campos
l los campos coincidentes son de la misma longitud
l los campos coincidentes tienen el mismo tipo de datos
ACL anexa la salida a un archivo existente sin importar cuál sea su
estructura. Si la estructura de la salida y la del archivo existente no coin-
ciden, es posible que los datos que se obtengan estén incompletos, mez-
clados o sean imprecisos.
LOCAL Nota
opcional Aplicable únicamente al ejecutar el comando en una tabla de Servidor de
ACL con un archivo de salida que es una tabla de ACL.
Guarda el archivo de salida en la misma ubicación que el proyecto de ACL.
STATISTICS Nota
opcional No se puede usar, a menos que también se especifique SUBTOTAL.
Calcula los valores promedio, mínimo y máximo para todos los campos SUBTOTAL.
Ejemplos
Clasificar las facturas por antigüedad con subtotales de importes
Desea clasificar por antigüedad una tabla de cuentas por cobrar a partir del campo Importe_factura y cal-
cular el subtotal del campo Importe_factura.
Las facturas se agrupan en períodos de 30 días:
Página 69 de 898
Comandos
OPEN Cuentas_por_cobrar
AGE ON Fecha_de_factura CUTOFF 20141231 INTERVAL 0;30;60;90;120;10000 SUBTOTAL
Importe_factura TO SCREEN
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Períodos de expiración
El comando AGE agrupa los registros en períodos de antigüedad sobre la base de los valores de un
campo de fecha o fechahora. Los resultados de la salida contienen un registro único para cada período,
con un recuento de la cantidad de registros en la tabla de origen que caen dentro de cada período.
Períodos futuros
Puede crear períodos de antigüedad más recientes que la fecha de corte si introduce valores negativos
para los intervalos de fechas. Por ejemplo, la siguiente sintaxis crea períodos de antigüedad que van
hacia delante y hacia atrás de la fecha de corte:
INTERVAL -60;-30;0;30;60;90
Este enfoque crea un perfil de datos para todos los registros de la tabla utilizando diferentes puntos en el
tiempo.
Página 70 de 898
Comandos
Página 71 de 898
Comandos
Comando APPEND
Combina los registros de dos o más tablas de ACL anexándolas a una nueva tabla de ACL.
Sintaxis
APPEND tabla_1, tabla_2, <...n> TO nombre_de_tabla <COMMONFIELDS> <OPEN>
Parámetros
Nombre Descripción
COMMONFIELDS Solo aquellos campos que son comunes a todas las tablas que se están anexando se
incluirán en la tabla de salida.
opcional
Si omite COMMONFIELDS, se incluyen todos los campos de todas las tablas en la
tabla de salida. Cuando no existen campos en las tablas de origen, la tabla de salida
incluye valores en blanco.
Página 72 de 898
Comandos
Nombre Descripción
Consejo
Si desea ver diagramas y capturas de pantallas que muestran las dos
opciones, consulte Anexión de tablas.
Nota
El comando APPEND no permite anexar campos calculados. Si desea
obtener más información, consulte "No se admiten campos calculados"
en la página 75.
OPEN Abre la tabla creada por el comando después de la ejecución del comando. Solo es
válido si el comando crea una tabla de salida.
opcional
Ejemplos
Anexar tres tablas de transacciones mensuales
El ejemplo que se incluye a continuación anexa tres tablas de transacciones mensuales y genera una tabla
de transacciones trimestrales de salida que incluye todos los campos de las tres tablas de origen:
Anexar tres tablas de transacciones mensuales e incluir únicamente los campos comunes
El siguiente ejemplo anexa tres tablas de empleados de divisiones y genera una tabla maestra de emplea-
dos que incluye únicamente los campos comunes de las tres tablas de origen:
Página 73 de 898
Comandos
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Cómo funciona
El comando APPEND combina los registros de dos o más tablas anexándolas y creando una nueva tabla.
Anexar significa agregar un grupo de registros a la parte inferior de otro grupo de registros.
Los campos de la tabla de origen con nombres físicos idénticos y categorías de datos idénticas se anexan
directamente entre sí.
Los campos con nombres físicos exclusivos en todas las tablas de origen se agregan a la tabla de salida
pero no se anexan directamente a ningún otro campo.
Consejo
Si desea anexar directamente los campos con nombres que no coinciden absolutamente,
estandarice los nombres físicos de los campos en los formatos de tabla antes de ane-
xarlos. (Asume que los campos tienen el mismo tipo de datos).
Página 74 de 898
Comandos
Armonización automática
En algunas situaciones, el comando APPEND armoniza automáticamente los campos para anexarlos:
Categoría de datos
de los campos Armonización realizada
Numérico o Se armonizan las diferentes longitudes de campo. Los campos se convierten al tipo de
datos de ACL.
o Se armonizan las distintas cantidades de lugares decimales definidas. Los lugares deci-
males se estandarizan de acuerdo con el número más elevado de lugares y, si es nece-
sario, se agregan ceros finales a los valores numéricos. Los campos se convierten al tipo
de datos de ACL.
o Los diferentes tipos de datos numéricos, como Print, Float, EBCDIC y Micro se armonizan
convirtiendo los campos al tipo de datos de ACL.
Fechahora o Los diferentes formatos de hora, fecha o fechahora del origen de datos se armonizan con-
virtiendo los campos a los formatos predeterminados de ACL:
l AAAAMMDD
l YYYYMMDD hh:mm:ss
l hh:mm:ss
Página 75 de 898
Comandos
Si un campo calculado de una tabla de origen tiene el mismo nombre que un campo físico de otra tabla de
origen, aparece un mensaje de error y no se ejecuta el comando APPEND.
Consejo
Puede anexar un campo calculado extrayéndolo primero para convertir el campo en un
campo físico. (Si desea obtener más información, consulte "Comando EXTRACT" en la
página 193). A continuación, utilizará la tabla extraída para la operación de anexión.
Otro enfoque consiste en volver a crear el campo calculado en la tabla de salida anexada.
Longitud de registro
Si incluye todos los campos de todas las tablas de origen al anexar, la longitud de registros de la tabla de
salida puede ser más extensa que la del registro más extenso de las tablas de origen.
Si la longitud de los registros de salida supera el máximo de 32 KB de ACL, aparece un mensaje de error.
La configuración Decimal
El comando APPEND utiliza la cantidad de lugares decimales que se definieron en el ajuste Dec en la defi-
nición de campo del formato de tabla.
Nota
El ajuste Dec puede no ser el mismo que el número real de lugares decimales en los
datos de origen. Los lugares decimales que superan el ajuste Dec no se definen y se
redondean en los cálculos.
Página 76 de 898
Comandos
Los lugares decimales de los archivos de datos de origen que superen el ajuste Dec más extenso se exclu-
yen de la tabla de salida generada por el comando APPEND.
Ordenación
Cualquier criterio de ordenamiento existente en las tablas de origen se mantiene por separado en los con-
juntos de registros correspondientes en la tabla de salida.
Incluso si los registros de todas las tablas de salida están ordenados, la tabla de salida se considera sin
ordenar porque los registros de origen se anexan como grupos, sin considerar ningún criterio de orde-
namiento existente en otras tablas de origen.
Por ejemplo, si anexa tablas mensuales o trimestrales para crear una tabla anual, se mantiene cualquier
ordenamiento interno de los datos mensuales o trimestrales. Si es necesario, puede ordenar la tabla de
salida después de realizar la operación de anexión.
Tabla Campos
La primera tabla especificada en el comando APPEND indica el orden de los campos en la tabla de salida.
Por lo tanto, en el ejemplo anterior, el orden de la tabla de salida es el siguiente:
l Apellido | Primer_nombre | Segundo_nombre
Campos no comunes
Los campos no comunes en las tablas de origen aparecen en la tabla de salida en el orden en que apa-
recen en el grupo seleccionado de tablas de origen.
Por ejemplo, al anexar estas dos tablas:
Página 77 de 898
Comandos
Tabla Campos
Página 78 de 898
Comandos
Comando ASSIGN
Crea una variable y asigna un valor a la variable.
Sintaxis
ASSIGN nombre_variable = valor <IF prueba>
Consejo
Puede omitir la palabra clave ASSIGN, porque ACL interpreta automáticamente la
siguiente sintaxis como una operación de asignación:
nombre_variable = valor
Parámetros
Nombre Descripción
valor El valor que se debe asignar a la variable. Si se crea una nueva variable, el tipo de varia-
ble se basa en el tipo de datos en valor.
IF prueba Una expresión condicional que debe ser verdadera para crear la variable o asignar el
valor a la variable.
Opcional
Ejemplos
Asignar un valor a una variable
Página 79 de 898
Comandos
Usted asigna el valor del campo Cantidad del registro actual a una variable llamada v_cantidad_actual.
Dado que v_cantidad_actual es una variable, su valor no cambia a menos que se modifique por medio de
otro comando ASSIGN de manera explícita:
Observaciones
Duración de las variables
Las variables con nombres que no tengan delante un guion bajo se conservan únicamente durante la
sesión actual de ACL.
Si desea que una variable se guarde de manera permanente con un proyecto de ACL, coloque un guión
bajo delante del nombre de la variable:
ASSIGN valor = _nombre_variable
Página 80 de 898
Comandos
Página 81 de 898
Comandos
Comando BENFORD
Hace un recuento del número de veces que aparece cada dígito o combinación de dígitos inicial en un
campo y compara el recuento real con el recuento esperado. El recuento esperado se calcula usando la
fórmula Benford.
Sintaxis
BENFORD <ON> campo_numérico <LEADING n> <IF prueba> <BOUNDS> <TO SCREEN|nom-
bre_tabla|GRAPH|PRINT> <HEADER texto_encabezado> <FOOTER texto_pie_de_página>
<WHILE prueba> <FIRST rango|NEXT rango> <APPEND> <OPEN> <LOCAL>
Parámetros
Nombre Descripción
LEADING n El número de dígitos iniciales que se analizará. El valor de n debe estar entre 1 y 6.
opcional Si se omite LEADING, se utiliza el valor predeterminado 1.
IF prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta únicamente en los registros que cumplen la condición.
opcional
BOUNDS Los valores de límite inferior y superior que se deben incluir en la salida. Es necesario
especificar BOUNDS si se desea mostrar los recuentos que estén considerablemente
opcional
fuera de los valores esperados.
TO SCREEN | nombre_ El lugar al que se deben enviar los resultados del comando:
tabla | GRAPH | PRINT o SCREEN: muestra los resultados en el área de visualización de ACL
opcional o nombre_tabla: guarda los resultados en una tabla de ACL
Especifique el nombre_tabla como una cadena entre comillas con la extensión de
archivo .FIL. Por ejemplo: TO "Salida.FIL"
Por valor predeterminado, el archivo de datos de la tabla (.FIL) se guarda en la car-
peta que contiene el proyecto de ACL.
Utilice una ruta de archivo absoluta o relativa para guardar el archivo de datos en
una carpeta existente o una diferente:
l TO "C:\Salida.FIL"
l TO "Resultados\Salida.FIL"
Página 82 de 898
Comandos
Nombre Descripción
Nota
Los nombres de las tablas tienen un límite de 64 caracteres alfa-
numéricos, sin incluir la extensión .FIL. El nombre puede incluir un
guión bajo ( _ ), pero no puede incluir ningún otro carácter especial
ni espacios. El nombre no puede comenzar con un número.
o GRAPH: muestra los resultados en un gráfico en el área de visualización de ACL
o PRINT: envía los resultados a la impresora predeterminada
HEADER texto_enca- El texto que se debe insertar en la parte superior de cada página de un reporte.
bezado
texto_encabezado_de_página se debe especificar como una cadena entre comillas. El
opcional valor anula la variable de sistema HEADER de ACL.
FOOTER texto_pie_de_ El texto que se debe insertar en la parte inferior de cada página de un reporte.
página
texto_pie_de_página se debe especificar como una cadena entre comillas. El valor
opcional anula la variable de sistema FOOTER de ACL.
WHILE prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta hasta que la condición se evalúa como falsa o hasta que se llega
opcional
al final de la tabla.
APPEND Anexa la salida del comando al final de un archivo existente en lugar de sobrescribir el
archivo.
opcional
Nota
Debe asegurarse de que la estructura de la salida del comando y del
archivo existente sean idénticas:
l los mismos campos
l el mismo orden de campos
l los campos coincidentes son de la misma longitud
l los campos coincidentes tienen el mismo tipo de datos
ACL anexa la salida a un archivo existente sin importar cuál sea su
estructura. Si la estructura de la salida y la del archivo existente no coin-
ciden, es posible que los datos que se obtengan estén incompletos,
mezclados o sean imprecisos.
OPEN Abre la tabla creada por el comando después de la ejecución del comando. Solo es
válido si el comando crea una tabla de salida.
opcional
LOCAL Nota
opcional Aplicable únicamente al ejecutar el comando en una tabla de Servidor
de ACL con un archivo de salida que es una tabla de ACL.
Página 83 de 898
Comandos
Nombre Descripción
Ejemplos
Envío de resultados a un gráfico
Ejecuta el comando BENFORD con el campo Importe y envía los resultados a un gráfico:
Página 84 de 898
Comandos
Comando CALCULATE
Calcula el valor de una o más expresiones.
Sintaxis
CALCULATE expresión <AS etiqueta_resultado> <;...n>
Parámetros
Nombre Descripción
Ejemplos
Realización de un cálculo simple
Utiliza CALCULATE para multiplicar 4,70 por 18,50, y obtiene 86,95 como resultado:
Página 85 de 898
Comandos
Usted usa CALCULATE para obtener el margen bruto del registro actualmente seleccionado utilizando
campos previamente definidos para precio de venta y costo unitario:
Observaciones
Cómo funciona
CALCULATE ofrece la funcionalidad de una calculadora combinada con el acceso a las funciones de
ACL, las variables y los datos del registro actualmente seleccionado.
CALCULATE 365/52/7
Devuelve 1,0027:
CALCULATE 365,0000/52/7
Página 86 de 898
Comandos
Comando CLASSIFY
Agrupa los registros sobre la base de valores idénticos en un campo de caracteres o numérico. Cuenta la
cantidad de registros en cada grupo y también calcula el subtotal de campos numéricos especificados para
cada grupo.
Sintaxis
CLASSIFY <ON> campo_clave <SUBTOTAL {campo_numérico <...n>|ALL}> <INTERVALS
número> <SUPPRESS> <TO {SCREEN|nombre_tabla|GRAPH|PRINT}> <IF prueba> <WHILE
prueba> <FIRST rango|NEXT rango> <HEADER texto_encabezado> <FOOTER texto_pie_de_
página> <KEY salto_campo> <OPEN> <APPEND> <LOCAL> <STATISTICS>
Parámetros
Nombre Descripción
o Defina los primeros 64 caracteres del campo clave como un nuevo campo físico y cla-
sifique la tabla utilizando el nuevo campo.
Consejo
Si desea clasificar una tabla usando un campo clave de más de 64 carac-
teres, puede utilizar el comando SUMMARIZE. Este comando no tiene un
límite de longitud para el campo clave.
SUBTOTAL campo_numé- Uno o más campos numéricos o expresiones que se subtotalizarán para cada grupo.
rico <...n> | ALL
Múltiples campos se deben separar con espacios. Especifique ALL para calcular sub-
opcional totales de todos los campos numéricos de la tabla.
Página 87 de 898
Comandos
Nombre Descripción
SUPPRESS Nota
opcional No se puede usar, a menos que también se especifique INTERVALS.
SUPPRESS no está disponible en la interfaz de usuario de ACL y solo se
puede utilizar como parte de la sintaxis de ACLScript en un script o la
línea de comandos.
Excluye conjuntos de valores idénticos que superan el máximo especificado por
INTERVALS de la salida del comando.
TO SCREEN | nombre_ El lugar al que se deben enviar los resultados del comando:
tabla | GRAPH | PRINT o SCREEN: muestra los resultados en el área de visualización de ACL
o nombre_tabla: guarda los resultados en una tabla de ACL
Especifique el nombre_tabla como una cadena entre comillas con la extensión de
archivo .FIL. Por ejemplo: TO "Salida.FIL"
Por valor predeterminado, el archivo de datos de la tabla (.FIL) se guarda en la car-
peta que contiene el proyecto de ACL.
Utilice una ruta de archivo absoluta o relativa para guardar el archivo de datos en una
carpeta existente o una diferente:
l TO "C:\Salida.FIL"
l TO "Resultados\Salida.FIL"
Nota
Los nombres de las tablas tienen un límite de 64 caracteres alfa-
numéricos, sin incluir la extensión .FIL. El nombre puede incluir un
guión bajo ( _ ), pero no puede incluir ningún otro carácter especial ni
espacios. El nombre no puede comenzar con un número.
o GRAPH: muestra los resultados en un gráfico en el área de visualización de ACL
o PRINT: envía los resultados a la impresora predeterminada
IF prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta únicamente en los registros que cumplen la condición.
opcional
WHILE prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta hasta que la condición se evalúa como falsa o hasta que se llega al
opcional
final de la tabla.
Página 88 de 898
Comandos
Nombre Descripción
HEADER texto_enca- El texto que se debe insertar en la parte superior de cada página de un reporte.
bezado
texto_encabezado_de_página se debe especificar como una cadena entre comillas. El
opcional valor anula la variable de sistema HEADER de ACL.
FOOTER texto_pie_de_ El texto que se debe insertar en la parte inferior de cada página de un reporte.
página
texto_pie_de_página se debe especificar como una cadena entre comillas. El valor
opcional anula la variable de sistema FOOTER de ACL.
KEY salto_campo El campo o la expresión que agrupa los cálculos de subtotal de grupos. Se calcula un
subtotal cada vez que cambia el valor de salto_campo.
opcional
salto_campo debe ser un campo de caracteres o una expresión. Puede especificar un
solo campo, pero puede usar una expresión que contenga más de un campo.
OPEN Abre la tabla creada por el comando después de la ejecución del comando. Solo es
válido si el comando crea una tabla de salida.
opcional
APPEND Anexa la salida del comando al final de un archivo existente en lugar de sobrescribir el
archivo.
opcional
Nota
Debe asegurarse de que la estructura de la salida del comando y del
archivo existente sean idénticas:
l los mismos campos
l el mismo orden de campos
l los campos coincidentes son de la misma longitud
l los campos coincidentes tienen el mismo tipo de datos
ACL anexa la salida a un archivo existente sin importar cuál sea su
estructura. Si la estructura de la salida y la del archivo existente no coin-
ciden, es posible que los datos que se obtengan estén incompletos, mez-
clados o sean imprecisos.
LOCAL Nota
opcional Aplicable únicamente al ejecutar el comando en una tabla de Servidor de
ACL con un archivo de salida que es una tabla de ACL.
Guarda el archivo de salida en la misma ubicación que el proyecto de ACL.
STATISTICS Nota
opcional No se puede usar, a menos que también se especifique SUBTOTAL.
Calcula los valores promedio, mínimo y máximo para todos los campos SUBTOTAL.
Página 89 de 898
Comandos
Ejemplos
Importe total de transacciones por cliente
Desea clasificar una tabla de cuentas por cobrar a partir del campo Número_cliente y calcular el subtotal
del campo Importe_trans . Los resultados de la salida se agrupan por cliente e incluyen el importe total de
las transacciones para cada cliente:
OPEN Cuentas_por_cobrar
CLASSIFY ON Número_cliente SUBTOTAL Importe_trans TO "Total_cliente.FIL"
OPEN Cuentas_por_cobrar
CLASSIFY ON Número_cliente SUBTOTAL Importe_trans TO "Estadísticas_cliente.FIL"
STATISTICS
OPEN Trans_Cp
CLASSIFY ON Importe_factura TO "Importes_factura_agrupados.FIL" OPEN
SET FILTER TO COUNT > 1
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Cómo funciona
CLASSIFY agrupa los registros que tienen el mismo valor en un campo de caracteres o numérico.
Página 90 de 898
Comandos
La salida contiene un registro único para cada grupo, con un recuento de la cantidad de registros en la tabla
de origen que pertenecen al grupo.
Ordenamiento y CLASSIFY
CLASSIFY puede procesar datos ordenados o sin ordenar. La salida se ordenan automáticamente de
forma ascendente.
Descripción del campo Nombre del campo en la tabla de Título alternativo de columna (nombre visible)
autogenerado salida en la tabla de salida
Campo subtotal nombre del campo que se subtotaliza Total + título alternativo de columna sub-
en la tabla de origen totalizada en la tabla de origen
Campo promedio a_ nombre del campo que se sub- Promedio + título alternativo de columna sub-
totaliza en la tabla de origen totalizada en la tabla de origen
Campo mínimo m_ nombre del campo que se sub- Mínimo + título alternativo de columna sub-
totaliza en la tabla de origen totalizada en la tabla de origen
Campo máximo x_ nombre del campo que se sub- Máximo + título alternativo de columna sub-
totaliza en la tabla de origen totalizada en la tabla de origen
Página 91 de 898
Comandos
Comando CLOSE
Cierra un archivo de log, un archivo de índice o una tabla de ACL o finaliza una sesión de la Grabadora de
scripts .
Sintaxis
CLOSE < nombre_tabla|PRIMARY|SECONDARY|INDEX|LOG|LEARN>
Parámetros
Nombre Descripción
Ejemplos
Cierre de una tabla por nombre
Desea cerrar una tabla llamada Inventario:
CLOSE Inventario
Página 92 de 898
Comandos
CLOSE SECONDARY
Observaciones
Cuándo usar CLOSE
En general, no es necesario cerrar tablas de ACL. La tabla de ACL activa se cierra automáticamente al
abrir otra tabla. La tabla primaria también se cierra automáticamente antes de ejecutar los comandos
OPEN o QUIT.
No puede utilizar CLOSE para cerrar un proyecto de ACL. En su lugar, use QUIT.
Página 93 de 898
Comandos
Comando COMMENT
Agrega una nota explicativa a un script sin afectar el procesamiento.
Sintaxis
Comentarios de una sola línea
COMMENT texto_comentario
Nota
No utilice el carácter de acento circunflejo ^ para anteceder líneas del texto de comen-
tario. El acento circunflejo tiene un uso especial en el archivo de proyecto de .acl y el texto
de comentario no se guarda si se antepone un acento circunflejo.
Parámetros
Nombre Descripción
Página 94 de 898
Comandos
Ejemplos
Comentarios de una sola línea
Los comentarios de una sola línea se usan antes de los comandos para agregar documentación para futu-
ros usuarios que mantendrán el script:
COMMENT
Este estudio analítico identifica varios registros con ID de originador de la transacción común
(como ID de proveedor o ID de comerciante)
en los que los valores de fecha de la transacción son iguales o tienen una diferencia de un día.
Este estudio analítico se puede usar para facturas divididas, órdenes de compra divididas,
solicitudes divididas y transacciones de tarjeta corporativa divididas.
END
Observaciones
Cuándo usar COMMENT
Utilice COMMENT para incluir información acerca del propósito de un script, la lógica utilizada y otra infor-
mación, como las entradas requeridas para el script y el propósito de cada variable que defina.
Los comentarios de un script se escriben en el log de comandos de ACL cada vez que se ejecuta el script.
Página 95 de 898
Comandos
Comando COUNT
Hace un recuento del número total de registros en la vista actual o solo de los registros que cumplen con
la condición especificada.
Sintaxis
COUNT <IF prueba> <WHILE prueba> <FIRST rango|NEXT rango>
Parámetros
Nombre Descripción
IF prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta únicamente en los registros que cumplen la condición.
opcional
WHILE prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta hasta que la condición se evalúa como falsa o hasta que se llega
opcional
al final de la tabla.
Página 96 de 898
Comandos
Ejemplos
Almacenamiento de COUNT1
El resultado del comando COUNT se almacena en la variable de salida COUNT1. Puede recuperar y alma-
cenar este valor en una variable definida por el usuario.
El comando COUNT sobrescribe la variable COUNT1 cada vez que se ejecuta, por lo que el valor se debe
almacenar en una variable definida por el usuario antes de que el comando se ejecute por segunda vez des-
pués de la aplicación del filtro a la tabla:
OPEN DirecciónCliente
COUNT
TotalReg = COUNT1
SET FILTER TO FechaModificación > ‘20100101‘
COUNT
TotalRegFiltrados = COUNT1
Observaciones
Cuándo usar COUNT
Utilice el comando COUNT para contar el número de registros de una tabla de ACL o para contar el número
de registros que cumplen con una condición de prueba en particular. En caso de no especificarse ninguna
prueba, aparece la cantidad total de registros de la tabla ACL.
Página 97 de 898
Comandos
Sintaxis
CREATE LAYOUT nombre_formato WIDTH caracteres <RECORD 0|RECORD 1>
Parámetros
Nombre Descripción
RECORD 0 | RECORD 1 o Si especifica RECORD 0, u omite este parámetro, el formato de tabla se crea sin
registros ni un archivo de datos de origen.
opcional o Si especifica RECORD 1, el formato de tabla se crea con un único registro vacío y
un archivo de datos de origen denominado nombre_formato.fil.
Ejemplos
Creación de un formato de tabla vacío sin ningún registro
Usted crea un formato de tabla vacío con una longitud de registro de 100 caracteres:
Página 98 de 898
Comandos
Observaciones
El formato de tabla vacío se crea con un único campo de caracteres denominado Campo_1. La longitud del
campo es la misma que la longitud del registro que especifique con WIDTH.
Nota
No se admite el uso de este comando en estudios analíticos de ACL que se ejecutan en el
Servidor de AX.
Página 99 de 898
Comandos
Comando CROSSTAB
Agrupa registros sobre la base de combinaciones idénticas de valores en dos o más campos de carac-
teres o numéricos y muestra los grupos que se obtienen en una cuadrícula de filas y columnas. Cuenta la
cantidad de registros en cada grupo y también calcula el subtotal de campos numéricos especificados
para cada grupo.
Sintaxis
CROSSTAB <ON> campo_fila <...n> COLUMNS campo_columna <SUBTOTAL campo_numérico
<...n>|ALL> TO \{SCREEN|nombre_tabla|nombre_archivo|GRAPH|PRINT} <IF prueba> <WHILE
prueba> <{FIRST rango|NEXT rango> <APPEND> <COUNT> <OPEN> <LOCAL> <HEADER
texto_encabezado> <FOOTER texto_pie_de_página>
Parámetros
Nombre Descripción
ON campo_fila <...n> El campo o la expresión que se debe utilizar para las filas en la cuadrícula de filas y
columnas resultante. Puede especificar uno o más campos o expresiones como base
para las filas.
COLUMNS campo_ El campo o la expresión que se debe utilizar para las columnas en la cuadrícula de
columna filas y columnas resultante. Puede especificar sólo un campo o expresión para las
columnas.
SUBTOTAL campo_numé- Uno o más campos numéricos o expresiones que se subtotalizarán para cada grupo.
rico <...n> | ALL
Múltiples campos se deben separar con espacios. Especifique ALL para calcular sub-
opcional totales de todos los campos numéricos de la tabla.
TO SCREEN | nombre_ El lugar al que se deben enviar los resultados del comando:
tabla | nombre_archivo | o SCREEN: muestra los resultados en el área de visualización de ACL
GRAPH | PRINT o nombre_tabla: guarda los resultados en una tabla de ACL
Especifique el nombre_tabla como una cadena entre comillas con la extensión de
archivo .FIL. Por ejemplo: TO "Salida.FIL"
Por valor predeterminado, el archivo de datos de la tabla (.FIL) se guarda en la car-
peta que contiene el proyecto de ACL.
Utilice una ruta de archivo absoluta o relativa para guardar el archivo de datos en
una carpeta existente o una diferente:
l TO "C:\Salida.FIL"
l TO "Resultados\Salida.FIL"
Nombre Descripción
Nota
Los nombres de las tablas tienen un límite de 64 caracteres alfa-
numéricos, sin incluir la extensión .FIL. El nombre puede incluir un
guión bajo ( _ ), pero no puede incluir ningún otro carácter especial
ni espacios. El nombre no puede comenzar con un número.
o nombre_de_archivo: guarda los resultados en un archivo
Especifique el nombre_de_archivo como una cadena entre comillas con la exten-
sión de archivo adecuada. Por ejemplo: TO "Salida.TXT".
Por valor predeterminado, el archivo se guarda en la carpeta que contiene el pro-
yecto de ACL.
Utilice una ruta de archivo absoluta o relativa para guardar el archivo en una car-
peta existente o una diferente:
l TO "C:\Salida.TXT"
l TO "Resultados\Salida.TXT"
o GRAPH: muestra los resultados en un gráfico en el área de visualización de ACL
o PRINT: envía los resultados a la impresora predeterminada
IF prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta únicamente en los registros que cumplen la condición.
opcional
WHILE prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta hasta que la condición se evalúa como falsa o hasta que se llega
opcional
al final de la tabla.
APPEND Anexa la salida del comando al final de un archivo existente en lugar de sobrescribir el
archivo.
opcional
Nota
Debe asegurarse de que la estructura de la salida del comando y del
archivo existente sean idénticas:
l los mismos campos
l el mismo orden de campos
l los campos coincidentes son de la misma longitud
l los campos coincidentes tienen el mismo tipo de datos
ACL anexa la salida a un archivo existente sin importar cuál sea su
estructura. Si la estructura de la salida y la del archivo existente no coin-
ciden, es posible que los datos que se obtengan estén incompletos,
mezclados o sean imprecisos.
COUNT Incluye los recuentos de registros en forma de columnas. Los recuentos resultan útiles
al utilizar SUBTOTAL.
opcional
Los recuentos se incluyen automáticamente si no selecciona ningún campo de sub-
Nombre Descripción
total.
OPEN Abre la tabla creada por el comando después de la ejecución del comando. Solo es
válido si el comando crea una tabla de salida.
opcional
LOCAL Nota
opcional Aplicable únicamente al ejecutar el comando en una tabla de Servidor
de ACL con un archivo de salida que es una tabla de ACL.
Guarda el archivo de salida en la misma ubicación que el proyecto de ACL.
HEADER texto_enca- El texto que se debe insertar en la parte superior de cada página de un reporte.
bezado
texto_encabezado_de_página se debe especificar como una cadena entre comillas. El
opcional valor anula la variable de sistema HEADER de ACL.
FOOTER texto_pie_de_ El texto que se debe insertar en la parte inferior de cada página de un reporte.
página
texto_pie_de_página se debe especificar como una cadena entre comillas. El valor
opcional anula la variable de sistema FOOTER de ACL.
Ejemplos
Generación de tablas cruzadas de una tabla de cuentas por cobrar con SUBTOTAL
Usted desea generar tablas cruzadas de una tabla de cuentas por cobrar por los campos Número de
cliente y Tipo de transacción. También desea calcular el subtotal del campo Importe de la transacción.
La salida se agrupa por cliente y, dentro de cada cliente, por tipo de transacción. Incluye el importe total
de las transacciones de cada cliente para cada tipo de transacción:
OPEN Cuentas_por_cobrar
CROSSTAB ON Número_cliente COLUMNS Tipo_trans SUBTOTAL Importe_trans COUNT TO
SCREEN
Generación de tablas cruzadas de una tabla de cuentas por cobrar para detectar transacciones duplicadas
Necesita encontrar indicios de transacciones duplicadas en una tabla de cuentas por cobrar.
Para hacerlo, genera una tabla cruzada de una tabla de cuentas por cobrar a partir de los campos
Importe de la transacción y Tipo de transacción. La salida agrupa y hace un recuento de los importes
de transacciones idénticos para cada tipo de transacción:
OPEN Cuentas_por_cobrar
CROSSTAB ON Importe_transacción COLUMNS Tipo_trans TO SCREEN
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Cómo funciona
CROSSTAB agrupa registros que tienen la misma combinación de valores en dos o más campos numé-
ricos o de caracteres.
La salida contiene una grilla de filas y columnas similar a una tabla dinámica. Incluye una intersección única
de fila y columna para cada grupo, con un recuento de la cantidad de registros en la tabla de origen que per-
tenecen al grupo.
Ordenamiento y CROSSTAB
CROSSTAB puede procesar datos ordenados o sin ordenar. Tanto campo_fila como campo_columna de
la salida se ordenan automáticamente de manera ascendente.
Si especifica más de un campo_fila, los campos utilizan un ordenamiento anidado, comenzando por el pri-
mer campo_fila que especifica.
Comando CVSEVALUATE
Para el muestreo de variables clásicas, ofrece cuatro métodos diferentes para proyectar los resultados
del análisis de la muestra a toda la población.
Sintaxis
CVSEVALUATE BOOKED campo_valor_contable AUDITED campo_valor_auditoría ETYPE
{MPU|DIFFERENCE|RATIO SEPARATE|RATIO COMBINED} STRATA valor_límite <;...n>
POPULATION recuento_estrato;valor_contable_estrato <;...n> CONFIDENCE nivel_de_confianza
CUTOFF valor;recuento_estrato_certeza;valor_contable_estrato_certeza ERRORLIMIT número
PLIMIT {BOTH|UPPER|LOWER} <TO {SCREEN|nombre_de_archivo}>
Parámetros
Nota
Si está utilizando los resultados de salida de los comandos CVSPREPARE y
CVSSAMPLE como entrada para el comando CVSEVALUATE, una cantidad de valores
de parámetros ya están especificados y almacenados en las variables. Si desea obtener
más información, consulte "Comando CVSPREPARE" en la página 108 y "Comando
CVSSAMPLE" en la página 112.
No incluya los separadores de mil ni los signos de porcentaje al especificar los valores.
Nombre Descripción
BOOKED campo_valor_ El campo numérico valor contable que se debe usar en la evaluación.
contable
AUDITED campo_valor_ El campo numérico valor de auditoría que se debe usar en la evaluación.
auditoría
STRATA valor_límite Los valores límite superiores que se deben usar para estratificar el campo_valor_con-
<;...n> table.
Nombre Descripción
POPULATION recuento_ La cantidad de registros y el valor total para cada estrato del campo_valor_contable.
estratos; valor_estrato
<;...n>
CONFIDENCE nivel_de_ El nivel de confianza que se utilizó durante la etapa de preparación del muestro de
confianza variables clásicas.
CUTOFF valor; recuento_ o valor: el valor de corte del estrato de certeza que se utilizó durante la etapa de pre-
estrato_certeza; valor_con- paración y muestreo del muestreo de variables clásicas
table_estrato_certeza o recuento_estrato_certeza: la cantidad de registros del estrato de certeza
o valor_contable_estrato_certeza: el valor contable total de los registros del estrato
de certeza
TO SCREEN | nombre_ El lugar al que se deben enviar los resultados del comando:
archivo o SCREEN: muestra los resultados en el área de visualización de ACL
o nombre_de_archivo: guarda los resultados en un archivo
Especifique el nombre_de_archivo como una cadena entre comillas con la exten-
sión de archivo adecuada. Por ejemplo: TO "Salida.TXT".
Por valor predeterminado, el archivo se guarda en la carpeta que contiene el pro-
yecto de ACL.
Utilice una ruta de archivo absoluta o relativa para guardar el archivo en una car-
peta existente o una diferente:
l TO "C:\Salida.TXT"
l TO "Resultados\Salida.TXT"
Ejemplos
Proyectar errores detectados en los datos de muestra a toda la población
Finalizó las pruebas de los datos de muestra y registró las desviaciones de los controles que detectó.
Ahora, puede proyectar los error errores que haya encontrado a la población completa.
El siguiente ejemplo utiliza el tipo de estimación Diferencia para proyectar los resultados del análisis de la
muestra a la población completa:
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Pautas
Las siguientes pautas lo ayudarán a seleccionar el tipo de estimación. Puede repetir la etapa de eva-
luación con diferentes tipos de estimación y comparar los resultados de cada una.
Comparación de la
Presencia de infor- Tamaño de la infor- Signo de los valores razón de los estra-
Tipo de estimación mación errónea mación errónea contables tos
Comparación de la
Presencia de infor- Tamaño de la infor- Signo de los valores razón de los estra-
Tipo de estimación mación errónea mación errónea contables tos
Comando CVSPREPARE
Estratifica una población y calcula una muestra estadísticamente válida para cada estrato, para el mues-
treo de variables clásicas.
Sintaxis
CVSPREPARE <ON> campo_valor_contable NUMSTRATA número MINIMUM tamaño_muestra_
estrato_mínimo PRECISION valor CONFIDENCE nivel_de_confianza <CUTOFF valor> NCELLS
número PLIMIT {BOTH|UPPER|LOWER} ERRORLIMIT número <MINSAMPSIZE tamaño_mues-
tra_mínimo> TO SCREEN|nombre_de_archivo>
Parámetros
Nota
No incluya los separadores de mil ni los signos de porcentaje al especificar los valores.
Nombre Descripción
ON campo_valor_con- El campo numérico valor contable que se debe usar como la base para la preparación
table del muestreo de variables clásicas.
NUMSTRATA número La cantidad de estratos se deben utilizar para estratificar de manera numérica el
campo_valor_contable.
La cantidad mínima de estratos es 1 y la cantidad máxima, 256.
Si especifica NUMSTRATA 1 y no especifica CUTOFF, la población no se estratifica
antes de extraer una muestra.
Nota
El número de estratos no puede superar el 50 % de la cantidad de cel-
das especificadas para NCELLS.
MINIMUM tamaño_mues- La cantidad mínima de registros que se deben tomar como muestra en cada estrato.
tra_estrato_mínimo
Si no tiene una razón específica para establecer un número mínimo, deje el valor pre-
determinado de cero (0).
PRECISION valor El importe monetario que es la diferencia entre la información errónea tolerable y la
información errónea esperada en la cuenta.
o Información errónea tolerable: la cantidad total máxima de errores de información
que pueden aparecer en el campo muestra sin que eso se considere como un error
significativo
o Información errónea esperada:la cantidad total de información errónea que espera
encontrar en el campo de muestra
Nombre Descripción
CONFIDENCE nivel_de_ El nivel deseado de confianza de que la muestra resultante sea representativa de la
confianza población completa.
Por ejemplo, si especifica 95, significa que desea tener una certeza de que el 95 % de
las veces la muestra será realmente representativa. La confianza es el complemento
del "riesgo de muestreo". Un nivel de confianza de 95 % es lo mismo que un riesgo de
muestreo de 5 %.
o Si PLIMIT es BOTH, el nivel mínimo de confianza es 10 % y el máximo es 99,5 %.
o Si PLIMIT es UPPER o LOWER, el nivel mínimo de confianza es 55 % y el máximo
es 99,5 %.
NCELLS número La cantidad de celdas que se deben usar para pre-estratificar el campo_valor_
contable.
Las celdas son divisiones numéricas más estrechas que los estratos. La pre-estra-
tificación forma parte de un proceso interno que optimiza la posición de los límites de
los estratos. Las celdas no se conservan en la salida estratificada final.
La cantidad mínima de celdas es 2 y la cantidad máxima, 999.
Nota
La cantidad de celdas debe ser al menos el doble (2x) de la cantidad de
estratos que se especificaron para NUMSTRATA.
Nombre Descripción
MINSAMPSIZE tamaño_ La cantidad mínima de registros que se deben tomar como muestra de la población
muestra_mínimo total.
opcional Si no tiene una razón específica para establecer un número mínimo, deje el valor pre-
determinado de cero (0).
TO SCREEN | nombre_ El lugar al que se deben enviar los resultados del comando:
archivo o SCREEN: muestra los resultados en el área de visualización de ACL
o nombre_de_archivo: guarda los resultados en un archivo
Especifique el nombre_de_archivo como una cadena entre comillas con la exten-
sión de archivo adecuada. Por ejemplo: TO "Salida.TXT".
Por valor predeterminado, el archivo se guarda en la carpeta que contiene el pro-
yecto de ACL.
Utilice una ruta de archivo absoluta o relativa para guardar el archivo en una car-
peta existente o una diferente:
l TO "C:\Salida.TXT"
l TO "Resultados\Salida.TXT"
STOP El valor de corte del estrato de certeza que especificó el usuario o, si no se especificó
ninguno, el límite superior del estrato superior calculado por el comando.
SBOUNDARY Todos los límites superiores de los estratos calculados por el comando y S_TOP. No
almacena SBOTTOM.
Nombre Contiene
SPOPULATION El recuento de la cantidad de registros de cada estrato y el valor monetario total para
cada estrato. Excluye los elementos que superan el corte del estrato de certeza.
Ejemplos
Preparar una muestra de variables clásicas
Decidió utilizar el muestreo de variables clásicas para estimar el importe total de información monetaria erró-
nea en la cuenta que contiene las facturas.
Antes de extraer la muestra, debe estratificar la población y calcular el tamaño de muestra esta-
dísticamente válido para cada estrato.
Desea estar seguro de que el 95 % de las veces, la muestra extraída por ACL será representativa de la
población en su conjunto.
Utilizando el nivel de confianza especificado, el siguiente ejemplo estratifica una tabla sobre la base del
campo importe_factura y calcula el tamaño de la muestra para cada estrato y el estrato de certeza:
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Comando CVSSAMPLE
Extrae una muestra de registros utilizando el método de muestreo de variables clásicas.
Sintaxis
CVSSAMPLE ON campo_valor_contable NUMSTRATA número SEED valor_semilla> CUTOFF
valor STRATA valor_límite <;...n> SAMPLESIZE número <;...n> POPULATION recuento_
estrato,valor_estrato <;...n> TO nombre_tabla
Parámetros
Nota
Si está utilizando los resultados de salida del comando CVSPREPARE como entrada
para el comando CVSSAMPLE, una cantidad de valores del parámetro ya están espe-
cificados y almacenados en las variables. Si desea obtener más información, consulte
"Comando CVSPREPARE" en la página 108.
No incluya los separadores de mil ni los signos de porcentaje al especificar los valores.
Nombre Descripción
ON campo_valor_con- El campo numérico valor contable que se debe utilizar como base para la muestra.
table
NUMSTRATA número La cantidad de estratos que se deben utilizar para estratificar el campo_valor_contable.
SEED valor_semilla El valor semilla que se debe usar para inicializar el generador de números aleatorios
en ACL.
opcional
Si omite SEED, ACL selecciona de manera aleatoria el valor semilla.
STRATA valor_límite Los valores límite superiores que se deben usar para estratificar el campo_valor_con-
<;...n> table.
SAMPLESIZE número La cantidad de registros que se deben tomar como muestra en cada estrato.
<;...n>
POPULATION recuento_ La cantidad de registros de cada estrato y el valor total para cada estrato.
estratos; valor_estrato
Nombre Descripción
<;...n>
S_TOPEV El valor de corte del estrato de certeza que especificó el usuario o, si no se especificó nin-
guno, el límite superior del estrato superior calculado previamente por el comando
CVSPREPARE.
También almacena el recuento de la cantidad de registros del estrato de certeza y su
valor monetario total.
BOUNDARYEV Todos los límites superiores de los estratos precompletados por el comando o espe-
cificados por el usuario. No almacena S_TOPEV ni SBOTTOMEV.
SPOPULATION El recuento de la cantidad de registros de cada estrato y el valor monetario total para
cada estrato. Excluye los elementos que superan el corte del estrato de certeza.
Ejemplos
Extraer una muestra de variables clásicas
Va a utilizar el muestreo de variables clásicas para estimar el importe total de información monetaria
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Sintaxis
DEFINE COLUMN nombre_vista nombre_campo <AS nombre_visible> <POSITION n> <WIDTH
caracteres> <PIC formato> <SORT|SORT D> <KEY> <PAGE> <NODUPS> <NOZEROS> <LINE
n>
Parámetros
Nombre Descripción
AS nombre_visible El nombre visible (título de columna alternativo) para el campo en la vista. Si desea que
el nombre visible sea el mismo que el nombre del campo, no use AS.
opcional
Especifique nombre_visible como una cadena entre comillas. Utilice un punto y coma (;)
entre las palabras si desea que haya un salto de línea en el título de la columna.
Nombre Descripción
Nota
Los caracteres especificados por WIDTH son caracteres de ancho fijo. A
cada carácter se le asigna la misma cantidad de espacio, sin importar el
ancho del carácter real.
Por valor predeterminado, las vistas de ACL utilizan una fuente de ancho
proporcional que no coincide con el espaciado de caracteres de ancho
fijo.
Si desea que exista una correspondencia de uno a uno entre el valor
WIDTH y los caracteres de la vista, puede cambiar el ajuste Fuente pro-
porcional en el cuadro de diálogo Opciones a una fuente de ancho fijo,
como Courier New.
KEY La columna está designada como un campo de corte en los registros. Los registros se
subtotalizan y subdividen cuando el valor de la columna cambia. Se aplican las siguien-
opcional
tes restricciones a los campos de salto:
o debe ser una expresión o un campo de caracteres
o si un campo de salto se ajusta en la vista, debe ser la columna ubicada en el extremo
izquierdo
o la última columna de la vista no puede ser un campo de salto
o si tiene más de un campo de salto, todas las columnas ubicadas a la izquierda de
cualquier otro campo de salto también deben ser campos de salto
PAGE Inserta un salto de página cada vez que cambia el valor del campo de salto.
opcional
Nombre Descripción
Ejemplos
Definición de una vista con seis columnas
Con la tabla AR abierta, usted define una vista denominada Reporte_cuentas_cobrar y define seis colum-
nas. Las columnas se muestran en el orden indicado:
OPEN Cuentas_por_cobrar
DEFINE VIEW Reporte_Cuentas_cobrar OK
DEFINE COLUMN Reporte_Cuentas_cobrar Número AS "Número de cliente" WIDTH 7 KEY
DEFINE COLUMN Reporte_Cuentas_cobrar Date AS "Fecha de factura" WIDTH 10
DEFINE COLUMN Reporte_Cuentas_cobrar Due AS "Fecha de vencimiento" WIDTH 10
DEFINE COLUMN Reporte_Cuentas_cobrar Reference AS "Número de referencia" WIDTH 6
DEFINE COLUMN Reporte_Cuentas_cobrar Type AS "Tipo de transacción" WIDTH 5
DEFINE COLUMN Reporte_Cuentas_cobrar Importe AS "Monto de la transacción" WIDTH 12
Sintaxis
DEFINE FIELD nombre_campo tipo_datos posición_inicial longitud < decimales|formato_fecha>
<NDATETIME> <PIC formato> <AS nombre_visible> <WIDTH caracteres> <SUPPRESSS>
< nota_campo>
Parámetros
Nombre Descripción
tipo_datos El tipo de datos que se debe usar al interpretar los datos. Para ver una lista de los tipos
de datos admitidos, consulte "Tipos de datos admitidos" en la página 123.
Por ejemplo, los números de factura podrían estar almacenados como valores numé-
ricos en el origen de datos. Para tratar estos valores como cadenas en lugar de núme-
ros, puede definir el campo como datos de caracteres.
posición_inicial La posición del byte de inicio para el campo en el archivo de datos de ACL.
Nota
Nombre Descripción
Nota
NDATETIME Los valores de fecha, fechahora u hora almacenados en un campo numérico se tratan
como datos de fechahora.
opcional
NDATETIME requiere que también especifique el formato de fechahora de origen
mediante PIC formato.
AS nombre_visible El nombre visible (título de columna alternativo) para el campo en la vista. Si desea que
el nombre visible sea el mismo que el nombre del campo, no use AS.
opcional
Especifique nombre_visible como una cadena entre comillas. Utilice un punto y coma
(;) entre las palabras si desea que haya un salto de línea en el título de la columna.
Nombre Descripción
nota_campo El texto de una nota de campo que se agrega a la definición del campo en el formato
de tabla.
opcional
nota_campo debe ser el último, después de cualquier otro parámetro obligatorio u
opcional. El texto no puede ser de varias líneas. No es necesario usar comillas.
Ejemplos
Definición de un campo de caracteres
Define un campo de caracteres denominado Desc_del_prod. El título de la columna en la vista es Des-
cripción del producto.
ACL no Unicode
l Comienza en: byte 12 (posición 12 de caracteres)
l Longitud: 24 bytes (24 caracteres)
Al definir campos de fechahora que incluyen datos de la hora, debe usar PIC formato,
El siguiente ejemplo define un campo de fechahora denominado marca_de_hora_correo_electrónico.
En los datos de origen, el formato de fechahora es YYYY/MM/DD hh:mm:ss-hh:mm.
l Comienza en: byte 1
l Longitud: 25 bytes
Definición de un campo de datos físicos que lea los datos empaquetados en el mainframe
Puede usar la opción NDATETIME para crear un campo de datos físico que lea los valores de fecha
desde un campo numérico empaquetado.
ACL no puede reconocer una fecha en un número que está comprimido en menos bytes que uno por
dígito y que no muestra un formato de fecha. Como consecuencia, el usuario debe "descomprimir" el
número con NDATETIME para obtener el número completo de dígitos y luego especificar el formato de
fecha con PIC.
Para indicar con precisión qué números representan el día, el mes y el año, especifique el mismo formato
de fecha que se encuentra en el formato del registro empaquetado:
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Carácter ASCII
CUSTOM
EBCDIC
NOTA
PCASCII
UNICODE
Numérico ACCPAC
ACL
BASIC
BINARY (binario)
FLOAT (flotante)
HALFBYTE
IBMFLOAT
MICRO
NUMERIC (numérico)
PACKED (compactado)
UNISYS
UNSIGNED
VAXFLOAT
ZONED (zonado)
Fechahora DATETIME
Lógico LÓGICOS
Sintaxis
Para definir un campo calculado:
Nota
La sintaxis en varias líneas se debe estructurar exactamente como se muestra en la sin-
taxis genérica anterior y en los ejemplos que figuran a continuación.
Parámetros
Nombre Descripción
expresión Una expresión válida de ACL que define el valor del campo calculado.
IF prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta únicamente en los registros que cumplen la condición.
opcional
STATIC El campo muestra el mismo valor en cada línea de la tabla hasta que se encuentra un
valor nuevo.
opcional
Por ejemplo, si hay un campo Apellido en los datos de origen, donde:
o el primer registro muestra el valor "Smith"
o los siguientes cinco registros muestran líneas en blanco
o el séptimo registro muestra el valor "Wong"
En este caso, "Smith" aparece en seis líneas consecutivas y "Wong" aparece en la sép-
tima línea.
AS nombre_visible El nombre visible (título de columna alternativo) para el campo en la vista. Si desea que
el nombre visible sea el mismo que el nombre del campo, no use AS.
opcional
Especifique nombre_visible como una cadena entre comillas. Utilice un punto y coma
(;) entre las palabras si desea que haya un salto de línea en el título de la columna.
Nombre Descripción
Nota
Los caracteres especificados por WIDTH son caracteres de ancho fijo. A
cada carácter se le asigna la misma cantidad de espacio, sin importar el
ancho del carácter real.
Por valor predeterminado, las vistas de ACL utilizan una fuente de
ancho proporcional que no coincide con el espaciado de caracteres de
ancho fijo.
Si desea que exista una correspondencia de uno a uno entre el valor
WIDTH y los caracteres de la vista, puede cambiar el ajuste Fuente pro-
porcional en el cuadro de diálogo Opciones a una fuente de ancho fijo,
como Courier New.
nota_campo El texto de una nota de campo que se agrega a la definición del campo en el formato
de tabla.
opcional
nota_campo debe ser el último, después de cualquier otro parámetro obligatorio u
opcional. El texto no puede ser de varias líneas. No es necesario usar comillas.
Ejemplos
Definición de un campo calculado
Usted define un campo calculado denominado Valor que es el producto de los campos Costo y Cantidad:
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Si SET SAFETY está ajustado en ON, ACL muestra un cuadro de diálogo de confirmación antes de
sobrescribir el campo existente. Para evitar interrumpir un script, puede ajustar SET SAFETY en OFF y
ACL sobrescribe el campo existente sin solicitar confirmación.
Sintaxis
DEFINE RELATION campo_clave WITH nombre_tabla_relacionada INDEX nombre_índice <AS nom-
bre_relación>
Parámetros
Nombre Descripción
INDEX nombre_índice El nombre del índice para el campo clave de la tabla relacionada.
Debe indexar la tabla relacionada utilizando el campo clave para poder relacionar la
tabla.
Ejemplos
Relacionar dos tablas
El siguiente ejemplo relaciona la tabla abierta con la tabla Cliente utilizando el campo número de cliente
(NúmCliente) como campo clave:
OPEN Cliente
INDEX ON NúmCliente TO Cliente_por_NúmCliente
OPEN Ar
DEFINE RELATION NúmCliente WITH Cliente INDEX Cliente_en_NúmCliente
OPEN Comprobantes
INDEX ON número_comprobante TO "Comprobantes_por_número_comprobante"
OPEN Elementos_comprobantes
DEFINE RELATION número_comprobante WITH Comprobantes INDEX Comprobantes_por_
número_comprobante
OPEN Empleados
INDEX ON número_de_empleado TO "Empleados_por_número_de_empleado"
OPEN Elementos_comprobantes
DEFINE RELATION Comprobantes.creados_por WITH Empleados INDEX Empleados_por_
número_de_empleado
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Sintaxis
DEFINE REPORT nombre_vista
Parámetros
Nombre Descripción
Ejemplos
Creación de una nueva vista
Usted crea una nueva vista denominada T4_AR_revisión:
Sintaxis
DEFINE TABLE DB {SOURCE perfil_base_de_datos <PASSWORD núm> <PASSWORD núm> |
SERVER perfil_servidor <PASSWORD núm>} <FORMAT nombre_formato> SCHEMA esquema
<TITLED acl_nombre_tabla> <PRIMARY|SECONDARY> DBTABLE nombre_tabla_db FIELDS
{nombres_campos|ALL} <...n> <WHERE condición> <ORDER nombres_campos>
Parámetros
SOURCE El perfil de base de datos de ACL que se utilizará para acceder al motor de bases de datos.
perfil_
Los perfiles de base de datos incluyen la información necesaria para conectarse al motor de base de
base_de_
datos, que incluye lo siguiente:
datos
o una referencia al perfil de servidor asociado
o el tipo de base de datos
o el nombre de la base de datos
o la información de la cuenta de usuario
Nota
DEFINE TABLE DB soporta la conexión únicamente una de las siguientes bases de
datos: Microsoft SQL Server, Oracle o DB2.
SERVER Ya no se utiliza.
perfil_ser-
Antes de la versión 10.0 de ACL, se utilizaba al conectarse a ACL Edición de Servidor para z/OS. A partir
vidor de la versión 10.0 de ACL, ya no se incluye ACL Edición de Servidor para z/OS.
FORMAT El nombre de una tabla de ACL, o un archivo de formato de tabla (.layout), con un formato de tabla que
nombre_ se desea utilizar.
formato
opcional
SCHEMA El esquema con el que se establecerá conexión. Debe colocar el nombre de esquema entre comillas.
esquema
PRIMARY Utilice la tabla como una tabla primaria o secundaria en los comandos de múltiples archivos. Si no se
| especifica ninguna de las opciones, se utiliza el valor predeterminado PRIMARY.
SECOND-
ARY
opcional
DBTABLE Las tablas de base de datos a las que desea acceder. tabla_base_de_datos debe ser una cadena entre
tabla_ comillas.
base_de_
datos
Nota
Al utilizar el Connector de AX, puede acceder a un número ilimitado de tablas rela-
cionadas, aunque se recomienda que no sean más de cinco. El tiempo de pro-
cesamiento aumenta cuando accede a múltiples tablas.
WHERE Una cláusula WHERE de SQL que limita los datos a aquellos registros que cumplen con la condición
condición especificada.
opcional Debe usar sintaxis SQL válida e introducirla como una cadena entre comillas.
Al unir tablas, ACL muestra la condición de la unión en la cláusula WHERE:
"Tabla_1.Nombre = Tabla_2.Nombre"
ORDER Los campos que utiliza el motor de base de datos para ordenar los registros. nombres_campos debe ser
nombres_ una cadena entre comillas.
campos
El comando tarda más en ejecutarse al ordenar los registros. Utilice ORDER únicamente cuando el
opcional orden sea importante.
Ejemplos
Ejemplo
Usted desea acceder a datos de una base de datos de Microsoft SQL Server a través del Conector de AX.
Para hacerlo, utiliza el comando DEFINE TABLE DB. Incluye el parámetro SOURCE para establecer cone-
xión con el Conector de AX a través de un perfil de base de datos.
Observaciones
Cómo funciona
La tabla de servidor ACL se define como una consulta que utiliza un perfil de base de datos para conec-
tarse con una tabla de base de datos.
Sintaxis
DEFINE VIEW nombre_vista <RLINES n> <ALL> <SUPPRESS> <SUMMARIZED> <IF prueba>
<WHILE test> <HEADER texto_encabezado> <FOOTER texto_pie_de_página> <TO nombre_de_
archivo_del_reporte <HTML>> <OK>
Parámetros
Nombre Descripción
RLINES n El espaciado entre líneas para los registros detallados en las vistas y los reportes.
Como opción predeterminada, las líneas de detalles tienen un espaciado simple.
opcional
ALL Todos los campos del formato de tabla ACL activo se agregan a la vista.
opcional
SUPPRESS Suprime las líneas de detalles en blanco en los reportes generados a partir de la vista.
Cuando se genere el reporte, las líneas de detalles en blanco se omitirán de la salida.
opcional
Esta opción se aplica a reportes basados en vistas multilínea.
SUMMARIZED Especifica que los reportes generados a partir de la vista deben incluir subtotales y tota-
les, pero no deben incluir las líneas de detalles.
opcional
Los subtotales se generan sobre la base de los campos de corte definidos en la vista.
Si no se selecciona esta opción, el reporte incluye las líneas de detalle, así como tam-
bién los subtotales para cada uno de los campos de corte especificados.
IF prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta únicamente en los registros que cumplen la condición.
opcional
WHILE prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta hasta que la condición se evalúa como falsa o hasta que se llega
Nombre Descripción
HEADER texto_enca- El texto que se debe insertar en la parte superior de cada página de un reporte.
bezado
texto_encabezado_de_página se debe especificar como una cadena entre comillas. El
opcional valor anula la variable de sistema HEADER de ACL.
FOOTER texto_pie_de_ El texto que se debe insertar en la parte inferior de cada página de un reporte.
página
texto_pie_de_página se debe especificar como una cadena entre comillas. El valor
opcional anula la variable de sistema FOOTER de ACL.
TO nombre_de_archivo_ El tipo y nombre de archivo de los reportes creados a partir de esta vista.
del_reporte HTML
Utilice la palabra clave HTML para guardar los reportes generados a partir de esta vista
opcional como archivos HTML (.htm). Como opción predeterminada, los reportes se generan
como archivos de texto ASCII.
Aceptar Elimina o sobrescribe los elementos sin pedirle que confirme la acción.
opcional
Ejemplos
Creación de una vista
Usted abre la tabla Ar y crea una vista llamada AR_Reporte, que incluye todos los campos del formato de
tabla:
OPEN Cuentas_por_cobrar
DEFINE VIEW AR_Reporte HEADER "Reporte de AR" ALL OK
Comando DELETE
Elimina un elemento del proyecto de ACL, un campo de un formato de tabla, una variable, una o más
entradas del historial, una relación entre tablas o un archivo de una carpeta de Windows. También quita
una columna de una vista
Sintaxis
Propósito Sintaxis
Parámetros
Nombre Descripción
Nombre Descripción
nombre_variable | ALL El nombre de la variable que se debe eliminar. Utilice ALL para eliminar todas las varia-
bles.
Si especifica ALL, se eliminan todas las instancias de los siguientes tipos de variables
del proyecto:
o variables del sistema
o variables definidas por el usuario temporales
o variables definidas por el usuario permanentes
Nota
No es posible eliminar una variable a la que hace referencia un campo
calculado, a menos que primero elimine ese campo calculado.
HISTORY retener_entra- Elimina todas las entradas del historial de la tabla excepto el número de entradas más
das_historial recientes especificado por retener_entradas_historial.
Omita retener_entradas_historial para eliminar todas las entradas.
RELATION nombre_tabla_ Elimina cualquier relación que no tenga relaciones dependientes ni campos rela-
hijo | nombre_relación cionados a lo que se haga referencia en la vista activa o en un campo calculado activo.
Utilice las opciones para especificar qué relación eliminar:
o nombre_tabla_hijo: utilice esta opción cuando la relación no haya recibido un nom-
bre específico (nombre predeterminado al crear una relación)
o nombre_relación: utilice esta opción cuando se haya asignado un nombre específico
a la relación al crearla. De lo contrario, use nombre_tabla_hijo
Si no utiliza ninguna de las opciones, se elimina la última relación que se definió.
Ejemplos
Eliminación de un campo de fecha
Elimina el campo Fecha del formato de tabla asociado con la tabla Ar:
OPEN Cuentas_por_cobrar
DELETE Fecha
OPEN Cuentas_por_cobrar
DELETE COLUMN AR_Reporte Fecha OK
DELETE COLUMN AR_Reporte Fecha_de_factura OK
Comando DIALOG
Crea un cuadro de diálogo personalizado que les pide interactivamente a los usuarios uno o más valores
de entrada para el script. Cada valor de entrada se almacena en una variable con nombre.
Nota
No es seguro usar el comando DIALOG para introducir contraseñas. Por el contrario,
debe usar "Comando PASSWORD" en la página 323.
El comando DIALOG no se admite en los estudios analíticos del Servidor de AX.
Puede crear un cuadro de diálogo interactivo básico con el "Comando ACCEPT" en la
página 54.
Consejo
La manera más sencilla de crear cuadros de diálogo personalizados es utilizar el Gene-
rador de diálogos . Si desea obtener más información, consulte Crear cuadros de diálogo
personalizados.
Sintaxis
DIALOG (DIALOG TITLE texto_título WIDTH píxeles HEIGHT píxeles)(BUTTONSET TITLE "&Acep-
tar;&Cancelar" AT pos_x pos_y <WIDTH píxeles> <HEIGHT píxeles> DEFAULT núm_elemento
<HORZ>)<[sintaxis_etiqueta]|[sintaxis_cuadro_de_texto]|[sintaxis_casilla_de_verificación]|[sintaxis_
botón_de_radio]|[sintaxis_lista_desplegable]|[sintaxis_lista_elementos_de_proyecto]><...n>
sintaxis_etiqueta ::=
(TEXT TITLE texto_título AT pos_x pos_y <WIDTH píxeles> <HEIGHT píxeles>
<CENTER|RIGHT>)
sintaxis_cuadro_de_texto ::=
(EDIT TO nombre_var AT pos_x pos_y <WIDTH píxeles> <HEIGHT píxeles> <DEFAULT cadena>)
sintaxis_casilla_de_verificación ::=
(CHECKBOX TITLE texto_título TO nombre_var AT pos_x pos_y <WIDTH píxeles> <HEIGHT píxe-
les> <CHECKED>)
sintaxis_botón_de_radio ::=
(RADIOBUTTON TITLE lista_valores TO nombre_var AT pos_x pos_y <WIDTH píxeles> <HEIGHT
píxeles> <DEFAULT núm_elemento> <HORZ>)
sintaxis_lista_desplegable ::=
(DROPDOWN TITLE lista_valores TO nombre_var AT pos_x pos_y <WIDTH píxeles> <HEIGHT píxe-
les> <DEFAULT núm_elemento>)
sintaxis_lista_elementos_de_proyecto ::=
(ITEM TITLE categoría_elemento_de_proyecto TO nombre_var AT pos_x pos_y <WIDTH píxeles>
<HEIGHT píxeles> <DEFAULT cadena>)
Parámetros
Parámetros generales
Nombre Descripción
DIALOG TITLE texto_título Crea el cuadro de diálogo principal y el título del cuadro de diálogo.
texto_título se debe especificar como una cadena entre comillas.
BUTTONSET TITLE Las etiquetas para los botones Aceptar y Cancelar del cuadro de diálogo.
"&Aceptar;&Cancelar"
Normalmente los valores no se deben editar, pero si los edita, debe asegurarse de que
el valor positivo esté antes que el valor negativo. Por ejemplo: "&Sí;&No"
WIDTH píxeles El ancho del control individual o el ancho del cuadro de diálogo si se especifica para el
control DIALOG.
El valor se especifica en píxeles. Si no se especifica ningún valor para un control, el
ancho se calcula según el valor más largo que contenga el control.
HEIGHT píxeles La altura del control individual o la altura del cuadro de diálogo si se especifica para el
control DIALOG.
El valor se especifica en píxeles.
AT pos_x pos_y La ubicación de la esquina superior izquierda del control en el cuadro de diálogo per-
sonalizado:
o La pos_x es la distancia horizontal en píxeles desde el lado izquierdo del cuadro de
diálogo
o La pos_y es la distancia vertical en píxeles desde la parte superior del cuadro de diá-
logo
DEFAULT núm_elemento El valor numérico que corresponde al valor BUTTONSET que desea seleccionar como
valor predeterminado.
Por ejemplo, si los valores de BUTTONSET son "&Aceptar;&Cancelar", especifique
DEFAULT 1 para seleccionar Aceptar por valor predeterminado.
HORZ Muestra los valores del control BUTTONSET horizontalmente. Como opción pre-
determinada, los valores se muestran verticalmente.
Nombre Descripción
opcional
Nota
Para la mayoría de los tipos de control, el comando DIALOG crea una variable para alma-
cenar la información que introduce el usuario. No puede utilizar caracteres que no per-
tenezcan al alfabeto inglés, tales como é, en los nombres de variables que se utilizarán
para la sustitución de variables. Si utiliza este tipo de caracteres en los nombres de las
variables, el script no se podrá ejecutar.
Por valor predeterminado, algunas variables de DIALOG se crean como variables de
caracteres. Si utiliza una variable de caracteres para almacenar valores numéricos o de
fechahora, debe convertir la variable de caracteres al tipo de datos necesario en un pro-
cesamiento posterior dentro de un script. Si desea obtener más información, consulte
"Tipo de datos de entrada" en la página 151.
Parámetros de la etiqueta
Nombre Descripción
TEXT Crea una etiqueta de texto para identificar, notificar o dar instrucciones.
TO nombre_var El nombre de la variable de caracteres que almacena el valor del control especificado
por el usuario.
Si ya existe la variable, se asigna el valor especificado. Si no existe la variable, se la
crea y se le asigna el valor especificado.
CHECKBOX Crea una casilla de verificación para presentar una opción al usuario.
TO nombre_var El nombre de la variable lógica que almacena el valor Verdadero o Falso especificado
por el usuario.
Si ya existe la variable, se asigna el valor especificado. Si no existe la variable, se la
crea y se le asigna el valor especificado.
CHECKED Ajusta el control para que esté seleccionado como opción predeterminada.
opcional
RADIOBUTTON Crea botones de radio para presentar opciones recíprocamente excluyentes al usuario.
TO nombre_var El nombre de la variable numérica que almacena la posición numérica del valor del
botón de radio seleccionado por el usuario.
Si ya existe la variable, se asigna el valor especificado. Si no existe la variable, se la
crea y se le asigna el valor especificado.
DEFAULT núm_elemento El valor numérico que corresponde al elemento de la lista que desea seleccionar como
valor predeterminado.
opcional
Por ejemplo, si la lista_valores es "Rojo;Verde;Azul", especifique DEFAULT 2 para selec-
cionar Verde como opción predeterminada.
HORZ Muestra los valores del control horizontalmente. Como opción predeterminada, los valo-
res se muestran verticalmente.
opcional
DROPDOWN Crea una lista desplegable para presentar una lista de opciones al usuario.
DEFAULT núm_elemento El valor numérico que corresponde al elemento de la lista que desea seleccionar como
valor predeterminado.
opcional
Por ejemplo, si la lista_valores es "Rojo;Verde;Azul", especifique DEFAULT 2 para
seleccionar Verde como opción predeterminada cuando se muestre la lista des-
plegable.
ITEM Crea una lista de elementos del proyecto para presentar una lista de elementos de pro-
yecto de ACL, tales como campos, al usuario
TITLE categoría_ele- La categoría del elemento del proyecto que se debe incluir en el control.
mento_de_proyecto
Puede especificar una o más categorías. El usuario puede seleccionar un solo valor en
la lista de elementos del proyecto.
Encierre la categoría_elemento_de_proyecto entre comillas, sin espacios ni pun-
tuación entre las categorías.
Para conocer los códigos que se utilizan para especificar las categorías, consulte "Códi-
gos de las categorías de elementos del proyecto" en la página 150.
Nota
No mezcle categorías diferentes en el mismo control ITEM, a menos que
tenga un motivo para hacerlo. Por ejemplo, no mezcle tablas y campos.
La lista de elementos del proyecto resultante podría ser confusa para el
usuario.
TO nombre_var El nombre de la variable de caracteres que almacena el nombre del elemento del pro-
yecto seleccionado por el usuario.
Si ya existe la variable, se asigna el valor especificado. Si no existe la variable, se la
crea y se le asigna el valor especificado.
Nombre Descripción
DEFAULT cadena El nombre exacto del elemento del proyecto que usted desea seleccionar como valor
predeterminado.
opcional
cadena se debe especificar como una cadena entre comillas.
Ejemplos
Solicitar una tabla y un script al usuario
En su script, necesita solicitarle al usuario que seleccione el script y la tabla de ACL que se deben usar para
ejecutar un análisis.
Usted especifica que la tabla Inventario_Metaphor_2012 del proyecto ACL_Demo.acl se selecciona de
manera predeterminada como la tabla de ACL, pero el usuario puede seleccionar cualquier tabla del pro-
yecto.
El script que se ejecutará también se debe seleccionar en la lista de scripts del proyecto de ACL:
DIALOG (DIALOG TITLE "Análisis de inventario" WIDTH 500 HEIGHT 200 ) (BUTTONSET TITLE
"&Aceptar;&Cancelar" AT 370 12 DEFAULT 1 ) (TEXT TITLE "Escoja los elementos del proyecto de
ACL que se analizarán." AT 50 16 ) (TEXT TITLE "Tabla:" AT 50 50 ) (ITEM TITLE "f" TO "v_tabla" AT
50 70 DEFAULT "Inventario_Metaphor_2012" ) (TEXT TITLE "Script:" AT 230 50 ) (ITEM TITLE "b"
TO "v_script" AT 230 70 )
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Interactividad
Use DIALOG para crear un script interactivo. Cuando se procesa el comando DIALOG, el script se detiene y
aparece un cuadro de diálogo que le pide al usuario información de entrada que ACL utilizará en el pro-
cesamiento subsiguiente.
Puede crear cuadros de diálogo separados que soliciten información de a un elemento por vez o crear un
cuadro de diálogo que solicite múltiples elementos.
Categorías de proyectos
Código Categoría
f Tablas
b Scripts
i Índices
r Vistas y reportes
w Áreas_de_trabajo
Categorías de campos
Código Categoría
C Campos de caracteres
N Campos numéricos
D Campos de fechahora
L Campos lógicos
Categorías de variables
Código Categoría
c Variables de caracteres
n Variables numéricas
d Variables de fechahora
l Variables lógicas
En el ejemplo, las fechas de inicio y finalización de este filtro se almacenan como valores de caracteres. Se
deben convertir en valores de fecha para ser utilizadas en un campo de fecha con el tipo de datos
Fechahora.
Al encerrar el nombre de la variable entre signos de porcentaje (%), se reemplaza el nombre de la variable
por los valores de caracteres de la variable. A continuación, la función CTOD( ) convierte el valor de carac-
teres en un valor de fecha.
Comando DIRECTORY
Genera una lista de archivos y carpetas en el directorio especificado.
Sintaxis
DIRECTORY < especificación_archivo> <SUPPRESS> <SUBDIRECTORY> <APPEND> <TO
nombre_tabla|nombre_archivo>
Parámetros
Nombre Descripción
especificación_archivo Los archivos o la carpeta de Windows que se deben incluir en la lista y para los que se
debe mostrar información.
opcional
Puede utilizar el carácter comodín asterisco (*) para listar todos los archivos con una
extensión en particular, todos los archivos que comiencen con una cadena en par-
ticular o todos los archivos de una carpeta. Por ejemplo:
o *.fil para listar todos los archivos con la extensión .fil (archivos de datos de ACL).
o Inv*.* para listar todos los archivos que comiencen con "Inv" independientemente
de la extensión de archivo que tengan
o Resultados\* o Resultados\*.* para listar todos los archivos de la carpeta
Resultados.
Para limitar los archivos que se listan a una carpeta en particular, puede especificar
una ruta relativa a la carpeta del proyecto de ACL o especificar una ruta completa. Por
ejemplo:
o Resultados\*.* muestra el contenido de la subcarpeta Resultados de la carpeta
de proyecto de ACL
o C:\Datos de ACL\Resultados\*.* muestra el contenido de la carpeta espe-
cificada
Nota
El carácter comodín no se puede usar en los niveles intermedios de una
ruta de archivo especificada. Solo se puede usar en el nivel final de la
ruta, tal como se mostró más atrás.
Los nombres de rutas o de archivos que contienen espacios deben
incluirse entre comillas dobles.
Si utiliza especificación_archivo, debe colocarlo antes de cualquier otro parámetro. Si
especificación_archivo aparece en otra posición, el comando DIRECTORY no se pro-
cesa y se genera un error.
Si se omite especificación_archivo, se listan todos los archivos de la carpeta que con-
tiene el proyecto de ACL. No puede utilizar ninguno de los otros parámetros si se omite
especificación_archivo.
Nombre Descripción
SUPPRESS Suprime la información de la ruta en la salida y deja solo los nombres de los archivos y
las propiedades.
opcional
APPEND Anexa la salida del comando al final de un archivo existente en lugar de sobrescribir el
archivo.
opcional
Nota
Debe asegurarse de que la estructura de la salida del comando y del
archivo existente sean idénticas:
l los mismos campos
l el mismo orden de campos
l los campos coincidentes son de la misma longitud
l los campos coincidentes tienen el mismo tipo de datos
ACL anexa la salida a un archivo existente sin importar cuál sea su
estructura. Si la estructura de la salida y la del archivo existente no coin-
ciden, es posible que los datos que se obtengan estén incompletos,
mezclados o sean imprecisos.
TO nombre_tabla | nom- El lugar al que se deben enviar los resultados del comando:
bre_archivo o nombre_tabla: guarda los resultados en una tabla de ACL
opcional
Especifique el nombre_tabla como una cadena entre comillas con la extensión de
archivo .FIL. Por ejemplo: TO "Salida.FIL"
Por valor predeterminado, el archivo de datos de la tabla (.FIL) se guarda en la car-
peta que contiene el proyecto de ACL.
Utilice una ruta de archivo absoluta o relativa para guardar el archivo de datos en
una carpeta existente o una diferente:
l TO "C:\Salida.FIL"
l TO "Resultados\Salida.FIL"
Nota
Los nombres de las tablas tienen un límite de 64 caracteres alfa-
numéricos, sin incluir la extensión .FIL. El nombre puede incluir un
guión bajo ( _ ), pero no puede incluir ningún otro carácter especial
ni espacios. El nombre no puede comenzar con un número.
o nombre_de_archivo: guarda los resultados en un archivo
Especifique el nombre_de_archivo como una cadena entre comillas con la exten-
sión de archivo adecuada. Por ejemplo: TO "Salida.TXT".
Por valor predeterminado, el archivo se guarda en la carpeta que contiene el pro-
yecto de ACL.
Nombre Descripción
Utilice una ruta de archivo absoluta o relativa para guardar el archivo en una car-
peta existente o una diferente:
l TO "C:\Salida.TXT"
l TO "Resultados\Salida.TXT"
Si omite TO, la lista de directorios aparece en el área de visualización de ACL.
Ejemplos
Diferentes opciones para hacer listas de archivos
La capacidad de hacer listas de archivos resulta útil para la investigación ad hoc y para incorporar en la
creación de scripts.
A continuación, se incluyen varias opciones diferentes para enumerar archivos con el comando
DIRECTORY.
DIRECTORY
DIRECTORY *.fil
DIRECTORY Inv*.*
Hacer una lista de todos los archivos de una subcarpeta dentro de la carpeta del proyecto de ACL
Lista todos los archivos de la subcarpeta Resultados dentro de la carpeta que contiene el proyecto de
ACL:
DIRECTORY "Resultados\*"
Hacer una lista de todos los archivos de un tipo específico en una ubicación especificada
Lista todos los archivos .fil (archivos de datos de ACL) en la carpeta especificada y en todas las sub-
carpetas:
Hacer una lista de todos los archivos de una carpeta especificada y enviar la lista a una tabla de ACL
Lista todos los archivos de la carpeta Resultados y envía la lista a una tabla de ACL en la carpeta que
contiene el proyecto de ACL:
Hacer una lista de todos los archivos de una carpeta y enviar la lista a una tabla de ACL de otra carpeta
Lista todos los archivos de la carpeta Datos de ACL\Resultados y envía la lista a una tabla de ACL
en la carpeta GL Audit 2014\Resultados:
Observaciones
Propiedades mostradas por DIRECTORY
El comando DIRECTORY es similar al comando DIR en Windows. Además de listar los archivos y sub-
carpetas en una carpeta, el comando DIRECTORY también muestra las siguientes propiedades de archivo
y carpeta:
o la cantidad total de
archivos y carpetas que
coinciden con los cri-
terios especificados
Comando DISPLAY
Muestra información acerca de proyectos de ACL o de la computadora en la que se ejecuta ACL. También
puede mostrar el resultado de una expresión o la salida de una función.
Sintaxis y parámetros
Sintaxis Propósito
Muestra las definiciones de los campos, y todas las tablas hijas rela-
DISPLAY cionadas, de la tabla de ACL actualmente activa
Sintaxis Propósito
Ejemplos
Muestra el formato de una tabla de ACL
Mostrar el formato de una tabla puede resultar útil en varias circunstancias. Por ejemplo, es posible que
desee combinar dos o más tablas y necesite examinar las longitudes de los campos y los tipos de datos.
El ejemplo que se incluye a continuación muestra el formato de la tabla Ap_Trans:
OPEN Trans_Cp
DISPLAY
Salida a la pantalla
Relación
'Proveedor' relacionado por 'Núm_proveedor' con el índice 'Proveedor_en_Núm_proveedor'
Archivo
'Ap_Trans.fil' (formato 'Ap_Trans') es su archivo PRIMARY.
La longitud de registros es 59
Campos
El ejemplo que se incluye a continuación crea dos variables definidas por el usuario y dos variables del sis-
tema, y después muestra los valores de las variables:
Salida a la pantalla
TOTAL1 N 278.641,33
OUTPUTFOLDER C "/Tablas/Cuentas_por_pagar"
v_nombre_campo C "Importe_factura"
v_nombre_tabla C "Ap_Trans"
DISPLAY AGE(Fecha_factura)
Observaciones
Ubicación de los resultados del comando
DISPLAY ejecutado desde la línea de comandos de ACL: los resultados se muestran en la pantalla.
DISPLAY ejecutado en un script: los resultados se escriben en el log de comandos de ACL. Puede hacer
doble clic en la entrada del log de comandos para mostrar los resultados en la pantalla.
Comando DO REPORT
Genera el reporte de ACL especificado.
Sintaxis
DO REPORT nombre_reporte
Parámetros
Nombre Descripción
Ejemplo
Impresión de la vista predeterminada
Abre la tabla AP_Trans e imprime la vista predeterminado:
OPEN Trans_CP
DO REPORT Vista_predeterminada
Observaciones
Ejecución de DO REPORT en la línea de comandos o en un script
Los ajustes que se utilicen para imprimir el reporte dependen del lugar en el que ejecute el comando:
l desde la línea de comandos: se abre el cuadro de diálogo Imprimir para que seleccione las pági-
nas que desea imprimir y configure otras opciones para el reporte
l en un script: el reporte se imprime inmediatamente utilizando la configuración predeterminada del
reporte
Comando DO SCRIPT
Ejecuta un script secundario o un script externo desde un script de ACL.
Sintaxis
DO <SCRIPT> nombre_script {<IF prueba>|<WHILE prueba>}
Parámetros
Nombre Descripción
SCRIPT nombre_script El nombre del script que se debe ejecutar. Puede ejecutar los scripts secundarios del pro-
yecto de ACL o los scripts externos que se almacenan en los archivos de texto con exten-
siones como .aclscript, .txt. o .bat.
Puede especificar una ruta de archivo a un script externo. Si la ruta contiene espacios,
debe encerrarla entre comillas.
Nota
No puede invocar un script que ya está en ejecución. Por ejemplo, si
ScriptA llama a ScriptB, ScriptB no puede llamar a ScriptA. ScriptA toda-
vía se está ejecutando mientras espera que ScriptB se complete.
IF prueba Una expresión condicional que se evalúa una vez para determinar si se debe ejecutar el
script. Si la condición se evalúa como verdadera, se ejecuta el script; de lo contrario, no
opcional
se ejecuta.
No se puede usar junto con WHILE en el mismo comando. Si se utilizan ambos, WHILE
se ignora cuando se procesa el script. Se ingresa un comentario en el log, pero el script
no deja de ejecutarse.
WHILE prueba Una expresión condicional que se evalúa después de que el script se ejecuta para deter-
minar si se debe ejecutar el script nuevamente. Si la prueba se evalúa como verdadera,
opcional
el script se ejecuta nuevamente; de lo contrario, no se ejecuta.
Nota
Si usa WHILE, asegúrese de que su prueba finalmente se evalúe como
falsa. Si no lo hace, el script entrará en un bucle infinito. Si se crea un
bucle infinito, puede presionar la tecla Esc para cancelar el pro-
cesamiento del script.
No se puede usar junto con IF en el mismo comando. Si se utilizan ambos, WHILE se
ignora cuando se procesa el script. Se ingresa un comentario en el log, pero el script no
deja de ejecutarse.
Ejemplos
Ejecución de un subscript reiteradamente hasta que se valide la entrada
Usted tiene un subscript que recolecta información del usuario a través de un cuadro de diálogo. Hace lo
siguiente:
1. Le pide al usuario los valores necesarios.
2. Comprueba la información introducida por el usuario.
3. Establece la variable v_validada en verdadero cuando se validan los valores de información de
entrada.
Para asegurarse de que el usuario introduzca información válida, usted usa DO SCRIPT e incluye una
condición WHILE para que el script repita este comando hasta que se valide la entrada. Una vez que el
valor de la variable cambie, el script principal pasa al siguiente comando:
Observaciones
Comandos relacionados
DO SCRIPT es equivalente al comando DO BATCH que se puede encontrar en scripts creados con ver-
siones anteriores de ACL.
No puede incluir el comando DO SCRIPT dentro de un comando GROUP.
Comando DUMP
Muestra el contenido de un archivo, o el registro actual, en las codificaciones de caracteres hexadecimal,
ASCII y EBCDIC.
Nota
Este comando solo se puede ingresar en la línea de comandos. No se puede utilizar en
scripts.
Sintaxis
DUMP {RECORD|nombre_archivo} <SKIP bytes> <COLUMN bytes> <HORIZONTAL>
Parámetros
Nombre Descripción
SKIP bytes La cantidad de bytes que se deben saltear antes de comenzar el vaciamiento. El valor
predeterminado es 0.
opcional
Nombre Descripción
HORIZONTAL Muestra las codificaciones de caracteres en filas horizontales en lugar de hacerlo en blo-
ques verticales lado a lado (valor predeterminado).
opcional
Ejemplos
Mostrar la codificación de caracteres de la tabla Inventario
El siguiente ejemplo muestra la codificación de caracteres hexadecimal, ASCII y EBCDIC de los datos de
la tabla Inventario. La salida se organiza en filas horizontales (la codificación hexadecimal utiliza una fila
doble). Cada fila representa 97 bytes de datos en la tabla de ACL:
Comando DUPLICATES
Detecta si existen valores duplicados o registros duplicados completos en una tabla de ACL.
Sintaxis
DUPLICATES <ON> {campo_clave <D> <...n>|ALL} <OTHER {campo <...n>|ALL}>
<UNFORMATTED> <TO {SCREEN|nombre_tabla|nombre_archivo|PRINT}> <APPEND> <IF
prueba> <WHILE prueba> <FIRST rango|NEXT rango> <HEADER texto_encabezado> <FOOTER
texto_pie_de_página> <PRESORT> <OPEN> <LOCAL> <ISOLOCALE código_lugar>
Parámetros
Nombre Descripción
ON campo_clave D El o los campos clave, o la expresión, que se pondrá a prueba en busca de duplicados.
<...n>|ALL o campo_clave: utilice el o los campos especificados
Si prueba más de un campo, los registros que se identifican como duplicados deben
tener valores idénticos en cada uno de los campos especificados.
Incluya D para ordenar el campo clave en orden descendente. El criterio de orde-
namiento predeterminado es ascendente.
o ALL: utilice todos los campos de la tabla
Si prueba todos los campos de la tabla, los registros que se identifican como dupli-
cados deben ser absolutamente idénticos.
La única opción para ALL es un ordenamiento ascendente.
Nota
Las partes no definidas de los registros no se prueban.
OTHER campo <...n> | ALL Uno o más campos adicionales para incluir en la salida.
opcional o OTHER campo <...n>: incluya el o los campos especificados
o OTHER ALL: incluya todos los campos de la tabla que no se especifican como cam-
pos clave
UNFORMATTED Suprime los encabezados de página y los saltos de página cuando los resultados se
envían a un archivo.
opcional
TO SCREEN | nombre_ El lugar al que se deben enviar los resultados del comando:
tabla | nombre_archivo | o SCREEN: muestra los resultados en el área de visualización de ACL
PRINT o nombre_tabla: guarda los resultados en una tabla de ACL
opcional Especifique el nombre_tabla como una cadena entre comillas con la extensión de
Nombre Descripción
APPEND Anexa la salida del comando al final de un archivo existente en lugar de sobrescribir el
archivo.
opcional
Nota
Debe asegurarse de que la estructura de la salida del comando y del
archivo existente sean idénticas:
l los mismos campos
l el mismo orden de campos
l los campos coincidentes son de la misma longitud
l los campos coincidentes tienen el mismo tipo de datos
ACL anexa la salida a un archivo existente sin importar cuál sea su
estructura. Si la estructura de la salida y la del archivo existente no coin-
ciden, es posible que los datos que se obtengan estén incompletos, mez-
clados o sean imprecisos.
IF prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta únicamente en los registros que cumplen la condición.
opcional
WHILE prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta hasta que la condición se evalúa como falsa o hasta que se llega al
opcional
final de la tabla.
Nombre Descripción
HEADER texto_enca- El texto que se debe insertar en la parte superior de cada página de un reporte.
bezado
texto_encabezado_de_página se debe especificar como una cadena entre comillas. El
opcional valor anula la variable de sistema HEADER de ACL.
FOOTER texto_pie_de_ El texto que se debe insertar en la parte inferior de cada página de un reporte.
página
texto_pie_de_página se debe especificar como una cadena entre comillas. El valor
opcional anula la variable de sistema FOOTER de ACL.
OPEN Abre la tabla creada por el comando después de la ejecución del comando. Solo es
válido si el comando crea una tabla de salida.
opcional
LOCAL Nota
opcional Aplicable únicamente al ejecutar el comando en una tabla de Servidor de
ACL con un archivo de salida que es una tabla de ACL.
Guarda el archivo de salida en la misma ubicación que el proyecto de ACL.
Ejemplos
Probar la presencia de valores duplicados en un campo
El siguiente ejemplo:
l prueba si existen valores duplicados en el campo Número_factura
l envía todos los registros que contengan números de factura duplicados a una nueva tabla de ACL
Comando ESCAPE
Termina el script que se está procesando, o todos los scripts, sin salir de ACL.
Sintaxis
ESCAPE <ALL> <IF prueba>
Parámetros
Nombre Descripción
ALL Detener todos los scripts activos. Si se omite, se detiene el script actual.
opcional
IF prueba Una prueba que se debe evaluar como verdadera antes de que se ejecute el comando.
Si la prueba se evalúa como falsa, el comando no se ejecuta.
opcional
Ejemplos
Dar por finalizado un script de manera condicional
Usted cuenta la cantidad de registros de una tabla y usa el comando ESCAPE para detener la ejecución del
script si el número de registros es inferior a 100:
COUNT
ESCAPE IF COUNT1 < 100
Observaciones
Cuándo usar ESCAPE
Utilice ESCAPE para detener la ejecución de un script o subscript de acuerdo con una condición o para
detener la ejecución de todos los scripts que se están ejecutando.
ESCAPE ALL
Comando EVALUATE
Para el muestreo por registros o el muestreo por unidad monetaria, proyecta los errores detectados en los
datos de muestra a toda la población y calcula los límites superiores del índice de desviación o el importe
erróneo.
Muestreo de registros Muestreo de unidad monetaria
Sintaxis
EVALUATE RECORD CONFIDENCE nivel_de_confianza SIZE tamaño_muestra
ERRORLIMIT número_de_errores <TO {SCREEN|nombre_archivo}>
Parámetros
Nota
No incluya los separadores de mil ni los signos de porcentaje al especificar los valores.
Nombre Descripción
CONFIDENCE nivel_de_ El mismo nivel de confianza que especificó al calcular el tamaño de la muestra.
confianza
TO SCREEN | nombre_ El lugar al que se deben enviar los resultados del comando:
archivo o SCREEN: muestra los resultados en el área de visualización de ACL
o nombre_de_archivo: guarda los resultados en un archivo
Especifique el nombre_de_archivo como una cadena entre comillas con la extensión
de archivo adecuada. Por ejemplo: TO "Salida.TXT".
Por valor predeterminado, el archivo se guarda en la carpeta que contiene el pro-
yecto de ACL.
Utilice una ruta de archivo absoluta o relativa para guardar el archivo en una carpeta
existente o una diferente:
Nombre Descripción
l TO "C:\Salida.TXT"
l TO "Resultados\Salida.TXT"
MLEn La frecuencia del límite superior de errores (índice de desviación superior calculada)
que calcula el comando.
Ejemplos
Proyectar errores detectados en los datos de muestra a toda la población
Finalizó las pruebas de los datos de muestra y registró las desviaciones de los controles que detectó.
Ahora, puede proyectar los error errores que haya encontrado a la población completa.
El ejemplo que se incluye a continuación proyecta a toda la población dos errores que se detectaron en
los datos muestreados y calcula una frecuencia del límite superior de errores (índice de desviación
superior calculada) de 6,63 %.
Si desea ver una explicación detallada de la manera en la que ACL calcula los valores al evaluar errores,
consulte Evaluar errores en una muestra de registros.
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Sintaxis
EVALUATE MONETARY CONFIDENCE nivel_de_confianza <ERRORLIMIT valor_contable;
importe_erróneo <;...n>> INTERVAL valor_intervalo <TO {SCREEN|nombre_de_archivo}>
Parámetros
Nota
No incluya los separadores de mil ni los signos de porcentaje al especificar los valores.
Nombre Descripción
MONETARY Evaluar los errores detectados en una muestra por unidad monetaria.
CONFIDENCE nivel_de_ El mismo nivel de confianza que especificó al calcular el tamaño de la muestra.
confianza
1000;70;1250;-200
TO SCREEN | nombre_ El lugar al que se deben enviar los resultados del comando:
archivo o SCREEN: muestra los resultados en el área de visualización de ACL
o nombre_de_archivo: guarda los resultados en un archivo
Especifique el nombre_de_archivo como una cadena entre comillas con la extensión
de archivo adecuada. Por ejemplo: TO "Salida.TXT".
Por valor predeterminado, el archivo se guarda en la carpeta que contiene el pro-
yecto de ACL.
Utilice una ruta de archivo absoluta o relativa para guardar el archivo en una carpeta
existente o una diferente:
l TO "C:\Salida.TXT"
l TO "Resultados\Salida.TXT"
MLEn El valor de errores más probable (información errónea proyectada) que calcula el
comando.
UELn El valor del límite superior de error (límite superior de información errónea) que calcula
el comando.
Ejemplos
Proyectar errores detectados en los datos de muestra a toda la población
Finalizó las pruebas de los datos de muestra y registró las desviaciones de los controles que detectó.
Ahora, puede proyectar los error errores que haya encontrado a la población completa.
El ejemplo que se incluye a continuación proyecta tres errores que se detectaron en los datos mues-
treados a toda la población y calcula varios valores, entre los que se incluyen los siguientes:
l Precisión básica: la asignación básica para riesgo de muestreo (18.850,00)
l Error más probable: el importe de error proyectado para la población (1.201,69)
l Límite de error superior: el límite de error superior para la población (22.624,32)
Si desea ver una explicación detallada de la manera en la que ACL calcula los valores al evaluar errores,
consulte Evaluar errores en una muestra por unidad monetaria.
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Comando EXECUTE
Ejecuta una aplicación o proceso externo a ACL. Emula el comando Ejecutar de Windows. Se puede uti-
lizar para interactuar con el símbolo del sistema de Windows.
Nota
Dado que el comando EXECUTE le da la posibilidad de interactuar con el sistema ope-
rativo y las aplicaciones externas a ACL, pueden surgir problemas técnicos que exceden el
alcance de la funcionalidad propia de ACL.
Los Servicios de soporte de ACL pueden ayudar con el funcionamiento del comando
EXECUTE dentro de ACL, pero los problemas que surgen con los procesos y las apli-
caciones externas a ACL no están cubiertos por los Servicios de soporte.
Sintaxis
EXECUTE Sintaxis_comando_Ejecutar_de_Windows <ASYNC>
Parámetros
Nombre Descripción
Sintaxis_comando_Eje- El nombre de la aplicación que se debe ejecutar, la carpeta o el archivo que se debe
cutar_de_Windows abrir o el comando que se debe ejecutar, seguido de los modificadores de comando o
argumentos necesarios.
Requiere la sintaxis válida del comando Ejecutar de Windows encerrada entre comillas.
RETURN_CODE El código devuelto por un proceso o una aplicación externos con el comando
EXECUTE.
Ejemplos
Abrir una aplicación
Abre Microsoft Excel:
EXECUTE "Excel"
EXECUTE "AcroRd32.exe"
Nota
Utilice el interruptor /f con cautela. Obliga a una aplicación a cerrarse sin presentar ningún
cuadro de diálogo, como los de guardar los cambios.
Abrir un archivo
Abre el libro de Excel AP_Trans.xlsx:
Ejecutar scripts externos o archivos por lotes que no son de ACL (.bat)
Ejecuta el script Mi_lote.bat:
Nota
Si se ejecuta un script de ACL en otro proyecto, se inicia una segunda instancia de ACL. El
script del segundo proyecto debe terminar con el comando QUIT para que la segunda ins-
tancia de ACL se cierre y se devuelva el control a la instancia inicial de ACL.
Observaciones
Usar EXECUTE para realizar tareas útiles
El comando EXECUTE permite ejecutar comandos de Windows y DOS desde la línea de comandos de
ACL o desde un script ACL.
Puede utilizar esta capacidad para aumentar la automatización de los scripts de ACL llevando a cabo una
variedad de tareas útiles que no son posibles usando solo la sintaxis de scripts de ACL.
Abrir otros programas y Pasar parámetros a un Acceder a datos desde ubi- Incorporar listas de cuen-
aplicaciones y realiza archivo por lotes caciones de red tas de Active Directory
tareas requeridas por el
script ACL
Abrir cualquier archivo en Ejecutar scripts de ACL en Utilizar FTP para acceder Realizar integración con
su aplicación pre- otros proyectos de ACL a datos desde ubicaciones VBScript
determinada remotas
Realizar tareas admi- Incorporar períodos de Comprimir y descomprimir Realizar integración con
nistrativas en archivos y espera en los scripts ACL datos bases de datos SQL
carpetas, tales como
copiar, mover, crear, eli-
minar o comparar archivos
o carpetas que existen
fuera de ACL.
Ejecutar scripts externos o Incorporar la pro- Encriptar y desencriptar Abrir páginas web
archivos por lotes que no gramación de tareas de datos
son de ACL (.bat) Windows en scripts ACL
Nota
Los detalles específicos de cómo llevar a cabo cualquiera de estas tareas están más allá del
alcance de la Documentación de ayuda de ACL. Para obtener ayuda, consulte la documentación
correspondiente del sistema operativo Windows u otra documentación de terceros.
o tareas administrativas en archivo y carpeta o las tareas externas pueden hacer que se abra una
o especificación de los períodos de espera interfaz de la aplicación o un cuadro de diálogo emer-
o todas las tareas de las cuales dependen las tareas gente
posteriores
o la ejecución posterior del script depende del resultado
de la variable RETURN_CODE
Comillas
La sintaxis del comando Ejecutar de Windows que usted utiliza con el comando EXECUTE debe ence-
rrarse entre comillas simples o dobles.
El siguiente ejemplo utiliza el comando MD de Windows para crear una nueva carpeta:
Comillas anidadas
Si alguna ruta dentro de la sintaxis del comando Ejecutar contiene espacios, las rutas deben estar ence-
rradas entre comillas.
Al encerrar rutas entre comillas, tiene dos opciones:
l Comillas dobles dentro de comillas simples: Use comillas simples para encerrar la cadena com-
pleta del comando Ejecutar y use comillas dobles dentro de las simples para encerrar las rutas:
Probablemente, este método le resulte más fácil de leer que el segundo método.
Nota
No es posible invertir el orden de anidamiento utilizando comillas dobles para ence-
rrar toda la cadena y comillas simples para encerrar rutas.
l Dos comillas dobles: Use comillas dobles para encerrar la cadena completa del comando Eje-
cutar y use dos comillas dobles para encerrar las rutas:
Si usa este método, las comillas dobles que se usan en la parte interna deben estar una junto a la
otra y no puede haber un espacio entre ellas.
Usted puede evitar esta complicación mediante la creación de scripts externos o archivos por lotes que con-
tengan los comandos de Windows y utilizar el comando EXECUTE solo para iniciar el archivo por lotes. Por
ejemplo:
EXECUTE 'C:\Mi_lote.bat'
Método Ejemplo
Repita el
comando EXECUTE 'cmd /c md "C:\Nueva Carpeta Datos"' EXECUTE 'cmd /c copy C:\File_1.txt "C:\Nueva Car-
EXECUTE peta Datos"'
para cada
comando
Ejecutar.
Combine
comandos EXECUTE 'cmd /c md "C:\Nueva Carpeta Datos" & copy C:\File_1.txt "C:\Nueva Carpeta Datos"'
Ejecutar
utilizando
'&'.
Cree un
script EXECUTE 'C:\Mi_lote.bat'
externo o
archivo de
lote para
contener
varios
comandos
Ejecutar y
utilice el
comando
EXECUTE
úni-
camente
para ini-
ciar el
archivo de
lotes.
Comando EXPORT
Exporta datos desde ACL al formato de archivo especificado o a Resuldatos en ACL GRC.
Sintaxis
EXPORT <FIELDS> nombre_campo <AS nombre_exportación> <...n> <UNICODE> tipo_expor-
tación <SCHEMA> PASSWORD núm TO {nombre_archivo|aclgrc_id} <OVERWRITE> <IF test>
<WHILE test> <{FIRST rango|NEXT rango}> <APPEND> <KEEPTITLE> <SEPARATOR carácter>
<QUALIFIER carácter> <WORKSHEET nombre_hoja_trabajo>
Parámetros
Nombre Descripción
FIELDS nombre_campo Los campos que se deben exportar. Separe los nombres de campo con espacios.
AS nombre_exportación
Puede incluir un nombre diferente para el campo en el archivo de exportación utilizando
<...n>
AS nombre_exportación. Encierre nombre_exportación entre comillas.
UNICODE Disponible únicamente en la edición Unicode de ACL. Se aplica solo a archivos de texto
(ASCII), texto delimitado (DELIMITED) y XML y a la salida del Portapapeles de Windows.
opcional
Exporta los datos de ACL con la codificación de caracteres Unicode UTF-16 LE aplicada.
o Especifique UNICODE: si los datos que está exportando contienen caracteres no
admitidos por ASCII (ANSI) extendido
o No especifique UNICODE: si todos los caracteres de los datos que está exportando
son admitidos por ASCII (ANSI) extendido
Los datos exportados están codificados como ASCII (ANSI) extendido.
Nota
Los caracteres no admitidos se omiten del archivo exportado.
Si desea obtener más información, consulte Productos Unicode de ACL.
tipo_exportación El destino o el formato de archivo de salida con una de las siguientes opciones:
o ACCESS: archivo de base de datos Microsoft Access (.mdb). Por valor pre-
determinado, los datos se exportan como Unicode.
o ACLGRC: Resultados en ACL GRC
o ASCII: archivo de texto sin formato ASCII (.txt).
o CLIPBOARD: Portapapeles de Windows
o DBASE: archivo compatible con dBASE (.dbf)
o DELIMITED: archivo de texto delimitado (.del).
o EXCEL: archivo de Microsoft Excel (.xls) compatible con Excel 1997 a 2003
o JSON: archivo JSON (.json)
o LOTUS: archivo de Lotus 123
Nombre Descripción
Nombre Descripción
código del centro de datos. El valor id_aclgrc debe estar entre comillas.
El número de identificación de la prueba de control y el código del centro de datos
deben estar separados por la arroba (@). Por ejemplo, TO "99@eu".
Si no conoce el número de ID de la prueba de control, utilice la interfaz de usuario de
ACL para comenzar una exportación a Resultados. Cancele la exportación una vez
que haya identificado el número de ID de la prueba de control. Si desea obtener más
información, consulte Exportar excepciones a ACL GRC.
El código del centro de datos especifica a cuál servidor regional de ACL GRC va a
exportar los datos:
l ap: Pacífico asiático
l au: Australia
l ca: Canadá
l eu: Europa
l us: Norteamérica
Puede utilizar únicamente el código del centro de datos o los códigos autorizados
para la instalación de ACL GRC de su organización. El centro de datos de Nor-
teamérica es el valor predeterminado, por lo que especificar "@us" es opcional.
IF prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta únicamente en los registros que cumplen la condición.
opcional
WHILE prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta hasta que la condición se evalúa como falsa o hasta que se llega al
opcional
final de la tabla.
Nombre Descripción
Nota
Debe asegurarse de que la estructura de la salida del comando y del
archivo existente sean idénticas:
l los mismos campos
l el mismo orden de campos
l los campos coincidentes son de la misma longitud
l los campos coincidentes tienen el mismo tipo de datos
ACL anexa la salida a un archivo existente sin importar cuál sea su
estructura. Si la estructura de la salida y la del archivo existente no coin-
ciden, es posible que los datos que se obtengan estén incompletos, mez-
clados o sean imprecisos.
Ejemplos
Exportación de datos a un archivo de Excel .xlsx
Usted exporta campos específicos desde la tabla Proveedor a un archivo de Excel .xlsx:
OPEN Proveedor
EXPORT FIELDS Núm_Proveedor Nombre_Proveedor Ciudad_Proveedor XLSX TO "Expor-
tacionesProveedor"
OPEN Proveedor
EXPORT FIELDS Núm_Proveedor Nombre_Proveedor Ciudad_Proveedor XLSX to "Expor-
tacionesProveedor" WORKSHEET Proveedores_US
GROUP
EXPORT FIELDS Núm_Proveedor Nombre_Proveedor DELIMITED TO "AaM" IF BETWEEN
(UPPER(VENDOR_NAME); "A"; "M")
EXPORT FIELDS Núm_Proveedor Nombre_Proveedor DELIMITED TO "NaZ" IF BETWEEN
(UPPER(VENDOR_NAME); "N"; "Z")
END
OPEN Excepciones_AR
EXPORT FIELDS Tipo Importe Ref Sin Vencimiento ACLGRC PASSWORD 1 TO "10926@us"
OVERWRITE
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Exportación a Excel
Al exportar datos a un archivo de Excel, se aplican varios límites:
l Puede exportar un máximo de 1.048.576 registros a un archivo Excel xlsx y un máximo de 65.536
registros a Excel 97 y 2003.
Las tablas de ACL que superan estos máximos se exportan con éxito, pero los registros sobrantes
se ignoran y no se exportan.
l La longitud máxima de los campos exportados es de 254 caracteres.
(247 caracteres para Excel 2.1)
l La longitud máxima de los nombres de los campos exportados es de 64 caracteres.
(248 caracteres para Excel 2.1)
Parámetro de nombre de archivo de Con el uso del parámetro Sin el uso del parámetro
ACL / nombre de archivo de Excel WORKSHEET WORKSHEET
No existe un archivo de Excel con Se crea un nuevo archivo de Excel Se crea un nuevo archivo de Excel,
un nombre de archivo idéntico con una hoja de cálculo con el nom- con una hoja de cálculo que utiliza
bre especificado el nombre de la tabla de ACL expor-
tada
Existe un archivo de Excel con un Se agrega una hoja de cálculo con El archivo de Excel existente se
nombre idéntico y un nombre de el nombre especificado al archivo de sobrescribe con un nuevo archivo de
hoja de cálculo diferente Excel existente Excel, con una hoja de cálculo que
utiliza el nombre de la tabla de ACL
Existe un archivo de Excel con un Si la hoja de cálculo existente fue ori- exportada
nombre idéntico y un nombre de ginalmente creada desde ACL, se
hoja de cálculo idéntico sobrescribe con una hoja de cálculo
con el nombre especificado.
Si la hoja de cálculo existente fue
creada originalmente en Excel, apa-
rece un mensaje de error y se can-
cela la operación de exportación.
Elemento Detalles
Permisos necesarios La capacidad de exportar resultados a una prueba de control en Resultados requiere una asig-
nación específica de roles de ACL GRC o privilegios de administrador:
o Los usuarios con el rol de Usuario profesional o Gerente profesional para una colección de
Resultados pueden exportar resultados a cualquier prueba de control de la colección.
Nota
Únicamente los usuarios con el rol de Gerente profesional pueden exportar
y sobrescribir los datos existentes en una prueba de control.
o Los administradores de la cuenta de ACL GRC y los administradores de Resultados obtie-
nen automáticamente el rol de Gerente profesional sobre todas las colecciones de la orga-
nización de ACL GRC que administran.
Límites de la expor- Los siguientes límites se aplican cuando se exporta a una prueba de control:
tación o Un máximo de 100.000 registros por exportación
o Un máximo de 100.000 registros por prueba de control.
o Un máximo de 100 campos por registro
o Un máximo de 256 caracteres por campo
Puede exportar la misma prueba de control varias veces, pero no puede superar los límites
generales.
Anexar archivos Sin importar cuál sea su orden en una tabla de ACL, los campos exportados se anexan a los
campos existentes de una prueba de control si tienen nombres de campo físicos coincidentes.
En ACL, el nombre del campo físico es el nombre en el formato de tabla. Los campos expor-
tados que no coinciden con el nombre de ningún campo existente se agregan como columnas
adicionales a la tabla en Resultados.
No se consideran los nombres visibles de los campos en ACL ni en Resultados. Sin embargo,
si utiliza el parámetro opcional AS nombre_exportación, el valor nombre_exportación se utiliza
como el nombre del campo físico.
Nota
Si está haciendo un proceso de ida y vuelta con los datos entre Resultados y
ACL, y los datos quedan mal alineados en Resultados, probablemente haya
establecido una correspondencia incorrecta entre los nombres de los campos.
Si desea obtener más información, consulte "Consideraciones de los nombres
de campos al importar y exportar datos de Resultados" en la página 252.
Elemento Detalles
Comando EXTRACT
Extrae datos de una tabla ACL y envía esos datos a una tabla de ACL nueva o los anexa a una tabla de
ACL existente. Puede extraer registros completos o campos seleccionados.
Sintaxis
EXTRACT {RECORD | FIELDS nombre_campo <AS nombre_visible> <...n>|FIELDS ALL} TO nom-
bre_tabla <IF prueba> <WHILE prueba> <FIRST rango|NEXT rango> <EOF> <APPEND> <OPEN>
<LOCAL>
Parámetros
Nombre Descripción
Nombre Descripción
Nota
AS solo funciona cuando se extrae a una nueva tabla. Si está agregando
a una tabla existente, los títulos de columna alternativos de la tabla exis-
tente tienen prioridad.
IF prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta únicamente en los registros que cumplen la condición.
opcional
WHILE prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta hasta que la condición se evalúa como falsa o hasta que se llega al
opcional
final de la tabla.
EOF Ejecute el comando una vez más después de que se alcance el final del archivo.
opcional De esta manera, se asegura de que se procese el registro final de la tabla cuando se
encuentra dentro de un comando GROUP. Utilice EOF solo si todos los campos son cam-
pos calculados que hacen referencia a registros anteriores.
APPEND Anexa la salida del comando al final de un archivo existente en lugar de sobrescribir el
archivo.
opcional
Nombre Descripción
Nota
Debe asegurarse de que la estructura de la salida del comando y del
archivo existente sean idénticas:
l los mismos campos
l el mismo orden de campos
l los campos coincidentes son de la misma longitud
l los campos coincidentes tienen el mismo tipo de datos
ACL anexa la salida a un archivo existente sin importar cuál sea su
estructura. Si la estructura de la salida y la del archivo existente no coin-
ciden, es posible que los datos que se obtengan estén incompletos, mez-
clados o sean imprecisos.
OPEN Abre la tabla creada por el comando después de la ejecución del comando. Solo es
válido si el comando crea una tabla de salida.
opcional
LOCAL Nota
opcional Aplicable únicamente al ejecutar el comando en una tabla de Servidor de
ACL con un archivo de salida que es una tabla de ACL.
Guarda el archivo de salida en la misma ubicación que el proyecto de ACL.
Ejemplos
Extracción de todos los registros de una tabla a una nueva tabla
Usted crea un duplicado exacto de la tabla Cuentas _por_cobrar_Cliente extrayendo todos los registros a
una nueva tabla de ACL. Todos los campos calculados se conservan como campos calculados:
OPEN Cuentas_por_cobrar_Cliente
EXTRACT RECORD TO "Cuentas_por_cobrar_Cliente_2"
OPEN Cuentas_por_cobrar_Cliente
EXTRACT FIELDS ALL TO "Cuentas_por_cobrar_Cliente_2"
Extracción de todos los registros de una tabla y anexión a una tabla existente
Usted extrae todos los registros de la tabla Cuentas_por_cobrar_Cliente y los anexa a un grupo al final de
la tabla Cuentas_por_cobrar_cliente_maestra:
OPEN Cuentas_por_cobrar_Cliente
EXTRACT RECORD TO "Cuentas_por_cobrar_Cliente_maestra" APPEND
Extracción de todos los registros de una tabla y anexión a una tabla existente en una carpeta diferente
Usted extrae todos los registros de la tabla Cuentas_por_cobrar_Cliente y los anexa a un grupo al final
de la tabla Cuentas_por_cobrar_cliente_maestra, que se encuentra en una carpeta diferente de la car-
peta del proyecto de ACL:
OPEN Cuentas_por_cobrar_Cliente
EXTRACT RECORD TO ""C:\Usuarios\Datos del Cliente\Cuentas_por_cobrar_maestra" APPEND
OPEN Cuentas_por_cobrar_Cliente
EXTRACT FIELDS Nombre Vencimiento Fecha TO "Cuentas_por_cobrar_cliente_fechas.fil"
OPEN Cuentas_por_cobrar_Cliente
EXTRACT FIELDS Nombre AS "Cliente;Nombre" Vencimiento AS "Vencimiento;Fecha" Date AS
"Factura;Fecha" TO "Cuentas_por_cobrar_cliente_fechas.fil"
OPEN Cuentas_por_cobrar_Cliente
EXTRACT FIELDS Nombre Vencimiento Fecha IF Vencimiento < `20140701` TO "Vencido.fil"
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Comando FIELDSHIFT
Cambia la posición inicial de una definición de campo en un formato de tabla.
Sintaxis
FIELDSHIFT START posición_inicial COLUMNS bytes_para_desplazar <FILTER nombre_filtro_
datos> <OK>
Parámetros
Nombre Descripción
START posición_inicial La posición del byte inicial de la primera definición de campo que desea desplazar.
También se desplazan todas las definiciones de campo a la derecha de la definición
de campo especificada.
Si especifica una posición de byte que no es la inicial, se utiliza la siguiente posición
de byte inicial.
Nota
COLUMNS bytes_para_ La cantidad de bytes que se debe usar para desplazar la definición de campo.
desplazar
Escriba un número positivo para desplazar una definición de campo hacia la derecha.
Escriba un número negativo para desplazar una definición de campo hacia la
izquierda.
Nombre Descripción
Nota
FILTER nombre_filtro_ El nombre del filtro que identifica las definiciones de campo asociadas con una defi-
datos nición de registro específica.
opcional
Aceptar Elimina o sobrescribe los elementos sin pedirle que confirme la acción.
opcional
Ejemplos
Desplazamiento de definiciones de campo
Usted desplaza la definición de campo comenzando por el byte 11 (y todas las definiciones de campo pos-
teriores) 4 bytes hacia la derecha:
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Recuerde que FIELDSHIFT mueve tanto la definición de campo especificada como las definiciones de
campo que se encuentran a la derecha de la definición especificada. Si el bloque de definiciones des-
plazadas llega a superar la longitud del registro en alguna de las direcciones, aparece un mensaje de
error y no se ejecuta el comando.
Consejo
Si el mensaje de error aparece porque usted está excediendo el final del registro, pruebe
quitar la definición de campo final para hacer espacio para las definiciones de campo que
se están desplazando.
Comando FIND
Busca el primer valor que coincida con la cadena de caracteres especificada en un campo de caracteres
indexado.
Nota
El comando FIND y la función FIND( ) son dos funciones independientes de ACL, que tie-
nen diferencias significativas. Si desea obtener información acerca de la función, consulte
"Función FIND( )" en la página 530.
Sintaxis
FIND valor_búsqueda
Parámetros
Nombre Descripción
Ejemplos
Búsqueda de un valor específico
Desea localizar el primer valor del campo de caracteres Número_de_tarjeta que coinciden de manera
exacta con el valor "8590124" o comienzan con él.
Primero indiza el campo Número_de_tarjeta en orden ascendente. Después ejecuta FIND:
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Requisitos de INDEX
Para utilizar el comando, la tabla en la que busca debe estar indexada en un campo de caracteres en
orden ascendente.
Si hay varios campos de caracteres indexados en orden ascendente, sólo se busca en el primer campo
especificado en el índice. El comando no se puede utilizar para buscar campos indexados que no sean de
caracteres o campos de caracteres que estén indexados en orden descendente.
Coincidencia parcial
Admite la coincidencia parcial. El valor de la búsqueda puede estar incluido en un valor más extenso den-
tro del campo indexado. Sin embargo, el valor de búsqueda debe aparecer al principio del campo para
que se considere una coincidencia.
Comando FUZZYDUP
Detecta valores casi idénticos (duplicados inexactos) en un campo de caracteres.
Sintaxis
FUZZYDUP ON campo_clave <OTHER campos> LEVDISTANCE valor <DIFFPCT porcentaje>
<RESULTSIZE porcentaje> <EXACT> <IF test> TO nombre_tabla <LOCAL> <OPEN>
Parámetros
Nombre Descripción
ON campo_clave El campo de caracteres o la expresión que se probará para detectar duplicados ine-
xactos.
LEVDISTANCE valor La máxima Distancia de Levenshtein permitida entre dos cadenas para que se puedan
identificar como duplicados inexactos e incluir en los resultados.
El valor de LEVDISTANCE no puede ser menor que 1 ni mayor que 10. Al incrementar el
valor de LEVDISTANCE aumenta la cantidad de resultados porque se incluyen valores
con un mayor grado de diferencias; es decir valores que difieren más entre sí.
Si desea obtener más información, consulte "Comportamiento de FUZZYDUP" en la
página 206.
DIFFPCT porcentaje Un umbral que limita el 'porcentaje de diferencia' o la proporción de una cadena que
puede ser diferente.
opcional
El porcentaje resultante de un cálculo interno de ACL sobre los posibles pares dupli-
cados inexactos debe ser menor que o igual al valor de DIFFPCT para que el par se
incluya en los resultados. El valor de DIFFPCT no puede ser menor que 1 ni mayor que
99.
Si se omite DIFFPCT, el umbral se desactiva y el porcentaje de diferencia no se tiene en
cuenta durante el procesamiento del comando FUZZYDUP.
Si desea obtener más información, consulte "Comportamiento de FUZZYDUP" en la
página 206.
RESULTSIZE porcentaje El tamaño máximo del conjunto de resultados de salida como un porcentaje de la canti-
dad de registros del campo clave.
opcional
Por ejemplo, para un campo clave con 50.000 registros, un RESULTSIZE de 3 finalizaría
con el procesamiento si los resultados superan los 1500 duplicados inexactos (50.000 x
Nombre Descripción
EXACT Incluye duplicados exactos, así como duplicados inexactos en los resultados.
opcional
IF prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta únicamente en los registros que cumplen la condición.
opcional
LOCAL Nota
opcional Aplicable únicamente al ejecutar el comando en una tabla de Servidor de
ACL con un archivo de salida que es una tabla de ACL.
Guarda el archivo de salida en la misma ubicación que el proyecto de ACL.
OPEN Abre la tabla creada por el comando después de la ejecución del comando. Solo es
válido si el comando crea una tabla de salida.
opcional
Ejemplos
Comprobar un campo de apellido en busca de duplicados inexactos
Usted somete a prueba un campo de apellidos para detectar duplicados inexactos (el campo Apellido de la
tabla Lista_empleados en ACL DATA\Archivos de datos de muestra\Datos_empleados_
Metaphor.ACL). Los resultados se envían a una nueva tabla ACL.
l Además del campo de prueba, otros campos se incluyen en los resultados.
l La máxima Distancia de Levenshtein permitida es 1.
l La proporción de una cadena que puede ser diferente está limitada a 50 %.
l El tamaño de los resultados está limitado al 20 % del tamaño del campo de prueba.
l Además de los duplicados inexactos, se incluyen los duplicados exactos.
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Cómo funciona
El comando FUZZYDUP busca valores casi idénticos (duplicados inexactos) o encuentra ortografía incon-
sistente en los datos ingresados manualmente.
A diferencia de la función ISFUZZYDUP( ), que identifica una lista exhaustiva de duplicados inexactos que
difieren por un solo carácter, el comando FUZZYDUP identifica todos los duplicados inexactos en un
campo, los organiza en grupos y genera resultados no exhaustivos.
Comportamiento de FUZZYDUP
El comando FUZZYDUP tiene dos parámetros que le permiten controlar el grado de diferencia entre los
duplicados inexactos y el tamaño de los resultados:
l LEVDISTANCE
l DIFFPCT
Es posible que tenga que probar diferentes combinaciones de valores de configuración para estos dos
parámetros a fin de determinar qué funciona mejor para un conjunto de datos en particular.
Más información
Para obtener información detallada acerca de la configuración de la diferencia de los duplicados ine-
xactos, sobre cómo controlar el tamaño de los resultados y sobre los grupos de duplicados inexactos, con-
sulte la Descripción general de los duplicados inexactos.
La función OMIT( )
La función OMIT( ) también puede mejorar la eficacia del comando al eliminar elementos genéricos como
"Corporación" o "Inc." de los valores del campo.
La eliminación de los elementos genéricos centra la comparación de cadenas de FUZZYDUP sólo en la por-
ción de las cadenas donde puede ocurrir una diferencia significativa.
Si desea obtener más información, consulte "Función OMIT( )" en la página 642.
Comando GAPS
Detecta si un campo numérico o de fechahora de una tabla de ACL contiene uno o más faltantes en la
secuencia de datos.
Sintaxis
GAPS <ON> campo_clave <D> <UNFORMATTED> <PRESORT> <MISSING límite>
<HEADER texto_encabezado> <FOOTER texto_pie_de_página> <IF prueba> <WHILE prueba>
<FIRST rango|NEXT rango> <TO {SCREEN|nombre_tabla|nombre_archivo|PRINT}> <APPEND>
<LOCAL> <OPEN>
Parámetros
Nombre Descripción
UNFORMATTED Suprime los encabezados de página y los saltos de página cuando los resultados se
envían a un archivo.
opcional
MISSING límite Los resultados de la salida contienen elementos faltantes individuales en lugar de inter-
valos de faltantes.
opcional
El valor de límite especifica la máxima cantidad de elementos faltantes que se repor-
tará para cada faltante identificado. El valor predeterminado es 5. Si se excede el límite
para un faltante determinado, los elementos faltantes se reportan como un intervalo de
ese faltante específico.
El valor de límite no restringe la cantidad total de elementos faltantes reportados, sólo
restringe el número de elementos faltantes reportados dentro de un faltante específico.
HEADER texto_enca- El texto que se debe insertar en la parte superior de cada página de un reporte.
bezado
texto_encabezado_de_página se debe especificar como una cadena entre comillas. El
opcional valor anula la variable de sistema HEADER de ACL.
FOOTER texto_pie_de_ El texto que se debe insertar en la parte inferior de cada página de un reporte.
Nombre Descripción
página texto_pie_de_página se debe especificar como una cadena entre comillas. El valor
anula la variable de sistema FOOTER de ACL.
opcional
IF prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta únicamente en los registros que cumplen la condición.
opcional
WHILE prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta hasta que la condición se evalúa como falsa o hasta que se llega
opcional
al final de la tabla.
TO SCREEN | nombre_ El lugar al que se deben enviar los resultados del comando:
tabla | nombre_archivo | o SCREEN: muestra los resultados en el área de visualización de ACL
PRINT o nombre_tabla: guarda los resultados en una tabla de ACL
opcional Especifique el nombre_tabla como una cadena entre comillas con la extensión de
archivo .FIL. Por ejemplo: TO "Salida.FIL"
Por valor predeterminado, el archivo de datos de la tabla (.FIL) se guarda en la car-
peta que contiene el proyecto de ACL.
Utilice una ruta de archivo absoluta o relativa para guardar el archivo de datos en
una carpeta existente o una diferente:
l TO "C:\Salida.FIL"
l TO "Resultados\Salida.FIL"
Nota
Los nombres de las tablas tienen un límite de 64 caracteres alfa-
numéricos, sin incluir la extensión .FIL. El nombre puede incluir un
guión bajo ( _ ), pero no puede incluir ningún otro carácter especial
ni espacios. El nombre no puede comenzar con un número.
o nombre_de_archivo: guarda los resultados en un archivo
Especifique el nombre_de_archivo como una cadena entre comillas con la exten-
sión de archivo adecuada. Por ejemplo: TO "Salida.TXT".
Por valor predeterminado, el archivo se guarda en la carpeta que contiene el pro-
yecto de ACL.
Utilice una ruta de archivo absoluta o relativa para guardar el archivo en una car-
peta existente o una diferente:
l TO "C:\Salida.TXT"
l TO "Resultados\Salida.TXT"
o PRINT: envía los resultados a la impresora predeterminada
APPEND Anexa la salida del comando al final de un archivo existente en lugar de sobrescribir el
archivo.
opcional
Nombre Descripción
Nota
Debe asegurarse de que la estructura de la salida del comando y del
archivo existente sean idénticas:
l los mismos campos
l el mismo orden de campos
l los campos coincidentes son de la misma longitud
l los campos coincidentes tienen el mismo tipo de datos
ACL anexa la salida a un archivo existente sin importar cuál sea su
estructura. Si la estructura de la salida y la del archivo existente no coin-
ciden, es posible que los datos que se obtengan estén incompletos,
mezclados o sean imprecisos.
LOCAL Nota
opcional Aplicable únicamente al ejecutar el comando en una tabla de Servidor
de ACL con un archivo de salida que es una tabla de ACL.
Guarda el archivo de salida en la misma ubicación que el proyecto de ACL.
OPEN Abre la tabla creada por el comando después de la ejecución del comando. Solo es
válido si el comando crea una tabla de salida.
opcional
Ejemplos
Prueba para detectar números de factura faltantes
Usted utiliza GAPS para garantizar que no falte ningún número de factura en una tabla Facturas :
OPEN Facturas
GAPS ON Núm_Factura PRESORT TO "Facturas_Faltantes.fil"
Observaciones
Uso de GAPS en campos de caracteres
Además de probar campos numéricos o de fechahora, también puede probar si hay faltantes en datos
numéricos que aparecen en un campo de carácter. Por ejemplo, puede verificar los números de cheque,
que suelen tener el formato de datos de carácter.
Si hay letras y números juntos en un campo de carácter, únicamente se prueban los números y se ignoran
las letras.
Comando GROUP
Ejecuta uno o más comandos de ACLScript en un registro antes de pasar al siguiente registro de la tabla,
con solo una pasada a través de la tabla. La ejecución de los comandos se puede controlar por medio de
las condiciones.
Sintaxis
GROUP <IF prueba> <WHILE prueba> <FIRST|NEXT rango|NEXT rango>
comando
<...n>
<ELSE IF prueba>
comando
<...n>
<ELSE>
comando
<...n>
END
Nota
Algunos comandos de ACL no se pueden usar con el comando GROUP. Si desea obte-
ner más información, consulte "Comandos que se pueden utilizar dentro del comando
GROUP" en la página 216.
Parámetros
Nombre Descripción
IF prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta únicamente en los registros que cumplen la condición.
opcional
WHILE prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta hasta que la condición se evalúa como falsa o hasta que se llega
opcional
al final de la tabla.
comando <...n> Uno o más comandos de ACLScript que se deben ejecutar dentro del GROUP. Para
Nombre Descripción
ver una lista completa de los comandos admitidos dentro de GROUP, consulte "Coman-
dos que se pueden utilizar dentro del comando GROUP" en la página 216.
Si hay un IF o ELSE IF antes, la prueba se debe evaluar como verdadera.
Si el comando se indica dentro de ELSE, el comando se ejecuta si hay registros que no
han sido procesados por ninguno de los comandos precedentes. Puede incluir múl-
tiples comandos, con cada comando comenzando en una línea separada.
ELSE IF prueba Abre un bloque ELSE IF para el comando GROUP. La condición somete a prueba regis-
tros que no coincidieron con la prueba del comando GROUP o cualquier prueba ELSE
opcional
IF previa.
Puede incluir múltiples pruebas ELSE IF y estas se evalúan de arriba hacia abajo,
hasta que el registro se evalúe como verdadero y los comandos que siguen a esa ins-
trucción ELSE IF se ejecuten.
ELSE Abre un bloque ELSE para el comando GROUP. Los comandos que siguen se eje-
cutan para los registros que se evaluaron como falsos en todas las pruebas anteriores.
opcional
Ejemplos
GROUP simple
Los grupos simples comienzan con un comando GROUP, siguen con una serie de comandos y terminan
con un comando END:
GROUP
COUNT
HISTOGRAM ON Cantidad MINIMUM 0 MAXIMUM 100 INTERVALS 10
CLASSIFY ON Ubicación SUBTOTAL Cantidad
END
GROUP IF
Los grupos condicionales ejecutan comandos basados en una condición verdadera o falsa. El siguiente
comando GROUP se ejecuta solamente en registros con un valor de Clase_producto menor que 5:
GROUP IF ...ELSE
Los registros que no cumplen la condición de la prueba son ignorados, a menos que usted incluya el blo-
que ELSE.
Cualquier número de comandos puede seguir una instrucción ELSE. En el siguiente ejemplo, todos los
registros que no cumplen con la condición se procesan totalizando su campo Cantidad:
Como en otros grupos, utilice el comando END para finalizar un grupo anidado. ACL inicia el pro-
cesamiento de los datos solo después de que todos los comandos de grupo han finalizado:
En este ejemplo, todos los comandos desde COUNT hasta el próximo GROUP inclusive se ejecutan solo si
Clase_producto es menor que 05.
Los comandos STATISTICS e HISTOGRAM se ejecutan si Cantidad es mayor que cero. Sin embargo,
dado que el segundo comando GROUP está anidado, los comandos STATISTICS e HISTOGRAM se eje-
cutan solo para aquellos registros que cumplan con las condiciones Clase_producto < "05" y Cantidad > 0.
OPEN Metaphor_Trans_2002
GROUP
TOTAL AMOUNT IF PRODCLS = "03"
TOTAL AMOUNT IF PRODCLS = "05"
TOTAL AMOUNT IF PRODCLS = "08"
TOTAL AMOUNT IF PRODCLS = "09"
END
CLOSE Metaphor_Trans_2002
Observaciones
Consejo
Si desea ver un tutorial detallado que cubre los comandos GROUP y LOOP, consulte
"Agrupación y bucles" en la página 33.
VERIFY
Agrupación y bucles
El comando GROUP le permite ejecutar varios comandos en un registro antes de pasar al siguiente regis-
tro de la tabla, lo cual reduce significativamente el tiempo de procesamiento.
Puede utilizar el comando LOOP dentro del comando GROUP si necesita ejecutar una serie de coman-
dos más de una vez en un registro.
Nota
Si bien puede inicializar y definir una variable dentro de un bloque GROUP, no es reco-
mendable que lo haga. El uso de variables que se inicializan dentro de un bloque GROUP
pueden generar resultados inesperados.
Dentro de un GROUP, puede evaluar variables utilizando la sustitución de variables. El valor de la variable
permanece igual que al introducir el comando GROUP.
No puede definir una variable dentro de un comando GROUP y luego hacer referencia a ella con la sus-
titución de variables:
GROUP
TOTAL Descuento IF Prioridad_orden = "Baja"
ASSIGN v_var = "prueba"
TOTAL Descuento IF Prioridad_orden = "Alta"
END
l Cuando utilice el comando GROUP en sus scripts, puede mejorar la legibilidad del bloque de
comandos al dejar sangría en los comandos indicados dentro del grupo.
Comando HELP
Inicia los documentos de Ayuda de ACL Analytics en un navegador.
Sintaxis
HELP
Comando HISTOGRAM
Agrupa registros sobre la base de los valores de un campo de caracteres o numérico, hace un recuento
de la cantidad de registros de cada grupo y muestra los grupos y los recuentos en un gráfico de barras.
Sintaxis
HISTOGRAM {<ON> campo_caracteres|<ON> campo_numérico MINIMUM valor MAXIMUM valor
{<INTERVALS número>|FREE valor_intervalo <...n> último_intervalo}} <TO {SCREEN|nombre_
archivo|GRAPH|PRINT}> <IF prueba> <WHILE prueba> <FIRST rango|NEXT rango> <HEADER
texto_encabezado> <FOOTER texto_pie_de_página> <KEY salto_campo> <SUPPRESS>
<COLUMNS número> <APPEND> <LOCAL> <OPEN>
Parámetros
Nombre Descripción
MINIMUM valor Se aplica sólo a campos numéricos. El valor mínimo del primer intervalo numérico.
MINIMUM es opcional si se está utilizando FREE; de lo contrario, es obligatorio.
MAXIMUM valor Se aplica sólo a campos numéricos. El valor máximo del último intervalo numérico.
MAXIMUM es opcional si se está utilizando FREE; de lo contrario, es obligatorio.
Nombre Descripción
Los valores del intervalo deben estar en una secuencia numérica y no pueden tener
valores duplicados:
TO SCREEN | nombre_ El lugar al que se deben enviar los resultados del comando:
archivo | GRAPH | PRINT o SCREEN: muestra los resultados en el área de visualización de ACL
o nombre_de_archivo: guarda los resultados en un archivo
Especifique el nombre_de_archivo como una cadena entre comillas con la exten-
sión de archivo adecuada. Por ejemplo: TO "Salida.TXT".
Por valor predeterminado, el archivo se guarda en la carpeta que contiene el pro-
yecto de ACL.
Utilice una ruta de archivo absoluta o relativa para guardar el archivo en una car-
peta existente o una diferente:
l TO "C:\Salida.TXT"
l TO "Resultados\Salida.TXT"
o GRAPH: muestra los resultados en un gráfico en el área de visualización de ACL
o PRINT: envía los resultados a la impresora predeterminada
Nota
Los resultados del histograma que se envían a un archivo aparecen
como una representación de texto de un gráfico de barras.
IF prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta únicamente en los registros que cumplen la condición.
opcional
WHILE prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta hasta que la condición se evalúa como falsa o hasta que se llega
opcional
al final de la tabla.
HEADER texto_enca- El texto que se debe insertar en la parte superior de cada página de un reporte.
bezado
texto_encabezado_de_página se debe especificar como una cadena entre comillas. El
opcional valor anula la variable de sistema HEADER de ACL.
FOOTER texto_pie_de_ El texto que se debe insertar en la parte inferior de cada página de un reporte.
página
texto_pie_de_página se debe especificar como una cadena entre comillas. El valor
opcional anula la variable de sistema FOOTER de ACL.
KEY salto_campo El campo o la expresión que agrupa los cálculos de subtotal de grupos. Se calcula un
subtotal cada vez que cambia el valor de salto_campo.
Nombre Descripción
opcional salto_campo debe ser un campo de caracteres o una expresión. Puede especificar un
solo campo, pero puede usar una expresión que contenga más de un campo.
SUPPRESS Los valores por encima del valor MÁXIMO y por debajo del valor MÍNIMO se excluyen
de la salida del comando.
opcional
COLUMNS número La longitud del eje X en la representación de texto del gráfico de barras si envía los
resultados del histograma a un archivo de texto.
opcional
El valor número es el número de espacios de caracteres (columnas de texto) que se
deben utilizar para el eje X (y las etiquetas del eje Y). Si omite COLUMNS, se utiliza el
valor predeterminado de 78 espacios de caracteres.
APPEND Anexa la salida del comando al final de un archivo existente en lugar de sobrescribir el
archivo.
opcional
Nota
Debe asegurarse de que la estructura de la salida del comando y del
archivo existente sean idénticas:
l los mismos campos
l el mismo orden de campos
l los campos coincidentes son de la misma longitud
l los campos coincidentes tienen el mismo tipo de datos
ACL anexa la salida a un archivo existente sin importar cuál sea su
estructura. Si la estructura de la salida y la del archivo existente no coin-
ciden, es posible que los datos que se obtengan estén incompletos,
mezclados o sean imprecisos.
LOCAL Nota
opcional Aplicable únicamente al ejecutar el comando en una tabla de Servidor
de ACL con un archivo de salida que es una tabla de ACL.
Guarda el archivo de salida en la misma ubicación que el proyecto de ACL.
OPEN Abre la tabla creada por el comando después de la ejecución del comando. Solo es
válido si el comando crea una tabla de salida.
opcional
Ejemplos
Histograma básico de salario por horas
Usted utiliza HISTOGRAM para crear un gráfico que muestra la distribución de los salarios entre 0 y 100
dólares por hora:
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Comandos relacionados
La creación de un histograma utilizando un campo de caracteres es similar a la clasificación. La creación de
un histograma utilizando un campo numérico es similar a la estratificación.
A diferencia de otras operaciones de agrupamiento de ACL, los histogramas no admiten la subtotalización
de los campos numéricos.
IF
Especifica una condición que debe evaluarse como verdadera para que se ejecute un comando.
Sintaxis
IF prueba comando
Parámetros
Nombre Descripción
comando Cualquier comando de ACLScript que se deba ejecutar si prueba se evalúa como ver-
dadera.
Ejemplos
Ejecución de un comando de manera condicional
Usted desea usar CLASSIFY en una tabla, pero únicamente si la variable v_recuento es mayor que diez:
Observaciones
Comparación entre el comando IF y el parámetro IF
La lógica del comando IF difiere de la del parámetro IF que es admitido por la mayoría de los comandos:
l El comando IF: determina si el comando asociado se ejecuta o no, basándose en el valor de la expre-
sión de prueba
l El parámetro IF: determina si el comando se ejecuta en cada registro de una tabla de ACL según el
valor de la expresión prueba
Sintaxis
IMPORT ACCESS TO tabla <PASSWORD núm> nombrearchivo_importación FROM nom-
brearchivo_origen TABLE nombre_tabla_entrada CHARMAX longitud_campo_máx MEMOMAX lon-
gitud_campo_máx
Parámetros
Nombre Descripción
PASSWORD núm Solo se usa con archivos de Access protegidos con contraseña.
opcional La definición de contraseña que se debe usar.
La definición de contraseña hace referencia a una contraseña proporcionada o con-
figurada previamente con el comando PASSWORD o el comando SET PASSWORD.
No se utiliza PASSWORD núm para solicitar o especificar una contraseña real.
núm es el número de la definición de contraseña. Por ejemplo, si se proporcionaron o
configuraron dos contraseñas previamente, PASSWORD 2 especifica que se utiliza la
contraseña #2.
Si desea obtener más información acerca de la especificación o configuración de
contraseñas, consulte "Comando PASSWORD" en la página 323 y "Comando SET" en
la página 381.
Si desea obtener más información sobre la especificación o configuración de contra-
señas, consulte Comando PASSWORD y Comando SET.
Nombre Descripción
FROM nombrearchivo_ori- El nombre del archivo de datos de origen. nombrearchivo_origen debe ser una cadena
gen entre comillas.
Si el archivo de datos de origen no está ubicado en el mismo directorio que el proyecto
ACL, debe utilizar una ruta de acceso absoluta o una ruta de acceso relativa para espe-
cificar la ubicación del archivo:
o "C:\datos\nombrearchivo_origen"
o "datos\nombrearchivo_origen"
TABLE nombre_tabla_ El nombre de la tabla en el archivo de base de datos de Microsoft Access que se impor-
entrada tará.
CHARMAX longitud_ La longitud máxima en caracteres de cualquier campo en la tabla de ACL que se ori-
campo_máx gina como datos de carácter en el origen desde el cual está realizando la importación.
Puede especificar entre 1 y 255 caracteres.
MEMOMAX longitud_ La longitud máxima en caracteres para los campos de texto, nota o memo que está
campo_máx importando.
Puede especificar entre 1 y 32767 caracteres (ACL no Unicode) o 16383 caracteres
(ACL Unicode).
Ejemplos
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
SET ECHO ON
IMPORT ACCESS TO códigos_aceptables PASSWORD 1 "C:\ACL DATA\Sample Data File-
s\códigos_aceptables.fil" FROM "Códigos_aceptables.mdb" TABLE "[Códigos_Aceptables]"
CHARMAX 60 MEMOMAX 70
Sintaxis
IMPORT DELIMITED TO tabla nombrearchivo_importación FROM nombrearchivo_origen <SERVER
nombre_perfil> codificación_car_origen SEPARATOR {car|TAB|SPACE} QUALIFIER {car|NONE}
CONSECUTIVE STARTLINE número_de_línea <KEEPTITLE> <CRCLEAR> <LFCLEAR>
<REPLACENULL> <ALLCHAR> {ALLFIELDS|[sintaxis_campo] <...n> <IGNORE núm_campo>
<...n>}
sintaxis_campo ::=
FIELD nombre tipo AT posición_inicial DEC valor WID bytes PIC formato AS nombre_visible
Parámetros
Nombre Descripción
FROM nombrearchivo_ori- El nombre del archivo de datos de origen. nombrearchivo_origen debe ser una cadena
gen entre comillas.
Si el archivo de datos de origen no está ubicado en el mismo directorio que el proyecto
ACL, debe utilizar una ruta de acceso absoluta o una ruta de acceso relativa para espe-
Nombre Descripción
SERVER nombre_del_per- El nombre de perfil del servidor para el Servidor de AX donde están ubicados los datos
fil que desea importar.
opcional
SEPARATOR car El carácter que se debe utilizar como separador entre campos. Debe especificar el carác-
| TAB | SPACE ter como una cadena entre comillas.
Puede especificar un separador de espacio o tabulación escribiendo el carácter entre
comillas o utilizando una palabra clave:
o SEPARATOR " " o SEPARATOR TAB
o SEPARATOR " " o SEPARATOR SPACE
QUALIFIER car | NONE El carácter que se debe utilizar como calificador de texto para encerrar e identificar los
campos. Debe especificar el carácter como una cadena entre comillas.
Para especificar el carácter de comillas dobles como calificador de texto, encierre el
signo de las comillas dobles entre comillas simples: QUALIFIER '"'.
Puede especificar que no haya calificadores de texto utilizando cualquiera de los siguien-
tes métodos:
o QUALIFIER ""
o QUALIFIER NONE
CONSECUTIVE Los calificadores de texto consecutivos se deben tratar como un solo calificador.
KEEPTITLE Tratar a la primera fila de datos como nombres de campos en lugar de datos. Si se omite,
se utilizan nombres de campo genéricos.
opcional
Nombre Descripción
Nota
La fila que se utiliza como nombres de campo es el número de línea que
se especifique con STARTLINE.
Si especifica la sintaxis de FIELD de manera individual, FIELD nombre tiene prioridad
sobre los valores de la primera fila del archivo delimitado. En esta situación,
KEEPTITLE le permite prevenir la importación de los valores de la primera fila.
CRCLEAR Reemplaza los caracteres de retorno de carro (CR) que aparecen entre los calificadores
con caracteres de espacios. Debe especificar QUALIFIER con un valor car para usar
opcional
CRCLEAR.
Si usa tanto el parámetro CRCLEAR como LFCLEAR, el parámetro CRCLEAR debe
estar primero.
LFCLEAR Reemplaza los caracteres de salto de línea (LF) que aparecen entre los calificadores
con caracteres de espacios. Debe especificar QUALIFIER con un valor car para usar
opcional
LFCLEAR.
Si usa tanto el parámetro CRCLEAR como LFCLEAR, el parámetro CRCLEAR debe
estar primero.
REPLACENULL Reemplaza todos los caracteres NUL que aparecen en el archivo delimitado por carac-
teres de espacio. La cantidad de caracteres NUL reemplazados se registra en el log.
opcional
ALLCHAR Se asigna el tipo de datos de Carácter automáticamente a todos los campos importados.
opcional Consejo
Asignar un tipo de datos de Carácter a todos los campos importados sim-
plifica el proceso de importar archivos de texto delimitado. Una vez que
los datos se encuentran en ACL, puede asignarles diferentes tipos de
datos, como Numéricos o Fechahora, a los campos y especificar los deta-
lles de formato.
ALLCHAR resulta útil al importar una tabla con campos identificadores a
los que ACLasigna automáticamente tipos de datos Numéricos cuando
en realidad se deberían usar tipos de datos de Carácter.
FIELD nombre tipo Los campos individuales para importar desde el archivo de datos de origen, incluidos el
nombre y el tipo de datos del campo. Para excluir un campo de la importación, no lo
especifique.
Si desea obtener información acerca de los tipos, consulte "Identificadores de los tipos
de datos de los campos" en la página 235.
Nombre Descripción
Nota
tipo se ignora si especifica ALLCHAR.
AT posición_inicial La posición del byte de inicio para el campo en el archivo de datos de ACL.
Nota
AS nombre_visible El nombre visible (título de columna alternativo) para el campo en la vista de la nueva
Nombre Descripción
tabla de ACL.
Especifique nombre_visible como una cadena entre comillas. Utilice un punto y coma (;)
entre las palabras si desea que haya un salto de línea en el título de la columna.
AS es obligatorio cuando se está definiendo un FIELD. Para que el nombre visible sea el
mismo que el nombre del campo, introduzca un valor en blanco en nombre_visible con
la siguiente sintaxis: AS "". Asegúrese de que no haya un espacio entre las dos comillas.
Ejemplos
Importación de todos los campos
Usted importa todos los campos desde un archivo delimitado por comas a una tabla de ACL llamada
Empleados . El archivo utiliza comillas como calificador de texto. Los tipos de datos se asignan de manera
automática sobre la base de un conjunto de reglas que se describen en "Observaciones" en la página
siguiente:
llamada Empleados . El archivo utiliza comillas como calificador de texto. Se asigna el tipo de datos de
Carácter automáticamente a todos los campos importados:
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
"6.990,75"
Los valores incluyen un carácter no numérico en cualquier lugar del $995 Carácter
campo, con la excepción de las comas y los puntos que se utilizan
(995)
como separadores numéricos y el signo negativo (-)
A ACL
B BINARY (binario)
C CHARACTER (carácter)
D DATETIME
E EBCDIC
F FLOAT (flotante)
G ACCPAC
I IBMFLOAT
K UNSIGNED
L LÓGICOS
N PRINT
P PACKED (compactado)
Q BASIC
R MICRO
S CUSTOM
T PCASCII
U UNICODE
V VAXFLOAT
X NUMERIC (numérico)
Y UNISYS
Z ZONED (zonado)
Sintaxis
IMPORT EXCEL TO tabla nombrearchivo_importación FROM nombrearchivo_origen TABLE hoja-
dedatos_entrada_o_intervalo_nombrado <KEEPTITLE> {ALLFIELDS|CHARMAX longitud_campo_
máx|[sintaxis_campo] <...n> <IGNORE núm_campo> <...n>} <OPEN>
sintaxis_campo ::=
FIELD nombre tipo {PIC formato|WID caracteres DEC valor} AS nombre_visible
Parámetros
Nombre Descripción
FROM nombrearchivo_ori- El nombre del archivo de datos de origen. nombrearchivo_origen debe ser una cadena
gen entre comillas.
Si el archivo de datos de origen no está ubicado en el mismo directorio que el proyecto
ACL, debe utilizar una ruta de acceso absoluta o una ruta de acceso relativa para espe-
cificar la ubicación del archivo:
Nombre Descripción
o "C:\datos\nombrearchivo_origen"
o "datos\nombrearchivo_origen"
TABLE hojadedatos_o_ La hoja de cálculo de Microsoft Excel o el intervalo con nombre del archivo de datos de
intervalo_nombrado origen que se importará:
o debe introducir un signo "$" al final del nombre de la hoja de cálculo
o hojadedatos_o_intervalo_nombrado se debe especificar como una cadena entre
comillas
KEEPTITLE Tratar a la primera fila de datos como nombres de campos en lugar de datos. Si se omite,
se utilizan nombres de campo genéricos.
opcional
Si está definiendo los campos de manera individual, KEEPTITLE debe aparecer antes
del primer FIELD.
CHARMAX longitud_ Solo se aplica cuando no está definiendo campos de manera individual.
campo_máx
La longitud máxima en caracteres de cualquier campo de la tabla de ACL que se origina
como datos de carácter en el archivo de datos de origen.
FIELD nombre tipo Los campos individuales para importar desde el archivo de datos de origen, incluidos el
nombre y el tipo de datos del campo. Para excluir un campo de la importación, no lo
especifique.
Si desea obtener información acerca de los tipos, consulte "Identificadores de los tipos
de datos de los campos" en la página 241.
Nombre Descripción
AS nombre_visible El nombre visible (título de columna alternativo) para el campo en la vista de la nueva
tabla de ACL.
Especifique nombre_visible como una cadena entre comillas. Utilice un punto y coma (;)
entre las palabras si desea que haya un salto de línea en el título de la columna.
AS es obligatorio cuando se está definiendo un FIELD. Para que el nombre visible sea el
mismo que el nombre del campo, introduzca un valor en blanco en nombre_visible con
la siguiente sintaxis: AS "". Asegúrese de que no haya un espacio entre las dos comillas.
OPEN Abre la tabla creada por el comando después de la ejecución del comando. Solo es
válido si el comando crea una tabla de salida.
opcional
Ejemplos
Importación de campos especificados
Usted realiza una importación que define una nueva tabla de ACL denominada Tarjetas_crédito. Utiliza la
primera fila de datos de Excel como los nombres de los campos.
La tabla de ACL define e incluye tres campos de la tabla de origen, pero excluye los campos restantes:
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Definir campos individualmente o importar todos los campos utilizando una defi-
nición predeterminada
Al importar un archivo de Excel a una tabla de ACL, puede utilizar parámetros FIELD para definir cada
campo de manera individual o puede utilizar el parámetro ALLFIELDS o el parámetro CHARMAX para
importar todos los campos con las definiciones de campo ACL predeterminadas.
A ACL
B BINARY (binario)
C CHARACTER (carácter)
D DATETIME
E EBCDIC
F FLOAT (flotante)
G ACCPAC
I IBMFLOAT
K UNSIGNED
L LÓGICOS
N PRINT
P PACKED (compactado)
Q BASIC
R MICRO
S CUSTOM
T PCASCII
U UNICODE
V VAXFLOAT
X NUMERIC (numérico)
Y UNISYS
Z ZONED (zonado)
Sintaxis
IMPORT GRCPROJECT TO tabla nombrearchivo_importación PASSWORD núm FROM id_org/id_
tipo <FIELD nombre AS nombre_visible <...n>>
Parámetros
Nombre Descripción
Nombre Descripción
FROM id_org id_tipo La organización y el tipo de información que define los datos que se están importando:
o id_org: la organización de Proyectos de la cual está importando datos
o id_tipo: el tipo de información que está importando
El valor id_org y el valor id_tipo deben estar separados por una barra, sin espacios:
FROM "125@eu/audits".
La cadena completa debe estar encerrada entre comillas.
Identificador de la organización
id_org debe incluir el número de ID de la organización y, si está realizando la impor-
tación desde un centro de datos ubicado fuera de América del Norte, el código del centro
de datos. El número de ID de la organización y el código del centro de datos deben estar
separados por el signo (@): FROM "125@eu".
El código del centro de datos especifica desde qué servidor regional de ACL GRC está
importando los datos:
o ap: Pacífico asiático
o au: Australia
o ca: Canadá
o eu: Europa
o us: Norteamérica
Puede utilizar únicamente el código del centro de datos o los códigos autorizados para
la instalación de ACL GRC de su organización. El centro de datos de Norteamérica es el
valor predeterminado, por lo que especificar "@us" es opcional.
Si no conoce el número de ID de la organización, utilice la interfaz de usuario de ACL
para importar una tabla desde Proyectos. El número de ID de la organización está
incluido en el comando en el log. Si desea obtener más información, consulte Definición
de datos de ACL GRC.
ID tipo
id_tipo especifica el tipo de información que está importando. La información en Pro-
yectos está contenida en una serie de cuadros relacionados.
Para id_tipo, utilice uno de los valores que se incluyen a continuación. Escriba el valor
exactamente como aparece e incluya guiones bajos, según corresponda:
o auditorías: Proyectos
o planes_prueba_control: Planes de prueba de controles
o prueba_control: Prueba de controles
o controles: Controles
o buscar_acciones: Acciones
o hallazgos: Problemas
o mitigaciones: Asociaciones de Control de riesgos
Nombre Descripción
o narrativas: Narrativas
o objetivos: Objetivos
o riesgos: Riesgos
o revisiones de confiabilidad: Revisiones de confiabilidad
Consejo
Para obtener información sobre cómo se relacionan las tablas en Pro-
yectos y los campos claves que puede utilizar para unir las tablas una
vez que las haya importado a ACL, consulte Definición de datos de ACL
GRC.
FIELD nombre AS nom- Campos individuales de los datos de origen que se deben importar. Especifique el nom-
bre_visible <...n> bre.
opcional Si omite FIELD, se importan todos los campos.
o nombre debe coincidir de forma exacta con el nombre del campo físico en la tabla Pro-
yectos, lo cual incluye mayúsculas y minúsculas
o nombre visible (título de columna alternativo) es el nombre visible para el campo en
la vista de la nueva tabla de ACL. Debe especificar un nombre visible para cada
FIELD nombre. Especifique nombre_visible como una cadena entre comillas.
Utilice un punto y coma (;) entre las palabras si desea que haya un salto de línea en
el título de la columna.
A diferencia de algunos otros comandos IMPORT de ACL, no puede especificar nom-
bre_visible en blanco para utilizar el nombre del campo como el nombre visible.
Consejo
Para obtener los nombres de campos físicos, utilice la interfaz de usuario
de ACL para importar la tabla apropiada de Proyectos. Los nombres de
campos físicos están contenidos en el comando en el log.
Las importaciones posteriores se pueden incluir en scripts.
Ejemplos
Importación de todos los campos de la tabla Proyectos
Usted importa todos los campos de la tabla Proyectos para todos los proyectos activos que pertenecen a la
organización 286 a una tabla de ACL denominada "Todos_los_proyectos . Usted incluye una definición de
contraseña numerada para autenticar la conexión:
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
l Método PASSWORD: Los usuarios pueden obtener un token de acceso seleccionando Herra-
mientas > Token de acceso a ACLGRC e iniciando sesión en ACL GRC. Se devuelve un token de
acceso, que los usuarios pueden copiar y pegar en la solicitud de contraseña.
l Método SET PASSWORD: Para insertar un token de acceso en la sintaxis del comando SET
PASSWORD en un script de ACL, haga clic con el botón derecho del ratón en el Editor de scripts ,
seleccione Insertar > Token de ACL GRC e inicie sesión en ACL GRC. Se inserta un token de
acceso en el script en la posición del cursor.
¡Precaución!
El token de acceso devuelto concuerda con la cuenta utilizada para iniciar sesión en ACL
GRC. Como escritor de scripts puede no ser apropiado que utilice su propio token de
acceso si está escribiendo un script que será usado por otras personas.
Sintaxis
IMPORT GRCRESULTS TO tabla importar_nombredearchivo PASSWORD núm FROM Ruta_recur-
sos_Resultados <FIELD nombre AS nombre_visible <...n>>
Parámetros
Nombre Descripción
Nombre Descripción
FIELD nombre AS nom- Campos individuales de los datos de origen que se deben importar. Especifique el nom-
bre_visible <...n> bre.
opcional Si omite FIELD, se importan todos los campos.
Nombre
nombre debe coincidir de forma exacta con el nombre del campo físico en la tabla de
Resultados, lo cual incluye mayúsculas y minúsculas. Para ver el nombre del campo
físico, complete una de las siguientes acciones:
o En Resultados, haga clic en el encabezado de una columna en la Vista de la tabla.
El nombre del campo físico aparece después de Nombre campo.
o En ACL, al importar una tabla de Resultados, el nombre del campo físico aparece
entre paréntesis después del nombre visible en el cuadro de diálogo que le permite
seleccionar campos.
Nota
El nombre del campo físico Resultados no es el nombre visible que se
usa en los encabezados de las columnas de la Vista de la tabla.
Consulte también "Consideraciones de los nombres de campos al importar y exportar
datos de Resultados" en la página 252.
Nombre visible
nombre visible (título de columna alternativo) es el nombre visible para el campo en la
vista de la nueva tabla de ACL. Debe especificar un nombre visible para cada FIELD
nombre. Especifique nombre_visible como una cadena entre comillas.
Utilice un punto y coma (;) entre las palabras si desea que haya un salto de línea en el
título de la columna.
A diferencia de algunos otros comandos IMPORT de ACL, no puede especificar nom-
Nombre Descripción
bre_visible en blanco para utilizar el nombre del campo como el nombre visible.
Ejemplos
Importación de campos especificados desde una tabla de Resultados
Usted importa campos especificados desde una tabla de Resultados a una tabla de ACL denominada
Excepciones gastos representación:
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Ruta de Resultados
Nota
La forma de la ruta de Resultados es proporcionada por una API y está sujeta a cambios.
La manera más sencilla y confiable de obtener la sintaxis correcta y actualizada para la ruta
es realizar una importación manual de los datos de destino y copiar la ruta desde el log del
comando.
La ruta de Resultados en el parámetro FROM tiene la siguiente forma general:
FROM "results <-código de región>/api/orgs/<ID org>/control_tests/<ID prueba de control>/exceptions
Por ejemplo: FROM "results/api/orgs/11594/control_tests/4356/exceptions"
El valor de ID de la organización se muestra en la barra de direcciones del navegador al iniciar sesión en
ACL Launchpad. El valor de ID de la prueba de control y de ID de la interpretación se muestran en la barra
de direcciones al visualizar esas tablas en Resultados.
La tabla que se incluye a continuación proporciona todas las variaciones de la ruta de Resultados.
metadata.priority Prioridad
metadata.status Estado
metadata.publish_date Publicado/a
metadata.assignee Asignado
metadata.group Grupo
metadata.updated_at Actualizado/a
metadata.closed_at Cerrado/a
extras.collection Colección
Por ejemplo, cualquier carácter especial en los nombres de campos de Resultados se convierte auto-
máticamente en guiones bajos cuando se importa a ACL y esto significa que los nombres ya no coincidirán
con los nombres originales de Resultados. Si más tarde exporta los datos de ACL nuevamente a la tabla ori-
ginal de Resultados, los campos ya no coinciden correctamente y, como consecuencia, los datos no que-
dan alineados.
Para evita este problema con los datos que planea intercambiar, asegúrese de que antes de cargar los
datos a Resultados desde archivos CSV o de Excel, se cumplan los siguientes requisitos de nombres de
campos de ACL:
l no pueden tener caracteres especiales ni espacios
l no pueden comenzar con un número
l solo pueden tener caracteres alfanuméricos o el carácter de guion bajo ( _ )
Sintaxis
IMPORT LAYOUT archivo_de_formato_externo TO nombre_de_formato_de_tabla
Parámetros
Nombre Descripción
archivo_de_formato_ El nombre del archivo de formato de tabla externo. Si el nombre o la ruta del archivo
externo incluyen espacios, debe encerrarlos entre comillas; por ejemplo, "Trans Cp.layout".
Como valor predeterminado, se utiliza la extensión de archivo .layout; por lo tanto, no es
necesario especificarla. Si es necesario, puede usar otra extensión de archivo, como
.fmt.
Si el archivo de formato no está ubicado en la misma carpeta que el proyecto de ACL,
debe utilizar una ruta absoluta o una ruta relativa para especificar la ubicación del
archivo; por ejemplo, "C:\Formatos guardados\Trans_Cp.layout" o
"Formatos guardados\Trans_Cp.layout".
TO nombre_de_formato_ El nombre del formato de tabla importado en el proyecto de ACL; por ejemplo,
de_tabla "Trans Cp Mayo". Si el nombre_de_formato_de_tabla contiene espacios, debe espe-
cificarlo como una cadena encerrada entre comillas. Puede especificar un nombre_de_
formato_de_tabla diferente del nombre del archivo_de_formato_externo.
Ejemplo
Importación de un archivo de formato de tabla externo
Usted importa un archivo de formato de tabla externo denominado Trans_Cp.layout y crea un nuevo for-
mato de tabla denominado Trans _Cp_Mayo en el proyecto de ACL:
Observaciones
Cuándo usar IMPORT LAYOUT
Importar un archivo de formato de tabla externo y asociarlo con un archivo de datos puede ahorrar el tra-
bajo de crear un nuevo formato de tabla desde cero:
l Si el formato de tabla importado especifica una asociación con un archivo de datos de ACL (.fil)
determinado y existe un archivo de datos con el mismo nombre en la carpeta del proyecto, el for-
mato de tabla importado se asocia automáticamente con el archivo de datos de la carpeta.
l Si no hay un archivo de datos con el mismo nombre en la carpeta del proyecto, debe enlazar el for-
mato de tabla importado a un nuevo origen de datos.
Sintaxis
IMPORT ODBC SOURCE nombre_origen TABLE nombre_tabla <QUALIFIER calificador_datos>
<OWNER nombre_usuario> <USERID id_usuario> <PASSWORD núm> <WHERE cláusula_
where> <TO nombre_tabla> <WIDTH longitud_campo_máxima> <MAXIMUM longitud_campo_
máxima> <FIELDS campo <;...n>>
Parámetros
Nombre Descripción
SOURCE nombre_origen El nombre del origen de datos (DSN) del origen de datos ODBC con el que desea conec-
tarse. El DSN debe existir previamente y estar configurado correctamente.
Nota
Está limitado a los orígenes de datos que utilizan los controladores
ODBC de Windows instalados en su equipo. Los conectores de datos de
ACL nativos que se pueden utilizar con el comando ACCESSDATA pue-
den no estar disponibles con IMPORT ODBC.
TABLE nombre_tabla El nombre de tabla en el origen de datos ODBC desde el que desea importar datos.
nombre_tabla normalmente se refiere a una tabla de base de datos en el origen de
datos, pero también puede referirse a cualquier información que ACL importe como una
tabla. Por ejemplo, si utiliza Microsoft Text Driver, nombre_tabla se refiere al archivo de
texto desde el que desea importar datos.
QUALIFIER calificador_ El carácter que se debe utilizar como calificador de texto para encerrar e identificar los
datos campos. Debe especificar el carácter como una cadena entre comillas.
opcional Utilice comillas simples para especificar el carácter de comillas: '"'.
OWNER nombre_usuario El nombre de la cuenta de usuario de la base de datos que es el propietaria de la tabla a
la que se conectará.
opcional
Nombre Descripción
WHERE cláusula_where Una cláusula WHERE de SQL que limita los registros que se devuelven de acuerdo con
los criterios que usted especifique. Debe ser un enunciado SQL válido y se debe ingre-
opcional
sar como una cadena entre comillas:
WIDTH longitud_campo_ La longitud máxima en caracteres de cualquier campo en la tabla de ACL que se origina
máxima como datos de carácter en el origen desde el cual está realizando la importación.
opcional Puede ingresar cualquier valor entre 1 y 254. El valor predeterminado es 50. Los datos
que superen la longitud de campo máxima se truncan al importarlos a ACL.
MAXIMUM longitud_ La longitud máxima en caracteres para los campos de texto, nota o memo que está
campo_máxima importando.
opcional Puede ingresar cualquier valor entre 1 y 1100. El valor predeterminado es 100. Los
datos que superen la longitud de campo máxima se truncan al importarlos a ACL.
FIELDS field <;...n> Campos individuales de los datos de origen que se deben importar. Especifique el nom-
bre.
opcional
Si especifica varios campos, cada campo debe estar separado por una coma. Si omite
FIELDS, se importan todos los campos.
Al escribir los nombres de campo entre comillas, éstos distinguen entre mayúsculas y
minúsculas. Si utiliza comillas, los nombres de campo deben coincidir exactamente entre
Nombre Descripción
Ejemplos
Importación de datos desde SQL Server
Usted importa datos desde una base de datos SQL Server a una tabla de ACL denominada Trans_Dec11:
Observaciones
Método más viejo para conectarse a orígenes de datos de ODBC
El comando IMPORT ODBC es el método más antiguo para conectarse a orígenes de datos compatibles
con ODBC desde ACL. El nuevo método de conexión a orígenes de datos ODBC utiliza la ventana Data
Access y el comando ACCESSDATA.
Puede continuar usando IMPORT ODBC en ACL. Sin embargo, este método de conexión ahora está dis-
ponible únicamente en los scripts y desde la línea de comandos de ACL. Ya no puede acceder a este
método de conexión en el Asistente de Definición de Datos .
Sintaxis
IMPORT PDF TO tabla <PASSWORD núm> nombrearchivo_importación FROM nombrearchivo_ori-
gen <SERVER nombre_perfil> longitud_omisión <PARSER "VPDF"> <PAGES intervalo_páginas>
{[sintaxis_registro] [sintaxis_campo] <...n>} <...n>
sintaxis_registro ::=
RECORD nombre_del_registro tipo_de_registro líneas_en_el_registro transparente [sintaxis_prue-
ba]<...n>
sintaxis_prueba ::=
TEST incluir_excluir tipo_de_coincidencia AT línea_de_inicio;posición_inicial;rango lógica texto
sintaxis_campo ::=
FIELD nombre tipo AT línea_de_inicio; posición_inicial SIZE longitud; líneas_en_campo DEC valor
WID bytes PIC formato AS nombre_visible
Parámetros
Parámetros generales
Nombre Descripción
Nombre Descripción
FROM nombrearchivo_ori- El nombre del archivo de datos de origen. nombrearchivo_origen debe ser una cadena
gen entre comillas.
Si el archivo de datos de origen no está ubicado en el mismo directorio que el proyecto
ACL, debe utilizar una ruta de acceso absoluta o una ruta de acceso relativa para espe-
cificar la ubicación del archivo:
o "C:\datos\nombrearchivo_origen"
o "datos\nombrearchivo_origen"
SERVER nombre_del_per- El nombre de perfil para el servidor que contiene los datos que desea importar.
fil
opcional
PARSER "VPDF" Use el analizador VeryPDF para analizar el archivo PDF durante el proceso de defi-
nición del archivo.
opcional
Si omite PARSER, se utilizará el analizador Xpdf predeterminado.
Si está importando el archivo PDF por primera vez y no tiene motivos para hacerlo de
Nombre Descripción
PAGES intervalo_páginas Las páginas que se deben incluir si no se desea importar todas las páginas del archivo
PDF. intervalo_páginas se debe especificar como una cadena entre comillas.
opcional
Puede especificar:
o páginas individuales separadas por comas (1,3,5)
o intervalos de páginas (2-7)
o una combinación de páginas e intervalos (1, 3, 5-7, 11)
Si omite PAGES, se importan todas las páginas del archivo PDF.
Parámetro RECORD
Información de la definición del registro general.
Nota
Parte de la información de definición del registro se especifica utilizando códigos numé-
ricos que coinciden con las opciones del Asistente de Definición de Datos.
En los scripts, especifique el código numérico, no el nombre de la opción.
Nombre Descripción
Nombre Descripción
archivo PDF.
Parámetro TEST
Los criterios para definir un conjunto de registros en el archivo PDF. Puede tener una o más instancias de
TEST para cada instancia de RECORD.
Nota
Algunos de los criterios se especifican utilizando códigos numéricos que asignan las opcio-
nes del Asistente de Definición de Datos (los nombres de las opciones se muestran a con-
tinuación entre paréntesis).
En los scripts, especifique el código numérico, no el nombre de la opción.
Nombre Descripción
Nombre Descripción
AT línea_de_inicio; posi- o línea_de_inicio: la línea del registro a la que se aplican los criterios
ción_inicial; rango
Por ejemplo, si crea una búsqueda con comodines para que coincidan con códigos
postales y los códigos postales aparecen en la tercera línea de un registro de tres
líneas, debe especificar 3 en línea_de_inicio.
Nota
En el caso de registros de una sola línea, el valor de línea_de_inicio
es siempre 1.
o posición_inicial: la posición inicial en bytes del archivo PDF para la comparación con
los criterios
o rango: la cantidad de bytes a partir de la posición inicial de bytes en el archivo
PDF que se debe usar en la comparación con los criterios
Si está utilizando únicamente la posición de bytes de inicio, sin un rango, especifique
0 para rango.
Nota
texto Caracteres literales o comodín con los que se debe buscar una coincidencia:
o Para Concordancia exacta, Buscar en línea o Buscar en rango:, especifica el carácter
o la cadena de caracteres que identifican de manera exclusiva al conjunto de regis-
tros del archivo PDF.
o Para Búsqueda con comodines:, especifica el patrón de caracteres que identifican de
manera exclusiva el conjunto de registros del archivo PDF
La opción Búsqueda con comodines usa la misma sintaxis que la "Función MAP( )"
en la página 601.
Nombre Descripción
Parámetros FIELD
Información de la definición de campo.
Nombre Descripción
FIELD nombre tipo Los campos individuales para importar desde el archivo de datos de origen, incluidos el
nombre y el tipo de datos del campo. Para excluir un campo de la importación, no lo
especifique.
Si desea obtener información acerca de los tipos, consulte "Identificadores de los tipos
de datos de los campos" en la página 267.
AT línea_de_inicio; posi- o línea_de_inicio: la línea de inicio del campo del registro del archivo PDF
ción_inicial
En el caso de registros de varias líneas en un archivo PDF, línea_de_inicio le permite
comenzar un campo en cualquier línea del registro. línea_de_inicio siempre es 1 si
líneas_en_el_registro es 1.
o posición_inicial: la posición inicial en bytes del campo en el archivo PDF
Nota
SIZE longitud; líneas_en_ o longitud: la longitud del campo en bytes en el formato de tabla de ACL.
el_campo
Nota
Nombre Descripción
Nota
La cantidad de líneas especificadas para un campo no puede superar
la cantidad de líneas especificadas para el registro que contiene el
campo.
AS nombre_visible El nombre visible (título de columna alternativo) para el campo en la vista de la nueva
tabla de ACL.
Especifique nombre_visible como una cadena entre comillas. Utilice un punto y coma (;)
entre las palabras si desea que haya un salto de línea en el título de la columna.
AS es obligatorio cuando se está definiendo un FIELD. Para que el nombre visible sea el
mismo que el nombre del campo, introduzca un valor en blanco en nombre_visible con
la siguiente sintaxis: AS "". Asegúrese de que no haya un espacio entre las dos comillas.
Ejemplos
Importación de datos de una página específica de un archivo PDF
Usted importa datos de la página 1 del archivo PDF protegido con contraseña, Proveedores.pdf.
Se crea un conjunto de registros de detalles, con tres campos, en la tabla de ACL resultante, Lista_pro-
veedores :
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
A ACL
B BINARY (binario)
C CHARACTER (carácter)
D DATETIME
E EBCDIC
F FLOAT (flotante)
G ACCPAC
I IBMFLOAT
K UNSIGNED
L LÓGICOS
N PRINT
P PACKED (compactado)
Q BASIC
R MICRO
S CUSTOM
T PCASCII
U UNICODE
V VAXFLOAT
X NUMERIC (numérico)
Y UNISYS
Z ZONED (zonado)
Sintaxis
IMPORT PRINT TO tabla nombrearchivo_importación FROM nombrearchivo_origen <SERVER nom-
bre_perfil> valor_conjunto_caracteres <número_página_código> {[sintaxis_registro] [sintaxis_campo]
<...n>} <...n>
sintaxis_registro ::=
RECORD nombre_del_registro tipo_de_registro líneas_en_el_registro transparente [sintaxis_prue-
ba]<...n>
sintaxis_prueba ::=
TEST incluir_excluir tipo_de_coincidencia AT línea_de_inicio;posición_inicial;rango lógica texto
sintaxis_campo ::=
FIELD nombre tipo AT línea_de_inicio; posición_inicial SIZE longitud; líneas_en_campo DEC valor
WID bytes PIC formato AS nombre_visible
Parámetros
Parámetros generales
Nombre Descripción
Nombre Descripción
Por valor predeterminado, el archivo de datos (.FIL) se guarda en la carpeta que con-
tiene el proyecto de ACL.
Utilice una ruta de archivo absoluta o relativa para guardar el archivo de datos en una
carpeta existente o una diferente:
o "C:\datos\Facturas.FIL"
o "datos\FacturasFIL"
FROM nombrearchivo_ori- El nombre del archivo de datos de origen. nombrearchivo_origen debe ser una cadena
gen entre comillas.
Si el archivo de datos de origen no está ubicado en el mismo directorio que el proyecto
ACL, debe utilizar una ruta de acceso absoluta o una ruta de acceso relativa para espe-
cificar la ubicación del archivo:
o "C:\datos\nombrearchivo_origen"
o "datos\nombrearchivo_origen"
SERVER nombre_del_per- El nombre de perfil para el servidor que contiene los datos que desea importar.
fil
opcional
Parámetro RECORD
Información de la definición del registro general.
Nota
Parte de la información de definición del registro se especifica utilizando códigos numé-
ricos que coinciden con las opciones del Asistente de Definición de Datos.
En los scripts, especifique el código numérico, no el nombre de la opción.
Nombre Descripción
Nombre Descripción
tipo_de_registro Los tres tipos de registro posibles al definir un archivo de Imagen de impresión:
o 0: detalle
o 1: encabezado
o 2: pie de página
Nota
Puede definir varios conjuntos de registros de encabezado y pie de
página en una única ejecución de IMPORT PRINT, pero solo un con-
junto de registros de detalle.
Parámetro TEST
Los criterios para definir un conjunto de registros en el archivo de imagen de impresión. Puede tener una o
más instancias de TEST para cada instancia de RECORD.
Nota
Algunos de los criterios se especifican utilizando códigos numéricos que asignan las opcio-
nes del Asistente de Definición de Datos (los nombres de las opciones se muestran a con-
tinuación entre paréntesis).
En los scripts, especifique el código numérico, no el nombre de la opción.
Nombre Descripción
AT línea_de_inicio; posi- o línea_de_inicio: la línea del registro a la que se aplican los criterios
ción_inicial; rango
Por ejemplo, si crea una búsqueda con comodines para que coincidan con códigos
postales y los códigos postales aparecen en la tercera línea de un registro de tres
líneas, debe especificar 3 en línea_de_inicio.
Nota
En el caso de registros de una sola línea, el valor de línea_de_inicio
es siempre 1.
o posición_inicial: la posición inicial en bytes del archivo de imagen de
impresión para la comparación con los criterios
o rango: la cantidad de bytes a partir de la posición inicial de bytes en el archivo de
imagen de impresión que se debe usar en la comparación con los criterios
Si está utilizando únicamente la posición de bytes de inicio, sin un rango, espe-
cifique 0 para rango.
Nombre Descripción
Nota
Para los datos Unicode, el rango debe ser un número par de bytes.
Por ejemplo, 50;59 (10 bytes). Si especifica un número de bytes
impar, tal vez no sea posible lograr una coincidencia correcta con los
criterios.
texto Caracteres literales o comodín con los que se debe buscar una coincidencia:
o Para Concordancia exacta, Buscar en línea o Buscar en rango:, especifica el carác-
ter o la cadena de caracteres que identifican de manera exclusiva al conjunto de
registros del archivo de imagen de impresión.
o Para Búsqueda con comodines:, especifica el patrón de caracteres que identifican
de manera exclusiva el conjunto de registros del archivo de imagen de impresión
La opción Búsqueda con comodines usa la misma sintaxis que la "Función MAP( )"
en la página 601.
Para otros tipos de coincidencias, texto es una cadena vacía "".
Parámetros FIELD
Información de la definición de campo.
Nombre Descripción
FIELD nombre tipo Los campos individuales para importar desde el archivo de datos de origen, incluidos el
nombre y el tipo de datos del campo. Para excluir un campo de la importación, no lo
especifique.
Si desea obtener información acerca de los tipos, consulte "Identificadores de los tipos
de datos de los campos" en la página 276.
AT línea_de_inicio; posi- o línea_de_inicio: la línea de inicio del campo del registro del archivo de imagen de
ción_inicial impresión
Nombre Descripción
SIZE longitud; líneas_en_ o longitud: la longitud del campo en bytes en el formato de tabla de ACL
el_campo Nota
Nombre Descripción
AS nombre_visible El nombre visible (título de columna alternativo) para el campo en la vista de la nueva
tabla de ACL.
Especifique nombre_visible como una cadena entre comillas. Utilice un punto y coma (;)
entre las palabras si desea que haya un salto de línea en el título de la columna.
AS es obligatorio cuando se está definiendo un FIELD. Para que el nombre visible sea el
mismo que el nombre del campo, introduzca un valor en blanco en nombre_visible con
la siguiente sintaxis: AS "". Asegúrese de que no haya un espacio entre las dos comillas.
Ejemplos
Importación de datos desde un archivo de imagen de impresión (Reporte)
Usted importa datos desde el archivo de imagen de impresión (Reporte), Reporte.txt.
Se crea un registro de encabezado y un conjunto de registros de detalles, con cinco campos, en la tabla de
ACL resultante, Reporte_inventario:
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
A ACL
B BINARY (binario)
C CHARACTER (carácter)
D DATETIME
E EBCDIC
F FLOAT (flotante)
G ACCPAC
I IBMFLOAT
K UNSIGNED
L LÓGICOS
N PRINT
P PACKED (compactado)
Q BASIC
R MICRO
S CUSTOM
T PCASCII
U UNICODE
V VAXFLOAT
X NUMERIC (numérico)
Y UNISYS
Z ZONED (zonado)
Sintaxis
IMPORT SAP PASSWORD núm TO nombre_tabla SAP SOURCE "SAP AGENT" detalles_impor-
tación
Parámetros
Nombre Descripción
SAP SOURCE Requerido para importar datos SAP. "SAP AGENT" es la única opción disponible.
"SAP AGENT"
detalles_importación Los detalles de la consulta. Se debe escribir entre las etiquetas <q></q>, y utiliza las eti-
quetas especificadas en "Etiquetas de consulta de Direct Link" en la página 281 para
definir la consulta.
Nombre Descripción
Ejemplos
Realización de una consulta en varias tablas
Este ejemplo realiza una consulta de múltiples tablas utilizando el comando IMPORT SAP.
Para crear una cadena de consulta válida, es necesario ordenar y anidar correctamente las etiquetas. En
este ejemplo, las etiquetas están correctamente ordenadas y anidadas. Utilice este ejemplo para deter-
minar el orden y el anidamiento necesarios de las etiquetas de consulta IMPORT SAP.
Nota
Para favorecer la lectura, este ejemplo tiene un formato de varias líneas. En su script, la
cadena de consulta y el comando se deben introducir sin ningún salto de línea.
Consejo
La sintaxis de una cadena de consulta IMPORT SAP suele ser compleja. La mejor manera
de agregar comandos IMPORT SAP con cadenas de consulta a sus scripts consiste en
copiar un comando IMPORT SAP existente desde la ficha Log en ACL y luego editar las eti-
quetas de consulta según sea necesario.
<ts>
<t>
<n>EKKO</n>
<a>T00001</a>
<td>Encabezado del documento de compra</td>
<fs>
<f>EBELN</f>
<f>BUKRS</f>
<f>BSTYP</f>
<f>BSART</f>
<f>STATU</f>
<f>WKURS</f>
</fs>
<wc>
<w>
<f>BUKRS</f>
<o>0</o>
<l>1000</l>
<h></h>
</w>
</wc>
</t>
<t>
<n>EKPO</n>
<a>T00002</a>
<td>Elemento del documento de compra</td>
<fs>
<f>EBELP</f>
<f>WERKS</f>
<f>MENGE</f>
<f>BRTWR</f>
</fs>
<wc></wc>
</t>
</ts>
<js>
<jc>
<pt>
<pa>T00001</pa>
<pf>EBELN</pf>
</pt>
<ct>
<ca>T00002</ca>
<cf>EBELN</cf>
</ct>
</jc>
</js>
</q>
Observaciones
El comando IMPORT SAP solo se admite si se ha instalado y configurado Direct Link.
La tabla de "Etiquetas de consulta de Direct Link" abajo indica las etiquetas que se pueden incluir en el pará-
metro detalles_importación. La columna Obligatorio utiliza los siguientes valores para indicar cuando las eti-
quetas deben estar presentes:
l Y: Obligatoria
l N: Opcional
l M: Obligatoria solo para consultas en varias tablas
l B: Obligatoria, pero no se debe pasar ningún valor
l W: Opcional cuando se utilizan filtros
l S: Obligatoria cuando se especifica el modo programado
Alias de tabla <a> M El alias que identifica de forma única la tabla dentro de la consulta.
Esto permite utilizar la misma tabla más de una vez.
La longitud máxima es de 6 caracteres.
Todas las filas <ar> Y Indica que se deben devolver todas las filas coincidentes como parte
del conjunto de resultados de la consulta.
Los valores válidos son:
1: Saltea la cantidad de registros especificada en la etiqueta <r>
(Filas máximas)
0: Devuelve el número de registros especificado en la etiqueta <r>
(Filas máximas)
Esta etiqueta siempre aparece después de la etiqueta <r></r>.
Campo de tabla <cf> M El campo de la tabla hija en el que se basa la condición de unión.
hija
Longitud de datos <dl> B El número de caracteres en cada fila, incluidos los caracteres de
retorno de carro y salto de línea que indican el final de un registro
(CR+LF o los caracteres hexadecimales 0D+0A).
Fecha <dt> S Obligatorio al usar el modo programado. Especifica la hora para eje-
cutar el trabajo de SAP.
El formato debe ser AAAAMMDD. Por ejemplo, el 31 de diciembre de
2014 se debe especificar como 20141231.
Campo de filtro <f> W El nombre del campo nativo al que se aplica el filtro.
Campos <fs> Y La lista de campos de la tabla que se devolverán como parte de los
resultados de la consulta.
Valor alto <h> W Contiene el alto valor cuando se utiliza el operador Entre. Se ignora
cuando se utiliza cualquier otro operador.
Recuento de tra- <jcount> B Utilizado internamente por SAP para identificar una consulta en el
bajos modo de Segundo plano.
Nombre de trabajo <jname> B Utilizado internamente por SAP para identificar una consulta en el
modo de Segundo plano.
Relaciones de <js> Y La lista de condiciones de unión que vincula las tablas dentro de la
unión consulta.
Valor bajo <l> W Contiene el valor más bajo cuando se utiliza el operador Entre o el
Campo de tabla <pf> M El campo de la tabla padre en el que se basa la condición de unión.
padre
Máximo de filas <r> Y El número máximo de filas que debe devolver la consulta.
Sistema <s> Y Si la etiqueta <s> aparece debajo de la etiqueta <q>, identifica el tipo
de sistema con el que se utiliza esta consulta (actualmente solo se
admite el sistema SAP).
Nombre de <sf> B Identifica al archivo en el servidor que contiene los resultados de una
archivo del ser- consulta en el modo de Segundo plano.
vidor
Nombre del grupo <sg> N El nombre del grupo de servidores. Máximo de 20 caracteres
de servidores
Tiempo <tm> S Obligatorio al usar el modo programado. Especifica la hora para eje-
cutar el trabajo de SAP.
El formato debe ser hhmmss. Por ejemplo, 2:30 pm se debe espe-
cificar como 143000.
Tablas <ts> Y La lista de tablas de las que la consulta extraerá los datos.
Filtros <wc> W La lista de filtros que se aplicarán a los datos contenidos en la tabla.
Conmutador de fil- <ws> N Equivalente numérico del tipo enumerado de conmutador de filtro.
tro
Los valores válidos son:
0: (Or) y (Or)
1: (And) o (And)
Sintaxis
IMPORT XBRL TO tabla nombrearchivo_importación FROM nombrearchivo_origen CONTEXT nom-
bre_contexto <...n> [sintaxis_campo] <...n> <IGNORE núm_campo> <...n>
sintaxis_campo ::=
FIELD nombre tipo AT posición_inicial DEC valor WID bytes PIC formato AS nombre_visible
Parámetros
Nombre Descripción
FROM nombrearchivo_ori- El nombre del archivo de datos de origen. nombrearchivo_origen debe ser una cadena
gen entre comillas.
Si el archivo de datos de origen no está ubicado en el mismo directorio que el proyecto
ACL, debe utilizar una ruta de acceso absoluta o una ruta de acceso relativa para espe-
cificar la ubicación del archivo:
o "C:\datos\nombrearchivo_origen"
o "datos\nombrearchivo_origen"
Nombre Descripción
CONTEXT nombre_con- El contexto XBRL a partir del cual se definirá la tabla. Si especifica más de un contexto,
texto todos los contextos deben ser del mismo tipo (instant, period o forever).
FIELD nombre tipo Los campos individuales para importar desde el archivo de datos de origen, incluidos el
nombre y el tipo de datos del campo. Para excluir un campo de la importación, no lo
especifique.
Si desea obtener información acerca de los tipos, consulte "Identificadores de los tipos
de datos de los campos" en la página opuesta.
AT posición_inicial La posición del byte de inicio para el campo en el archivo de datos de ACL.
Nota
AS nombre_visible El nombre visible (título de columna alternativo) para el campo en la vista de la nueva
Nombre Descripción
tabla de ACL.
Especifique nombre_visible como una cadena entre comillas. Utilice un punto y coma (;)
entre las palabras si desea que haya un salto de línea en el título de la columna.
AS es obligatorio cuando se está definiendo un FIELD. Para que el nombre visible sea el
mismo que el nombre del campo, introduzca un valor en blanco en nombre_visible con
la siguiente sintaxis: AS "". Asegúrese de que no haya un espacio entre las dos comillas.
Ejemplos
Importación de un archivo XBRL a una tabla de ACL
Usted importa datos desde el contexto Actual_En contenidos en un archivo XBRL a una tabla de ACL deno-
minada Financieros :
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Nota
Cuando utilice el Asistente de definición de datos para definir una tabla que incluya cam-
pos EBCDIC, Unicode o ASCII, se le asignará la letra "C" automáticamente a los campos
(correspondiente al tipo CHARACTER [carácter]).
Al ingresar manualmente un enunciado IMPORT o editar un enunciado IMPORT exis-
tente, puede utilizar los valores más específicos de las letras "E" o "U" en lugar de los cam-
pos EBCDIC o Unicode.
A ACL
B BINARY (binario)
C CHARACTER (carácter)
D DATETIME
E EBCDIC
F FLOAT (flotante)
G ACCPAC
I IBMFLOAT
K UNSIGNED
L LÓGICOS
N PRINT
P PACKED (compactado)
Q BASIC
R MICRO
S CUSTOM
T PCASCII
U UNICODE
V VAXFLOAT
X NUMERIC (numérico)
Y UNISYS
Z ZONED (zonado)
Sintaxis
IMPORT XML TO tabla nombrearchivo_importación FROM nombrearchivo_origen [sintaxis_campo]
<...n>
sintaxis_campo ::=
FIELD nombre tipo AT posición_inicial DEC valor WID bytes PIC formato AS nombre_visible RULE
expresión_xpath
Parámetros
Nombre Descripción
FROM nombrearchivo_ori- El nombre del archivo de datos de origen. nombrearchivo_origen debe ser una cadena
gen entre comillas.
Si el archivo de datos de origen no está ubicado en el mismo directorio que el proyecto
ACL, debe utilizar una ruta de acceso absoluta o una ruta de acceso relativa para espe-
cificar la ubicación del archivo:
o "C:\datos\nombrearchivo_origen"
Nombre Descripción
o "datos\nombrearchivo_origen"
FIELD nombre tipo Los campos individuales para importar desde el archivo de datos de origen, incluidos
el nombre y el tipo de datos del campo. Para excluir un campo de la importación, no lo
especifique.
Si desea obtener información acerca de los tipos, consulte "Identificadores de los tipos
de datos de los campos" en la página siguiente.
AT posición_inicial La posición del byte de inicio para el campo en el archivo de datos de ACL.
Nota
AS nombre_visible El nombre visible (título de columna alternativo) para el campo en la vista de la nueva
tabla de ACL.
Nombre Descripción
Especifique nombre_visible como una cadena entre comillas. Utilice un punto y coma
(;) entre las palabras si desea que haya un salto de línea en el título de la columna.
AS es obligatorio cuando se está definiendo un FIELD. Para que el nombre visible sea
el mismo que el nombre del campo, introduzca un valor en blanco en nombre_visible
con la siguiente sintaxis: AS "". Asegúrese de que no haya un espacio entre las dos
comillas.
RULE expresión_xpath La expresión XPath que se utiliza para seleccionar el contenido del campo del archivo
XML.
XPath es una manera estándar de acceder a los datos de archivos XML. Por ejemplo,
cuenta/título/texto() recupera el texto dentro de la etiqueta <title> en el archivo XML.
Ejemplos
Importación de datos desde un archivo XML a una tabla de ACL
Usted importa datos desde un archivo XML a una tabla de ACL con el nombre Empleados :
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Nota
Cuando utilice el Asistente de definición de datos para definir una tabla que incluya cam-
pos EBCDIC, Unicode o ASCII, se le asignará la letra "C" automáticamente a los campos
(correspondiente al tipo CHARACTER [carácter]).
Al ingresar manualmente un enunciado IMPORT o editar un enunciado IMPORT existente,
puede utilizar los valores más específicos de las letras "E" o "U" en lugar de los campos
EBCDIC o Unicode.
A ACL
B BINARY (binario)
C CHARACTER (carácter)
D DATETIME
E EBCDIC
F FLOAT (flotante)
G ACCPAC
I IBMFLOAT
K UNSIGNED
L LÓGICOS
N PRINT
P PACKED (compactado)
Q BASIC
R MICRO
S CUSTOM
T PCASCII
U UNICODE
V VAXFLOAT
X NUMERIC (numérico)
Y UNISYS
Z ZONED (zonado)
Comando INDEX
Crea un índice para una tabla de ACL que permite acceder a los registros en orden secuencial en lugar de
hacerlo en orden físico.
Sintaxis
INDEX <ON> campo_clave <D> <...n> TO nombre_archivo <IF prueba> <WHILE prueba> <FIRST
rango|NEXT rango> <OPEN> <ISOLOCALE código_lugar>
Parámetros
Nombre Descripción
TO nombre_archivo El nombre del índice y el archivo de índice asociado. El archivo de índice se crea con
una extensión .INX.
Nota
En la interfaz de usuario de ACL, los nombres de índice tienen un límite
máximo de 64 caracteres alfanuméricos. El nombre puede incluir un
guión bajo ( _ ), pero no puede incluir ningún otro carácter especial ni
espacios. El nombre no puede comenzar con un número.
IF prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta únicamente en los registros que cumplen la condición.
opcional
WHILE prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta hasta que la condición se evalúa como falsa o hasta que se llega al
opcional
final de la tabla.
Nombre Descripción
Ejemplos
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
OPEN Proveedor
INDEX ON Ciudad_del_proveedor to “ÍndiceCiudad” OPEN
OPEN Proveedor
INDEX ON Ciudad_del_proveedor to “ÍndiceCiudad”
Comando JOIN
Combina campos de dos tablas de ACL en una sola tabla nueva de ACL.
Sintaxis
JOIN PKEY campos_clave_primarios FIELDS campos_primarios SKEY campos_clave_secundarios
<WITH campos_secundarios> {sin_palabra_clave|PRIMARY|SECONDARY|PRIMARY
SECONDARY|UNMATCHED|MANY} <IF prueba> TO nombre_tabla <LOCAL> <OPEN> <WHILE
prueba> <FIRST rango|NEXT rango> <APPEND> <PRESORT> <SECSORT> <ISOLOCALE
código_lugar>
Parámetros
Nombre Descripción
FIELDS campos_primarios Los campos o expresiones de la tabla primaria que deben incluirse en la tabla de salida
unida.
WITH campos_secun- Los campos o expresiones de la tabla secundaria que deben incluirse en la tabla de
darios salida unida.
opcional No puede especificar WITH si está usando el tipo de unión UNMATCHED.
o todos los registros primarios que coinciden y o Registros primarios con corres-
el primer registro secundario que coincide pondencia
Nombre Descripción
PRIMARY
o todos los registros primarios (que coinciden o Registros primarios con corres-
y no coinciden), el primer registro secun- pondencia
dario que coincide o Incluir todos los registros primarios
Nota
La palabra clave BOTH equivale a especificar PRIMARY.
SECONDARY
o todos los registros secundarios (que coin- o Registros primarios con corres-
ciden y no coinciden), los registros primarios pondencia
que coinciden o Incluir todos los registros secun-
Únicamente la primera instancia de los regis- darios
tros secundarios duplicados se hace coin-
cidir con un registro primario.
PRIMARY SECONDARY
UNMATCHED
Nombre Descripción
MANY
IF prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta únicamente en los registros que cumplen la condición.
opcional
Nota
Para la mayoría de los tipos de combinaciones, una condición IF se
aplica solo a la tabla primaria.
La única excepción es una combinación de muchos a muchos, en la que
la condición IF también puede hacer referencia a la tabla secundaria.
Nombre Descripción
Nota
Los nombres de las tablas tienen un límite de 64 caracteres alfa-
numéricos, sin incluir la extensión .FIL. El nombre puede incluir un
guión bajo ( _ ), pero no puede incluir ningún otro carácter especial ni
espacios. El nombre no puede comenzar con un número.
LOCAL Nota
opcional Aplicable únicamente al ejecutar el comando en una tabla de Servidor de
ACL con un archivo de salida que es una tabla de ACL.
Guarda el archivo de salida en la misma ubicación que el proyecto de ACL.
OPEN Abre la tabla creada por el comando después de la ejecución del comando. Solo es
válido si el comando crea una tabla de salida.
opcional
WHILE prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta hasta que la condición se evalúa como falsa o hasta que se llega al
opcional
final de la tabla.
APPEND Anexa la salida del comando al final de un archivo existente en lugar de sobrescribir el
archivo.
opcional
Nota
Debe asegurarse de que la estructura de la salida del comando y del
archivo existente sean idénticas:
l los mismos campos
l el mismo orden de campos
l los campos coincidentes son de la misma longitud
l los campos coincidentes tienen el mismo tipo de datos
ACL anexa la salida a un archivo existente sin importar cuál sea su
estructura. Si la estructura de la salida y la del archivo existente no coin-
ciden, es posible que los datos que se obtengan estén incompletos, mez-
clados o sean imprecisos.
PRESORT Ordena la tabla primaria por el campo primario antes de ejecutar el comando.
opcional Nota
No puede utilizar PRESORT dentro del comando GROUP.
Nombre Descripción
SECSORT.
SECSORT Ordena la tabla secundaria por el campo clave secundario antes de ejecutar el
comando.
opcional
Nota
No puede utilizar SECSORT dentro del comando GROUP.
Ejemplos
Unir dos tablas es una manera de descubrir registros de cuentas por cobrar que no coinciden con ningún cliente
El siguiente ejemplo une las tablas Ar y Cliente utilizando el Número de cliente (NúmClien) como el campo
clave común.
El comando JOIN utiliza el tipo de unión UNMATCHED para crear una nueva tabla con los registros pri-
marios sin coincidencia, lo cual genera una lista de registros Ar que no están asociados con ningún registro
de Cliente.
OPEN Ar PRIMARY
OPEN Cliente SECONDARY
JOIN PKEY NúmClien FIELDS NúmClien Vencimiento Monto SKEY NúmClien UNMATCHED TO
"Clientenoencontrado.fil" OPEN PRESORT SECSORT
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Comando LIST
Envía los datos de salida de uno o más campos de una tabla de ACL a una visualización con un formato de
columnas.
Sintaxis
LIST {FIELDS nombre_campo <AS nombre_visible> <...n>|FIELDS ALL} <LINE número lista_cam-
pos> <TO {SCREEN|nombre_archivo|PRINT}> <UNFORMATTED> <IF prueba> <WHILE prueba>
<FIRST rango|NEXT rango> <HEADER texto_encabezado> <FOOTER texto_pie_de_página>
<SKIP líneas> <EOF> <APPEND>
Parámetros
Nombre Descripción
LINE lista_campo numé- Se utiliza más de una línea en la salida para cada registro:
rico o número: el número de línea, debe estar entre 2 y 60 inclusive
opcional o lista_campo: los campos que se deben incluir en esa línea
TO SCREEN | nombre_ El lugar al que se deben enviar los resultados del comando:
archivo | PRINT o SCREEN: muestra los resultados en el área de visualización de ACL
opcional o nombre_de_archivo: guarda los resultados en un archivo
Especifique el nombre_de_archivo como una cadena entre comillas con la extensión
de archivo adecuada. Por ejemplo: TO "Salida.TXT".
Por valor predeterminado, el archivo se guarda en la carpeta que contiene el pro-
yecto de ACL.
Utilice una ruta de archivo absoluta o relativa para guardar el archivo en una carpeta
existente o una diferente:
l TO "C:\Salida.TXT"
Nombre Descripción
l TO "Resultados\Salida.TXT"
o PRINT: envía los resultados a la impresora predeterminada
UNFORMATTED La salida se muestra como texto sin formato. La salida es idéntica a la que crea el
comando EXPORT ASCII. Los datos sin formato se pueden enviar a un archivo para su
opcional
posterior procesamiento por otros programas de software.
IF prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta únicamente en los registros que cumplen la condición.
opcional
WHILE prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta hasta que la condición se evalúa como falsa o hasta que se llega al
opcional
final de la tabla.
HEADER texto_enca- El texto que se debe insertar en la parte superior de cada página de un reporte.
bezado
texto_encabezado_de_página se debe especificar como una cadena entre comillas. El
opcional valor anula la variable de sistema HEADER de ACL.
FOOTER texto_pie_de_ El texto que se debe insertar en la parte inferior de cada página de un reporte.
página
texto_pie_de_página se debe especificar como una cadena entre comillas. El valor
opcional anula la variable de sistema FOOTER de ACL.
SKIP líneas Inserta la cantidad especificada de líneas en blanco entre cada registro de la lista. Por
ejemplo, LIST ALL SKIP 1 genera una lista con espaciado doble (un línea en blanco
opcional
entre cada registro).
EOF Ejecute el comando una vez más después de que se alcance el final del archivo.
opcional De esta manera, se asegura de que se procese el registro final de la tabla cuando se
encuentra dentro de un comando GROUP. Utilice EOF solo si todos los campos son cam-
pos calculados que hacen referencia a registros anteriores.
APPEND Anexa la salida del comando al final de un archivo existente en lugar de sobrescribir el
archivo.
opcional
Ejemplos
Listado de excepciones y guardado en un archivo de texto
Usted utiliza LIST para crear un reporte que incluya las excepciones identificadas en una tabla de
Observaciones
Cuándo usar LIST
Utilice LIST para imprimir datos, mostrar datos en la pantalla, para exportarlos a un archivo de texto.
Formato y totales
A menos que especifique UNFORMATTED, la siguiente información se incluye de manera automática:
l números de página
l fecha
l hora
l identificación del usuario
l encabezados de columna
Las columnas numéricas también se suman automáticamente.
Comando LOCATE
Busca el primer registro que coincida con el valor o la condición especificados, o va a un número de regis-
tro especificado.
Sintaxis
LOCATE {IF prueba <WHILE prueba> <FIRST rango|NEXT rango>|RECORD núm}
Parámetros
Nombre Descripción
IF prueba El valor o la condición que se debe buscar. Debe encerrar los valores literales de carac-
teres entre comillas y los valores de fechahora entre comillas simples invertidas.
WHILE prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta hasta que la condición se evalúa como falsa o hasta que se llega
opcional
al final de la tabla.
Ejemplos
Ubicar el primer registro que coincida con un valor especificado
En los siguientes ejemplos, se muestra el uso de LOCATE para encontrar la primera instancia de un valor
específico dentro de una tabla:
Ubicar el primer registro que coincida con una condición o expresión específica
En los siguientes ejemplos, se muestra el uso de LOCATE para encontrar la primera instancia de una con-
dición o una expresión específicas dentro de una tabla:
LOCATE IF Nombre_proveedor = "United Equipment" AND Importe_factura > 1000 AND Fecha_de_
factura > `20140930`
LOCATE RECORD 50
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Cómo funciona
Utilice el comando LOCATE para ir directamente al primer registro de una tabla que coincida con la con-
dición o el valor especificados.
Si se encuentra el valor o la condición que se especificó, se selecciona el primer registro coincidente en la
tabla. Si no se encuentra el valor o la condición que se especificó, la tabla se ubica en el primer registro.
También puede usar LOCATE para ir directamente a un número de registro específico
Cuando se lo utiliza para buscar en una tabla sin indexar, el comando LOCATE puede ser sig-
nificativamente más lento que FIND y SEEK porque debe procesar cada registro de la tabla secuen-
cialmente. El tiempo de procesamiento necesario depende del tamaño de la tabla, la ubicación del
registro coincidente y si se reduce el alcance de la búsqueda con WHILE, FIRST o NEXT.
Si desea obtener más información acerca de SET EXACT, consulte "Comando SET" en la página 381.
Si desea obtener más información acerca de la opción Comparaciones de caracteres exactos , consulte
Ficha Tabla (cuadro de diálogo Opciones).
Comando LOOP
Ejecuta una serie de comandos de ACLScript de forma reiterada en un registro mientras una condición
especificada se evalúa como verdadera.
Nota
El comando LOOP debe estar encerrado dentro del comando GROUP.
Sintaxis
LOOP WHILE prueba
comando
<...n>
END
Parámetros
Nombre Descripción
WHILE prueba La prueba que se debe evaluar como verdadera para que se ejecuten los comandos
incluidos dentro del comando LOOP. Si la prueba se evalúa como verdadera, los coman-
dos se ejecutan repetidamente hasta que la prueba se evalúe como falsa.
Ejemplos
División de un campo delimitado por comas
Usted tiene una tabla que contiene datos de facturas y necesita aislar información específica para los impor-
tes de facturas por departamento. Una factura puede estar relacionada con más de un departamento y los
códigos de los departamentos se almacenan en un formato delimitado por comas en la tabla.
Para extraer los importes de las facturas por departamento, usted:
COMMENTuse GROUP para contar las comas en cada campo del código de departamento como
una manera de identificar cuántos departamentos están asociados con el registro"LOOP" en cada
registro por cada código del campo, con la extracción de cada código a su propio registro
ENDGROUP v_recuento_departamentos = OCCURS(Código_departamento;',') v_recuento = 0
LOOP WHILE v_recuento <= v_recuento_departamentos v_dept = SPLIT (Código_departamento; ',';
(v_recuento + 1)) EXTRACT FIELDS Número_factura; Importe_factura; v_dept AS "Departamento"
TO resultado1 v_recuento = v_recuento + 1 END END
Observaciones
Consejo
Si desea ver un tutorial detallado que cubre los comandos LOOP y GROUP, consulte
"Agrupación y bucles" en la página 33.
Cómo funciona
Cada comando LOOP debe especificar una condición WHILE para probar y se debe cerrar con un enun-
ciado END. Los comandos entre LOOP y END se ejecutan reiteradamente para el registro actual siempre
que el resultado de la prueba especificada sea verdadero.
Si el resultado de la prueba es falso inicialmente, los comandos no se ejecutarán.
Comando MERGE
Combina registros de dos tablas de ACL ordenadas con estructuras idénticas en una nueva tabla de ACL
que usa el mismo criterio de ordenamiento que las tablas originales.
Sintaxis
MERGE {ON campos_clave|PKEY campos_clave_primarios SKEY campos_clave_secundarios} <IF
prueba> TO nombre_tabla <LOCAL> <OPEN> <WHILE prueba> <FIRST rango|NEXT rango>
<APPEND> <PRESORT> <ISOLOCALE código_lugar>
Parámetros
Nombre Descripción
Requisito de ordenamiento
Los campos clave de las tablas primaria y secundaria deben estar ordenados en orden
ascendente. Si uno o ambos campos clave no están ordenados, o lo están en orden des-
cendente, el comando MERGE no se completa correctamente.
Puede utilizar PRESORT para ordenar el campo clave primario. Si el campo clave secun-
dario no está ordenado, debe ordenarlo en una operación de ordenación independiente
antes de realizar la fusión.
IF prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta únicamente en los registros que cumplen la condición.
Nombre Descripción
opcional
LOCAL Nota
opcional Aplicable únicamente al ejecutar el comando en una tabla de Servidor de
ACL con un archivo de salida que es una tabla de ACL.
Guarda el archivo de salida en la misma ubicación que el proyecto de ACL.
OPEN Abre la tabla creada por el comando después de la ejecución del comando. Solo es
válido si el comando crea una tabla de salida.
opcional
WHILE prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta hasta que la condición se evalúa como falsa o hasta que se llega al
opcional
final de la tabla.
APPEND Anexa la salida del comando al final de un archivo existente en lugar de sobrescribir el
archivo.
opcional
Nombre Descripción
Nota
Debe asegurarse de que la estructura de la salida del comando y del
archivo existente sean idénticas:
l los mismos campos
l el mismo orden de campos
l los campos coincidentes son de la misma longitud
l los campos coincidentes tienen el mismo tipo de datos
ACL anexa la salida a un archivo existente sin importar cuál sea su
estructura. Si la estructura de la salida y la del archivo existente no coin-
ciden, es posible que los datos que se obtengan estén incompletos, mez-
clados o sean imprecisos.
PRESORT Ordena la tabla primaria por el campo primario antes de ejecutar el comando.
opcional Nota
No puede utilizar PRESORT dentro del comando GROUP.
Omita PRESORT:
o Si el campo clave primario ya está ordenado
o Si está fusionando dos tablas usando un campo clave común indexado
Ejemplos
Fusionar tablas con nombres de campos de clave idénticos
El ejemplo siguiente fusiona dos tablas con nombres de campos clave idénticos:
El ejemplo siguiente fusiona dos tablas con nombres de campos clave diferentes:
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Alternativas a la fusión
Puede ser problemático realizar una fusión correcta. Puede obtener el mismo resultado anexando o extra-
yendo y anexando, y luego ordenando.
Si desea obtener más información, consulte "Comando APPEND" en la página 72 y "Comando
EXTRACT" en la página 193.
Si las dos tablas de origen ya están ordenadas, fusionarlas es más eficiente y se puede ejecutar de forma
más rápida.
Comando NOTES
Crea, modifica o quita una nota asociada con un registro individual en una tabla de ACL.
Sintaxis
NOTES <IF prueba> <TEXT texto_nota> <APPEND> <CLEAR>
Parámetros
Nombre Descripción
IF prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta únicamente en los registros que cumplen la condición.
opcional
o Si no especifica una prueba IF, el texto de la nota se agrega a cada registro de la
tabla
o Si especifica una prueba IF y CLEAR, se eliminarán las notas de los registros que
cumplan con esa condición
TEXT texto_nota El texto que se debe agregar como una nota. texto_nota debe ser una cadena entre comi-
llas o una expresión de caracteres.
opcional
APPEND El texto de nota se agrega al final de cualquier nota que exista. Si se omite, se sobres-
criben todas las notas existentes.
opcional
LIMPIAR Se eliminan las notas. Incluso si se eliminan todas las notas de registro de una tabla, el
campo Notaderegistro generado automáticamente no se elimina del formato de tabla.
opcional
Ejemplos
Añadir la misma nota a varios registros
Se sobrescriben todas las notas existentes de los registros que se especifican:
NOTES CLEAR
Observaciones
Eliminación del campo Notaderegistro
Para eliminar el campo Notaderegistro del formato de tabla y todas las notas de la tabla, utilice el
comando DELETE NOTES sin ninguna de las opciones especificadas.
Comando NOTIFY
Envía un mensaje de notificación por correo electrónico.
Sintaxis
NOTIFY USER nombre_de_usuario <PASSWORD contraseña> MAILBOX nombre_de_ruta
ADDRESS destinatario <CC cc_destinatario> <BCC bcc_destinatario> <SUBJECT asunto>
MESSAGE mensaje <ATTACHMENT nombre_de_ruta>
Parámetros
Nombre Descripción
MAILBOX nombre_de_ruta El nombre del servidor SMTP que se utilizará para enviar el mensaje de correo elec-
trónico. Por ejemplo:
MAILBOX "mailserver.acl.com"
ADDRESS destinatario La dirección de correo electrónico de uno o más destinatarios. Separe las diferentes
direcciones de correo electrónico con un punto y coma.
CC cc_destinatario La dirección de correo electrónico de uno o más destinatarios con copia. Separe las dife-
rentes direcciones de correo electrónico con un punto y coma.
opcional
BCC cco_destinatario La dirección de correo electrónico de uno o más destinatarios con copia oculta. Separe
las diferentes direcciones de correo electrónico con un punto y coma.
opcional
MESSAGE mensaje El cuerpo del mensaje de correo electrónico. El mensaje es texto sin formato y no admite
HTML.
Si desea insertar un salto de línea en el mensaje, use dos caracteres de acento cir-
cunflejo: ^^.
Nombre Descripción
ATTACHMENT nombre_ La ruta de acceso y el nombre de archivo de uno o más archivos adjuntos. Debe ser una
de_ruta cadena entre comillas.
opcional Especifique varios archivos adjuntos ingresando una lista de archivos separados por
punto y coma para nombre_de_ruta:
ATTACHMENT "resultado1,resultado2"
Ejemplos
Envío de un correo electrónico de reporte de errores
Está ejecutando un script y desea enviar un correo de notificación si el script no se completa correc-
tamente. Por medio del uso de NOTIFY, define el mensaje de correo electrónico e incluye dos archivos
adjuntos:
l el archivo de log
l un archivo .fil que contiene los errores registrados
Observaciones
Destinatarios y adjuntos
Puede utilizar el comando NOTIFY para enviar mensajes de notificación por correo electrónico a uno o
más destinatarios. Los mensajes pueden incluir archivos de datos adjuntos y proyectos de ACL.
El comando NOTIFY se puede utilizar para notificar al personal apropiado cuando un script falla ines-
peradamente.
Protocolos y puertos
El comando se puede utilizar con cualquier servidor de correo que admita SMTP (Protocolo simple de
transferencia de correo), que es el protocolo utilizado por Microsoft Exchange y muchos otros servidores
de correo. El comando NOTIFY también se puede utilizar con aplicaciones de correo electrónico más anti-
guas, de Microsoft y otros proveedores, que envían correo localmente.
NOTIFY utiliza el puerto 25; por lo tanto, este puerto debe estar abierto. De lo contrario, el comando no se
podrá ejecutar.
Comando OPEN
Abre una tabla de ACL y el archivo de datos asociado.
Sintaxis
OPEN {nombre_tabla| archivo_datos} <FORMAT nombre_formato>} <BUFFERLENGTH longitud>
<CRLF> <DBASE> <INDEX archivo_índice> <PRIMARY|SECONDARY> <SKIP bytes>
<RELATION campo_clave>
Parámetros
Nombre Descripción
archivo_datos El archivo de datos que se debe asociar con la tabla especificada por FORMAT nom-
bre_formato.
Si no se especifica una extensión, ACL supone que la extensión del archivo es .fil. Para
abrir un archivo sin extensión, inserte un punto (.) al final del nombre del archivo.
FORMAT nombre_formato El formato de tabla de ACL que se debe aplicar al archivo de datos que se abre como
una tabla.
opcional
BUFFERLENGTH n La extensión en bytes del área de búfer de entrada que se asignará a la tabla. El valor
predeterminado es 33,000 bytes.
opcional
Las áreas de búfer más grandes pueden mejorar la velocidad de procesamiento a
costa de la RAM disponible para almacenar comandos de ACL.
Si se lee cualquier bloque IBM de longitud variable que excede la extensión del búfer,
ACL muestra un mensaje de error y detiene el procesamiento. El valor predeterminado
se establece en el campo Tamaño del búfer en la ficha Tabla en el cuadro de diálogo
Opciones.
Rara vez tendrá que cambiar BUFFERLENGTH n porque el valor predeterminado es
suficiente para manejar casi todas las situaciones.
CRLF Especifica que se leerá un archivo ASCII de longitud variable. ACL se ajusta auto-
máticamente a las diferentes longitudes de registros.
opcional
Por opción predeterminada, se supone que los archivos tienen longitud fija.
DBASE Especifica que el origen de datos es un archivo dBASE. ACL reconoce el tipo de
archivo dBASE y crea automáticamente una tabla a partir de la descripción del archivo.
opcional
Se puede omitir para archivos dBASE con una extensión .dbf.
Nombre Descripción
INDEX archivo_índice El archivo de índice que se debe aplicar a la tabla cuando se abre.
opcional Si no se especifica una extensión, se supone que la extensión del archivo de índice es
.inx. Puede especificar INDEX con tablas primarias o secundarias.
PRIMARY | SECONDARY Especifica que una tabla se abre como una tabla primaria o una tabla secundaria. Si se
omite, la tabla se abre como una tabla primaria.
opcional
SKIP bytes El número de bytes que se debe omitir al principio físico de la tabla.
opcional SKIP se puede utilizar para ignorar registros de encabezados de tablas o partes ini-
ciales de la tabla que no presentan el mismo formato que el resto de la tabla. Si se
omite, la tabla se lee comenzando por el primer byte.
Nota
RELATION campo_clave Especifica que la tabla se abrirá como una tabla relacionada ad hoc. ACL no retiene la
relación cuando la tabla se cierra.
opcional
También debe especificar el parámetro INDEX cuando utiliza RELATION. campo_clave
es el campo clave o la expresión que se utiliza para crear la relación entre dos tablas.
Ejemplos
Apertura de una tabla mientras se especifica un formato de tabla
Usted abre la tabla Abril_2012 usando el formato de tabla Marzo_2012:
OPEN Inventario
Para abrir una tabla primaria o secundaria y aplicar un índice que ya existe para la tabla, utilice la siguiente
sintaxis:
Apertura de una tabla y configuración de una relación ad hoc con otra tabla
Necesita establecer una relación temporal entre una tabla abierta denominada Clientes (la tabla pri-
maria) y una tabla denominada Cuentas_por_cobrar (la tabla secundaria).
Usted utiliza un índice denominado Índice_cliente y un campo clave en la tabla primaria denominado Ape-
llido:
Comando PASSWORD
Crea una definición de la contraseña, sin un valor de contraseña, que solicita a los usuarios una contraseña
mientras se ejecuta un script.
Sintaxis
PASSWORD num < aviso>
Parámetros
Nombre Descripción
aviso Una expresión de caracteres válida que se debe mostrar en el cuadro de diálogo uti-
lizado para solicitar la contraseña. Encierre las cadenas literales entre comillas.
opcional
Si omite aviso, aparece un cuadro de diálogo predeterminado sin ningún mensaje.
Ejemplos
Solicitar información de contraseña
Usted utiliza el comando PASSWORD para solicitar al usuario las tres contraseñas requeridas en un script.
Una vez que el usuario ingresa las contraseñas requeridas, el script puede completar el procesamiento res-
tante sin interrupción:
PASSWORD 1 "Contraseña:"
REFRESH Abc PASSWORD 1
Observaciones
Cuándo usar PASSWORD
Utilice PASSWORD para solicitar información de contraseña antes de acceder, importar o actualizar
datos protegidos por contraseña en su script. Resulta útil en los siguientes casos:
l usted no desea escribir las contraseñas reales en sus scripts con el comando SET PASSWORD
l los usuarios individuales necesitan introducir contraseñas diferentes
Puede crear hasta diez definiciones de contraseña diferentes en un script para almacenar las contra-
señas de forma temporal y segura.
Comando PAUSE
Detiene un script y muestra información en un cuadro de diálogo para los usuarios.
Sintaxis
PAUSE mensaje <IF prueba>
Parámetros
Nombre Descripción
mensaje Un mensaje para mostrar en el cuadro de diálogo. La longitud máxima es de 199 carac-
teres.
mensaje debe estar encerrado entre comillas. Si el mensaje contiene comillas dobles,
enciérrelo entre comillas simples.
IF prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta únicamente en los registros que cumplen la condición.
opcional
Ejemplos
Visualización de un mensaje de error
Usted necesita que el usuario introduzca información para satisfacer requisitos específicos. Cuando usted
detecta que la información de entrada no satisface esos requisitos, usted utiliza el comando PAUSE y mues-
tra un mensaje de error en un cuadro de diálogo:
Observaciones
Cuándo usar PAUSE
Utilice PAUSE para mostrar mensajes de sólo lectura en la pantalla durante la ejecución de un script.
Puede mostrar mensajes de error o información como el resultado de una operación analítica.
Cómo funciona
Mientras se muestra el cuadro de diálogo del mensaje, se detiene la ejecución del script y se reanuda úni-
camente una vez que el usuario hace clic en Aceptar para cerrar el cuadro de diálogo del mensaje. Por
este motivo, no puede utilizar PAUSE en scripts o estudios analíticos que se deben ejecutar sin inter-
vención del usuario.
Limitaciones
No se puede incluir PAUSE dentro del comando GROUP y no se admite en los estudios analíticos de ACL
GRC Analytics Exchange ni en los scripts de Servidor de ACL.
Comando PRINT
Imprime un archivo de texto, un archivo de log de ACL o un elemento de proyecto de ACL que se exportó
como archivo externo: un script (.aclscript), un formato de tabla (.layout) o un área de trabajo (.wsp). Tam-
bién puede imprimir un gráfico generado por un comando.
Sintaxis
PRINT {nombre_archivo|GRAPH}
Parámetros
Nombre Descripción
Ejemplos
Impresión de un archivo de log
Para imprimir el archivo de log para el proyecto ACL_Demo.acl, especifique el siguiente comando:
Impresión de un gráfico
Para imprimir el gráfico producido a partir del comando BENFORD, especifique los siguientes comandos:
OPEN Metaphor_TransCp_2002
BENFORD ON Monto_Factura LEADING 1 TO GRAPH
PRINT GRAPH
Observaciones
Selección de una impresora
La impresora utilizada es la impresora predeterminada configurada en Microsoft Windows. Para cambiar
la impresora, debe cambiar la impresora predeterminada en Windows.
Comandos relacionados
Para imprimir el contenido de una tabla de ACL de un proyecto, utilice el comando DO REPORT.
Comando PROFILE
Genera estadísticas resumidas para uno o más campos numéricos o expresiones numéricas en una tabla
de ACL.
Sintaxis
PROFILE <FIELDS> {campo_numérico <...n>|ALL} <IF prueba> <WHILE prueba> <FIRST
rango|NEXT rango>
Parámetros
Nombre Descripción
FIELDS campo numérico Especifique los campos individuales para hacer el perfil o especifique ALL para hacer un
...n | ALL perfil de todos los campos numéricos de la tabla de ACL.
IF prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta únicamente en los registros que cumplen la condición.
opcional
WHILE prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta hasta que la condición se evalúa como falsa o hasta que se llega al
opcional
final de la tabla.
Ejemplos
Realización del perfil de un solo campo
Usted realiza el perfil del campo Salario:
OPEN Nómina_empleados
PROFILE FIELDS Salario
Observaciones
Estadísticas que se muestran en la salida
Las siguientes estadísticas se muestran para cada campo numérico o expresión numérica especificado
para el comando:
l valor total
l valor absoluto
l valor mínimo
l valor máximo
Comando QUIT
Finaliza la sesión actual y cierra ACL.
Sintaxis
QUIT
Ejemplos
Compruebe si existe un archivo y cierre ACL si no existe
Usted creó un script para que otros lo ejecuten, pero si no existe un archivo necesario, desea cerrar ACL.
El siguiente ejemplo comprueba si existe el archivo requerido Inventory.csv y cierra ACL si el archivo
no existe:
IF FILESIZE("Inventario.csv") = -1 QUIT
OPEN Inventario
SUMMARIZE ON Ubicación ClaseProd SUBTOTAL Valor TO "Valor_inventario_por_clase_ubi-
cación.FIL" PRESORT CPERCENT
QUIT
Observaciones
Se guardan los cambios
Cuando se ejecuta QUIT, todas las tablas de ACL que estén abiertas se guardarán y se cerrarán antes de
salir.
Si modificó la vista activa o un script y no guardó los cambios, ACL le pedirá que guarde los cambios antes
de salir.
Comando RANDOM
Genera un conjunto de números aleatorios.
Sintaxis
RANDOM NUMBER n <SEED valor_semilla> MINIMUM valor_mín MAXIMUM valor_máx
<COLUMNS n> <UNIQUE> <SORTED> <TO {SCREEN|nombre_archivo}> <APPEND>
Parámetros
Nombre Descripción
MINIMUM valor_mín El número más pequeño posible en el conjunto de números aleatorios. Se permite cual-
quier valor numérico o expresión válida.
MAXIMUM valor_máx El número más grande posible en el conjunto de números aleatorios. Se permite cual-
quier valor numérico o expresión válida.
COLUMNS n La cantidad de columnas que se utilizan para mostrar el conjunto de números alea-
torios.
opcional
Si omite COLUMNS, el valor predeterminado es de 6 columnas.
Nombre Descripción
Nota
No especifique UNIQUE cuando el tamaño especificado del conjunto de
números aleatorios supere el 75 % del rango entre MINIMUM y
MAXIMUM. Si lo hace, puede dar lugar a que se desechen demasiadas
selecciones de números aleatorios.
TO SCREEN | nombre_ El lugar al que se deben enviar los resultados del comando:
archivo o SCREEN: muestra los resultados en el área de visualización de ACL
opcional o nombre_de_archivo: guarda los resultados en un archivo
Especifique el nombre_de_archivo como una cadena entre comillas con la exten-
sión de archivo adecuada. Por ejemplo: TO "Salida.TXT".
Por valor predeterminado, el archivo se guarda en la carpeta que contiene el pro-
yecto de ACL.
Utilice una ruta de archivo absoluta o relativa para guardar el archivo en una car-
peta existente o una diferente:
l TO "C:\Salida.TXT"
l TO "Resultados\Salida.TXT"
Si omite TO, el conjunto de números aleatorios se envía a la pantalla.
APPEND Anexa la salida del comando al final de un archivo existente en lugar de sobrescribir el
archivo.
opcional
Nota
Debe asegurarse de que la estructura de la salida del comando y del
archivo existente sean idénticas:
l los mismos campos
l el mismo orden de campos
l los campos coincidentes son de la misma longitud
l los campos coincidentes tienen el mismo tipo de datos
ACL anexa la salida a un archivo existente sin importar cuál sea su
estructura. Si la estructura de la salida y la del archivo existente no coin-
ciden, es posible que los datos que se obtengan estén incompletos,
mezclados o sean imprecisos.
Ejemplos
Genere un archivo de texto con 100 números aleatorios
Desea extraer 100 archivos de manera aleatoria de un conjunto de archivos con números que van de
10.000 a 20.000.
Puede usar el comando RANDOM para generar un archivo de texto con 100 números aleatorios entre
10.000 y 20.000. Después extrae los archivos que coinciden con los números aleatorios. Los números se
organizan en 10 columnas, son exclusivos y se ordenan de forma ascendente:
RANDOM NUMBER 100 SEED 45387 MINIMUM 10000 MAXIMUM 200000 COLUMNS 10
UNIQUE SORTED TO "Números_aleatorios.txt"
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Comando RCOMMAND
Pasa una tabla de ACL a un script R externo como un marco de datos y crea una nueva tabla en el pro-
yecto de ACL utilizando la salida del script R externo.
Sintaxis
RCOMMAND FIELDS campo <...n> RSCRIPT ruta_al_script TO nombre_tabla <IF prueba> <WHILE
prueba> <FIRST rango |NEXT rango> <KEEPTITLE> <SEPARATOR carácter> <QUALIFIER carác-
ter> <OPEN>
Parámetros
Nombre Descripción
FIELDS nombre_campo Los campos de la tabla de origen de ACL o las expresiones que se deben incluir en el
<...n> marco de datos que se envía al script R.
Según la edición de ACL que esté usando, puede detectar errores al enviar datos que
contienen algunos caracteres especiales a R:
o no Unicode: "\"
o Unicode: "ÿ" o "Ŝ"
o Ambos: extrae caracteres como bloques, cuadrados negros y barras verticales inte-
rrumpidas
Nota
Tampoco se admiten datos de idiomas mezclados; por ejemplo, una tabla
con caracteres tanto en japonés como en chino.
RSCRIPT ruta_al_script La ruta completa o relativa al script R en el sistema de archivos. Encierre ruta_al_script
entre comillas.
Nombre Descripción
Nota
Los nombres de las tablas tienen un límite de 64 caracteres alfa-
numéricos, sin incluir la extensión .FIL. El nombre puede incluir un
guión bajo ( _ ), pero no puede incluir ningún otro carácter especial ni
espacios. El nombre no puede comenzar con un número.
La tabla de salida se crea a partir del marco o la matriz de datos que devuelve el script
R.
IF prueba Una condición que se debe cumplir para procesar el registro actual. El marco de datos
que se pasa al script R contiene únicamente los registros que cumplen con esta con-
opcional
dición.
WHILE prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta hasta que la condición se evalúa como falsa o hasta que se llega al
opcional
final de la tabla.
KEEPTITLE Tratar a la primera fila de datos como nombres de campos en lugar de datos. Si se omite,
se utilizan nombres de campo genéricos.
opcional
Esta opción es necesaria si desea recuperar los datos utilizando nombres de columnas
en el script R.
SEPARATOR carácter El carácter que se debe utilizar como separador entre campos. Debe especificar el carác-
ter como una cadena entre comillas.
opcional
El carácter predeterminado es la coma.
Nota
Evite usar los caracteres que aparecen en los campos de entrada. Si el
carácter SEPARATOR aparece en los datos de entrada, es posible que
los resultados se vean afectados.
QUALIFIER carácter El carácter que se debe utilizar como calificador de texto para encerrar e identificar los
campos. Debe especificar el carácter como una cadena entre comillas.
opcional
El carácter predeterminado es la comilla doble.
Nota
Evite usar los caracteres que aparecen en los campos de entrada. Si el
carácter QUALIFIER aparece en los datos de entrada, es posible que los
resultados se vean afectados.
Nombre Descripción
OPEN Abre la tabla creada por el comando después de la ejecución del comando. Solo es
válido si el comando crea una tabla de salida.
opcional
Ejemplos
Puesta en funcionamiento de R (Hello world)
Usted crea un script "hello world" para probar la conexión entre ACL y R:
Comando de ACL
Script R (analysis.r)
srcTable<-acl.readData()
Comando de ACL
Script R (analysis.r)
Acceso a los datos del campo utilizando los nombres de las columnas
Usted envía varios campos de factura a un script R para analizarlos fuera de ACL. Utiliza la opción
KEEPTITLE para que se pueda hacer referencia a las columnas por nombre en R:
Comando de ACL
Script R (analysis.r)
Comando de ACL
Script R (analysis.r)
Comando de ACL
Script R (analysis.r)
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
# almacena la tabla de ACL en un marco de datos denominado myTable al que se puede hacer refe-
rencia a lo largo del script
myTable<-acl.readData()
Para recuperar datos de una celda del marco de datos, puede utilizar uno de los siguientes enfoques:
l Uso de coordenadas de fila y columna:
Nota
Las coordenadas se basan en el orden de los campos especificados en el comando,
no en la vista o el formato de la tabla actualmente abierta.
l Uso de nombres de fila y columna:
Debe especificar la opción KEEPTITLE del comando para usar los nombres de las columnas.
Las filas se denominan "1", "2", "3" y se incrementan de conformidad. También puede utilizar una
combinación de nombres y coordenadas.
# Pasa el marco de datos myNewTable nuevamente a ACL para crear una nueva tabla
acl.output<-myNewTable
Nota
Debe regresar una matriz o un marco de datos a ACL cuando finaliza el script R. Ase-
gúrese de que las columnas de la matriz o el marco de datos contengan únicamente valo-
res atómicos y no listas, matrices, estructuras u objetos no atómicos. Si no es posible
traducir los valores a tipos de datos de ACL, el comando arroja un error.
Lógico Lógico
Numérico Numérico
Carácter Carácter
Archivo de log de R
ACL registra los mensajes del lenguaje R en un archivo aclrlang.log en la carpeta del proyecto. Utilice
este archivo de log para depurar los errores de R.
Consejo
El archivo de log está disponible en la carpeta Resultados de los trabajos de estudio ana-
lítico de ACL GRC Analytics Exchange.
Comando REFRESH
Actualiza los datos de una tabla de ACL desde su origen de datos asociado.
Sintaxis
REFRESH < nombre_tabla> <PASSWORD núm>
Parámetros
Nombre Descripción
Ejemplos
Actualización de una tabla sin necesidad de una contraseña
Si no se requiere una contraseña para el origen de datos, puede ingresar el comando REFRESH y el
REFRESH Facturas
Si está actualizando una tabla importada originalmente de un origen de datos protegido por contraseña
mediante el comando ACCESSDATA, la solicitud de contraseña es automática y no necesita especificarse
por separado:
REFRESH Facturas
La desventaja de este método es que la contraseña aparece como texto claro en el script.
Actualización de una tabla con una contraseña en un estudio analítico del Servidor de AX
Si está creando un estudio analítico del Servidor de AX, puede solicitar la contraseña al usuario cuando
esté programado el estudio analítico o se ejecute ad-hoc:
COMMENT
//ANALYTIC Actualizar tabla
//PASSWORD 1 "Ingrese su contraseña:"
END
REFRESH Facturas PASSWORD 1
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Cómo funciona
El comando REFRESH actualiza el contenido de una tabla volviendo a ejecutar el comando IMPORT o el
comando ACCESSDATA utilizado inicialmente para definir e importar la tabla.
REFRESH y ACCESSDATA
Las siguientes pautas se aplican al actualizar una tabla importada de un origen de datos ODBC mediante
el comando ACCESSDATA.
l Tabla abierta: Si la tabla está abierta al actualizarla, necesitará temporalmente espacio en disco
igual al doble del tamaño de la tabla. Si tiene espacio en disco limitado, cierre la tabla primero antes
de actualizarla.
l Las tablas de ACL 12:que se importaron mediante el comando ACCESSDATA en la versión 12 de
ACL no se pueden actualizar, incluso si está utilizando una versión más reciente de ACL.
Si desea poder actualizar estas tablas, vuelva a importarlas utilizando ACL 12.5 o posterior.
REFRESH y contraseñas
Puede utilizar el comando REFRESH con orígenes de datos protegidos por contraseña que existen en
una base de datos o en un servicio de datos en la nube.
No puede utilizar el mandato REFRESH con orígenes de datos basados en archivos protegidos por contra-
seña, como archivos de Excel. La única excepción son los archivos PDF protegidos por contraseña.
Comando RENAME
Renombra un archivo o un elemento de un proyecto de ACL.
Sintaxis
RENAME tipo_elemento nombre <AS|TO> nuevo_nombre <OK>
Parámetros
Nombre Descripción
tipo_elemento nombre El tipo y el nombre del elemento o archivo del proyecto cuyo nombre desea cambiar.
Especifique uno de los siguientes tipos válidos:
o FIELD: campo de datos físico, campo calculado o variable
No puede cambiar el nombre de un campo que está incluido en la vista actual o al
que se hace referencia en un campo calculado.
o FORMAT: tabla de ACL
No puede cambiar el nombre de una tabla que está actualmente activa.
o INDEX: índice
o REPORT: reporte o vista
o WORKSPACE: área de trabajo
o SCRIPT (o BATCH): script
o DATA: archivo de datos de ACL (.fil)
o FILE: archivo de datos del sistema de archivos
o LOG: archivo de log de ACL (.log)
o TEXT: archivo de texto
Aceptar Elimina o sobrescribe los elementos sin pedirle que confirme la acción.
opcional
Ejemplos
Renombrar un campo
Necesita cambiar el nombre del campo Número_producto por Producto. Utiliza OK para realizar la acción
sin confirmación adicional:
Comando REPORT
Genera un reporte y le da un formato sobre la base de la tabla de ACL abierta.
Sintaxis
REPORT <ON campo_corte <PAGE> <NODUPS> <WIDTH caracteres> <AS nombre_visible>>
<...n> FIELD otros_campos <WIDTH caracteres> <AS nombre_visible> <...n> <SUPPRESS>
<NOZEROS> <LINE n otros_campos> <PRESORT> <SUMMARIZED> <SKIP n> <EOF> <TO
{SCREEN|PRINT|nombre_archivo <HTML>}> <IF > prueba> <WHILE prueba> <FIRST
rango|NEXT rango> <HEADER texto_encabezado> <FOOTER texto_pie_de_página> <APPEND>
Parámetros
Nombre Descripción
ON campo_corte PAGE El o los campos de caracteres que se utilizan para dividir el reporte en secciones.
NODUPS WIDTH carac-
Se crea un subtotal y una nueva sección del reporte cada vez que cambia el valor de
teres AS nombre_visible
campo_corte. Dividir los reportes en secciones puede facilitar su revisión.
<...n>
o campo_corte: el campo que se utiliza como un campo de corte
opcional
Para ejecutar un reporte sobre la base de una vista (DO REPORT), el campo de
corte debe ser el campo de caracteres ubicado más a la izquierda en la vista.
o PAGE: inserta un salto de página cada vez que cambia el valor del campo de corte
o NODUPS: suprime los valores visibles duplicados del campo de corte
Por ejemplo, si el nombre del cliente figura en cada registro de factura, puede faci-
litar la lectura del reporte incluyendo únicamente la primera instancia de cada nom-
bre de cliente.
o WIDTH caracteres: la longitud de la salida del campo en caracteres
o AS nombre_visible: el nombre visible (título de columna alternativo) del campo en el
reporte
Especifique nombre_visible como una cadena entre comillas. Utilice un punto y
coma (;) entre las palabras si desea que haya un salto de línea en el título de la
columna. Si desea que el nombre visible sea el mismo que el nombre del campo o
un nombre visible existente en la tabla de origen, no use AS.
Nota
Debe especificar ON para usar campo_corte, PAGE, NODUPS o
PRESORT.
Nombre Descripción
reporte
Especifique nombre_visible como una cadena entre comillas. Utilice un punto y
coma (;) entre las palabras si desea que haya un salto de línea en el título de la
columna. Si desea que el nombre visible sea el mismo que el nombre del campo o
un nombre visible existente en la tabla de origen, no use AS.
Las palabras clave SUBTOTAL y ACCUMULATE son sinónimos de FIELD y se des-
aconsejan. Se calcula el subtotal para todos los campos numéricos automáticamente.
LINE n otros_campos Especifica la cantidad de líneas de la salida en la columna y los campos que deben
aparecer en el número de línea n.
opcional
Si no se especifica ningún valor, la columna tiene, por defecto, una sola línea. El valor
de n debe estar entre 2 y 60 inclusive.
Los encabezados de las columnas del reporte son determinados únicamente por los
campos de la primera línea. otros_campos especifica los campos o expresiones ade-
cuados para el reporte.
SUMMARIZED Genera un reporte que contiene solamente subtotales y totales sin líneas de detalles.
opcional Se generan subtotales para los valores de campos de corte únicos. Si no se especifica
SUMMARIZED, ACL genera un reporte que incluye las líneas de detalles, así como los
subtotales para cada uno de los campos de corte clave especificados.
SKIP n Inserta líneas en blanco entre las líneas de detalle del reporte.
opcional n debe ser un entero que especifica la cantidad de líneas que se deben insertar. Por
ejemplo, SKIP 1 produce un reporte con espaciado doble.
EOF Ejecute el comando una vez más después de que se alcance el final del archivo.
opcional De esta manera, se asegura de que se procese el registro final de la tabla cuando se
encuentra dentro de un comando GROUP. Utilice EOF solo si todos los campos son
campos calculados que hacen referencia a registros anteriores.
TO SCREEN | PRINT| nom- El lugar al que se deben enviar los resultados del comando:
bre_archivo <HTML> o SCREEN: muestra los resultados en el área de visualización de ACL
opcional o nombre_de_archivo: guarda los resultados en un archivo
Especifique el nombre_de_archivo como una cadena entre comillas con la exten-
sión de archivo adecuada. Por ejemplo: TO "Salida.TXT".
Nombre Descripción
IF prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta únicamente en los registros que cumplen la condición.
opcional
WHILE prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta hasta que la condición se evalúa como falsa o hasta que se llega
opcional
al final de la tabla.
HEADER texto_enca- El texto que se debe insertar en la parte superior de cada página de un reporte.
bezado
texto_encabezado_de_página se debe especificar como una cadena entre comillas. El
opcional valor anula la variable de sistema HEADER de ACL.
FOOTER texto_pie_de_ El texto que se debe insertar en la parte inferior de cada página de un reporte.
página
texto_pie_de_página se debe especificar como una cadena entre comillas. El valor
opcional anula la variable de sistema FOOTER de ACL.
APPEND Anexa la salida del comando al final de un archivo existente en lugar de sobrescribir el
archivo.
opcional
Nota
Debe asegurarse de que la estructura de la salida del comando y del
archivo existente sean idénticas:
l los mismos campos
l el mismo orden de campos
l los campos coincidentes son de la misma longitud
l los campos coincidentes tienen el mismo tipo de datos
ACL anexa la salida a un archivo existente sin importar cuál sea su
estructura. Si la estructura de la salida y la del archivo existente no coin-
ciden, es posible que los datos que se obtengan estén incompletos,
mezclados o sean imprecisos.
Ejemplos
Generación de un reporte HTML
Usted genera un reporte a partir de la tabla Ar y el reporte se envía a un archivo con formato HTML:
OPEN Cuentas_por_cobrar
REPORT ON Núm FIELDS Importe Tipo Vencimiento TO "C:\Reportes\AR.htm" HTML
Comando RETRIEVE
Recupera los resultados de una consulta de Direct Link enviada para su procesamiento en segundo
plano.
Sintaxis
RETRIEVE nombre_tabla PASSWORD num
Parámetros
Nombre Descripción
Ejemplos
Recuperación de los resultados de la consulta en el modo de Segundo plano
Usted establece la contraseña y, a continuación, se recupera el resultado de la consulta en modo de
Segundo plano para una tabla de ACL con el nombre DD02T_Data:
Observaciones
Antes de comenzar
Este comando solo se admite si se ha instalado y configurado Direct Link.
Comando SAMPLE
Extrae una muestra de registros utilizando el método de muestreo por registros o de muestreo por unidad
monetaria.
Muestreo de registros Muestreo de unidad monetaria
Sintaxis
Nota
La sintaxis no incluye el filtrado (enunciados IF) o parámetros de alcance ya que aplicar
estas opciones compromete la validez de la muestra.
Parámetros
Nota
No incluya los separadores de mil al especificar los valores.
Nombre Descripción
NUMBER tamaño_de_la_muestra
Utilice el método de selección aleatorio.
Todos los registros se seleccionan de forma aleatoria del conjunto de datos completo.
Especifica el tamaño de la muestra que se generó al calcular el tamaño de la muestra.
ORDER Nota
opcional Método de selección aleatorio únicamente.
Solo puede usar ORDER al especificar FIELDS.
Agrega el campo ORDER a los resultados de salida.
Este campo muestra el orden en el cual cada registro se selecciona aleatoriamente.
Nombre Descripción
OPEN Abre la tabla creada por el comando después de la ejecución del comando. Solo es
válido si el comando crea una tabla de salida.
opcional
APPEND Anexa la salida del comando al final de un archivo existente en lugar de sobrescribir el
archivo.
opcional
Nota
Debe asegurarse de que la estructura de la salida del comando y del
archivo existente sean idénticas:
l los mismos campos
l el mismo orden de campos
l los campos coincidentes son de la misma longitud
l los campos coincidentes tienen el mismo tipo de datos
ACL anexa la salida a un archivo existente sin importar cuál sea su
estructura. Si la estructura de la salida y la del archivo existente no coin-
ciden, es posible que los datos que se obtengan estén incompletos, mez-
clados o sean imprecisos.
MERSENNE_TWISTER Nota
opcional Métodos de selección aleatorio y de celda únicamente.
El generador de números aleatorio de ACL utiliza el algoritmo Mersenne-Twister.
Si se omite MERSENNE_TWISTER, se utiliza el algoritmo predeterminado de ACL.
Nota
Solo debe utilizar el algoritmo predeterminado de ACL si necesita tener
compatibilidad con resultados de muestras o scripts de ACL creados
antes de la versión 12 de ACL.
Nombre Descripción
LOCAL Nota
opcional Aplicable únicamente al ejecutar el comando en una tabla de Servidor de
ACL con un archivo de salida que es una tabla de ACL.
Guarda el archivo de salida en la misma ubicación que el proyecto de ACL.
Ejemplos
Extraer una muestra de registros
Va a usar el muestreo de registros para estimar el índice de desviación de un control preestablecido en una
cuenta que contiene facturas.
Después de calcular un tamaño de muestra estadísticamente válido, está preparado para extraer la mues-
tra. Va a utilizar el método de selección aleatorio.
El siguiente ejemplo:
l Toma muestras de la tabla de ACL abierta
l Utiliza el método de selección aleatoria con un valor de semilla de 123456
l Especifica un tamaño de muestra de 95 registros
l Incluye únicamente los campos especificados en la tabla de salida
l Especifica que el generador de números aleatorio de ACL utiliza el algoritmo Mersenne-Twister.
SAMPLE ON RECORD RANDOM 123456 NUMBER 95 FIELDS NúmRef NúmCliente Importe Fecha
Tipo TO "Ar_muestra_registros" OPEN MERSENNE_TWISTER
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Sintaxis
Nota
La sintaxis no incluye el filtrado (enunciados IF) o parámetros de alcance ya que aplicar
estas opciones compromete la validez de la muestra.
Parámetros
Nota
No incluya los separadores de mil al especificar los valores.
Nombre Descripción
Nombre Descripción
cionó
Si especifica un valor_inicial de cero ('0') u omite FIXED, ACL selecciona la unidad
monetaria de forma aleatoria.
SUBSAMPLE Nota
opcional Solo puede usar SUBSAMPLE al especificar FIELDS.
Agrega el campo SUBSAMPLE a los resultados de salida.
Si cada importe de un campo de muestra representa el total de varias transacciones
independientes y usted desea realizar procedimientos de auditoría únicamente en una
transacción de cada muestreado, puede usar los valores del campo SUBSAMPLE para
seleccionar aleatoriamente transacciones individuales.
Si desea obtener más información, consulte Realización del muestreo por unidad
monetaria.
Nombre Descripción
NOREPLACEMENT No se selecciona el mismo registro más de una vez. Como resultado, la muestra puede
contener menos registros que los que se calcularon con el comando SIZE.
opcional
Si se omite NOREPLACEMENT, o si usted especifica REPLACEMENT, los registros se
pueden seleccionar más de una vez.
ORDER Nota
opcional Método de selección aleatorio únicamente.
Solo puede usar ORDER al especificar FIELDS.
Agrega el campo ORDER a los resultados de salida.
Este campo muestra el orden en el cual cada registro se selecciona aleatoriamente.
OPEN Abre la tabla creada por el comando después de la ejecución del comando. Solo es
válido si el comando crea una tabla de salida.
opcional
APPEND Anexa la salida del comando al final de un archivo existente en lugar de sobrescribir el
archivo.
opcional
Nombre Descripción
Nota
Debe asegurarse de que la estructura de la salida del comando y del
archivo existente sean idénticas:
l los mismos campos
l el mismo orden de campos
l los campos coincidentes son de la misma longitud
l los campos coincidentes tienen el mismo tipo de datos
ACL anexa la salida a un archivo existente sin importar cuál sea su
estructura. Si la estructura de la salida y la del archivo existente no coin-
ciden, es posible que los datos que se obtengan estén incompletos,
mezclados o sean imprecisos.
MERSENNE_TWISTER Nota
opcional Métodos de selección aleatorio y de celda únicamente.
El generador de números aleatorio de ACL utiliza el algoritmo Mersenne-Twister.
Si se omite MERSENNE_TWISTER, se utiliza el algoritmo predeterminado de ACL.
Nota
Solo debe utilizar el algoritmo predeterminado de ACL si necesita tener
compatibilidad con resultados de muestras o scripts de ACL creados
antes de la versión 12 de ACL.
LOCAL Nota
opcional Aplicable únicamente al ejecutar el comando en una tabla de Servidor
de ACL con un archivo de salida que es una tabla de ACL.
Guarda el archivo de salida en la misma ubicación que el proyecto de ACL.
Ejemplos
Extraer una muestra de unidad monetaria
Va a utilizar el muestreo de unidad monetaria para estimar el importe total de información monetaria erró-
nea en una cuenta que contiene facturas.
Después de calcular un tamaño de muestra estadísticamente válido, está preparado para extraer la mues-
tra. Va a utilizar el método de selección de intervalo fijo.
El siguiente ejemplo:
l Toma muestras de la tabla de ACL abierta, sobre la base de un campo de importe de la transacción
l Utiliza el método de selección del intervalo fijo con un valor de intervalo de $6.283,33
l Especifica que el primer registro seleccionado contiene la unidad monetaria 100.000 (el número de
centavos es $1.000)
SAMPLE ON Importe INTERVAL 6283,33 FIXED 1000,00 CUTOFF 5000,00 RECORD TO "Ar_
muestra_unidad_monetaria" OPEN
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Comando SAVE
Copia una tabla de ACL y la guarda con un nombre diferente o guarda un proyecto de ACL.
Sintaxis
Para crear una copia de una tabla de ACL y guardarla con un nombre diferente:
SAVE
Parámetros
Nombre Descripción
FORMAT tabla_ACL El nombre de la tabla de ACL existente. Utilice el nombre del formato de tabla, no el nom-
bre del archivo de datos asociado.
Ejemplos
Creación de una nueva tabla sobre la base de una existente
Usted crea una nueva tabla denominada Cuentas_a_pagar_marzo, basada en la tabla existente Cuentas_
a_pagar_maestra. Cuentas_a_pagar_marzo se puede enlazar después con el archivo de datos de cuen-
tas a pagar de marzo:
Observaciones
Cómo funciona
SAVE FORMAT genera un resultado similar a copiar y pegar una tabla de ACL en la ficha Panorama del
Navegador. Se crea una nueva tabla de ACL y se asocia al mismo archivo de datos u origen de datos que
la tabla original.
Si es necesario, puede enlazar la tabla recién creada a un origen de datos distinto.
Sintaxis
SAVE LAYOUT {FILE|TABLE} TO {nombre_de_archivo|nombre_de_tabla}
Parámetros
Nombre Descripción
FILE | TABLE o FILE: guarde un formato de tabla de ACL en un archivo de formato de tabla externo
(.layout)
o TABLE: guarde los metadatos del formato de tabla en una tabla de ACL (.fil)
Nombre Descripción
Ejemplos
Guardado de un formato de tabla en un archivo de formato de tabla externo (.layout)
Los siguientes ejemplos guardan el formato de tabla que utiliza la tabla abierta en un archivo de formato
de tabla externo denominado Trans_Cp.layout:
Aquí, el archivo de formato de tabla se guarda en la carpeta de proyecto de ACL:
Guardado de una copia de los metadatos de formato de la tabla en una nueva tabla de ACL
Los siguientes ejemplos guardan una copia de los metadatos del formato de la tabla utilizado por la tabla
abierta en una nueva tabla de ACL denominada metadatos_formato_trans_cp.
Aquí, la nueva tabla de ACL se guarda en la carpeta de proyecto de ACL:
Observaciones
SAVE LAYOUT con FILE o TABLE
El comando SAVE LAYOUT se utiliza con dos fines diferentes:
l FILE: guarda el formato de tabla de la tabla de ACL abierta en un archivo de formato de tabla
externo, con la extensión .layout.
l TABLE: extrae los metadatos del formato de tabla de la tabla de ACL abierta y los guarda en una
nueva tabla de ACL.
decimales La cantidad de lugares decimales del campo (únicamente para campos numéricos)
Detalles adicionales
Filtros a nivel del campo Los filtros a nivel del campo y las notas del campo no se incluyen.
Notas del campo
Título de columna alter- Los valores registrados para el título de columna alternativo y el ancho de columna son
nativo los que se especifican en el formato de tabla, no en los valores del nivel de la vista que
se pueden especificar para las columnas.
Ancho de columna
Sintaxis
SAVE LOG <SESSION> AS nombre_archivo ASCII|HTML <OK>
Parámetros
Nombre Descripción
SESSION Solo se guardan las entradas del log de la sesión de ACL actual.
opcional
Aceptar Si ya existe un archivo con el mismo nombre_archivo, ese archivo se sobrescribe sin
solicitar confirmación.
opcional
Ejemplos
Guardar el log de comandos de un análisis de cuentas por pagar
Usted realizó un análisis de datos en un archivo de cuentas por pagar de marzo y desea guardar el log de
Sintaxis
SAVE TABLELIST {FILE|TABLE} TO {nombre_de_tabla|nombre_de_archivo}
Parámetros
Nombre Descripción
Ejemplos
Creación de una nueva tabla
Usted crea una nueva tabla en el proyecto de ACL, que recibe el nombre de Lista_de_tablas_completa:
Observaciones
Columnas de la salida
La tabla de salida de ACL o el archivo CSV contiene tres columnas:
l nombre_tabla: el nombre del formato de tabla de ACL
l tipo: una indicación de si la tabla de ACL es una tabla local o de servidor
l Ruta_al_archivo_de_datos: la ruta completa al archivo de datos de origen.
Sintaxis
SAVE WORKSPACE nombre_área_de_trabajo {nombre_campo <...n>}
Parámetros
Nombre Descripción
nombre_área_de_trabajo El nombre del área de trabajo que se creará y agregará al proyecto ACL actual.
nombre_campo <...n> El nombre del campo que se agregará al área de trabajo. Puede incluir múltiples nom-
bres de campos separados por espacios.
Ejemplo
Activación de un área de trabajo
Usted crea un área de trabajo denominada Margen_inventario con dos campos calculados desde la tabla
Inventario_Metaphor_2002. Después, activa el área de trabajo para que los campos estén disponibles en
la tabla Inventario:
OPEN Inventario_Metaphor_2002
SAVE WORKSPACE Margen_inventario Margen_unitario_bruto Margen_unitario_porcentual
OPEN Inventario
ACTIVATE WORKSPACE Margen_Inventario OK
Observaciones
Los nombres de los campos que se usen para crear campos calculados deben coin-
cidir
Los nombres de los campos que se utilicen en expresiones que creen un campo calculado que se guarda
en un área de trabajo deben coincidir con los nombres de los campos de la tabla que utiliza el área de tra-
bajo.
Por ejemplo, si un área de trabajo contiene el campo calculado Valor=Precio_venta*Cantidad, la tabla
activa también debe contener campos denominados Precio_venta y Cantidad.
Comando SEEK
Busca el primer valor que coincida con la cadena de caracteres o la expresión de caracteres especificada
en un campo de carácter indexado.
Sintaxis
SEEK expresión_búsqueda
Parámetros
Nombre Descripción
Ejemplos
Busque el primer valor del campo que coincida con una variable de caracteres
El campo Número_de_tarjeta se ha definido como un campo de caracteres y está indexado en orden
ascendente.
En el siguiente ejemplo, se encuentra el primer valor del campo que coincide de manera exacta, o
comienza, con el valor que se incluye en la variable v_núm_tarj.
Busque el primer valor de un campo que coincida con una cadena de caracteres
El campo Número_de_tarjeta se ha definido como un campo de caracteres y está indexado en orden
ascendente.
En el siguiente ejemplo, se encuentra el primer valor del campo que coincide de manera exacta, o
comienza, con el literal de carácter "AB-123":
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Cómo funciona
Utilice el comando SEEK para pasar directamente al primer registro de una tabla que contenga el valor de
expresión_búsqueda especificado en el campo de caracteres indexado.
l Si se encuentra la expresión_búsqueda:, se selecciona el primer registro coincidente en la tabla.
l Si no se encuentra la expresión de búsqueda:, aparece el mensaje "Ningún índice es igual a la
clave" y la tabla se ubica en el primer registro con un valor superior a la expresión de búsqueda.
Si el campo indexado no contiene valores que sean mayores que la expresión de la búsqueda, la
tabla se ubica en el primer registro.
Es necesario indexar
Para usar SEEK a fin de buscar un campo de caracteres, primero debe indexar el campo de manera ascen-
dente. Si hay varios campos de caracteres indexados en orden ascendente, sólo se busca en el primer
campo especificado en el índice.
SEEK no se puede utilizar para buscar campos indexados que no sean de caracteres o campos de carac-
teres que estén indexados en orden descendente.
Comando SEQUENCE
Determina si uno o más campos de ua tabla de ACL están ordenados de manera secuencial e identifica
los elementos que no respetan la secuencia.
Sintaxis
SEQUENCE <ON> <FIELDS> {campo <D>} <...n> <UNFORMATTED> <ERRORLIMIT n> <IF
prueba> <WHILE prueba> <FIRST rango|NEXT range> <TO {SCREEN|nombre_archivo|PRINT}>
<APPEND> <HEADER texto_encabezado> <FOOTER texto_pie_de_página> <PRESORT>
<LOCAL> <ISOLOCALE código_lugar>
Parámetros
Nombre Descripción
UNFORMATTED Suprime los encabezados de página y los saltos de página cuando los resultados se
envían a un archivo.
opcional
ERRORLIMIT n La cantidad de errores permitidos antes de que el comando se interrumpa. El valor pre-
determinado es 10.
opcional
IF prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta únicamente en los registros que cumplen la condición.
opcional
WHILE prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta hasta que la condición se evalúa como falsa o hasta que se llega
opcional
al final de la tabla.
TO SCREEN | nombre_ El lugar al que se deben enviar los resultados del comando:
archivo | PRINT o SCREEN: muestra los resultados en el área de visualización de ACL
opcional o nombre_de_archivo: guarda los resultados en un archivo
Nombre Descripción
APPEND Anexa la salida del comando al final de un archivo existente en lugar de sobrescribir el
archivo.
opcional
Nota
Debe asegurarse de que la estructura de la salida del comando y del
archivo existente sean idénticas:
l los mismos campos
l el mismo orden de campos
l los campos coincidentes son de la misma longitud
l los campos coincidentes tienen el mismo tipo de datos
ACL anexa la salida a un archivo existente sin importar cuál sea su
estructura. Si la estructura de la salida y la del archivo existente no coin-
ciden, es posible que los datos que se obtengan estén incompletos,
mezclados o sean imprecisos.
HEADER texto_enca- El texto que se debe insertar en la parte superior de cada página de un reporte.
bezado
texto_encabezado_de_página se debe especificar como una cadena entre comillas. El
opcional valor anula la variable de sistema HEADER de ACL.
FOOTER texto_pie_de_ El texto que se debe insertar en la parte inferior de cada página de un reporte.
página
texto_pie_de_página se debe especificar como una cadena entre comillas. El valor
opcional anula la variable de sistema FOOTER de ACL.
LOCAL Nota
opcional Aplicable únicamente al ejecutar el comando en una tabla de Servidor
de ACL con un archivo de salida que es una tabla de ACL.
Guarda el archivo de salida en la misma ubicación que el proyecto de ACL.
Nombre Descripción
Ejemplos
Prueba para detectar ID de empleados y fechas de contratación fuera de secuencia
Usted escribe todos los errores de secuencia identificados en los campos IDEmpleado y FechaCon-
tratación en un archivo de texto:
Observaciones
Uso de SEQUENCE dentro de GROUP
Si utiliza SEQUENCE dentro de un comando GROUP, el comando se ejecuta para evitar interferir con el
procesamiento del grupo, pero no se reportan más errores de secuencia de datos.
Comando SET
Ajusta una opción de ACL configurable.
Nota
El comando SET establece una opción ACLmientras dura la sesión ACL. Este com-
portamiento se produce si se utiliza el comando SET en la línea de comandos ACL o en un
script ACL.
Para ajustar las opciones de ACL de manera que no se modifiquen entre sesiones de ACL,
debe utilizar el cuadro de diálogo Opciones . Si desea obtener más información, consulte
Configuración de las opciones de ACL.
Sintaxis
Sintaxis Ejemplos y observaciones
Especifica el año de inicio del siglo para los años de dos dígitos.
El parámetro valor debe estar entre 0 y 99.
Si se establece el valor de comienzo de siglo en 40 significa que los años de dos dígitos
40 al 99 se interpretan como 1940 y 1999, y los años de dos dígitos 00 a 39 se inter-
pretan como 2000-2039.
Cuando se activa esta opción, ACL reemplaza los datos de caracteres no válidos por
espacios en blanco y los datos numéricos no válidos por ceros.
Especifica cómo muestra ACL las fechas y la porción de la fecha de las fechahoras en
las vistas, los reportes y los archivos exportados.
o SET DATE 0 establece la fecha a formato MM/DD/AAAA
o SET DATE 1 establece la fecha a formato MM/DD/AA
Configuración predeterminada: OFF
Especifique ON para eliminar automáticamente el archivo de datos asociado al eliminar
un formato de tabla.
Especifique ON para impedir la eliminación del archivo de datos asociado al eliminar un
formato de tabla.
Debe incluir el guion bajo ( _ ) en DELETE_FILE.
Si se especifica SET DELETE_FILE sin ningún parámetro, en la línea de comandos se
muestra si DELETE_FILE está activado o desactivado.
¡Precaución!
Tenga cuidado al activar esta opción. Es posible que se elimine un
archivo de datos original junto con la tabla.
Los archivos de datos se eliminan directamente. No se envían a la Pape-
lera de reciclaje de Windows.
El parámetro valor es una cadena entre comillas que especifica la etiqueta que se mos-
trará en la parte superior de cada página impresa.
Especifique NONE para dejar de escribir los comandos y los resultados en los scripts
ACL en el log de comandos. Especifique ON para reanudar el registro en el log.
El comando SET ECHO solo se aplica al log de comandos y de resultados en los scripts.
Los comandos realizados a través de la interfaz de usuario o emitidos desde la línea de
comandos y los resultados que producen se registran siempre, independientemente de
cómo se establece ECHO.
Puede emitir el comando SET ECHO NONE/ON en un script o desde la línea de coman-
Configuración predeterminada: OFF
Controla de qué manera ACL compara los campos de caracteres, las expresiones o los
valores literales.
Nota
Los espacios en blanco se tratan como caracteres.
o SET EXACT está en OFF: ACL utiliza la cadena más corta al comparar dos cadenas
de diferente longitud. La comparación comienza con los caracteres ubicados más a la
izquierda y continúa hacia la derecha.
Por ejemplo, "AB" es igual a "AB" y también se considera igual a "ABC".
o SET EXACT está en ON: las cadenas que se comparan deben ser idénticas para que
haya una coincidencia. Al comparar dos cadenas de diferente longitud, ACL completa
la cadena más corta con espacios en blanco al final para hacer que coincida en lon-
gitud con la cadena más larga.
Por ejemplo, "AB" es igual a "AB", pero no se considera igual a "ABC".
Si desea ver más ejemplos del uso de SET EXACT, consulte "Comparaciones de carac-
teres exactos" en la ficha Tabla (cuadro de diálogo Opciones).
Puede usar la función ALLTRIM( ) para quitar los espacios en blanco al principio y al
final para asegurarse de que solo se comparen los caracteres de texto y los espacios
internos.
Por ejemplo: ALLTRIM(" AB") = ALLTRIM("AB") es verdadero cuando los valores se
encierran con ALLTRIM( ), pero si no se los encierra, es falso.
Algunos comandos y funciones de ACL se ven afectados por SET EXACT y otros, no:
Afectada No afectada
Crea un filtro global (filtro de vista) en la tabla abierta y especifica ya sea una prueba
lógica o el nombre de un filtro guardado existente.
Si especifica SET FILTER sin ningún parámetro, se eliminan los filtros de la tabla abierta.
SET FOLDER ruta de car- Especifica la carpeta del proyecto ACL en la ficha Panorama para el resultado del
peta comando. La carpeta de salida predeterminada es la carpeta que contiene la tabla
activa.
Se trata de una ruta de estilo DOS que utiliza el formato/nombre_de_carpeta/nombre_
de_subcarpeta, en el cual la barra inicial (/) indica el nivel raíz en la ficha Panorama.
Debe especificar una ruta completa de archivo.
o SET FOLDER /Tablas/Resultados establece la carpeta de salida en la subcarpeta
Resultados. Si la subcarpeta Resultados no existe, se crea.
o SET FOLDER / establece la carpeta de salida en el nivel raíz de la ficha Panorama
o SET FOLDER establece la carpeta de salida al valor predeterminado (la carpeta que
contiene la tabla activa).
La carpeta de salida sigue estando de la manera en que usted la estableció - hasta que
la restablezca, o cierre el proyecto. Al abrir el proyecto, la carpeta de salida vuelve al
valor predeterminado de la carpeta de la tabla activa.
Configuración predeterminada: OFF
Si utiliza el parámetro ON, ACL muestra automáticamente el formato de tabla actual y las
definiciones de campos calculados cuando se abre una nueva tabla. Los resultados apa-
recen en el log del comando.
SET FUZZYGROUPSIZE
<TO> num SET FUZZYGROUPSIZE TO 10
Especifica el tipo de gráfico que se utilizará para todos gráficos generados pos-
teriormente. Los comandos ejecutados deben ser compatibles con el tipo de gráfico
especificado. Por ejemplo, el comando BENFORD no puede producir un gráfico PIE2D o
PIE3D. Si se especifica un tipo de gráfico incompatible, se utiliza el tipo de gráfico pre-
determinado (BAR3D).
El parámetro tipo debe ser uno de los siguientes:
o PIE2D
o PIE3D
o BAR2D
o BAR3D – Este es el tipo de gráfico predeterminado.
o STACKED2D
o STACKED3D
o LAYERED
o LINE
o BENFORD – Combina un gráfico de barras 2D y un gráfico de líneas 2D.
Especifica el nombre del archivo de script que utiliza la Grabadora de scripts para regis-
trar los comandos.
Especifica el número máximo de bucles que puede ejecutar el comando LOOP antes de
que se termine el comando.
Especifique LEFT, RIGHT, TOP o BOTTOM para el parámetro lado. Si desea cambiar el
margen en todos los lados, debe especificar cada margen con un comando SET
MARGIN por separado. Si se especifica un valor de 100, se crea un margen de 1 pul-
gada.
SET MONTHS <TO> Especifica las abreviaturas de tres caracteres para los nombres de los meses. El pará-
cadena metro cadena es la lista de abreviaturas de meses separadas por comas.
SET NOTIFYFAILSTOP
{ON | OFF} SET NOTIFYFAILSTOP ON
Configuración predeterminada: OFF
o NOTIFYFAILSTOP está en OFF: ACL permite que el script continúe aun cuando un
comando NOTIFY del script falle.
o NOTIFYFAILSTOP está en ON: ACL deja de procesar un script y escribe un men-
saje en el registro si un comando NOTIFY del script falla. El script se detiene después
del primer error, o después de la cantidad especificada de
NOTIFYRETRYATTEMPTS, si ninguno de los intentos se completa correctamente.
SET
NOTIFYRETRYATTEMPTS SET NOTIFYRETRYATTEMPTS TO 10
<TO> núm
Especifica la cantidad de veces que el comando NOTIFY intentará enviar un mensaje de
correo electrónico si el intento inicial no se completa correctamente. Escriba un número
del 0 al 255. Si escribe 0, no se realizan más intentos después del primer error. El valor
predeterminado es 5.
Una posible causa para que el comando NOTIFY no pueda enviar un correo electrónico
es que el servidor de correo electrónico no esté disponible.
SET
NOTIFYRETRYINTERVAL SET NOTIFYRETRYINTERVAL TO 30
<TO> segundos
Especifica la cantidad de tiempo, en segundos, entre NOTIFYRETRYATTEMPTS.
SET ORDER <TO> valores Especifica la secuencia de ordenamiento para los campos de caracteres. El parámetro
valores especifica todos los caracteres para la secuencia de ordenamiento selec-
cionada.
Configuración predeterminada: ON
Si se especifica OFF, ACL no interrumpe el procesamiento cuando se produce un error
de desborde.
SET READAHEAD TO Especifica el tamaño de bloque de datos leído. Solo debe cambiar este valor de con-
tamaño figuración si los Servicios de soporte de ACL le aconsejan que lo haga.
Especifica los separadores decimal, de miles y de lista predeterminados que utiliza ACL.
Los valores de SET SEPARATORS deben ser tres caracteres separadores válidos en el
siguiente orden:
o decimal (punto, coma o espacio)
o miles (punto, coma o espacio)
o lista (punto y coma, coma o espacio)
Entre los tres separadores, el separador decimal debe ser único. Debe especificar los
tres separadores cuando utilice el comando. El separador de lista se utiliza prin-
cipalmente para separar los parámetros de las funciones.
Configuración predeterminada: OFF
Solo para uso en la definición de una tabla ACL que utiliza una fuente de datos ODBC
(comando IMPORT ODBC) o el acceso directo de base de datos (DEFINE TABLE DB).
Si se utiliza el parámetro ON, al definir la tabla ACL suprime la porción hora de los valo-
res de fechahora. Por ejemplo, 20141231 235959 se lee, aparece en las vistas y pos-
teriormente se procesa como 20141231.
La inclusión de este comando en un script ACL anterior a la habilitación de fechahora
(pre v.10.0), que asume que la porción hora de los datos de fechahora se truncará, per-
mite que el script se ejecute en la versión con fechahora habilitada de ACL.
ACL suprime la porción hora utilizando solo la parte de fecha del formato de fechahora.
Los datos de la hora siguen presentes en el archivo .fil o la tabla de base de datos. Si es
necesario, puede volver a definir el campo o definir un nuevo campo para incluir la por-
ción hora de los datos.
Si SET SUPPRESSTIME = OFF, las tablas ACLdefinidas utilizando ODBC o el acceso de
base de datos directo incluyen los valores de la fechahora completos.
Puede emitir el comando SET SUPPRESSTIME ON/OFF en un script o desde la línea de
comandos.
Configuración predeterminada: OFF
Especifica que la salida del comando está en texto plano en lugar de texto con formato.
Especifica si los resultados de las pruebas IF, WHILE, FOR y NEXT asociadas con los
comandos GROUP se deben registrar en el log.
Especifica cómo muestra ACL la porción de la horas de las fechahoras y las horas inde-
pendientes en las vistas, los reportes y los archivos exportados.
Al utilizar el comando SET TIME para especificar formatos de hora, debe utilizar 'h' para
la hora, "m" para minutos y "s" para segundos, incluso si se han especificado diferentes
caracteres de formato de hora en el cuadro de diálogo Opciones. Por ejemplo:
Configuración predeterminada: ON
o UTCZONE está en ON: ACL cambia la visualización de la hora local con un des-
plazamiento del UTC al UTC equivalente a la hora local. (UTC es el horario universal
coordinado, la hora en los cero grados de longitud.)
o UTCZONE está en OFF: ACL muestra las horas locales con un desplazamiento del
UTC sin convertirlas a UTC.
Por ejemplo:
o 01 ene 2015 04:59:59 (SET UTCZONE ON)
o 31 dic 2014 23:59:59-05:00 (SET UTCZONE OFF)
La conversión de la hora local a UTC se hace para fines de visualización solamente y no
afecta a los datos de origen. Puede cambiar entre uno y otro modo de visualización dife-
rentes toda vez que lo desee.
datos corresponde al tipo de datos del campo en el formato de tabla cada vez que se
abre una tabla. Cuando se especifica BLANK, ACL reemplaza los datos de caracteres no
válidos por espacios en blanco y los datos numéricos no válidos por ceros, además de
realizar la verificación descrita en el caso del parámetro ON.
Comando SIZE
Calcula un tamaño de muestra estadísticamente válido, para muestreo por registros o por unidad mone-
taria.
Muestreo de registros Muestreo de unidad monetaria
Sintaxis
SIZE RECORD CONFIDENCE nivel_confianza POPULATION tamaño_población PRECISION
índice_tolerable <ERRORLIMIT tasa_esperada> <TO {SCREEN|nombre_de_archivo}>
Parámetros
Nota
No incluya los separadores de mil ni los signos de porcentaje al especificar los valores.
Nombre Descripción
CONFIDENCE nivel_de_ El nivel deseado de confianza de que la muestra resultante sea representativa de la
confianza población completa.
Por ejemplo, si especifica 95, significa que desea tener una certeza de que el 95 % de
las veces la muestra será realmente representativa. La confianza es el complemento del
"riesgo de muestreo". Un nivel de confianza de 95 % es lo mismo que un riesgo de mues-
treo de 5 %.
PRECISION índice_tole- El índice de desviación tolerable, que es el índice máximo de desviación que puede ocu-
rable rrir en un control establecido y que aún se considera como un control efectivo.
Por ejemplo, si especifica 5, significa que el índice de desviación debe ser superior al 5
% para que usted considere que el control no es efectivo.
ERRORLIMIT tasa_espe- El índice de desviación que se espera en la población. Es el índice de desviación que
rada espera detectar respecto de un control preestablecido.
opcional Por ejemplo, si especifica 1, significa que espera que el índice de desviación sea 1 %.
Si omite este parámetro, se utiliza un índice de desviación de población de 0 %.
Nombre Descripción
TO SCREEN | nombre_ El lugar al que se deben enviar los resultados del comando:
archivo o SCREEN: muestra los resultados en el área de visualización de ACL
o nombre_de_archivo: guarda los resultados en un archivo
Especifique el nombre_de_archivo como una cadena entre comillas con la extensión
de archivo adecuada. Por ejemplo: TO "Salida.TXT".
Por valor predeterminado, el archivo se guarda en la carpeta que contiene el pro-
yecto de ACL.
Utilice una ruta de archivo absoluta o relativa para guardar el archivo en una carpeta
existente o una diferente:
l TO "C:\Salida.TXT"
l TO "Resultados\Salida.TXT"
Ejemplos
Calcular el tamaño y el intervalo necesarios para una muestra de registros
Decidió usar el muestreo de registros para estimar el índice de desviación de un control preestablecido en
una cuenta que contiene facturas.
Antes de extraer la muestra, debe calcular el intervalo de la muestra y el tamaño de la muestra esta-
dísticamente válido.
Desea estar seguro de que el 95 % de las veces, la muestra extraída por ACL será representativa de la
población en su conjunto.
Con su nivel de confianza especificado, el siguiente ejemplo calcula un tamaño de muestra de 95 y un
valor de intervalo de muestra de 8,12, para utilizarlo al extraer una muestra de registros:
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Sintaxis
SIZE MONETARY CONFIDENCE nivel_confianza POPULATION tamaño_población MATERIALITY
error_tolerable <ERRORLIMIT error_esperado> <TO {SCREEN|nombre_de_archivo}>
Parámetros
Nota
No incluya los separadores de mil ni los signos de porcentaje al especificar los valores.
Nombre Descripción
CONFIDENCE nivel_de_ El nivel deseado de confianza de que la muestra resultante sea representativa de la
confianza población completa.
Por ejemplo, si especifica 95, significa que desea tener una certeza de que el 95 % de
las veces la muestra será realmente representativa. La confianza es el complemento del
"riesgo de muestreo". Un nivel de confianza de 95 % es lo mismo que un riesgo de mues-
treo de 5 %.
MATERIALITY error_tole- La información errónea tolerable, que es la cantidad total máxima de error en la infor-
rables mación que puede ocurrir en el campo de muestra sin considerarlo un error significativo.
Por ejemplo, si especifica 29000, significa que el importe total de error debe ser superior
a 29.000$ para que se lo considere un error de importancia.
ERRORLIMIT error_espe- La información errónea esperada. Se trata del importe total de error que usted espera
rado que contenga el campo de muestra.
opcional Por ejemplo, si especifica 5800, significa que usted espera que el importe total de error
sea 5.800$.
Si omite este parámetro, se utiliza un error esperado de 0,00$.
TO SCREEN | nombre_ El lugar al que se deben enviar los resultados del comando:
Nombre Descripción
Ejemplos
Calcular el tamaño y el intervalo necesarios para una muestra de unidad monetaria
Decidió utilizar el muestreo de unidad monetaria para estimar el importe total de información monetaria
errónea en una cuenta que contiene facturas.
Antes de extraer la muestra, debe calcular el intervalo de la muestra y el tamaño de la muestra esta-
dísticamente válido.
Desea estar seguro de que el 95 % de las veces, la muestra extraída por ACL será representativa de la
población en su conjunto.
Con su nivel de confianza especificado, el siguiente ejemplo calcula un tamaño de muestra de 93 y un
valor de intervalo de muestra de 6.283,33, para utilizarlo al extraer una muestra de unidad monetaria:
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Comando SORT
Ordena los registros de una tabla de ACL en orden secuencial ascendente o descendente basándose en
un campo o campos clave especificados. Los resultados se envían a una nueva tabla ACL reordenada físi-
camente.
Sintaxis
SORT ON {campo_clave <D> <...n>|ALL} <FIELDS {nombre_campo <AS nombre_visible>
<...n>|FIELDS ALL}> TO nombre_tabla <IF prueba> <WHILE prueba> <FIRST rango|NEXT rango>
<APPEND> <OPEN> <ISOLOCALE código_lugar>
Parámetros
Nombre Descripción
Nombre Descripción
Nombre Descripción
IF prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta únicamente en los registros que cumplen la condición.
opcional
WHILE prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta hasta que la condición se evalúa como falsa o hasta que se llega
opcional
al final de la tabla.
APPEND Anexa la salida del comando al final de un archivo existente en lugar de sobrescribir el
archivo.
opcional
Nota
Debe asegurarse de que la estructura de la salida del comando y del
archivo existente sean idénticas:
l los mismos campos
l el mismo orden de campos
l los campos coincidentes son de la misma longitud
l los campos coincidentes tienen el mismo tipo de datos
ACL anexa la salida a un archivo existente sin importar cuál sea su
estructura. Si la estructura de la salida y la del archivo existente no coin-
ciden, es posible que los datos que se obtengan estén incompletos,
mezclados o sean imprecisos.
Ejemplos
Ordenar por un solo campo con resultado de registros completos
Usted desea ordenar los registros de la tabla Inventario de muestra por número de producto. Los registros
ordenados se extraen a una nueva tabla de ACL llamada Número_de_producto_de_inventario.
Los registros enteros se incluyen en la tabla de resultados:
Para cambiar del orden de clasificación ascendente predeterminado a un orden de clasificación des-
cendente, agregue D después del nombre del campo de clave:
Ordenar en un solo campo con todos los campos como resultado de salida
Usted desea ordenar los registros de la tabla Inventario de muestra por número de producto. Todos los
campos se extraen a una nueva tabla de ACL llamada Número_de_producto_de_inventario.
La diferencia entre usar FIELDS ALL y la salida de registros completos, es que FIELDS ALL convierte los
campos calculados de la tabla de origen en campos físicos en la tabla de salida y rellena los campos con los
valores calculados reales:
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Comando STATISTICS
Calcula estadísticas para uno o más campos numéricos o de fechahora en una tabla de ACL.
Sintaxis
STATISTICS {<ON> campo <...n>|ALL} <STD> <MODMEDQ> <NUMBER n> <TO {SCREEN|nom-
bre_archivo|PRINT}> <IF prueba> <WHILE prueba> <FIRST rango|NEXT rango> <APPEND>
Parámetros
Nombre Descripción
ON campo <...n> | ALL Especifique uno o más campos numéricos o de fechahora para los que se generarán
estadísticas o especifique ALL para generar estadísticas para todos los campos numé-
ricos y de fechahora de la tabla de ACL.
STD Calcula la desviación estándar de los campos especificados, además de otras esta-
dísticas.
opcional
MODMEDQ Calcula los valores del modo, la mediana, el primer cuartil y el tercer cuartil de los cam-
pos especificados, además de otras estadísticas.
opcional
TO SCREEN | nombre_ El lugar al que se deben enviar los resultados del comando:
archivo | PRINT o SCREEN: muestra los resultados en el área de visualización de ACL
opcional o nombre_de_archivo: guarda los resultados en un archivo
Especifique el nombre_de_archivo como una cadena entre comillas con la extensión
de archivo adecuada. Por ejemplo: TO "Salida.TXT".
Por valor predeterminado, el archivo se guarda en la carpeta que contiene el pro-
yecto de ACL.
Utilice una ruta de archivo absoluta o relativa para guardar el archivo en una carpeta
existente o una diferente:
l TO "C:\Salida.TXT"
l TO "Resultados\Salida.TXT"
o PRINT: envía los resultados a la impresora predeterminada
IF prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta únicamente en los registros que cumplen la condición.
opcional
Nombre Descripción
WHILE prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta hasta que la condición se evalúa como falsa o hasta que se llega al
opcional
final de la tabla.
APPEND Anexa la salida del comando al final de un archivo existente en lugar de sobrescribir el
archivo.
opcional
Nota
Debe asegurarse de que la estructura de la salida del comando y del
archivo existente sean idénticas:
l los mismos campos
l el mismo orden de campos
l los campos coincidentes son de la misma longitud
l los campos coincidentes tienen el mismo tipo de datos
ACL anexa la salida a un archivo existente sin importar cuál sea su
estructura. Si la estructura de la salida y la del archivo existente no coin-
ciden, es posible que los datos que se obtengan estén incompletos, mez-
clados o sean imprecisos.
Nombre Contiene
Nombre Contiene
MODEn El valor que ocurre con mayor frecuencia identificado por el comando.
Q25n El valor del primer cuartil (valor del cuartil inferior) calculado por el comando.
Q75n El valor del tercer cuartil (valor del cuartil superior) calculado por el comando.
RANGEn La diferencia entre los valores máximo y mínimo que calcula el comando.
Ejemplos
Generación de estadísticas condicionales
Usted genera estadísticas para el campo Cantidad en los registros en los que el ID de clase de producto
es 01:
Comando STRATIFY
Agrupa registros en intervalos numéricos sobre la base de los valores de un campo numérico. Cuenta la
cantidad de registros en cada intervalo y también calcula el subtotal de campos numéricos especificados
para cada intervalo.
Sintaxis
STRATIFY <ON> campo_numérico MINIMUM valor MAXIMUM valor {<INTERVALS número>|FREE
valor_intervalo <...n> último_intervalo} <SUPPRESS> <SUBTOTAL {campo_numérico <...n>|ALL}>
<KEY salto_campo> <TO {SCREEN|nombre_tabla|nombre_archivo|GRAPH|PRINT}> <IF prueba>
<FIRST rango|NEXT rango> <WHILE prueba> <APPEND> <OPEN> <HEADER texto_
encabezado> <FOOTER texto_pie_de_página> <LOCAL> <STATISTICS>
Parámetros
Nombre Descripción
MINIMUM valor Se aplica sólo a campos numéricos. El valor mínimo del primer intervalo numérico.
MINIMUM es opcional si se está utilizando FREE; de lo contrario, es obligatorio.
MAXIMUM valor Se aplica sólo a campos numéricos. El valor máximo del último intervalo numérico.
MAXIMUM es opcional si se está utilizando FREE; de lo contrario, es obligatorio.
Nombre Descripción
res duplicados:
SUPPRESS Los valores por encima del valor MÁXIMO y por debajo del valor MÍNIMO se excluyen de
la salida del comando.
opcional
SUBTOTAL campo_numé- Uno o más campos numéricos o expresiones que se subtotalizarán para cada grupo.
rico <...n> | ALL
Múltiples campos se deben separar con espacios. Especifique ALL para calcular sub-
opcional totales de todos los campos numéricos de la tabla.
Si no selecciona un campo de subtotal, se hace un subtotal automáticamente del campo
que está estratificando.
Debe especificar explícitamente el campo a estratificar si desea calcular el subtotal de
este junto con el de uno o más campos, o si desea incluir estadísticas del campo estra-
tificar subtotalizado.
KEY salto_campo El campo o la expresión que agrupa los cálculos de subtotal de grupos. Se calcula un
subtotal cada vez que cambia el valor de salto_campo.
opcional
salto_campo debe ser un campo de caracteres o una expresión. Puede especificar un
solo campo, pero puede usar una expresión que contenga más de un campo.
TO SCREEN | nombre_ El lugar al que se deben enviar los resultados del comando:
tabla | nombre_archivo | o SCREEN: muestra los resultados en el área de visualización de ACL
GRAPH | PRINT o nombre_tabla: guarda los resultados en una tabla de ACL
Especifique el nombre_tabla como una cadena entre comillas con la extensión de
archivo .FIL. Por ejemplo: TO "Salida.FIL"
Por valor predeterminado, el archivo de datos de la tabla (.FIL) se guarda en la car-
peta que contiene el proyecto de ACL.
Utilice una ruta de archivo absoluta o relativa para guardar el archivo de datos en una
carpeta existente o una diferente:
l TO "C:\Salida.FIL"
l TO "Resultados\Salida.FIL"
Nota
Los nombres de las tablas tienen un límite de 64 caracteres alfa-
numéricos, sin incluir la extensión .FIL. El nombre puede incluir un
guión bajo ( _ ), pero no puede incluir ningún otro carácter especial ni
espacios. El nombre no puede comenzar con un número.
o nombre_de_archivo: guarda los resultados en un archivo
Especifique el nombre_de_archivo como una cadena entre comillas con la extensión
de archivo adecuada. Por ejemplo: TO "Salida.TXT".
Por valor predeterminado, el archivo se guarda en la carpeta que contiene el pro-
yecto de ACL.
Nombre Descripción
Utilice una ruta de archivo absoluta o relativa para guardar el archivo en una carpeta
existente o una diferente:
l TO "C:\Salida.TXT"
l TO "Resultados\Salida.TXT"
o GRAPH: muestra los resultados en un gráfico en el área de visualización de ACL
o PRINT: envía los resultados a la impresora predeterminada
IF prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta únicamente en los registros que cumplen la condición.
opcional
WHILE prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta hasta que la condición se evalúa como falsa o hasta que se llega al
opcional
final de la tabla.
APPEND Anexa la salida del comando al final de un archivo existente en lugar de sobrescribir el
archivo.
opcional
Nota
Debe asegurarse de que la estructura de la salida del comando y del
archivo existente sean idénticas:
l los mismos campos
l el mismo orden de campos
l los campos coincidentes son de la misma longitud
l los campos coincidentes tienen el mismo tipo de datos
ACL anexa la salida a un archivo existente sin importar cuál sea su
estructura. Si la estructura de la salida y la del archivo existente no coin-
ciden, es posible que los datos que se obtengan estén incompletos, mez-
clados o sean imprecisos.
OPEN Abre la tabla creada por el comando después de la ejecución del comando. Solo es
válido si el comando crea una tabla de salida.
opcional
HEADER texto_enca- El texto que se debe insertar en la parte superior de cada página de un reporte.
bezado
texto_encabezado_de_página se debe especificar como una cadena entre comillas. El
opcional valor anula la variable de sistema HEADER de ACL.
FOOTER texto_pie_de_ El texto que se debe insertar en la parte inferior de cada página de un reporte.
página
texto_pie_de_página se debe especificar como una cadena entre comillas. El valor
opcional anula la variable de sistema FOOTER de ACL.
Nombre Descripción
LOCAL Nota
opcional Aplicable únicamente al ejecutar el comando en una tabla de Servidor de
ACL con un archivo de salida que es una tabla de ACL.
Guarda el archivo de salida en la misma ubicación que el proyecto de ACL.
STATISTICS Nota
opcional No se puede usar, a menos que también se especifique SUBTOTAL.
Calcula los valores promedio, mínimo y máximo para todos los campos SUBTOTAL.
Ejemplos
Estratificación por importe de factura
Necesita estratificar una tabla de cuentas por cobrar por el campoImporte_factura. Se calcula auto-
máticamente el subtotal del importe de las facturas.
La salida se agrupa en intervalos de a $1000:
l de $0 a $999,99
l de $1.000 a $1.999,99
l y así sucesivamente
Se incluye el total del importe de las facturas para cada intervalo.
OPEN Cuentas_por_cobrar
STRATIFY ON Importe_factura MINIMUM 0 MAXIMUM 10000 INTERVALS 10 TO "Facturas_estra-
tificadas.FIL"
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Cómo funciona
STRATIFY agrupa registros en intervalos numéricos de igual tamaño o de tamaño personalizado sobre la
base de valores de un campo numérico.
La salida contiene un registro único para cada intervalo, con un recuento de la cantidad de registros en la
tabla de origen que caen dentro de cada intervalo.
Descripción del campo Nombre del campo en la tabla de Título alternativo de columna (nombre visible)
autogenerado salida en la tabla de salida
Campo subtotal nombre del campo que se subtotaliza Total + título alternativo de columna sub-
en la tabla de origen totalizada en la tabla de origen
Campo promedio a_ nombre del campo que se sub- Promedio + título alternativo de columna sub-
totaliza en la tabla de origen totalizada en la tabla de origen
Campo mínimo m_ nombre del campo que se sub- Mínimo + título alternativo de columna sub-
totaliza en la tabla de origen totalizada en la tabla de origen
Campo máximo x_ nombre del campo que se sub- Máximo + título alternativo de columna sub-
totaliza en la tabla de origen totalizada en la tabla de origen
Comando SUMMARIZE
Agrupa registros sobre la base de valores idénticos en uno o más campos de caracteres, numéricos o de
fechahora. Cuenta la cantidad de registros en cada grupo y también calcula el subtotal de campos numé-
ricos especificados para cada grupo.
Sintaxis
SUMMARIZE <ON> campo_clave <...n> <SUBTOTAL {campo_numérico <...n> |ALL}> <OTHER
{campo <...n>|ALL}> <TO {SCREEN|nombre_tabla|PRINT}> <IF prueba> <WHILE prueba>
<FIRST rango|NEXT rango> <PRESORT> <APPEND> <OPEN> <LOCAL> <HEADER texto_
encabezado> <FOOTER text_pie_de_página> <STATISTICS> <MODMEDQ> <STDEV>
<CPERCENT> <ISOLOCALE código_lugar>
Parámetros
Nombre Descripción
ON campo_clave <...n> Uno o más campos de caracteres, numéricos o de fechahora para resumir. Los dife-
rentes campos se deben separar con espacios y pueden ser distintos tipos de datos.
SUBTOTAL campo_numé- Uno o más campos numéricos o expresiones que se subtotalizarán para cada grupo.
rico <...n> | ALL
Múltiples campos se deben separar con espacios. Especifique ALL para calcular sub-
opcional totales de todos los campos numéricos de la tabla.
OTHER campo <...n> | Uno o más campos adicionales para incluir en la salida.
ALL o OTHER campo <...n>: incluya el o los campos especificados
opcional o OTHER ALL: incluya todos los campos de la tabla que no se especifican como cam-
pos clave o campos de subtotal
Utilice OTHER únicamente con campos que contienen el mismo valor para todos los
registros de cada grupo resumido. Si especifica un campo que contenga valores que
son diferentes para un grupo resumido, sólo se mostrará el valor del primer registro del
grupo, el cual no es significativo.
Por ejemplo:
o resumir una tabla por el número de cliente: "otro campo" adecuado podría ser Nom-
bre del cliente. En general, el nombre del cliente es idéntico para todos los registros
con el mismo número de cliente.
o resumir una tabla de proveedor por estado: "otro campo" inapropiado es Ciudad.
Solo se incluye la primera ciudad de cada estado en la salida. En este caso, es
mejor resumir utilizando como campos clave tanto el estado como la ciudad, en ese
orden.
Nombre Descripción
TO SCREEN | nombre_ El lugar al que se deben enviar los resultados del comando:
tabla | PRINT o SCREEN: muestra los resultados en el área de visualización de ACL
o nombre_tabla: guarda los resultados en una tabla de ACL
Especifique el nombre_tabla como una cadena entre comillas con la extensión de
archivo .FIL. Por ejemplo: TO "Salida.FIL"
Por valor predeterminado, el archivo de datos de la tabla (.FIL) se guarda en la car-
peta que contiene el proyecto de ACL.
Utilice una ruta de archivo absoluta o relativa para guardar el archivo de datos en
una carpeta existente o una diferente:
l TO "C:\Salida.FIL"
l TO "Resultados\Salida.FIL"
Nota
Los nombres de las tablas tienen un límite de 64 caracteres alfa-
numéricos, sin incluir la extensión .FIL. El nombre puede incluir un
guión bajo ( _ ), pero no puede incluir ningún otro carácter especial
ni espacios. El nombre no puede comenzar con un número.
o PRINT: envía los resultados a la impresora predeterminada
IF prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta únicamente en los registros que cumplen la condición.
opcional
WHILE prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta hasta que la condición se evalúa como falsa o hasta que se llega
opcional
al final de la tabla.
Si utiliza PRESORT
Si usa PRESORT, la salida se ordena y contiene un solo grupo exclusivo para cada
conjunto de valores idénticos o combinación idéntica de valores, en el campo o los
campos clave.
Consejo
Si la tabla de entrada ya está ordenada, puede ahorrar tiempo de pro-
cesamiento si no especifica PRESORT.
Si no utiliza PRESORT
Si no utiliza PRESORT, los resultados de la salida utilizan el orden de la tabla de
Nombre Descripción
entrada.
Si el o los campos clave contienen valores idénticos que no están en secuencia, los
resultados de la salida contienen más de un grupo para cada conjunto de valores
idénticos o combinación idéntica de valores.
Nota
Según el contexto, contar con más de un grupo para cada conjunto de
valores idénticos o combinación de valores idénticos puede ir en contra
de la finalidad del resumen.
APPEND Anexa la salida del comando al final de un archivo existente en lugar de sobrescribir el
archivo.
opcional
Nota
Debe asegurarse de que la estructura de la salida del comando y del
archivo existente sean idénticas:
l los mismos campos
l el mismo orden de campos
l los campos coincidentes son de la misma longitud
l los campos coincidentes tienen el mismo tipo de datos
ACL anexa la salida a un archivo existente sin importar cuál sea su
estructura. Si la estructura de la salida y la del archivo existente no coin-
ciden, es posible que los datos que se obtengan estén incompletos,
mezclados o sean imprecisos.
OPEN Abre la tabla creada por el comando después de la ejecución del comando. Solo es
válido si el comando crea una tabla de salida.
opcional
LOCAL Nota
opcional Aplicable únicamente al ejecutar el comando en una tabla de Servidor
de ACL con un archivo de salida que es una tabla de ACL.
Guarda el archivo de salida en la misma ubicación que el proyecto de ACL.
HEADER texto_enca- El texto que se debe insertar en la parte superior de cada página de un reporte.
bezado
texto_encabezado_de_página se debe especificar como una cadena entre comillas. El
opcional valor anula la variable de sistema HEADER de ACL.
FOOTER texto_pie_de_ El texto que se debe insertar en la parte inferior de cada página de un reporte.
página
texto_pie_de_página se debe especificar como una cadena entre comillas. El valor
opcional anula la variable de sistema FOOTER de ACL.
STATISTICS Nota
opcional No se puede usar, a menos que también se especifique SUBTOTAL.
Calcula los valores promedio, mínimo y máximo para todos los campos SUBTOTAL.
Nombre Descripción
MODMEDQ Nota
opcional No se puede usar, a menos que también se especifique SUBTOTAL.
Especifica que se calculan los valores de moda, mediana, primer cuartil y tercer cuartil
para todos los campos SUBTOTAL.
STDEV Nota
opcional No se puede usar, a menos que también se especifique SUBTOTAL.
Calcula la desviación estándar y el porcentaje del total para todos los campos
SUBTOTAL.
ISOLOCALE Nota
opcional Aplicable únicamente en la edición Unicode de ACL.
El idioma (configuración regional) del sistema en el formato idioma_ país. Por ejemplo,
para francés de Canadá, ingrese el código fr_ca.
Use los siguientes códigos:
o idioma: códigos de idioma estándar ISO 639
o país: códigos de país estándar ISO 3166
Si no especifica un código de país, se utiliza el país predeterminado para el idioma.
Si no utiliza ISOLOCALE, se utiliza la configuración regional predeterminada del sis-
tema.
Ejemplos
Importe total de transacciones por cliente
Usted resume una tabla de cuentas por cobrar por el campo Número_cliente y calcula el subtotal del
campo Importe_trans . La salida se agrupa por cliente e incluye el importe total de las transacciones para
cada cliente:
OPEN Cuentas_por_cobrar
SUMMARIZE ON Número_cliente SUBTOTAL Importe_trans TO "Total_cliente.FIL" PRESORT
La salida se agrupa por cliente (y, dentro del cliente, por fecha) e incluye el importe total de las tran-
sacciones para cada cliente por cada fecha en la que el cliente hizo una transacción.
OPEN Cuentas_por_cobrar
SUMMARIZE ON Número_cliente Fecha_trans SUBTOTAL Importe_trans TO "Total_cliente_por_
fecha.FIL" PRESORT
Importes total, promedio, mínimo y máximo de las transacciones por cliente y por fecha de transacción
Usted agrega STATISTICS al ejemplo anterior.
Además del importe de las transacciones subtotalizadas para cada cliente para cada fecha en la que el
cliente realizó una transacción, también calcula los importes promedio, mínimo y máximo de las tran-
sacciones para cada cliente y para cada fecha:
OPEN Cuentas_por_cobrar
SUMMARIZE ON Número_cliente Fecha_trans SUBTOTAL Importe_trans TO "Estadísticas_
cliente_por_fecha.FIL" PRESORT STATISTICS
OPEN Trans_CC
SUMMARIZE ON Fecha_trans Importe_trans TO "Transacciones_por_fecha_importe.FIL" OPEN
PRESORT
SET FILTER TO COUNT > 1
Observaciones
Nota
Si desea obtener más información sobre la forma en la que funciona este comando, con-
sulte Guía del usuario de ACL Analytics.
Cómo funciona
SUMMARIZE agrupa registros que tienen el mismo valor, o la misma combinación de valores, en uno o
más campos de caracteres, numéricos o de fechahora. La salida contiene un registro único para cada
grupo, con un recuento de la cantidad de registros en la tabla de origen que pertenecen al grupo.
Título alternativo de
columna (nombre visible) Nombre del campo en la Cálculo realizado en el
Parámetro opcional en la tabla de salida tabla de salida campo subtotal
Promedio + título alter- _anombre del campo sub- El valor promedio para
nativo de columna sub- totalizado cada grupo
totalizada
Mínimo + título alternativo m_ nombre del campo sub- El valor mínimo para cada
de columna subtotalizada totalizado grupo
Máximo + título alternativo x_ nombre del campo sub- El valor máximo para cada
STATISTICS de columna subtotalizada totalizado grupo
Moda + título alternativo de o_ nombre del campo sub- El valor que ocurre con
columna subtotalizada totalizado mayor frecuencia en cada
grupo
o Muestra "N/D" si ningún
valor aparece más de
una vez
o En caso de empate,
muestra el valor más
bajo
Q25 + título alternativo de q_ nombre del campo sub- El valor de primer cuartil
columna subtotalizada totalizado de cada grupo (valor de
cuartil inferior)
o El resultado es un valor
interpolado sobre la
base de un algoritmo
de ACL
o Produce el mismo resul-
MODMEDQ tado que las funciones
Título alternativo de
columna (nombre visible) Nombre del campo en la Cálculo realizado en el
Parámetro opcional en la tabla de salida tabla de salida campo subtotal
QUARTILE y
QUARTILE.INC de
Microsoft Excel
Q75 + título alternativo de p_ nombre del campo sub- El valor de tercer cuartil de
columna subtotalizada totalizado cada grupo (valor de cuar-
til superior)
o El resultado es un valor
interpolado sobre la
base de un algoritmo
de ACL
o Produce el mismo resul-
tado que las funciones
QUARTILE y
QUARTILE.INC de
Microsoft Excel
% Campo + título alter- f_ nombre del campo sub- El subtotal de cada grupo
nativo de columna sub- totalizado expresado como un por-
STDEV totalizada centaje del total del campo
Comando TOP
Va al primer registro de una tabla de ACL .
Sintaxis
TOP
Parámetros
Este comando no tiene ningún parámetro.
Observaciones
Cuándo usar TOP
Puede utilizar el comando TOP para desplazarse al primer registro de una tabla si un comando anterior,
como FIND, seleccionó otro registro de la tabla.
Comando TOTAL
Calcula el valor total de uno o más campos de una tabla de ACL.
Sintaxis
TOTAL {<FIELDS> campo_numérico <...n>|ALL} <IF prueba> <WHILE prueba> <FIRST
rango|NEXT rango>
Parámetros
Nombre Descripción
FIELDS campo numérico Los campos numéricos para los cuales se debe calcular el total. Especifique ALL para
...n | ALL calcular el total de cada campo numérico de la tabla.
IF prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta únicamente en los registros que cumplen la condición.
opcional
WHILE prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta hasta que la condición se evalúa como falsa o hasta que se llega
opcional
al final de la tabla.
Nombre Contiene
Nombre Contiene
Ejemplos
Totalización de los primeros 25 registros
Usted calcula el importe total del campo VALMERC para los primeros 25 registros de la tabla:
Observaciones
Cuándo usar TOTAL
Utilice TOTAL para comprobar la integridad y exactitud de los datos de origen y generar totales de control.
El comando calcula la suma aritmética de los campos o expresiones especificados.
Comando VERIFY
Comprueba si existen errores de validez en uno o más campos de una tabla de ACL verificando que los
datos sean coherentes con las definiciones de campo del formato de tabla.
Sintaxis
VERIFY {<FIELDS> campo <...n>|ALL} <IF prueba> <WHILE prueba> <FIRST
rango|NEXT rango> <ERRORLIMIT n> <TO {SCREEN|nombre_archivo|PRINT}> <APPEND>
Parámetros
Nombre Descripción
IF prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta únicamente en los registros que cumplen la condición.
opcional
WHILE prueba Una expresión condicional que debe ser verdadera para procesar cada registro. El
comando se ejecuta hasta que la condición se evalúa como falsa o hasta que se llega
opcional
al final de la tabla.
ERRORLIMIT n La cantidad de errores permitidos antes de que el comando se interrumpa. El valor pre-
determinado es 10.
opcional
TO SCREEN | nombre_ El lugar al que se deben enviar los resultados del comando:
archivo | PRINT o SCREEN: muestra los resultados en el área de visualización de ACL
opcional o nombre_de_archivo: guarda los resultados en un archivo
Especifique el nombre_de_archivo como una cadena entre comillas con la exten-
sión de archivo adecuada. Por ejemplo: TO "Salida.TXT".
Por valor predeterminado, el archivo se guarda en la carpeta que contiene el pro-
yecto de ACL.
Nombre Descripción
Utilice una ruta de archivo absoluta o relativa para guardar el archivo en una car-
peta existente o una diferente:
l TO "C:\Salida.TXT"
l TO "Resultados\Salida.TXT"
o PRINT: envía los resultados a la impresora predeterminada
APPEND Anexa la salida del comando al final de un archivo existente en lugar de sobrescribir el
archivo.
opcional
Nota
Debe asegurarse de que la estructura de la salida del comando y del
archivo existente sean idénticas:
l los mismos campos
l el mismo orden de campos
l los campos coincidentes son de la misma longitud
l los campos coincidentes tienen el mismo tipo de datos
ACL anexa la salida a un archivo existente sin importar cuál sea su
estructura. Si la estructura de la salida y la del archivo existente no coin-
ciden, es posible que los datos que se obtengan estén incompletos,
mezclados o sean imprecisos.
Ejemplos
Verificación de datos y especificación de un límite de error
Usted verifica todas las columnas de la tabla y establece el límite de error en 10. El comando detiene el pro-
cesamiento si detecta 10 errores de validez de datos:
Observaciones
Cómo funciona
VERIFY compara los valores de uno o más campos con el tipo de datos que especificó para cada uno de
los campos en el formato de tabla y reporta todos los errores. El comando asegura lo siguiente:
l campos de caracteres: contienen solo caracteres válidos y no hay caracteres no imprimibles pre-
sentes.
l campos numéricos: contienen solo datos numéricos válidos. Además de los números, los campos
numéricos pueden contener un signo de más o de menos precedente y una coma decimal
l campos de fechahora: contienen fechas, fechashoras u horas válidas
Para cada error que se identifica, el número de registro y el nombre del campo se muestran en la salida,
junto con el valor no válido en formato hexadecimal.
Funciones
Función ABS( )
Devuelve el valor absoluto de una expresión numérica. El valor absoluto de un número es el número sin el
signo.
Sintaxis
ABS(número)
Parámetros
Nombre Tipo Descripción
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 7,2:
ABS(7,2)
Devuelve 7,2:
ABS(-7,2)
Función AGE( )
Devuelve la antigüedad de una fecha (en días) comparada con una fecha de corte especificada o con la
fecha actual del sistema operativo.
Sintaxis
AGE(fecha/fechahora/cadena <;fecha_de_corte>)
Parámetros
Nombre Tipo Descripción
Nota
Tanto fecha/fechahora/cadena como fecha_de_corte pueden aceptar un valor de
fechahora, pero la porción hora del valor se ignora. No puede utilizar AGE( ) solamente con
valores de horas.
Salida
Numérico.
Ejemplos
Ejemplos básicos
Sin fecha de corte
Devuelve la cantidad de días entre el 31 de diciembre de 2014 y la fecha actual:
l Si se devuelve un valor positivo, es igual a la cantidad de días que transcurrieron desde el 31 de
diciembre 2014.
l Si se devuelve un valor negativo, es igual a la cantidad de días que faltan para el 31 de diciembre
2014.
l Si se devuelve 0, 31 de diciembre 2014 es la fecha actual.
AGE(`20141231`)
Devuelve la cantidad de días entre cada fecha en el campo Fecha_de_vencimiento y la fecha actual:
AGE(Fecha_de_vencimiento)
AGE(`20130731`;`20141231`)
AGE("20130731";"20141231")
AGE(`20130731`;"20141231")
AGE(`20130731 235959`;`20141231`)
AGE(Fecha_de_vencimiento; `20141231`)
Devuelve la cantidad de días entre el 31 de diciembre de 2014 y cada fecha en el campo Fecha_de_ven-
cimiento. Los resultados son los mismos que en el ejemplo que antecede, pero el signo de los valores
devueltos (positivo o negativo) se invierte:
AGE(`20141231`; Fecha_de_vencimiento)
AGE(Fecha_de_pago; Fecha_de_vencimiento)
Devuelve la cantidad de días entre cada fecha en el campo Fecha_de_pago y la fecha correspondiente en
el campo Fecha_de_vencimiento más un período de gracia de 15 días.
l Las fechas de pago anteriores a las fechas de vencimiento o hasta 15 días después de las fechas de
vencimiento devuelven un valor positivo.
l Las fechas de pago posteriores a los 15 días luego de las fechas de vencimiento devuelven un valor
negativo, lo cual indica un pago fuera de plazo y del período de gracia
AGE(Fecha_de_pago; Fecha_de_vencimiento+15)
Ejemplos avanzados
Extraer pagos vencidos
Extraer el nombre, el importe y la fecha de la factura para cada registro donde la antigüedad de la factura
es mayor a 180 días, sobre la base de una fecha de corte del 31 de diciembre de 2014:
Observaciones
Cómo funciona
La función AGE( ) función calcula la cantidad de días entre dos fechas.
AGE(Fecha_de_pago; Fecha_de_vencimiento)
El uso de la función AGE( ) de esta manera equivale a calcular la diferencia entre dos campos de fecha
restándolos en una expresión.
Por ejemplo:
Fecha_de_pago – Fecha_de_vencimiento
AAAAMMDD `20141231`
"20141231"
AAMMDD `141231`
"141231"
AAAAMMDD hhmmss `20141231 235959`
"20141231 235959"
AAMMDDthhmm `141231t2359`
"141231t2359"
AAAAMMDDThh `20141231T23`
"20141231T23"
AAAAMMDD hhmmss+/-hhmm `20141231 235959-0500`
(desplazamiento de UTC) "20141231 235959-0500"
AAMMDD hhmm+/-hh `141231 2359+01`
(desplazamiento de UTC) "141231 2359+01"
Nota
No use solo hh en el formato de la hora
principal con datos que tienen un des-
plazamiento del UTC. Por ejemplo, evite:
hh+hhmm. Los resultados pueden no ser
confiables.
Función ALLTRIM( )
Devuelve una cadena con los espacios iniciales y finales eliminados de la cadena de entrada.
Sintaxis
ALLTRIM(cadena)
Parámetros
Nombre Tipo Descripción
cadena carácter El valor del cual se eliminan los espacios iniciales y finales.
Salida
Carácter.
Ejemplos
Ejemplos básicos
Devuelve "Vancouver":
ALLTRIM(" Vancouver ")
ALLTRIM(" Nueva York ")
Ejemplos avanzados
Concatenar campos de caracteres
Utilice la función ALLTRIM( ) para eliminar espacios cuando concatena campos de caracteres, tales como
los campos nombre y apellido, para que el campo resultante no contenga muchos espacios en blanco entre
los valores concatenados.
La función REPLACE( ) reemplaza los espacios sin separación por espacios comunes y, a continuación,
ALLTRIM( ) elimina los espacios comunes iniciales y finales.
Observaciones
Cómo funciona
La función ALLTRIM( ) elimina los espacios iniciales y finales de una cadena. Los espacios dentro de la
cadena no se eliminan.
Funciones relacionadas
Utilice la función LTRIM( ) si desea quitar únicamente espacios iniciales de una cadena, o la función TRIM( )
si desea quitar únicamente los espacios finales.
Función ASCII( )
Devuelve el código ASCII para un carácter determinado.
Sintaxis
ASCII(carácter)
Parámetros
Nombre Tipo Descripción
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 65:
ASCII("A")
Devuelve 49:
ASCII("1")
Ejemplos avanzados
Extracción de un registro que comienza con un carácter de tabulación
Extraer registros que tengan un carácter tabulador al principio de un campo llamado "Descripción". El
código ASCII para el carácter de tabulación es "9".
Observaciones
Prueba para caracteres no imprimibles
Puede usar ASCII( ) para hacer una prueba en busca de caracteres no imprimibles, tales como:
l Nulo: ASCII "0"
l Tabulación: ASCII "9"
l Salto de línea (LF): ASCII "10"
l Retorno del carro (CR): ASCII "13"
Funciones relacionadas
ASCII( ) es la función inversa a CHR( ).
Función AT( )
Devuelve un número que especifica el lugar de inicio de una incidencia particular de una subcadena den-
tro de un valor de caracteres.
Sintaxis
AT(empieza_en_núm; cadena; dentro_de_texto)
Parámetros
Nombre Tipo Descripción
AT(1;'"prueba"'; Descripción)
AT(1;'"prueba"'; Descripción+Resumen)
Salida
Numérico. Devuelve la posición inicial del byte de la ocurrencia específica del valor cadena , ó 0 si no se
encuentra ninguna incidencia.
Ejemplos
Ejemplos básicos
Instancias encontradas
Devuelve 4:
Devuelve 8:
Instancias no encontradas
Devuelve 0 porque no hay un tercer guion en el valor:
Grupos de caracteres
Devuelve 5:
Buscar en un campo
Devuelve la posición de byte del primer guion de cada valor del campo Número_de_factura:
Ejemplos avanzados
Hallar números de factura en los que el segundo guion aparezca después de la décima posición de bytes
Es posible analizar la consistencia de los números de factura en una tabla utilizando la función AT( ) para
crear un filtro como el que se incluye a continuación. Este filtro aísla todos los registros en los cuales el
número de factura contiene dos o más guiones y el segundo guion ocurre después de la décima posición
de byte.
Observaciones
Cuándo utilizar AT( )
Utilice esta función para recuperar las siguientes posiciones iniciales dentro de un valor de carácter:
l la posición inicial de una subcadena
l la posición inicial de una instancia subsiguiente de la subcadena
Si solo desea confirmar varias incidencias de la misma subcadena en un campo, la función OCCURS( ) es
una mejor alternativa. Si desea obtener más información, consulte "Función OCCURS( )" en la
página 638.
Función BETWEEN( )
Devuelve un valor lógico que indica si el valor especificado está dentro de un rango.
Sintaxis
BETWEEN(valor; mín; máx)
Parámetros
Nombre Tipo Descripción
Nota
El rango que evalúa T (verdadero) incluye los valores mín y máx.
Si desea obtener información sobre los rangos de caracteres, consulte "Comportamiento
de SET EXACT" en la página siguiente.
Salida
Lógico. Devuelve T (verdadero) si el valor es mayor o igual que el valor mín y menor o igual que el valor
máx. Devuelve F (falso) en caso contrario.
Ejemplos
Ejemplos básicos
Valor de entrada numérico
Devuelve T:
BETWEEN(500;400;700)
Devuelve F:
BETWEEN(100;400;700)
Devuelve F, porque la comparación de caracteres distingue entre mayúsculas y minúsculas y la "b" minús-
cula no entra entre las mayúsculas “A” y “C”.
BETWEEN(`141230`;`141229`;`141231`)
Devuelve T para todos los valores en el campo Hora_de_acceso entre 07:00:00 AM y 09:00:00 AM inclu-
sive y F en caso contrario:
BETWEEN(Hora_de_acceso;`t070000`;`t090000`)
Devuelve T para todos los valores del campo Apellido que comienzan con las letras "C" a "J", inclusive, y ‘F’
en caso contrario (SET EXACT debe estar ajustado en ON). También devuelve T para la letra "K":
Devuelve T para todos los registros en los cuales la fecha de la factura no cae entre la fecha de la orden de
compra y la fecha de pago, inclusive, y F en caso contrario:
Devuelve T para todos los valores del campo Importe_factura que van de $1000 a $5000, inclusive, y F en
caso contrario:
Ejemplos avanzados
Creación de un filtro para ver un rango de salario
El ejemplo siguiente abre la tabla de muestra Lista_empleados y aplica un filtro que limita los registros que
se muestran para incluir solo a los empleados que ganan un salario mayor o igual a $40000,00 y menor o
igual a $50000,00.
OPEN Lista_empleados
SET FILTER TO BETWEEN(Salario; 40000,00; 50000,00)
Observaciones
Tipos de datos admitidos
Los valores de entrada de la función BETWEEN( ) pueden ser numéricos, de carácter o de fechahora. No
es posible mezclar tipos de datos. Los tres valores de entrada deben pertenecer a la misma categoría de
datos.
equivale a
Deuelve F, porque 1.23 es inferior a 1.234 una vez que se tiene en cuenta el tercer lugar decimal:
Datos de caracteres
Coincidir mayúsc.-minúsc.
La función BETWEEN( ) diferencia entre mayúsculas y minúsculas cuando se utiliza con datos de carac-
teres. Cuando compara caracteres, "a" no equivale a "A".
Devuelve F:
Si está trabajando con datos que incluyen incoherencias entre mayúsculas y minúsculas, puede utilizar la
función UPPER( ) para convertir los valores a un uso coherente de mayúsculas antes de usar BETWEEN
( ).
Devuelve T:
Coincidencia parcial
Se admite la coincidencia parcial para las comparaciones de caracteres.
valor puede estar contenido en mín.
Devuelve T, aun cuando el valor "AB" parece ser menos que el mín "ABC":
Nota
El valor más corto en la comparación de caracteres debe aparecer al principio del valor
más extenso para que exista una coincidencia.
Los dos ejemplos anteriores son Falsos cuando SET EXACT está ON.
Si desea obtener más información acerca de SET EXACT (la opción Comparaciones de caracteres
exactos ), consulte "Comando SET" en la página 381.
Parámetros Fechahora
Un campo de fecha, fechahora u hora especificado como un valor de entrada de una función puede uti-
lizar cualquier formato de fecha, fechahora u hora, siempre que la definición del campo establezca correc-
tamente el formato.
BETWEEN(`20141231`;`20141229`;`20141231`)
Devuelve T, aun cuando 12:00 PM del 31 de diciembre de 2014 parece caer dentro del intervalo espe-
cificado por mín y máx:
BETWEEN(`20141231 120000`;`20141229`;`20141231`)
Si nos fijamos en el número de serie equivalente de estas dos expresiones, podemos ver por qué la
segunda se evalúa como falsa.
Devuelve T, porque el número de serie valor es igual al número de serie máx:
El número de serie 42003,500000 es mayor que 42003,000000 y por lo tanto está fuera del rango, a pesar
de que las dos fechas son idénticas. 0.500000 es el número de serie que equivale a 12:00 PM.
AAAAMMDD `20141231`
AAMMDD `141231`
AAAAMMDD hhmmss `20141231 235959`
AAMMDDthhmm `141231t2359`
AAAAMMDDThh `20141231T23`
AAAAMMDD hhmmss+/-hhmm `20141231 235959-0500`
(desplazamiento de UTC)
AAMMDD hhmm+/-hh `141231 2359+01`
(desplazamiento de UTC)
thhmmss `t235959`
Thhmm `T2359`
Nota
No use solo hh en el formato de la hora
principal con datos que tienen un des-
plazamiento del UTC. Por ejemplo, evite:
hh+hhmm. Los resultados pueden no ser
confiables.
Función BINTOSTR( )
Devuelve datos de caracteres Unicode convertidos a partir de datos de caracteres ZONED o EBCDIC. Abre-
viatura de “Binario a cadena”, en inglés.
Nota:
Esta función es específica de la edición Unicode de ACL. No es una función admitida en la
edición no Unicode.
Sintaxis
BINTOSTR(cadena; tipo_de_cadena)
Parámetros
Nombre Tipo Descripción
tipo_de_cadena carácter El formato desde el cual se debe realizar la conversión. Debe espe-
cificar uno de los siguientes valores:
o "A": convertir a partir de datos ZONED (ASCII)
o "E": convertir a partir de datos EBCDIC
Salida
Carácter.
Ejemplos
Ejemplos básicos
La expresión ZONED(-6448;4) convierte el valor -6448 al formato de caracteres "644Q"; sin embargo, la
edición Unicode de ACL requiere que convierta la salida de ZONED( ) a caracteres Unicode con
BINTOSTR( ).
Devuelve "644Q" en formato Unicode:
BINTOSTR(ZONED(-6448;4); "A")
Observaciones
Cuándo usar BINTOSTR( )
Utilice esta función para convertir los valores devueltos por las funciones ZONED( ) y EBCDIC( ) a un
valor Unicode.
Nota
Si esta función no se aplica a los valores devueltos de ZONED( ) y EBCDIC( ) en las edi-
ciones Unicode de ACL, entonces se muestran incorrectamente porque la codificación no
se interpreta correctamente.
Función BIT( )
Devuelve la representación binaria de la posición de bytes especificada en el registro actual como una
cadena de ocho caracteres.
Sintaxis
BIT(ubicación_de_byte)
Parámetros
Nombre Tipo Descripción
ubicación_de_byte numérico La posición de byte que se debe devolver como un valor binario.
Salida
Carácter.
Ejemplos
Ejemplos básicos
Devuelve "00110001" si el octavo byte contiene "1":
BIT(8)
BIT(9)
BIT(17)
Ejemplos avanzados
Uso de BIT ( ) y SUBSTRING ( ) para extraer un valor
suponga que la posición de byte 17 contiene una cadena de 8 indicadores de crédito.
Para extraer todos los registros de clientes que tienen el tercer bit configurado a uno (que significa “no
enviar”), especifique:
En este ejemplo, la función SUBSTRING( ) se utiliza para extraer el valor del tercer bit.
Observaciones
Cómo funciona
BIT( ) convierte el byte en la posición de byte especificada en una cadena de ocho caracteres de unos y
ceros.
Funciones relacionadas
Si desea recuperar el carácter en la posición de byte especificado, utilice la función BYTE( ).
Función BLANKS( )
Devuelve una cadena que contiene un determinado número de espacios en blanco.
Sintaxis
BLANKS(recuento)
Parámetros
Nombre Tipo Descripción
Salida
Carácter.
Ejemplos
Ejemplos básicos
Devuelve " ":
BLANKS(5)
Devuelve "ACL Services":
Observaciones
Cuándo usar BLANKS( )
Use la función BLANKS( ) para unificar campos, inicializar variables en scripts o insertar espacios en
blanco al formatear campos o en la concatenación de cadenas.
Función BYTE( )
Devuelve el carácter almacenado en la ubicación de byte especificada en el registro actual.
Sintaxis
BYTE(ubicación_de_byte)
Parámetros
Nombre Tipo Descripción
ubicación_de_byte numérico La posición de byte que se debe devolver como un valor de carácter.
El valor se refiere a la ubicación en el registro (contando desde 1),
independientemente de cualquier definición de campo.
Salida
Carácter.
Ejemplos
Ejemplos básicos
Devuelve "1" desde un registro que comienza con un campo de ID que contiene "1":
byte(112)
Ejemplos avanzados
Identificar registros en archivos de impresión o PDF sobre la base del formato uniforme
Utilice la función BYTE( ) para identificar registros en un archivo de datos en el cual hay un carácter en par-
ticular presente en una ubicación particular de byte. Esto ocurre normalmente en archivos de imagen de
impresión (Reporte) o archivos de Adobe Acrobat (PDF) en donde los datos se formatean de forma
Observaciones
Cuándo usar BYTE( )
Utilice BYTE( ) para examinar el contenido de una posición en un registro, sin necesidad de definir un
campo para tal fin.
Funciones relacionadas
Si desea recuperar la representación binaria para la ubicación de byte especificada, utilice la función BIT(
).
Función CDOW( )
Devuelve el nombre del día de la semana de una fecha o fechahora especificada. Abreviatura de la expre-
sión "Día de la semana en caracteres", en inglés.
Sintaxis
CDOW(fecha/fechahora; longitud)
Parámetros
Nombre Tipo Descripción
fecha/fechahora fechahora El campo, expresión o valor literal del cual se devuelve el nombre del
día.
Salida
Carácter.
Ejemplos
Ejemplos básicos
Devuelve "Miércoles" porque el 31 de diciembre de 2014 es un miércoles y la longitudes 9:
CDOW(`20141231`; 9)
CDOW(`20141231 235959`; 3)
Devuelve el nombre completo del día para cada valor del campo Fecha_de_factura:
CDOW(Fecha_de_factura ; 9)
Devuelve el nombre abreviado del día para cada valor del campo Marca_de_hora_recepción:
CDOW(Marca_de_hora_recepción ; 3)
Ejemplos avanzados
Agregar un campo que identifique los días de la semana para las fechas
Utilice la función CDOW( ) para crear un campo calculado que identifique los días de la semana para
todas las fechas de un campo de fecha. Una vez que haya creado el campo calculado, puede agregarlo a
la vista junto a la columna de la fecha:
Creación de un filtro para probar las transacciones que ocurrieron en un fin de semana
Utilice la función CDOW ( ) para crear un filtro que aísle las transacciones que ocurrieron en un fin de
semana:
Observaciones
Detalles del parámetro
Un campo especificado para fecha/fechahora puede utilizar cualquier formato de fecha o fechahora, siem-
pre que la definición del campo establezca correctamente el formato.
Si el parámetro longitud es más corto que el nombre del día, el nombre del día se trunca según la longitud
especificada. Si el parámetro longitud es más largo que el nombre del día, el nombre del día se rellena con
espacios en blanco.
l Valores de fechahora: puede utilizar cualquier combinación de formatos de fecha, separador y hora
de la siguiente tabla. La fecha debe preceder a la hora y se debe utilizar un separador entre las dos.
Los separadores válidos son un espacio en blanco, la letra 't' o la letra 'T'.
l Valores de hora: debe especificar las horas con el reloj de 24 horas. Los desplazamientos respecto
del Horario Universal Coordinado (UTC, por sus siglas en inglés) deben ir precedidos de un signo
más (+) o un signo menos (-).
AAAAMMDD `20141231`
AAMMDD `141231`
AAAAMMDD hhmmss `20141231 235959`
AAMMDDthhmm `141231t2359`
AAAAMMDDThh `20141231T23`
AAAAMMDD hhmmss+/-hhmm `20141231 235959-0500`
(desplazamiento de UTC)
AAMMDD hhmm+/-hh `141231 2359+01`
(desplazamiento de UTC)
Nota
No use solo hh en el formato de la hora
principal con datos que tienen un des-
plazamiento del UTC. Por ejemplo, evite:
hh+hhmm. Los resultados pueden no ser
confiables.
Funciones relacionadas
Si necesita devolver el día de la semana como un número (1 al 7), utilice DOW( ) en lugar de CDOW( ).
Función CHR( )
Devuelve el carácter asociado con el código ASCII especificado.
Sintaxis
CHR(número)
Parámetros
Nombre Tipo Descripción
Salida
Carácter.
Ejemplos
Ejemplos básicos
Devuelve "A":
CHR(65)
Devuelve "1":
CHR(49)
Ejemplos avanzados
Agregar el símbolo de libras esterlinas (£) a cada uno de los valores de un campo de moneda
Crear un campo calculado que agregue el símbolo de libras (código ASCII 163) antes de los importes del
Observaciones
Cuándo usar CHR( )
Utilice la función CHR( ) para devolver el carácter asociado a un código ASCII, incluyendo aquellos que no
se pueden introducir directamente desde un teclado o mostrar en pantalla. Con CHR( ), puede buscar cam-
pos o registros para determinar la existencia de estos caracteres específicos.
Referencia a NUL
Referencia a carácter ASCII NUL (nulo), CHR(0), puede producir resultados impredecibles porque ACL lo
utiliza como un calificador de texto y debe evitarse si es posible.
Funciones relacionadas
CHR( ) es la función inversa a ASCII ).
Función CLEAN( )
Reemplaza el primer carácter no válido de una cadena, y todos los caracteres subsiguientes, por espa-
cios en blanco.
Sintaxis
CLEAN(cadena <;caracteres_inválidos_extras>)
Parámetros
Nombre Tipo Descripción
caracteres_invá- carácter Los caracteres no válidos que usted desea eliminar de la cadena,
lidos_extras además de los caracteres no válidos predeterminados. Puede espe-
cificar más de un carácter no válido adicional:
opcional
" ,;\"
'"'
Salida
Carácter.
Ejemplos
Ejemplos básicos
Devuelve "ABC " ("ABC" seguido de cuatro espacios en blanco):
CLEAN("ABC%DEF";"%")
CLEAN("1234.56,111,2"; ",")
Observaciones
Cuándo usar CLEAN( )
Utilice esta función para asegurar que los campos que contienen datos no válidos se impriman correc-
tamente. También puede utilizar esta función para aislar partes de un campo, como el apellido en un campo
de cliente que incluye el nombre y apellido del cliente.
Función CMOY( )
Devuelve el nombre del mes de una fecha o fechahora especificada. Abreviatura de la expresión "Mes del
año en caracteres", en inglés.
Sintaxis
CMOY(fecha/fechahora; longitud)
Parámetros
Nombre Tipo Descripción
fecha/fechahora fechahora El campo, expresión o valor literal del cual se devuelve el nombre
del mes.
Salida
Carácter.
Ejemplos
Ejemplos básicos
Devuelve "Diciembre":
CMOY(`20141231`; 10)
Returns "Dic":
CMOY(`20141231 235959`; 3)
Devuelve el nombre abreviado del mes para cada valor del campo Marca_de_hora_recepción:
CMOY(Marca_de_hora_recepción; 3)
Devuelve el nombre completo del mes para cada valor del campo Fecha_de_factura:
CMOY(Fecha_de_factura ; 9)
Devuelve el nombre completo del mes 15 días después de cada valor en el campo Fecha_de_factura:
CMOY(Fecha_de_factura+15; 9)
Observaciones
Detalles del parámetro
Un campo especificado para fecha/fechahora puede utilizar cualquier formato de fecha o fechahora, siem-
pre que la definición del campo establezca correctamente el formato.
Si el parámetro longitud es más corto que el nombre del mes, el nombre del mes se trunca según la longitud
especificada. Si el parámetro longitud es más largo que el nombre del mes, el nombre del mes se rellena
con espacios en blanco.
AAAAMMDD `20141231`
AAMMDD `141231`
AAAAMMDD hhmmss `20141231 235959`
AAMMDDthhmm `141231t2359`
AAAAMMDDThh `20141231T23`
AAAAMMDD hhmmss+/-hhmm `20141231 235959-0500`
(desplazamiento de UTC)
AAMMDD hhmm+/-hh `141231 2359+01`
(desplazamiento de UTC)
Nota
No use solo hh en el formato de la hora
principal con datos que tienen un des-
plazamiento del UTC. Por ejemplo, evite:
hh+hhmm. Los resultados pueden no ser
confiables.
Funciones relacionadas
Si necesita devolver el mes del año como un número (1 al 12), utilice la función MONTH( ) en lugar de
CMOY( ).
Función COS( )
Devuelve el coseno de un ángulo expresado en radianes, con una precisión de 15 lugares decimales.
Sintaxis
COS(radianes)
Parámetros
Nombre Tipo Descripción
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 0,500000000000000 (la cantidad especificada de radianes):
COS(1,047197551196598)
Ejemplos avanzados
Uso de grados como información de entrada
Devuelve 0,500000000000000 (el coseno de 60 grados):
COS(60 * PI( )/180)
DEC(COS(60 * PI( )/180);3)
Observaciones
Realización de la Prueba de arco de la mantisa
as tres funciones trigonométricas de ACL – SIN( ), COS( ) y TAN( ) – permiten realizar la Prueba de arco
de la mantisa asociada con la Ley de Benford.
Función CTOD( )
Convierte un valor de fecha numérico o de caracteres en una fecha. También se puede extraer la fecha del
valor en caracteres o numérico de fechahora y devolverlo como una fecha. Abreviatura de la expresión
"Carácter a fecha", en inglés.
Sintaxis
CTOD(cadena/número <; formato>)
Parámetros
Nombre Tipo Descripción
cadena/número carácter El campo, expresión o el valor literal para convertir en una fecha o de
donde extraer la fecha.
numérico
Salida
Fechahora. La salida del valor fecha utiliza el formato de visualización de fecha actual de ACL.
Ejemplos
Ejemplos básicos
Información de entrada de caracteres literales
Devuelve `20141231` que se visualiza como 31 Dic 2014 suponiendo que el formato de visualización
actual de la fecha de ACL sea DD MMM AAAA:
CTOD("20141231")
CTOD("31/12/2014"; "DD/MM/YYYY")
CTOD("20141231 235959")
CTOD(20141231)
CTOD(31122014; "DDMMYYYY")
CTOD(20141231.235959)
CTOD(Fecha_de_factura; "DD/MM/YYYY")
CTOD(Marca_de_hora_recepción)
CTOD(Fecha_de_vencimiento; "DDMMYYYY")
CTOD(Marca_de_hora_pago)
Ejemplos avanzados
Comparar un campo de caracteres o numérico con una fecha
Utilice la función CTOD( ) para comparar una fecha con campos de caracteres o numéricos que contengan
valores que representan fechas.
El siguiente filtro compara dos valores:
l el campo numérico Fecha_de_vencimiento que almacena fechas como números con el formato
DDMMAAAA
l el valor de fecha literal 1 de julio de 2014
Observaciones
Formatos de fecha obligatorios
Los campos de caracteres y numéricos que contienen valores de fecha o fechahora deben coincidir con los
formatos en la siguiente tabla. Los valores de fechahora pueden utilizar cualquier combinación de formatos
de fecha, separador y hora válidos para su tipo de datos. La fecha debe preceder a la hora y se debe utilizar
un separador entre las dos.
Las fechas, o la porción fecha de los valores de fechahora, pueden utilizar cualquier formato de fecha admi-
tido por ACL y válido para el tipo de datos, siempre que los formatos distintos de AAAAMMDD o AAMMDD
estén correctamente definidos por formato.
Formatos de sepa-
Formatos de fecha radores Formatos de hora
Campos de caracteres
Formatos de sepa-
Formatos de fecha radores Formatos de hora
cualquier formato de fecha admitido por ACL, válido para el tipo de datos, la letra 'T' hh
si se ha definido por formato
+/-hhmm
+/-hh:mm
(desplazamiento
de UTC)
+/-hh
(desplazamiento
de UTC)
Formatos de sepa-
Formatos de fecha radores Formatos de hora
Nota
No use
solo hh
en el
for-
mato
de la
hora
prin-
cipal
con
datos
que tie-
nen un
des-
pla-
zamie-
nto del
UTC.
Por
ejem-
plo,
evite:
hh+hh-
mm.
Los
resul-
tados
pue-
den
ser
poco
fia-
bles).
Campos numéricos
AAMMDD hhmm
cualquier formato de fecha admitido por ACL, válido para el tipo de datos, hh
si se ha definido por formato
CTOT( ) Convierte un valor de caracteres o numérico de hora en una hora. También se puede extraer
la hora de un valor de caracteres o numérico de fechahora y devolverlo como una hora. Abre-
viatura de la expresión "Carácter a hora", en inglés.
DATE( ) Extrae la fecha a partir de una fecha o fechahora especificada y la devuelve como una
cadena de caracteres. También puede devolver la fecha actual del sistema operativo.
DATETIME( ) Convierte una fechahora en una cadena de caracteres. También puede devolver la
fechahora actual del sistema operativo.
TIME( ) Extrae la porción hora a partir de una hora o fechahora especificada y la devuelve como una
cadena de caracteres. También puede devolver la hora actual del sistema operativo.
STOD( ) Convierte una fecha de serie - es decir, una fecha expresada como un entero - a un valor de
fecha. Abreviatura de la expresión "Fecha de serie a fecha", en inglés.
STODT( ) Convierte una fechahora de serie - es decir, una fechahora expresada como un entero, y una
porción fraccionaria de 24 horas - en un valor de fechahora. Abreviatura de la expresión
"Fecha de serie a fechahora", en inglés.
STOT( ) Convierte una hora de serie - es decir, una hora expresada como una porción fraccionaria de
24 horas, con 24 horas equivalentes a 1 - en un valor de hora. Abreviatura de la expresión
"Hora de serie a hora", en inglés.
Función CTODT( )
Convierte un valor de caracteres o numérico de fechahora en una fechahora. Abreviatura de la expresión
"Carácter a fechahora", en inglés.
Sintaxis
CTODT(string/number <;formato>)
Parámetros
Nombre Tipo Descripción
Salida
Fechahora. La salida del valor fechahora utiliza los formatos de visualización de fecha y hora actuales de
ACL.
Ejemplos
Ejemplos básicos
Información de entrada de caracteres literales
Devuelve `20141231t235959` que se visualiza como 31 Dic 2014 23:59:59 suponiendo que la visualización
actual de la fecha de ACL sea DD MMM AAAA y hh:mm:ss:
CTODT("20141231 235959")
CTODT(20141231,235959)
CTODT(31122014,235959; "DDMMYYYY.hhmmss")
CTODT(Marca_de_hora_recepción; "DD/MM/YYYY hh:mm:ss")
CTODT(Marca_de_hora_pagado; "DD/MM/YYYY hh:mm:ss")
Ejemplos avanzados
Comparar un campo de caracteres o numérico con una fechahora
Utilice la función CTODT( ) para comparar una fechahora con campos de caracteres o numéricos que con-
tengan valores que representan fechahoras.
El siguiente filtro compara dos valores:
l el campo de caracteres Marca_de_hora_pagado que almacena fechahoras como datos de carac-
teres con el formato DD/MM/AAAA hh:mm:ss
l el valor de fechahora literal 1 de julio de 2014 13:30:00
Observaciones
Formatos de fechahora requeridos
Los campos de caracteres y numéricos que contienen valores de fechahora deben coincidir con los for-
matos en la siguiente tabla. Los valores de fechahora pueden utilizar cualquier combinación de formatos de
fecha, separador y hora válidos para su tipo de datos. La fecha debe preceder a la hora y se debe utilizar un
separador entre las dos.
La porción fecha de los valores puede utilizar cualquier formato de fecha admitido por ACL y válido para el
tipo de datos, siempre que los formatos distintos de AAAAMMDD o AAMMDD estén correctamente defi-
nidos por formato. Si utiliza formato, también debe especificar el formato de la hora, que debe ser uno de
los formatos de hora que aparecen en la siguiente tabla.
ACL reconoce automáticamente el separador entre las porciones de fecha y hora de los valores de
fechahora, así que no hay necesidad de especificar el separador en formato. Puede especificar el sepa-
rador si lo desea.
Formatos de sepa-
Formatos de fecha radores Formatos de hora
Campos de caracteres
cualquier formato de fecha admitido por ACL, válido para el tipo de datos, la letra 'T' hh
si se ha definido por formato
+/-hhmm
+/-hh:mm
(desplazamiento
de UTC)
+/-hh
(desplazamiento
de UTC)
Formatos de sepa-
Formatos de fecha radores Formatos de hora
Nota
No use
solo hh
en el
for-
mato
de la
hora
prin-
cipal
con
datos
que tie-
nen un
des-
pla-
zamie-
nto del
UTC.
Por
ejem-
plo,
evite:
hh+hh-
mm.
Los
resul-
tados
pue-
den
ser
poco
fia-
bles).
Campos numéricos
AAMMDD hhmm
cualquier formato de fecha admitido por ACL, válido para el tipo de datos, hh
si se ha definido por formato
CTOD( ) Convierte un valor de fecha numérico o de caracteres en una fecha. También se puede extraer
la fecha del valor en caracteres o numérico de fechahora y devolverlo como una fecha. Abre-
viatura de la expresión "Carácter a fecha", en inglés.
CTOT( ) Convierte un valor de caracteres o numérico de hora en una hora. También se puede extraer
la hora de un valor de caracteres o numérico de fechahora y devolverlo como una hora. Abre-
viatura de la expresión "Carácter a hora", en inglés.
DATE( ) Extrae la fecha a partir de una fecha o fechahora especificada y la devuelve como una cadena
de caracteres. También puede devolver la fecha actual del sistema operativo.
DATETIME( ) Convierte una fechahora en una cadena de caracteres. También puede devolver la fechahora
actual del sistema operativo.
TIME( ) Extrae la porción hora a partir de una hora o fechahora especificada y la devuelve como una
cadena de caracteres. También puede devolver la hora actual del sistema operativo.
STOD( ) Convierte una fecha de serie - es decir, una fecha expresada como un entero - a un valor de
fecha. Abreviatura de la expresión "Fecha de serie a fecha", en inglés.
STODT( ) Convierte una fechahora de serie - es decir, una fechahora expresada como un entero, y una
porción fraccionaria de 24 horas - en un valor de fechahora. Abreviatura de la expresión
"Fecha de serie a fechahora", en inglés.
STOT( ) Convierte una hora de serie - es decir, una hora expresada como una porción fraccionaria de
24 horas, con 24 horas equivalentes a 1 - en un valor de hora. Abreviatura de la expresión
"Hora de serie a hora", en inglés.
Función CTOT( )
Convierte un valor de caracteres o numérico de hora en una hora. También se puede extraer la hora de
un valor de caracteres o numérico de fechahora y devolverlo como una hora. Abreviatura de la expresión
"Carácter a hora", en inglés.
Sintaxis
CTOT(cadena/número)
Parámetros
Nombre Tipo Descripción
cadena/número carácter El campo, expresión o el valor literal para convertir en una hora o de
donde extraer la hora.
numérico
Salida
Fechahora. La salida del valor hora utiliza el formato de visualización de la hora actual de ACL.
Ejemplos
Ejemplos básicos
Información de entrada de caracteres literales
Devuelve `t235959` que se visualiza como 23:59:59 suponiendo que el formato de visualización actual de
la hora de ACL sea hh:mm:ss:
CTOT("t235959")
CTOT("23:59:59")
CTOT("20141231 235959")
CTOT(,235959)
CTOT(0,235959)
CTOT(20141231,235959)
CTOT(Hora_de_acceso)
CTOT(Marca_de_hora_pagado)
Ejemplos avanzados
Compare un campo de caracteres o numérico con una hora
Utilice la función CTOT( ) para comparar una hora con campos de caracteres o numéricos que contengan
valores que representan horas.
El siguiente filtro compara dos valores:
l el campo numérico Hora_de_acceso que almacena horas como datos numéricos
l el valor de hora literal 09:30:00
Observaciones
Formatos de fechahora requeridos
Los campos de caracteres y numéricos que contienen valores de hora o fechahora deben coincidir con los
formatos en la siguiente tabla.
Los valores de hora pueden utilizar cualquier formato que combine separador y hora. Debe haber un sepa-
rador antes del valor de la hora, o dos puntos entre los componentes de la hora, para que la función opere
correctamente.
Los valores de fechahora pueden utilizar cualquier combinación de formatos de fecha, separador y hora
válidos para su tipo de datos. La fecha debe preceder a la hora y se debe utilizar un separador entre las
dos.
Utilice la función CTOD ( ) si desea convertir un valor fecha de caracteres o numérico en una fecha o
extraer la fecha de un valor fechahora de caracteres o numérico y devolverlo como una fecha.
Utilice la función CTODT( ) si desea convertir un valor fechahora de caracteres o numérico en una
fechahora.
Campos de caracteres
la letra 'T' hh
+/-hhmm
+/-hh:mm
(desplazamiento de UTC)
+/-hh
(desplazamiento de UTC)
Nota:
No use solo hh en el formato
de la hora principal con
datos que tienen un des-
plazamiento del UTC. Por
ejemplo, evite: hh+hhmm.
Los resultados pueden ser
poco fiables).
Campos numéricos
AAMMDD hhmm
hh
CTOD( ) Convierte un valor de fecha numérico o de caracteres en una fecha. También se puede extraer
la fecha del valor en caracteres o numérico de fechahora y devolverlo como una fecha. Abre-
viatura de la expresión "Carácter a fecha", en inglés.
DATE( ) Extrae la fecha a partir de una fecha o fechahora especificada y la devuelve como una cadena
de caracteres. También puede devolver la fecha actual del sistema operativo.
DATETIME( ) Convierte una fechahora en una cadena de caracteres. También puede devolver la fechahora
actual del sistema operativo.
TIME( ) Extrae la porción hora a partir de una hora o fechahora especificada y la devuelve como una
cadena de caracteres. También puede devolver la hora actual del sistema operativo.
STOD( ) Convierte una fecha de serie - es decir, una fecha expresada como un entero - a un valor de
fecha. Abreviatura de la expresión "Fecha de serie a fecha", en inglés.
STODT( ) Convierte una fechahora de serie - es decir, una fechahora expresada como un entero, y una
porción fraccionaria de 24 horas - en un valor de fechahora. Abreviatura de la expresión
"Fecha de serie a fechahora", en inglés.
STOT( ) Convierte una hora de serie - es decir, una hora expresada como una porción fraccionaria de
24 horas, con 24 horas equivalentes a 1 - en un valor de hora. Abreviatura de la expresión
"Hora de serie a hora", en inglés.
Función CUMIPMT( )
Devuelve el interés acumulado que se pagó por un préstamo durante un intervalo de períodos.
Sintaxis
CUMIPMT(tasa; períodos; cantidad; período_inicial; período_final <;tipo>)
Parámetros
Nombre Tipo Descripción
Nota
Debe usar períodos de tiempo uniformes al especificar la tasa y los períodos a fin de ase-
gurarse de estar especificando la tasa de interés por período.
Por ejemplo:
l para pagos mensuales en una inversión o un préstamo a dos años, con un interés
del 5 % anual, especifique 0.05/12 para la tasa y 2 * 12 para los períodos
l para pagos anuales del mismo préstamo o inversión, especifique 0.05 para la tasa y
2 para los períodos
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 17437,23, el monto total de los intereses pagados durante el segundo año de una hipoteca de
$275.000 a 25 años e intereses del 6,5 % anual, con pagos que vencen a fin de mes:
Devuelve 1774,31, la cantidad de intereses pagados sobre el mismo préstamo en el primer año del prés-
tamo:
Observaciones
Funciones relacionadas
La función CUMPRINC( ) es el complemento de la función CUMIPMT( ).
La función IPMT( ) calcula el interés pagado para un único período.
Función CUMPRINC( )
Devuelve el capital acumulado que se pagó por un préstamo durante un intervalo de períodos.
Sintaxis
CUMPRINC(tasa; períodos; cantidad; período_inicial; período_final <;tipo>)
Parámetros
Nombre Tipo Descripción
Nota
Debe usar períodos de tiempo uniformes al especificar la tasa y los períodos a fin de ase-
gurarse de estar especificando la tasa de interés por período.
Por ejemplo:
l para pagos mensuales en una inversión o un préstamo a dos años, con un interés
del 5 % anual, especifique 0.05/12 para la tasa y 2 * 12 para los períodos
l para pagos anuales del mismo préstamo o inversión, especifique 0.05 para la tasa y
2 para los períodos
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 4844,61, el monto total del capital pagado durante el segundo año de un préstamo de $275.000
al 6,5 % anual, con pagos que vencen a fin de mes:
Devuelve 367,24, el monto del capital pagado por el mismo préstamo en el primer mes del préstamo:
Observaciones
Funciones relacionadas
La función CUMIPMT( ) es el complemento de la función CUMPRINC( ).
La función PPMT( ) calcula el capital pagado para un único período.
Función DATE( )
Extrae la fecha a partir de una fecha o fechahora especificada y la devuelve como una cadena de carac-
teres. También puede devolver la fecha actual del sistema operativo.
Sintaxis
DATE(< fecha/fechahora> <;formato>)
Parámetros
Nombre Tipo Descripción
formato carácter El formato que se debe aplicar a la cadena de salida, por ejemplo
"DD/MM/AAAA". Si se omite, se utiliza el formato de visualización de la
opcional
fecha actual de ACL. No puede especificar un formato si ha omitido
fecha/fechahora.
Salida
Carácter.
Ejemplos
Ejemplos básicos
Devuelve "20141231" en el formato de visualización de fecha actual de ACL:
DATE(`20141231 235959`)
Devuelve "31-Dic-2014":
Devuelve la fecha actual del sistema operativo como una cadena de caracteres, utilizando el formato de
visualización de la fecha actual de ACL
DATE()
Devuelve cada valor del campo Marca_de_hora_recepción como una cadena de caracteres, utilizando el
formato de visualización de la fecha actual de ACL:
DATE(Marca_de_hora_recepción)
Devuelve cada valor del campo Marca_de_hora_recepción como una cadena de caracteres utilizando el
formato de visualización de fecha especificado:
DATE(Marca_de_hora_recepción; "DD/MM/YYYY")
Observaciones
Longitud de la cadena de salida
La longitud de la cadena de salida es siempre de 12 caracteres. Si el formato de salida especificado, o el
formato de visualización de la fecha de ACL, tiene menos de 12 caracteres, la cadena de salida se rellena
con espacios finales en blanco.
No utilice ningún separador, como barras (/) o dos puntos (:), entre los componentes individuales de fechas
u horas.
l Valores de fechahora: puede utilizar cualquier combinación de formatos de fecha, separador y hora
de la siguiente tabla. La fecha debe preceder a la hora y se debe utilizar un separador entre las dos.
Los separadores válidos son un espacio en blanco, la letra 't' o la letra 'T'.
l Valores de hora: debe especificar las horas con el reloj de 24 horas. Los desplazamientos respecto
del Horario Universal Coordinado (UTC, por sus siglas en inglés) deben ir precedidos de un signo
más (+) o un signo menos (-).
AAAAMMDD `20141231`
AAMMDD `141231`
AAAAMMDD hhmmss `20141231 235959`
AAMMDDthhmm `141231t2359`
AAAAMMDDThh `20141231T23`
AAAAMMDD hhmmss+/-hhmm `20141231 235959-0500`
(desplazamiento de UTC)
AAMMDD hhmm+/-hh `141231 2359+01`
(desplazamiento de UTC)
Nota
No use solo hh en el formato de la hora
principal con datos que tienen un des-
plazamiento del UTC. Por ejemplo, evite:
hh+hhmm. Los resultados pueden no ser
confiables.
Funciones relacionadas
Si necesita devolver la fecha actual del sistema operativo como un valor de fechahora, utilice TODAY( ) en
lugar de DATE( ).
DATETIME( ) Convierte una fechahora en una cadena de caracteres. También puede devolver la
fechahora actual del sistema operativo.
TIME( ) Extrae la porción hora a partir de una hora o fechahora especificada y la devuelve como una
cadena de caracteres. También puede devolver la hora actual del sistema operativo.
CTOD( ) Convierte un valor de fecha numérico o de caracteres en una fecha. También se puede
extraer la fecha del valor en caracteres o numérico de fechahora y devolverlo como una
fecha. Abreviatura de la expresión "Carácter a fecha", en inglés.
CTOT( ) Convierte un valor de caracteres o numérico de hora en una hora. También se puede extraer
la hora de un valor de caracteres o numérico de fechahora y devolverlo como una hora. Abre-
viatura de la expresión "Carácter a hora", en inglés.
STOD( ) Convierte una fecha de serie - es decir, una fecha expresada como un entero - a un valor de
fecha. Abreviatura de la expresión "Fecha de serie a fecha", en inglés.
STODT( ) Convierte una fechahora de serie - es decir, una fechahora expresada como un entero, y una
porción fraccionaria de 24 horas - en un valor de fechahora. Abreviatura de la expresión
"Fecha de serie a fechahora", en inglés.
STOT( ) Convierte una hora de serie - es decir, una hora expresada como una porción fraccionaria de
24 horas, con 24 horas equivalentes a 1 - en un valor de hora. Abreviatura de la expresión
"Hora de serie a hora", en inglés.
Función DATETIME( )
Convierte una fechahora en una cadena de caracteres. También puede devolver la fechahora actual del sis-
tema operativo.
Sintaxis
DATETIME(< fechahora> <;formato>)
Parámetros
Nombre Tipo Descripción
formato carácter El formato que se debe aplicar a la cadena de salida, por ejemplo
"DD/MM/AAAA". Si se omite, se utiliza el formato de visualización de la
opcional
fecha actual de ACL. No puede especificar un formato si ha omitido
fecha/fechahora.
Salida
Carácter.
Ejemplos
Ejemplos básicos
Valor de entrada de fechahora literal
Devuelve "20141231 235959" en los formatos de visualización de fecha y hora actuales de ACL:
DATETIME(`20141231 235959`)
Devuelve la fecha y la hora actual del sistema operativo como una cadena de caracteres, utilizando los for-
matos de visualización actuales de la fecha y la hora de ACL:
DATETIME()
DATETIME(Marca_de_hora_recepción)
Devuelve cada valor del campo Marca_de_hora_recepción como una cadena de caracteres utilizando
los formatos de visualización de fecha y hora especificados:
Observaciones
Longitud de la cadena de salida
La longitud de la cadena de salida es siempre de 27 caracteres. Si el formato de salida especificado, o los
formatos de visualización de la fecha y hora de ACL, tienen menos de 27 caracteres, la cadena de salida
se rellena con espacios finales en blanco.
Formatos de Formatos
Formatos de fecha hora AM/PM Ejemplos
todos los formatos de visualización de fecha admitidos hh:mm:ss ninguno "DD/MM/AAAA hh:-
por ACL mm:ss"
reloj de 24
horas
hhmm
hh
AAAAMMDD hhmmss `20141231 235959`
AAMMDDthhmm `141231t2359`
AAAAMMDDThh `20141231T23`
AAAAMMDD hhmmss+/-hhmm `20141231 235959-0500`
(desplazamiento de UTC)
AAMMDD hhmm+/-hh `141231 2359+01`
(desplazamiento de UTC)
Nota
No use solo hh en el formato de la hora
principal con datos que tienen un des-
plazamiento del UTC. Por ejemplo, evite:
hh+hhmm. Los resultados pueden no ser
confiables.
DATE( ) Extrae la fecha a partir de una fecha o fechahora especificada y la devuelve como una
cadena de caracteres. También puede devolver la fecha actual del sistema operativo.
TIME( ) Extrae la porción hora a partir de una hora o fechahora especificada y la devuelve como una
cadena de caracteres. También puede devolver la hora actual del sistema operativo.
CTOD( ) Convierte un valor de fecha numérico o de caracteres en una fecha. También se puede
extraer la fecha del valor en caracteres o numérico de fechahora y devolverlo como una
fecha. Abreviatura de la expresión "Carácter a fecha", en inglés.
CTOT( ) Convierte un valor de caracteres o numérico de hora en una hora. También se puede extraer
la hora de un valor de caracteres o numérico de fechahora y devolverlo como una hora. Abre-
viatura de la expresión "Carácter a hora", en inglés.
STOD( ) Convierte una fecha de serie - es decir, una fecha expresada como un entero - a un valor de
fecha. Abreviatura de la expresión "Fecha de serie a fecha", en inglés.
STODT( ) Convierte una fechahora de serie - es decir, una fechahora expresada como un entero, y una
Función Descripción
STOT( ) Convierte una hora de serie - es decir, una hora expresada como una porción fraccionaria de
24 horas, con 24 horas equivalentes a 1 - en un valor de hora. Abreviatura de la expresión
"Hora de serie a hora", en inglés.
Función DAY( )
Extrae el día del mes a partir de una fecha o fechahora especificada y la devuelve como un valor numérico
(1 a 31).
Sintaxis
DAY(fecha/fechahora)
Parámetros
Nombre Tipo Descripción
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 31:
DAY(`20141231`)
DAY(`20141231 235959`)
DAY(Fecha_de_factura)
Observaciones
Detalles del parámetro
Un campo especificado para fecha/fechahora puede utilizar cualquier formato de fecha o fechahora, siem-
pre que la definición del campo establezca correctamente el formato.
AAAAMMDD `20141231`
AAMMDD `141231`
AAAAMMDD hhmmss `20141231 235959`
AAMMDDthhmm `141231t2359`
AAAAMMDDThh `20141231T23`
AAAAMMDD hhmmss+/-hhmm `20141231 235959-0500`
(desplazamiento de UTC)
AAMMDD hhmm+/-hh `141231 2359+01`
(desplazamiento de UTC)
Nota
No use solo hh en el formato de la hora
principal con datos que tienen un des-
plazamiento del UTC. Por ejemplo, evite:
hh+hhmm. Los resultados pueden no ser
confiables.
Funciones relacionadas
Si necesita devolver:
l el día de la semana como un número (1 al 7), utilice DOW( ) en lugar de CDOW( )
l el nombre del día de la semana, utilice CDOW( ) en lugar de DAY( )
Función DBYTE( )
Devuelve el carácter Unicode que se encuentra en la posición de byte especificada en un registro.
Nota
Esta función es específica de la edición Unicode de ACL. No es una función admitida en la
edición no Unicode.
Sintaxis
DBYTE(ubicación_de_byte)
Parámetros
Nombre Tipo Descripción
ubicación_de_byte numérico La posición de byte que se debe devolver como un valor de carácter.
Para devolver un valor significativo, debe especificar el punto de inicio
de los caracteres de doble byte, lo que significa que sólo debe espe-
cificar números impares en el parámetro ubicación_de_byte.
Salida
Carácter.
Ejemplos
Ejemplos básicos
Los ejemplos ilustran el comportamiento de la función cuando se aplica al siguiente valor de campo de Uni-
code, que contiene 11 caracteres (22 bytes) 美丽 10072DOE:
Devuelve "丽 ":
DBYTE(3)
Devuelve "D":
DBYTE(17)
Devuelve "E":
DBYTE(21)
Observaciones
Cuándo usar DBYTE( )
Utilice DBYTE( ) para examinar el contenido de una posición en un registro, sin necesidad de definir un
campo para este fin.
Función DEC( )
Devuelve una expresión numérica con una cantidad de posiciones decimales especificada.
Sintaxis
DEC(número; decimales)
Parámetros
Nombre Tipo Descripción
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 7,00:
DEC(7; 2)
Devuelve 7,565:
DEC(7,5647; 3)
Ejemplos avanzados
Calcular el interés diario
Calcula el interés diario con seis decimales para un campo denominado Tasa_anual :
DEC(Tasa_anual; 6) / 365
Observaciones
Cuándo usar DEC( )
Utilice esta función cuando desee ajustar los lugares decimales en cálculos matemáticos o cuando desee
redondear un resultado a una cantidad especificada de lugares decimales.
Funciones relacionadas
Si desea redondear un valor al número entero más cercano, utilice la función ROUND( ).
Función DHEX( )
Convierte una cadena Unicode en una cadena hexadecimal.
Nota:
Esta función es específica de la edición Unicode de ACL. No es una función admitida en la
edición no Unicode.
Sintaxis
DHEX(campo)
Parámetros
Nombre Tipo Descripción
Salida
Carácter.
Ejemplos
Ejemplos básicos
Devuelve "004100420043003100320033":
DHEX("ABC123")
Observaciones
Cómo funciona
DHEX( ) muestra cada doble byte en formato "big-endian", con los doble bytes más significativos alma-
cenados primero.
Cada carácter se representa mediante un código de cuatro caracteres. La cadena de salida es cuatro
veces más larga que el valor del campo e incluye los dígitos entre 0 y 9, y las letras entre A y F que con-
forman los valores hexadecimales.
Funciones relacionadas
DHEX( ) es la función inversa de la función HTOU( ), que convierte la cadena hexadecimal en una cadena
Unicode.
Función DICECOEFFICIENT( )
Devuelve el Coeficiente de Dice de dos cadenas especificadas, que es una medida de la similitud entre
ambas cadenas.
Sintaxis
DICECOEFFICIENT(cadena1; cadena2 <;ngrama>)
Parámetros
Nombre Tipo Descripción
Salida
Numérico. El valor es el Coeficiente de Dice de las dos cadenas. El rango es de 0,0000 a 1,0000, inclusive.
Ejemplos
Ejemplos básicos
Cómo afecta el resultado la longitud del n-grama
Los tres ejemplos que se incluyen a continuación comparan las mismas dos cadenas. El grado de simi-
litud que se obtiene varía según la longitud de n-grama que se especificó.
Devuelve 0,9167 (con la longitud predeterminada de n-grama (2), las dos cadenas tienen una similitud del
92 %):
Devuelve 1,0000 (con una longitud de n-grama de 1, las dos cadenas tienen una similitud del 100 %):
Devuelve 0,8261 (con una longitud de n-grama de 3, las dos cadenas tienen una similitud del 83 %):
Ejemplos avanzados
Trabajo con elementos transpuestos
Al reducir la longitud de n-grama y eliminar los caracteres que no son esenciales, puede optimizar
DICECOEFFICIENT( ) al buscar elementos transpuestos.
Devuelve 0,7368 (con la longitud predeterminada de n-grama (2), las dos cadenas tienen una similitud del
74 %):
Devuelve 1,0000 (al excluir la coma entre el apellido y el nombre, con una longitud de n-grama de 1, las dos
cadenas tienen una similitud del 100 %):
Calificación de los valores en comparación con "125 SW 39TH ST, Suite 100"
Cree el campo calculado Co_Dice para mostrar el Coeficiente de Dice entre "125 SW 39TH ST, Suite 100"
y cada uno de los valores del campo Dirección:
Agregue el campo calculado Co_Dice a la vista y, a continuación, ordene rápidamente de forma des-
cendente para calificar los valores del campo Dirección sobre la base de su similitud con "125 SW 39TH
ST, Suite 100".
SET FILTER TO DICECOEFFICIENT(Dirección; "125 SW 39TH ST, Suite 100") > 0,5
Cambiar el número de la expresión le permite ajustar el grado de similitud en los valores filtrados.
Observaciones
Cuándo usar DICECOEFFICIENT( )
Utilice DICECOEFFICIENT( ) para buscar valores casi idénticos (duplicados inexactos). También puede uti-
lizar DICECOEFFICIENT( ) para buscar valores con contenido idéntico o casi idéntico, pero con elementos
traspuestos. Por ejemplo:
l números de teléfono o números de seguridad social, con dígitos traspuestos
l versiones del mismo domicilio, con diferente formato
Cómo funciona
DICECOEFFICIENT( ) devuelve el Coeficiente de Dice de las dos cadenas que se evaluaron, que es una
medida del grado de similitud entre las cadenas, expresado en una escala de 0,0000 al 1,0000. Cuanto
mayor es el valor que se obtiene, mayor es la similitud entre las dos cadenas:
l 1,0000: significa que cada cadena está compuesta por un conjunto de caracteres idéntico, aunque
estos puedan estar en un orden diferente y presentar diferencias en el uso de mayúsculas y minús-
culas.
l 0,7500: significa que las dos cadenas tienen una similitud del 75 %.
l 0,0000: significa que las dos cadenas no comparten ningún n-grama (se explica a continuación) o
que la longitud especificada para el n-grama que se usó en el cálculo es más larga que la cadena
más corta del par de cadenas que se están comparando.
Consejos de uso
l Filtrar u ordenar: Filtrar u ordenar los valores de un campo sobre la base de su Coeficiente de Dice
identifica los valores más similares a la cadena de comparación.
l Distinción entre mayúsculas y minúsculas: Esta función no distingue entre mayúsculas y minús-
culas; por lo tanto "SMITH" es equivalente a "smith".
l Espacios en blanco al principio y al final: La función recorta automáticamente los espacios en
blanco al principio y al final de los campos, por lo que no es necesario utilizar las funciones TRIM( )
u ALLTRIM( ) cuando se especifica un campo como un parámetro.
l Eliminación de elementos genéricos: Las funciones OMIT( ) y EXCLUDE( ) pueden mejorar la efi-
cacia de la función DICECOEFFICIENT( ) quitando elementos genéricos como "Corporación" o
"Inc.", o caracteres como comas, puntos y signos et (&) de los valores del campo.
La eliminación de los elementos genéricos y la puntuación centra la comparación de cadenas de
DICECOEFFICIENT( ) solo en la parte de las cadenas donde puede haber una diferencia sig-
nificativa.
Longitud de n-
grama "John Smith" n-gramas "Smith, John D." n-gramas
2 Jo | oh | hn | n_ | _S | Sm | mi | it | th Sm | mi | it | th | h, | ,_ | _J | Jo | oh | hn | n_ | _D | D.
3 Joh | ohn | hn_ | n_S | _Sm | Smi | mit Smi | mit | ith | th, | h,_ | ,_J | _Jo | Joh | ohn | hn_ | n_D
| ith | _D.
2 Jo | oh | hn | n_ | _S | Sm Sm | mi | it | th | h, | ,_ | _J | Jo | oh | hn 8 2x8 / (9+13)
| mi | it | th | n_ | _D | D. = 0,7273
(predeterminado)
(9 n-gramas) (13 n-gramas)
3 Joh | ohn | hn_ | n_S | _ Smi | mit | ith | th, | h,_ | ,_J | _Jo | Joh 6 2x6 / (8+12)
Sm | Smi | mit | ith | ohn | hn_ | n_D | _D. = 0,6000
(8 n-gramas) (120 n-gramas)
4 John | ohn_ | hn_S | n_ Smit | mith | ith, | th,_ | h,_J | ,_Jo | _ 4 2x4 / (7+11)
Sm | _Smi | Smit | mith Joh | John | ohn_ | hn_D | n_D. = 0,4444
(7 n-gramas) (11 n-gramas)
Coeficiente de Dice
(valor predeterminado de n-grama
Par de domicilios de 2) Distancia de Levenshtein
Coeficiente de Dice
(valor predeterminado de n-grama
Par de nombres corporativos de 2) Distancia de Levenshtein
Función DIGIT( )
Devuelve el dígito superior o inferior de un byte del tipo dato Packed (compactado) especificado.
Sintaxis
DIGIT(ubicación_de_byte; posición)
Parámetros
Nombre Tipo Descripción
Salida
Numérico.
Ejemplos
Ejemplos básicos
Un campo compactado con el valor 123,45 (00 12 34 5C), que contiene dos decimales y comienza en la
posición 10 de byte, aparece en el registro de datos en el siguiente formato:
UPPER(1) 0 1 3 5
LOWER(2) 0 2 4 C
Devuelve 3 (encuentra el dígito ubicado en la 12° posición en la mitad superior del byte):
DIGIT(12; 1)
Devuelve 4 (encuentra el dígito ubicado en la 12° posición en la mitad inferior del byte):
DIGIT(12; 2)
Observaciones
Cómo funciona
DIGIT( ) separa las mitades individuales de un byte y devuelve el valor del byte especificado en el pará-
metro de posición como un dígito entre 0 y 15.
Función DOW( )
Devuelve un valor numérico (1 a 7) que representa el día de la semana de una fecha o fechahora espe-
cificada. Abreviatura de la expresión "Día de la semana", en inglés.
Sintaxis
DOW(fecha/fechahora)
Parámetros
Nombre Tipo Descripción
fecha/fechahora fechahora El campo, la expresión o el valor literal de donde extraer el día numé-
rico de la semana.
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 4, porque el 31 de diciembre de 2014 cae en miércoles, el 4º día de la semana:
DOW(`20141231`)
DOW(`20141231 235959`)
Devuelve el día numérico de la semana para cada valor del campo Fecha_de_factura:
DOW(Fecha_de_factura)
Ejemplos avanzados
Identificación de las transacciones que ocurren en un fin de semana
Utilice la función DOW ( ) para identificar las transacciones que ocurren en un fin de semana. El filtro a con-
tinuación aísla las fechas del campo Fecha_trans que se producen en un sábado o un domingo:
Observaciones
Detalles del parámetro
Un campo especificado para fecha/fechahora puede utilizar cualquier formato de fecha o fechahora, siem-
pre que la definición del campo establezca correctamente el formato.
AAAAMMDD `20141231`
AAMMDD `141231`
AAAAMMDD hhmmss `20141231 235959`
AAMMDDthhmm `141231t2359`
AAAAMMDDThh `20141231T23`
AAAAMMDD hhmmss+/-hhmm `20141231 235959-0500`
(desplazamiento de UTC)
AAMMDD hhmm+/-hh `141231 2359+01`
(desplazamiento de UTC)
Nota
No use solo hh en el formato de la hora
principal con datos que tienen un des-
plazamiento del UTC. Por ejemplo, evite:
hh+hhmm. Los resultados pueden no ser
confiables.
Funciones relacionadas
Si necesita devolver:
l el nombre del día de la semana, utilice CDOW( ) en lugar de DOW( )
l el día del mes como un número (1 al 31), utilice DAY( ) en lugar de DOW( )
Función DTOU( )
Convierte un valor de fecha de ACL en una cadena Unicode en el formato de configuración regional y de
idioma especificado. Abreviatura de la expresión "Fecha a Unicode", en inglés.
Nota
Esta función es específica de la edición Unicode de ACL. No es una función admitida en la
edición no Unicode.
Sintaxis
DTOU(< fecha> <;localidad> <;estilo>)
Parámetros
Nombre Tipo Descripción
fecha fechahora El campo, expresión o valor literal para convertir en una cadena Uni-
code. Si se omite, se utiliza la fecha actual del sistema operativo.
opcional
La fecha puede contener un valor de fechahora, pero la porción de la
hora del valor se ignora. Los valores de hora independientes no son
compatibles.
Puede especificar un valor de fecha literal o un campo:
o El campo: puede utilizar cualquier formato de fecha, siempre que
la definición del campo establezca correctamente el formato
o El Literal: debe utilizar uno de los formatos AAAAMMDD o
AAMMDD; por ejemplo `20141231`
La fecha mínima admitida es 31 de diciembre de 1969.
estilo numérico El estilo de formato de fecha que se debe usar para la cadena Uni-
code. El estilo de formato coincide con el estándar de la con-
opcional
figuración regional que usted especifique:
o 0: formato de especificación completa, como "Domingo, 18 de sep-
tiembre de 2016"
o 1: formato extenso, como "18 de septiembre de 2016"
o 2: formato medio, como "Sep 18, 2016"
o 3: formato numérico breve, como "9/18/16"
Si se omite, se utiliza el valor predeterminado 2. No se puede espe-
cificar un estilo si no ha especificado una fecha y una configuración
regional.
Salida
Carácter.
Ejemplos
Ejemplos básicos
Valores de entrada literales
Devuelve "31 de dezembro de 2014"
DTOU(`20141231`; "pt_BR"; 1)
DTOU(`20141231`; "pl"; 1)
DTOU(Fecha_de_factura ; "zh" ; 1)
DTOU(`20141231`; "zh"; 0)
DTOU(`20141231`; "zh_CN"; 0)
DTOU(`20141231`; "zh"; 1)
DTOU(`20141231`; "zh_CN" ; 1)
Observaciones
Funciones relacionadas
DTOU( ) es la función inversa de la función UTOD( ), que convierte la cadena Unicode en una fecha.
Función EBCDIC( )
Devuelve una cadena que se ha convertido en la codificación de caracteres EBCDIC.
Sintaxis
EBCDIC(cadena)
Parámetros
Nombre Tipo Descripción
Salida
Carácter.
Ejemplos
Ejemplos básicos
Devuelve "ñòó@Æ '…@â£K":
Ejemplos avanzados
Creación de un campo codificado EBCDIC para exportar
Para crear un campo que contiene el valor codificado a EBCDIC de un campo Nombre para exportar a una
aplicación que requiere la codificación EBCDIC, especifique lo siguiente:
Observaciones
Cuándo usar EBCDIC( )
Utilice esta función para convertir los datos a la codificación de caracteres Código de Intercambio Decimal
Binario Codificado Extendido (EBCDIC). La codificación de caracteres EBCDIC se utiliza principalmente
en sistemas de operativos de mainframe IBM, como z/OS.
Función EFFECTIVE( )
Devuelve la tasa de interés anual efectiva de un préstamo.
Sintaxis
EFFECTIVE(tasa_nominal; períodos)
Parámetros
Nombre Tipo Descripción
Salida
Numérico. La tasa se calcula a lugares de ocho decimales.
Ejemplos
Ejemplos básicos
Devuelve 0,19561817 (19,56 %), la tasa de interés efectiva anual sobre el saldo impago de una tarjeta de
crédito que cobra el 18 % anual, compuesto mensualmente:
EFFECTIVE(0,18; 12)
Observaciones
¿Qué es la tasa de interés efectiva anual?
La tasa de interés efectiva anual de un préstamo es la tasa de interés real que se paga, teniendo en
cuenta el interés sobre el saldo restante, compuesto mensualmente o diariamente.
Funciones relacionadas
La función NOMINAL( ) es la inversa de la función EFFECTIVE( ).
Función EOMONTH( )
Devuelve la fecha del último día del mes que es la cantidad de meses previos o posteriores a una fecha
determinada.
Sintaxis
EOMONTH(< fecha/fechahora> <;meses>)
Parámetros
Nombre Tipo Descripción
fecha/fechahora fechahora El campo, expresión o el valor literal a partir del cual calcular la fecha
de fin de mes. Si se omite, se calculará la fecha de fin de mes a partir
opcional
de la fecha actual del sistema operativo.
Nota
Puede especificar un valor de fechahora para fecha/-
fechahora pero se ignora la parte de la hora del valor.
Salida
Fechahora. La salida del valor fecha utiliza el formato de visualización de fecha actual de ACL.
Ejemplos
Ejemplos básicos
Sin valor de entrada
Devuelve el último día del mes de la fecha actual del sistema operativo:
EOMONTH()
EOMONTH(`20140115`)
Devuelve `20140430` que se visualiza como 30 Abr 2014 suponiendo que el formato de visualización
actual de la fecha de ACL sea DD MMM AAAA:
EOMONTH(`20140115`; 3)
Devuelve `20131031` que se visualiza como 31 Oct 2013 suponiendo que el formato de visualización
actual de la fecha de ACL sea DD MMM AAAA:
EOMONTH(`20140115`; -3)
EOMONTH(Fecha_de_factura; 3)
Devuelve el último día del mes que cae tres meses después de cada fecha del campo Fecha_de_factura
más un período de gracia de 15 días:
EOMONTH(Fecha_de_factura+15; 3)
EOMONTH(Fecha_de_factura; -1) + 1
Observaciones
Formatos de Fechahora
Un campo especificado para fecha/fechahora puede utilizar cualquier formato de fecha o fechahora, siem-
pre que la definición del campo establezca correctamente el formato.
Un valor literal de fecha debe usar uno de los siguientes formatos:
l AAAAMMDD
l AAMMDD
Debe escribir los valores de fecha literales entre acentos graves. Por ejemplo: `20141231`
EOMONTH(`20140115`) + 1
Funciones relacionadas
Utilice la función GOMONTH( ) si quiere devolver la fecha exacta, en lugar de la fecha del último día del
mes, que es la cantidad especificada de meses previos o posteriores a una fecha determinada.
Función EXCLUDE( )
Devuelve una cadena que excluye los caracteres especificados.
Sintaxis
EXCLUDE(cadena; caracteres_a_excluir)
Parámetros
Nombre Tipo Descripción
Salida
Carácter.
Ejemplos
Ejemplos básicos
Devuelve " Alberni Street", que es la cadena de entrada después de excluir todos los números:
Devuelve todos los valores del campo Número_producto excluyendo la barra y el signo de número:
EXCLUDE(Nombre_producto; "/#")
Observaciones
Cómo funciona
La función EXCLUDE( ) compara cada carácter de la cadena con los caracteres que se incluyen en la lista
caracteres_a_excluir. Si hay una coincidencia, el carácter se excluye de la cadena de salida.
Por ejemplo, la salida para EXCLUDE("123-45-4536"; "-") es “123454536”.
Coincidir mayúsc.-minúsc.
La función EXCLUDE( ) distingue mayúsculas y minúsculas. Si especifica “ID” en caracteres_a_excluir
estos caracteres no se excluirán de “id#94022”. Si existe la posibilidad de que las mayúsculas y minúsculas
estén mezcladas, primero use la función UPPER( ) para pasar todos los caracteres de la cadena a mayús-
culas.
Por ejemplo:
EXCLUDE(UPPER("id#94022"); "ID#")
Consejos de uso
Utilice EXCLUDE( ) si el conjunto de caracteres que desea excluir es pequeño y el conjunto que desea
incluir es grande.
Funciones relacionadas
La función EXCLUDE( ) es lo opuesto de la función INCLUDE( ).
Función EXP( )
Devuelve el valor exponencial (base 10) de una expresión numérica con un número especificado de posi-
ciones decimales.
Sintaxis
EXP(número; decimales)
Parámetros
Nombre Tipo Descripción
número numérico El valor, la expresión o el campo numérico del cual se debe devolver
el valor exponencial.
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 1000,00:
EXP(3; 2)
Devuelve 72443,596007:
EXP(4,86; 6)
Ejemplos avanzados
Hallar la raíz cúbica
Crea un campo que sea la raíz cúbica del campo X con dos lugares decimales:
Consejo
Puede determinar la raíz n dividiendo el logaritmo del valor entre n y tomando el exponente
del resultado.
Observaciones
Cómo funciona
Esta función devuelve el valor exponencial (base 10) de una expresión numérica, que se define como 10
elevado a la n potencia. Por ejemplo, el valor exponencial de 3 es 103, o 1000.
Funciones relacionadas
La inversa de un exponente es su logaritmo, por lo que EXP( ) es la función opuesta de la función LOG( ).
Función FILESIZE( )
Devuelve el tamaño de un archivo especificado en bytes o -1 si no existe el archivo.
Sintaxis
FILESIZE(nombre de archivo)
Parámetros
Nombre Tipo Descripción
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 14744:
FILESIZE("Inventario.fil")
Si el archivo que está verificando no está en la misma carpeta que el proyecto de ACL, debe especificar la
ruta de acceso relativa o la ruta de acceso absoluta al archivo.
Devuelve 6018:
Ejemplos avanzados
Ejecución de un script si no existe un archivo
Solo ejecuta el script denominado importar_datos si el archivoMetaphor_Inventario_2002.fil no
existe:
CALCULATE FILESIZE("Metaphor_Inventario_2002.fil")
Función FIND( )
Devuelve un valor lógico que indica si la cadena que se especificó está presente en un campo en par-
ticular o en algún lugar de un registro completo.
Nota
La función FIND( ) y el "Comando FIND" en la página 201 son dos funciones inde-
pendientes de ACL, que tienen diferencias significativas.
Sintaxis
FIND(cadena <;campo_donde_buscar>)
Parámetros
Nombre Tipo Descripción
Salida
Lógico. Devuelve T (verdadero) si se determina el valor de la cadena especificada y F (falso) en caso con-
trario.
Ejemplos
Ejemplos básicos
Buscar en un registro completo
Devuelve T para todos los registros que contienen la cadena "New York" en cualquier campo, entre límites
de campos y en cualquier parte no definida del registro. De lo contrario, devuelve F:
FIND("New York")
Devuelve T para todos los registros que contienen la cadena "Ne" en el campo Ciudad. De lo contrario,
devuelve F:
FIND("Ne"; Ciudad)
Devuelve T para todos los registros que contienen la cadena "New York" precedida de uno o más espacios
en el campo Ciudad. De lo contrario, devuelve F:
Devuelve T para todos los registros que tienen un valor en el campo Descripción que coincide con el valor
de la variable v_término_búsqueda o que lo contiene. De lo contrario, devuelve F:
FIND(v_término_búsqueda; Descripción)
Devuelve T para todos los registros que contienen la cadena "New York" en el campo Ciudad o el campo
Ciudad_2. De lo contrario, devuelve F:
FIND(ALLTRIM(Apellido); Apellido_2)
Observaciones
Cuándo usar FIND( )
Utilice la función FIND( ) para comprobar la presencia de la cadena especificada en uno, dos o más cam-
pos, o un registro completo.
Los campos concatenados se tratan como un único campo que incluye los espacios al principio y al final
de los campos individuales, a menos que utilice la función ALLTRIM( ) para quitar los espacios.
También puede generar una expresión que busque en cada campo de manera individual:
Si una cadena incluye un espacio al principio, los resultados de la búsqueda de estos dos enfoques pue-
den diferir.
Función FINDMULTI( )
Devuelve un valor lógico que indica si una cadena de un conjunto de una o más cadenas especificadas
está presente en un campo en particular o en algún lugar de un registro completo.
Sintaxis
FINDMULTI({buscar_en | RECORD}; cadena_1 <;...n>)
Parámetros
Nombre Tipo Descripción
Campo_1+Campo_2+Campo_3
cadena_1 <;...n> carácter Búsqueda de una o más cadenas de caracteres. Separe las dife-
rentes cadenas de búsqueda con punto y coma:
Salida
Lógico. Devuelve T (verdadero) si se encuentra alguno de los valores de la cadena especificada y F
(falso) en caso contrario.
Ejemplos
Ejemplos básicos
Buscar en un registro completo
Devuelve T para todos los registros que contienen "New York" o "Chicago" en cualquier campo, entre lími-
tes de campos y en cualquier parte no definida del registro. De lo contrario, devuelve F:
Devuelve T para todos los registros que contienen la cadena "Ne" o "Chi" en el campo Ciudad. De lo con-
trario, devuelve F:
Devuelve T para todos los registros que contienen "New York" o "Chicago" precedida de uno o más espa-
cios en el campo Ciudad. De lo contrario, devuelve F:
Devuelve T para todos los registros que tienen un valor en el campo Descripción que contiene o coincide
con cualquiera de los valores de las variables v_término_búsqueda. De lo contrario, devuelve F:
Devuelve T para todos los registros que contienen la cadena "New York" o "Chicago" en el campo Ciudad
o el campo Ciudad_2. De lo contrario, devuelve F:
Observaciones
Cuándo usar FINDMULTI( )
Utilice la función FINDMULTI( ) para comprobar la presencia de cualquiera de las cadenas especificadas
en uno, dos o más campos, o en un registro completo.
Los campos concatenados se tratan como un único campo que incluye los espacios al principio y al final de
los campos individuales, a menos que utilice la función ALLTRIM( ) para quitar los espacios.
También puede generar una expresión que busque en cada campo de manera individual:
Si un valor cadena incluye un espacio al principio, los resultados de la búsqueda de estos dos enfoques pue-
den diferir.
Función FREQUENCY( )
Devuelve la frecuencia Benford esperada para los dígitos numéricos positivos, iniciales y secuenciales,
con una precisión de ocho decimales.
Sintaxis
FREQUENCY(cadena_de_dígitos)
Parámetros
Nombre Tipo Descripción
cadena_de_dígitos carácter Una cadena de caracteres que contiene dígitos (0-9) para la cual se
identifica la frecuencia. cadena_de_dígitos debe ser un número posi-
tivo y se ignoran los ceros iniciales.
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 0,00998422:
FREQUENCY("43")
Returns 0,00000000:
FREQUENCY("87654321")
Nota
El resultado es 0,00000000495, pero dado que ACL calcula con una precisión de ocho
decimales, se devolverá un valor cero.
Observaciones
Cómo funciona
FREQUENCY( ) devuelve la frecuencia Benford esperada para dígitos numéricos positivos, iniciales y
secuenciales, con una precisión de ocho dígitos. Permite ejecutar pruebas Benford limitadas para situa-
ciones específicas.
Función FTYPE( )
Devuelve un carácter que identifica la categoría de datos de un campo o variable o el tipo de un elemento
del proyecto ACL.
Sintaxis
FTYPE(cadena_de_nombre_de_campo)
Parámetros
Nombre Tipo Descripción
FTYPE("Importe")
Salida
Carácter. Esta función devuelve uno de los siguientes caracteres, que indica el campo, variable, o tipo de
elemento del proyecto ACL:
l "C": Campo Carácter
l "N": Campo Numérico
l "D": Campo de fechahora
l "L": Campo Lógico
l "c": Variable de caracteres
l "n": Variable numérica
l "d": Variable de fechahora
l "l": Variable lógica
l "b": Script de ACL
l "y": Formato de tabla de ACL
l "w": Área de trabajo de ACL
l "i": Índice de ACL
l "r": Reporte de ACL
Ejemplos
Ejemplos básicos
En el ejemplo siguiente se asigna un valor de 4 para la variable num y luego verifica el tipo.
Devuelve "n":
ASSIGN núm = 4
FTYPE("núm")
Ejemplos avanzados
Comprobar el tipo de datos de un campo
Si tiene un script o estudio analítico que requiere un campo numérico Monto, necesita probar que el campo
es del tipo correcto antes de ejecutar el script.
El comando siguiente ejecuta solo Script_1 si Monto es un campo Numérico.
OPEN Facturas
DO Script_1 IF FTYPE("Monto") = "N"
La capacidad de detectar el entorno del tiempo de ejecución le permite diseñar un único script que ejecute
diferentes bloques de código según la aplicación que lo ejecuta.
Función FVANNUITY( )
Devuelve el valor futuro de una serie de pagos que se calculan utilizando una tasa de interés constante. El
valor futuro es la suma de los pagos más el interés compuesto acumulado.
Sintaxis
FVANNUITY(tasa; períodos; pago <;tipo>)
Parámetros
Nombre Tipo Descripción
Nota
Debe usar períodos de tiempo uniformes al especificar la tasa, los períodos y el pago a fin
de asegurarse de estar especificando la tasa de interés por período.
Por ejemplo:
l para un pago mensual en una inversión o un préstamo a dos años, con un interés del
5 % anual, especifique 0.05/12 para la tasa y 2 * 12 para los períodos
l para un pago anual del mismo préstamo o inversión, especifique 0.05 para la tasa y
2 para los períodos
Salida
Numérico. El resultado se calcula con dos lugares decimales.
Ejemplos
Ejemplos básicos
Pagos mensuales
Devuelve 27243,20, el valor futuro de $1.000 pagado al inicio de cada mes durante 2 años al 1 % men-
sual, compuesto mensualmente:
Devuelve 12809,33, el valor futuro de la misma renta vitalicia después del primer año:
Pagos anuales
Devuelve 25440,00, el valor futuro de $12.000 pagado al final de cada año durante dos años al 12 %
anual, compuesto anualmente:
FVANNUITY(0,12; 2; 12000; 0)
Ejemplos avanzados
Cálculos de las anualidades
Los cálculos de las anualidades involucran cuatro variables:
l valor presente o valor futuro: en los ejemplos siguientes, $21,243.39 y $ 26,973.46
l importe de pago por período: en los ejemplos siguientes, $1,000.00
l tasa de interés por período: en los ejemplos siguientes, 1% mensual
l cantidad de períodos: en los ejemplos siguientes, 24 meses
Si conoce el valor de tres de las variables, puede utilizar una función de ACL para calcular el cuarto valor.
PVANNUITY( )
Devuelve 21243.39:
FVANNUITY( )
Devuelve 26973.46:
PMT( )
Devuelve 1000:
RATE( )
Devuelve 0.00999999 (1%):
NPER( )
Devuelve 24.00:
La fórmula para calcular el valor futuro de una anualidad ordinaria (pago al final de un período):
Observaciones
Funciones relacionadas
La función PVANNUITY( ) es la inversa de la función FVANNUITY( ).
Función FVLUMPSUM( )
Devuelve el valor futuro de una suma global actual que se calcula utilizando una tasa de interés constante.
Sintaxis
FVLUMPSUM(tasa; períodos; cantidad)
Parámetros
Nombre Tipo Descripción
Nota
Debe usar períodos de tiempo uniformes al especificar la tasa y los períodos a fin de ase-
gurarse de estar especificando la tasa de interés por período.
Por ejemplo:
l para pagos mensuales en una inversión o un préstamo a dos años, con un interés
del 5 % anual, especifique 0.05/12 para la tasa y 2 * 12 para los períodos
l para pagos anuales del mismo préstamo o inversión, especifique 0.05 para la tasa y
2 para los períodos
Salida
Numérico. El resultado se calcula con dos lugares decimales.
Ejemplos
Ejemplos básicos
Interés compuesto mensual
Devuelve 1269,73, el valor futuro de la suma global de $1.000 invertida por 2 años al 1 % por mes, com-
puesto mensualmente:
Devuelve 1126,83, el valor futuro de la misma inversión después del primer año:
Devuelve 27243,20, el valor futuro de $21.455,82 invertidos por 2 años al 1 % mensual, compuesto men-
sualmente:
FVLUMPSUM(0,12; 2; 1000)
Observaciones
¿Qué es el valor futuro?
El valor futuro de una suma invertida es el capital de inversión inicial más el interés compuesto acu-
mulado.
Funciones relacionadas
La función PVLUMPSUM( ) es la inversa de la función FVLUMPSUM( ).
Función FVSCHEDULE( )
Devuelve el valor futuro de una suma global actual que se calcula utilizando una serie de tasas de interés.
Sintaxis
FVSCHEDULE(principal; tasa1 <;tasa2...>)
Parámetros
Nombre Tipo Descripción
tasa1, tasa2... numérico Una serie de tasas de interés para períodos de igual longitud.
Nota
Los períodos pueden representar meses o años, u otro
período de tiempo, siempre que el tipo del período de
tiempo sea uniforme.
Debe especificar las tasas de interés por período. Por
lo tanto, si una de las tasas de interés es del 5 % anual
y el período es meses, especifique 0,05/12.
Salida
Numérico. El resultado se calcula con dos lugares decimales.
Ejemplos
Ejemplos básicos
Devuelve 1282,93, el valor futuro de la suma global de $1000 invertida a 3 años al 10 % durante el primer
año, 9 % durante el segundo año y 7 % durante el tercer año, compuesto anualmente:
Observaciones
El valor futuro de una suma invertida es el capital de inversión inicial más el interés compuesto acumulado.
Función GETOPTIONS( )
Devuelve el ajuste actual para la opción especificada de ACL (ajuste del cuadro de diálogo Opciones ).
Sintaxis
GETOPTIONS(opción)
Parámetros
Nombre Tipo Descripción
Salida
Carácter.
Ejemplos
Ejemplos básicos
Devuelve el ajuste actual de los tres caracteres separadores de ACL. Por ejemplo, ",.,":
GETOPTIONS("SEPARATORS")
Ejemplos avanzados
Uso de GETOPTIONS( ) en un script
Si un script necesita modificar uno o más de los caracteres separadores de ACL, la función GETOPTIONS
( ) ofrece un método para descubrir los ajustes actuales. El ajuste actual se puede almacenar en una varia-
ble que después se vuelve a insertar al final del script.
ASSIGN v_SeparatorsSetting = GETOPTIONS("separadores")
SET SEPARATORS ",.;"
< contenido del script>
v_SeparatorsSetting = GETOPTIONS("SEPARATORS")
Observaciones
Los tres caracteres separadores de ACL se especifican en las siguientes opciones en el cuadro de diálogo
Opciones :
l Símbolo de posición decimal
l Separador de miles
l Separador de listas
Función GOMONTH( )
Devuelve la fecha que corresponde a la cantidad especificada de meses previos o posteriores a una fecha
determinada.
Sintaxis
GOMONTH(fecha/fechahora; meses)
Parámetros
Nombre Tipo Descripción
fecha/fechahora fechahora El campo, expresión o el valor literal a partir del cual calcular la fecha
de salida.
Salida
Fechahora. La salida del valor fecha utiliza el formato de visualización de fecha actual de ACL.
Ejemplos
Ejemplos básicos
Valores de entrada literales
Devuelve `20140415` que se visualiza como 15 Abr 2014 suponiendo que el formato de visualización
actual de la fecha de ACL sea DD MMM AAAA:
GOMONTH(`20140115`; 3)
Devuelve `20131015` que se visualiza como 15 Oct 2013 suponiendo que el formato de visualización actual
de la fecha de ACL sea DD MMM AAAA:
GOMONTH(`20140115`; -3)
Devuelve `20140430` que se visualiza como 30 Abr 2014 suponiendo que el formato de visualización actual
de la fecha de ACL sea DD MMM AAAA (el redondeo de la fecha devuelve 31 Abr 2014, que no es una
fecha válida):
GOMONTH(`20140330`; 1)
GOMONTH(`20140331`; 1)
Devuelve `20140501` que se visualiza como 01 May 2014 suponiendo que el formato de visualización
actual de ACL sea DD MMM AAAA:
GOMONTH(`20140401`; 1)
GOMONTH(Fecha_de_factura; 3)
Devuelve la fecha que es tres meses posterior a cada fecha del campo Fecha_de_factura más un período
de gracia de 15 días:
GOMONTH(Fecha_de_factura+15; 3)
Observaciones
Formatos de Fechahora
Un campo especificado para fecha/fechahora puede utilizar cualquier formato de fecha o fechahora, siem-
pre que la definición del campo establezca correctamente el formato.
Un valor literal de fecha debe usar uno de los siguientes formatos:
l AAAAMMDD
l AAMMDD
Debe escribir los valores de fecha literales entre acentos graves. Por ejemplo: `20141231`
GOMONTH(`20140331`;1)
Funciones relacionadas
Utilice la función EOMONTH( ) si quiere devolver la fecha del último día del mes, en lugar de la fecha
exacta, que es la cantidad especificada de meses previos o posteriores a una fecha determinada.
Función HASH( )
Devuelve un valor aleatorio añadido hash criptográfico basado en el valor de entrada.
Sintaxis
HASH(campo <;valor_aleatorio>)
Parámetros
Nombre Tipo Descripción
valor_aleatorio carácter El valor aleatorio añadido para utilizar. Puede especificar un número
identificador de PASSWORD del 1 al 10 o una cadena de caracteres.
opcional numérico
Si se omite, se utiliza el valor aleatorio predeterminado de ACL.
El valor aleatorio se limita a 128 caracteres y se trunca auto-
máticamente en 128 caracteres si usted especifica un valor más
extenso.
Si desea obtener más información, consulte "El valor aleatorio aña-
dido" en la página 560.
Salida
Carácter.
Ejemplos
Ejemplos básicos
Con el valor aleatorio predeterminado de ACL
Devuelve "819A974BB91215D58E7753FD5A42226150100A0763087CA7DECD93F3C3090405":
HASH("555-44-3322")
HASH(Núm_tarjeta_de_crédito)
Ejemplos avanzados
Asegurarse de que los valores hash sean idénticos
Use otras funciones en combinación con HASH( ) para estandarizar los valores de texto claro que debe-
rían generar valores hash idénticos.
Considere los siguientes conjuntos de ejemplos. Tenga en cuenta la manera en la que el uso de mayús-
culas o minúsculas en los valores de texto claro modifica completamente el valor hash de salida en los pri-
meros dos ejemplos.
Devuelve "DF6789E1EC65055CD9CA17DD5B0BEA5892504DFE7661D258737AF7CB9DC46462":
HASH("John Smith")
Devuelve "3E12EABB5940B7A2AD90A6B0710237B935FAB68E629907927A65B3AA7BE6781D":
HASH("JOHN SMITH")
Por medio del uso de la función UPPER( ) para estandarizar el uso de mayúsculas y minúsculas, se obtie-
nen resultados de valor hash idénticos.
Devuelve "3E12EABB5940B7A2AD90A6B0710237B935FAB68E629907927A65B3AA7BE6781D":
HASH(UPPER("John Smith"))
Si los campos de comentario están en tablas independientes, cree un campo calculado HASH( ) en cada
tabla y, a continuación, utilice los campos calculados como campo clave común para realizar una unión sin
coincidencias de las dos tablas. Los registros de la tabla de salida unida representan bloques de texto que
no son idénticos.
Observaciones
Cuándo usar HASH( )
Utilice la función HASH( ) para proteger datos sensibles, como números de tarjetas de crédito, información
sobre salarios o números de seguridad social.
Cómo funciona
HASH( ) proporciona codificación en una sola dirección. Los datos en texto claro se pueden utilizar para pro-
ducir un valor de código hash; sin embargo, el valor de código hash no se puede decodificar ni desencriptar
posteriormente.
Un valor de texto claro específico genera siempre el mismo valor de código hash; por lo tanto, usted puede
buscar un campo de números de tarjetas de crédito con el código hash para detectar duplicados o unir dos
campos de números de tarjetas de crédito con el código hash, y los resultados serán los mismos que si
hubiese realizado la operación en los campos de datos claros equivalentes.
Es posible que deba incorporar funciones como INCLUDE( ), EXCLUDE( ) o UPPER( ) en la función
HASH( ) para estandarizar los valores de texto claro.
Los espacios en blanco al principio y al final se recortan automáticamente con la función HASH( ); por lo
tanto, no es necesario utilizar las funciones TRIM( ) o ALLTRIM( ).
Utilice el comando PASSWORD junto con la función HASH( ) y especifique un número identificador
de PASSWORD de 1 a 10. Por ejemplo:
Nota
El valor aleatorio de PASSWORD se debe introducir antes de poder extraer el
campo de la función HASH( ).
La ventaja de utilizar un número identificador de PASSWORD con HASH( ) es que no necesita expo-
ner un valor aleatorio en texto claro.
Si desea obtener más información, consulte "Comando PASSWORD" en la página 323.
Función HEX( )
Convierte una cadena ASCII en una cadena hexadecimal.
Sintaxis
HEX(campo)
Parámetros
Nombre Tipo Descripción
Salida
Carácter.
Ejemplos
Ejemplos básicos
Devuelve "3132333435":
HEX("12345")
HEX(Recuento)
Observaciones
Cómo funciona
Esta función devuelve la cadena hexadecimal que es equivalente al valor del campo o expresión que espe-
cifique. Puede utilizar la función cuando necesita identificar el contenido exacto de un campo, incluidos los
caracteres que no se pueden mostrar en la pantalla, como CR (retorno de carro), LF (salto de línea) y NUL
(nulo).
Función HOUR( )
Extrae la porción de la hora de una hora o fechahora especificada y la devuelve como un valor numérico,
con un formato de 24 horas.
Sintaxis
HOUR(hora/fechahora)
Parámetros
Nombre Tipo Descripción
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 23:
HOUR(`t235959`)
HOUR(`20141231 235959`)
HOUR(Hora_inicio_llamada)
Observaciones
Detalles del parámetro
Un campo especificado para hora/fechahora puede utilizar cualquier formato de hora o fechahora, siempre
que la definición del campo establezca correctamente el formato.
Especificar un valor de fechahora u hora literal
Al especificar un valor literal de hora o fechahora para hora/fechahora, solo puede utilizar los formatos de la
siguiente tabla y debe encerrar el valor entre acentos graves; por ejemplo, `20141231 235959`.
No utilice ningún separador, como barras (/) o dos puntos (:), entre los componentes individuales de fechas
u horas.
l Valores de hora: puede utilizar cualquiera de los formatos de la siguiente tabla. Debe utilizar un sepa-
rador antes de un valor de la hora independiente para que la función opere correctamente. Los sepa-
radores válidos son la letra 't' o la letra 'T'. Debe especificar las horas con el reloj de 24 horas. Los
desplazamientos respecto del Horario Universal Coordinado (UTC, por sus siglas en inglés) deben ir
precedidos de un signo más (+) o un signo menos (-).
l Valores de fechahora: puede utilizar cualquier combinación de formatos de fecha, separador y hora
de la siguiente tabla. La fecha debe preceder a la hora y se debe utilizar un separador entre las dos.
Los separadores válidos son un espacio en blanco, la letra 't' o la letra 'T'.
thhmmss `t235959`
Thhmm `T2359`
AAAAMMDD hhmmss `20141231 235959`
AAMMDDthhmm `141231t2359`
AAAAMMDDThh `20141231T23`
AAAAMMDD hhmmss+/-hhmm `20141231 235959-0500`
(desplazamiento de UTC)
AAMMDD hhmm+/-hh `141231 2359+01`
(desplazamiento de UTC)
Nota
No use solo hh en el formato de la hora
principal con datos que tienen un des-
plazamiento del UTC. Por ejemplo, evite:
hh+hhmm. Los resultados pueden no ser
confiables.
Función HTOU( )
Convierte una cadena hexadecimal en una cadena Unicode. Abreviatura de la expresión "Hexadecimal a
Unicode", en inglés.
Nota
Esta función es específica de la edición Unicode de ACL. No es una función admitida en la
edición no Unicode.
Sintaxis
HTOU(cadena_hex)
Parámetros
Nombre Tipo Descripción
Salida
Carácter.
Ejemplos
Ejemplos básicos
Devuelve "ABC123":
HTOU("004100420043003100320033")
Ejemplos avanzados
Agregar un símbolo de moneda a un valor
Debe extraer un campo monetario a una nueva tabla. El campo debe mostrar el valor del campo numérico
Importe y antecederlo con el símbolo de Euro (€):
Cuando se ejecuta el comando EXTRACT, HTOU( ) devuelve el símbolo "€" y lo concatena con el valor
Importe que STRING( ) convierte en un carácter. Si el valor original de Importe era 2000, entonces el
valor de Moneda_importe es "€2000".
Observaciones
Funciones relacionadas
HTOU( ) es la función inversa de la función DHEX( ), que convierte la cadena Unicode en una cadena
hexadecimal.
Función INCLUDE( )
Devuelve una cadena que incluye solo los caracteres especificados.
Sintaxis
INCLUDE(cadena; caracteres_a_incluir)
Parámetros
Nombre Tipo Descripción
Salida
Carácter.
Ejemplos
Ejemplos básicos
Devuelve "123", que es la cadena de entrada solo con los números incluidos:
Devuelve "1231234", que es la cadena de entrada solo con los números incluidos:
INCLUDE("123-123-4"; "1243")
INCLUDE("ACL"; "D")
Observaciones
Cómo funciona
La función INCLUDE( ) compara cada carácter de la cadena con los caracteres que se incluyen en la lista
caracteres_a_incluir. Si hay una coincidencia, el carácter se incluye en la cadena de salida.
Coincidir mayúsc.-minúsc.
La función INCLUDE( ) distingue mayúsculas y minúsculas. Si especifica "ID" en caracteres_a_incluir,
estos caracteres no es incluyen en "id#94022". Si existe la posibilidad de que las mayúsculas y minús-
culas estén mezcladas, primero use la función UPPER( ) para pasar todos los caracteres de la cadena a
mayúsculas.
Por ejemplo:
INCLUDE(UPPER("id#94022"); "ID0123456789")
Consejos de uso
Utilice INCLUDE( ) si el conjunto de caracteres que desea incluir es pequeño y el conjunto que desea
excluir es grande.
Funciones relacionadas
La función INCLUDE( ) es lo opuesto de la función EXCLUDE( ).
Función INSERT( )
Devuelve la cadena original con el texto especificado insertado en una ubicación de byte especifica.
Sintaxis
INSERT(cadena; insertar_texto; posición)
Parámetros
Nombre Tipo Descripción
ubicación numérico La posición entre los caracteres en la cual se debe insertar el inser-
tar_texto en la cadena.
Salida
Carácter.
Ejemplos
Ejemplos básicos
Devuelve "aXXXbcde":
INSERT("abcde"; "XXX"; 2)
Devuelve "XXXabcde":
INSERT("abcde"; "XXX"; 0)
Devuelve "abcdeXXX", con "XXX" insertado en la posición de byte 6 en lugar de 8, porque "abcde" solo
tiene 5 bytes de longitud:
INSERT("abcde"; "XXX"; 8)
Observaciones
Cómo funciona
La función INSERT( ) inserta los caracteres o espacios especificados en una cadena de caracteres,
comenzando en una posición especificada de la cadena.
Pautas de posición
l Si el valor de posición es mayor que la longitud de la cadena, el valor insertar_texto se inserta al
final de la cadena.
l Si la posición es 0 o 1, insertar_texto se inserta al inicio de la cadena.
Función INT( )
Devuelve el valor entero de una expresión numérica o un valor de campo.
Sintaxis
INT(número)
Parámetros
Nombre Tipo Descripción
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 7:
INT(7,9)
Devuelve -7:
INT(-7,9)
Función IPMT( )
Devuelve el interés pagado sobre un préstamo durante un único período.
Sintaxis
IPMT(tasa; período_especificado; períodos; cantidad <;tipo>)
Parámetros
Nombre Tipo Descripción
Nota
Debe usar períodos de tiempo uniformes al especificar la tasa y los períodos a fin de ase-
gurarse de estar especificando la tasa de interés por período.
Por ejemplo:
l para pagos mensuales en una inversión o un préstamo a dos años, con un interés
del 5 % anual, especifique 0.05/12 para la tasa y 2 * 12 para los períodos
l para pagos anuales del mismo préstamo o inversión, especifique 0.05 para la tasa
y 2 para los períodos
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 1489,58, el interés pagado durante el primer mes de un préstamo de $275.000 a 25 años e inte-
reses del 6,5 % anual, con pagos que vencen a fin de mes:
Devuelve 10,00, el interés pagado por el mismo préstamo en el último mes del préstamo:
Observaciones
Funciones relacionadas
La función PPMT( ) es el complemento de la función IPMT( ).
La función CUMIPMT( ) calcula el interés pagado durante un intervalo de períodos.
Función ISBLANK( )
Devuelve un valor lógico que indica si el valor de entrada es en blanco.
Sintaxis
ISBLANK(cadena)
Parámetros
Nombre Tipo Descripción
Salida
Lógico. Devuelve T (verdadero) si el valor del parámetro cadena está en blanco y F (falso) en caso con-
trario.
Ejemplos
Ejemplos básicos
Devuelve F:
ISBLANK(" A")
Devuelve T:
ISBLANK(" ")
ISBLANK("")
Devuelve T para todos los valores del campo Domicilio que están vacíos y F para los demás:
ISBLANK(Domicilio)
Observaciones
Cuándo usar ISBLANK( )
Utilice ISBLANK( ) durante la fase de integridad de los datos de un proyecto de análisis para identificar los
campos con los datos faltantes, lo que puede indicar problemas con los datos de origen.
Caracteres nulos
ISBLANK( ) no puede devolver resultados útiles cuando se utiliza con los campos de caracteres que con-
tienen caracteres nulos. ACL utiliza el carácter nulo para indicar el final de una cadena y por esta razón la
función ISBLANK( ) no leerá ningún dato de carácter que siga a un carácter nulo, incluidos los espacios en
blanco.
Función ISDEFINED( )
Devuelve T (verdadero) si se define la variable o el campo especificado; de lo contrario, devuelve F
(falso).
Sintaxis
ISDEFINED(cadena)
Parámetros
Nombre Tipo Descripción
cadena carácter El nombre del campo o variable para verificar su existencia. El valor
se debe introducir como una cadena entre comillas:
ISDEFINED("v_límite_numérico")
Salida
Lógico.
Ejemplos
Ejemplos básicos
Devuelve T si v_límite_numérico se define como una variable o un campo; de lo contrario, devuelve F:
ISDEFINED("v_límite_numérico")
Ejemplos avanzados
Uso de ISDEFINED( ) para probar un campo
En el ejemplo siguiente se utiliza la función ISDEFINED( ) para probar si el campo Límite está definido en
OPEN Metaphor_Employees_US
IF ISDEFINED("Límite") EXTRACT RECORD IF Límite > 50000 TO "Límitealto.fil"
Función ISFUZZYDUP( )
Devuelve un valor lógico que indica si una cadena es un duplicado impreciso de una cadena de com-
paración.
Sintaxis
ISFUZZYDUP(cadena1; cadena2; levdist <;diffpct>)
Parámetros
Nombre Tipo Descripción
levdist numérico La distancia de Levenshtein máxima permitida entre las dos cadenas
que puedan identificarse como duplicados difusas.
El valor levdist no puede ser menor de 1 o mayor que 10.
Al incrementar el valor de levdist aumenta la cantidad de resultados
porque se incluyen valores con un mayor grado de diferencias; es
decir valores que difieren más entre sí.
Salida
Lógico. Devuelve T (verdadero) si los valores de cadena son duplicados inexactos y F (falsos) en caso
contrario.
Ejemplos
Ejemplos básicos
Devuelve F, porque se necesitan dos ediciones para transformar “Smith” en “Smythe”, pero el valor delev-
dist es solo 1:
ISFUZZYDUP("Smith";"Smythe"; 1; 99)
Devuelve T, porque se necesitan dos ediciones para transformar “Smith” en “Smythe” y el valor de levdist
es 2:
ISFUZZYDUP("Smith";"Smythe"; 2; 99)
Devuelve T, porque no es necesaria ninguna edición para transformar “SMITH” en “smith” y el valor de lev-
dist es 1 (la función ISFUZZYDUP( ) no distingue entre mayúsculas y minúsculas:
ISFUZZYDUP("SMITH";"smith"; 1; 99)
Devuelve un valor lógico (T o F) que indica si los valores individuales del campo Apellido son duplicados ine-
xactos para la cadena "Smith":
Ejemplos avanzados
Trabajo con el porcentaje de diferencia
El porcentaje de diferencia le proporciona una herramienta para reducir la cantidad de falsos positivos
devueltos por ISFUZZYDUP( ).
Sin especificación de diffpct
Devuelve T, porque se necesitan cinco ediciones para transformar “abc” en “Smith” y el valor de levdist es
5:
ISFUZZYDUP("abc"; "Smith"; 5)
Cambiar los valores de levdist o diffpct le permite ajustar la cantidad de diferencia en los valores filtrados.
Observaciones
Cuándo usar ISFUZZYDUP( )
Utilice la función ISFUZZYDUP( ) para buscar valores casi idénticos (duplicados inexactos) o buscar orto-
grafía incoherente en los datos introducidos de forma manual.
Cómo funciona
La función ISFUZZYDUP( ) calcula la distancia de Levenshtein entre dos cadenas y calcula el porcentaje
de diferencia.
ISFUZZYDUP( ) se evalúa como T (verdadero) si:
l La Distancia de Levenshtein es inferior o igual al valor levdist.
l El porcentaje de diferencia es inferior o igual al valor diffpct (si se lo especificó).
Distancia de Levenshtein
La Distancia de Levenshtein es un valor que representa el mínimo número de ediciones de caracteres indi-
viduales requerido para hacer que una cadena sea idéntica a otra.
Si desea obtener más información, consulte "Función LEVDIST( )" en la página 591.
Porcentaje de diferencia
El porcentaje de diferencia es el porcentaje de la cadena más corta de las dos cadenas evaluadas que es
diferente.
El porcentaje de diferencia es el resultado del siguiente cálculo interno de ACL, que utiliza la Distancia de
Levenshtein entre las dos cadenas:
Distancia de Levenshtein / número de caracteres en la cadena más corta × 100 = porcentaje de diferencia
El uso del porcentaje de diferencia opcional ayuda a reducir la cantidad de falsos positivos devueltos por
ISFUZZYDUP( ):
l El umbral superior de diffpct es 99 %, lo cual impide el reemplazo completo de la cadena a fin de con-
vertirla en idéntica.
l Las cadenas que requieren un mayor número de ediciones en relación a su longitud se excluyen.
Consejos de uso
l Distinción entre mayúsculas y minúsculas: Esta función no distingue entre mayúsculas y minús-
culas; por lo tanto "SMITH" es equivalente a "smith".
l Espacios en blanco al final: La función recorta automáticamente los espacios en blanco finales en
los campos, por lo que no es necesario utilizar la función TRIM( ) cuando se especifica un campo
como un parámetro.
l Eliminación de elementos genéricos: La función OMIT( ) puede mejorar la eficacia de la función
ISFUZZYDUP( ) quitando elementos genéricos como "Corporación" o "Inc." de los valores del
campo.
La eliminación de elementos genéricos enfoca la comparación de cadenas ISFUZZYDUP( ) úni-
camente en la parte de las cadenas donde puede ocurrir una diferencia significativa.
Funciones relacionadas
l LEVDIST( ): proporciona un método alternativo para comparar cadenas sobre la base de la dis-
tancia de Levenshtein.
A diferencia de ISFUZZYDUP( ), LEVDIST( ) distingue entre mayúsculas y minúsculas de forma pre-
determinada.
Función LAST( )
Devuelve una cantidad específica de caracteres del final de una cadena.
Sintaxis
LAST(cadena; longitud)
Parámetros
Nombre Tipo Descripción
Salida
Carácter.
Ejemplos
Ejemplos básicos
Devuelve "Ahorros":
Devuelve "efghi":
LAST("abcdefghi"; 5)
Devuelve "fghi ":
LAST("abcdefghi "; 5)
Devuelve " abc", porque el valor de la cadena es más corto que la longitud especificada de 6; por lo tanto,
se agregan espacios a la salida:
LAST("abc"; 6)
Observaciones
Resultados en blanco debido a los espacios al final
Los espacios al final en la cadena pueden hacer que los resultados que se obtienen con la función LAST
( ) estén en blanco.
Por ejemplo, la salida para LAST("6483-30384 "; 3) es " ".
Puede utilizar la función ALLTRIM( ) junto con LAST( ) para quitar los espacios finales de la cadena.
Por ejemplo, LAST(ALLTRIM("6483-30384 "); 3) devuelve "384".
Función LEADING( )
Devuelve una cadena que contiene una cantidad especificada de dígitos iniciales.
Sintaxis
LEADING(número; dígitos_iniciales)
Parámetros
Nombre Tipo Descripción
Salida
Carácter.
Ejemplos
Ejemplos básicos
Valor de entrada numérico literal
Devuelve 623:
LEADING(6234,56; 3)
Devuelve 62345:
LEADING(-6234,56; 5)
LEADING(0,00; 3)
Devuelve 00000:
LEADING(0,00; 5)
Devuelve 35500:
LEADING(3,55; 5)
Observaciones
Utilice LEADING( ) para extraer dígitos de un campo numérico como una cadena y filtrar los elementos
que no son dígitos, como decimales o signos de dólares.
Función LENGTH( )
Devuelve la cantidad de caracteres de una cadena.
Sintaxis
LENGTH(cadena)
Parámetros
Nombre Tipo Descripción
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 12:
LENGTH(“ACL Services”)
LENGTH(Descripción)
Ejemplos avanzados
Mostrar la longitud de cada domicilio en el campo domicilio
Cree un campo calculado que muestre la longitud en caracteres de cada domicilio en el campo Calle_
proveedor. Primero se cortan los espacios en blanco al principio y al final de los valores de domicilio para
que no se los cuente en la longitud.
Observaciones
Cómo funciona
La función LENGTH( ) cuenta el número de caracteres de una cadena, incluidos todos los espacios y
devuelve el número.
Espacios al final
Los espacios al final se cuentan como caracteres. Si no desea que se cuenten los espacios en blanco fina-
les, utilice las funciones TRIM( ) u ALLTRIM( ) para eliminarlos. Por ejemplo:
LENGTH(TRIM(Calle_proveedor))
Si crea un campo calculado para mostrar la longitud de los valores de un campo y no elimina los espacios
al final, se muestra la longitud máxima del campo para cada valor.
Función LEVDIST( )
Devuelve la distancia de Levenshtein entre dos cadenas especificadas, que es una medida de cuánto difie-
ren las dos cadenas.
Sintaxis
LEVDIST(cadena1; cadena2 <;coincidir_mayúsc./minúsc.>)
Parámetros
Nombre Tipo Descripción
coincidir_mayús- lógico Especifique T para una comparación de cadenas que distinga entre
c./minúsc. mayúsculas y minúsculas, o F para ignorar las mayúsculas y las
minúsculas.
opcional
Si se omite, se utiliza el valor predeterminado T.
Salida
Numérico. El valor es la distancia de Levenshtein entre dos cadenas.
Ejemplos
Ejemplos básicos
Devuelve 3, porque se requieren dos sustituciones y una inserción para transformar "smith" en "Smythe":
LEVDIST("smith";"Smythe")
Devuelve 2, dado que se ignoran las mayúsculas o minúsculas; por lo tanto, solo se necesitan dos sus-
tituciones para transformar "smith's" en "Smythes":
LEVDIST("smith's";"Smythes";F)
Devuelve la distancia de Levenshtein entre cada valor del campo Apellido y la cadena "Smith":
LEVDIST(TRIM(Apellido);"Smith")
Ejemplos avanzados
Calificación de los valores en comparación con "Smith"
Cree el campo calculado Dist_Lev para mostrar la distancia de Levenshtein entre "Smith" y cada valor del
campo Apellido:
Agregue el campo calculado Dist_Lev a la vista y después haga un ordenamiento rápido ascendente
para calificar todo los valores del campo Apellido por la cantidad de diferencia respecto de "Smith".
Cambiar el número de la expresión le permite ajustar la cantidad de distancia de Levenshtein en los valo-
res filtrados.
Observaciones
Cuándo usar LEVDIST( )
Utilice la función LEVDIST( ) para buscar valores casi idénticos (duplicados inexactos) o buscar ortografía
incoherente en los datos introducidos de forma manual. LEVDIST( ) también identifica duplicados exac-
tos.
Cómo funciona
La función LEVDIST( ) devuelve la distancia de Levenshtein entre dos cadenas evaluadas, lo cual es un
valor que representa el mínimo número de ediciones de caracteres individuales requerido para hacer que
una cadena sea idéntica a la otra.
Cada edición necesaria incrementa el valor de la distancia de Levenshtein en 1. Cuanto mayor sea la dis-
tancia de Levenshtein, mayor será la diferencia entre las dos cadenas. Una distancia de cero (0) significa
que las cadenas son idénticas.
Tipos de ediciones
Las ediciones pueden ser de tres tipos:
l inserción
l eliminación
l sustitución
El algoritmo de Levenshtein no reconoce las trasposiciones (dos letras adyacentes invertidas) y las cuenta
como dos ediciones; en concreto, dos sustituciones.
Caracteres no alfabéticos
Los signos de puntuación, los caracteres especiales y los espacios en blanco se tratan como caracteres indi-
viduales, al igual que las letras y los números.
LEVDIST("abc"; "dec")
Devuelve 3:
LEVDIST("abc"; "cde")
El algoritmo de Levenshtein cuenta los espacios en blanco como caracteres, por lo que cualquier espacio
final se incluye en el cálculo del número de ediciones que se deben hacer para obtener dos cadenas idén-
ticas.
Funciones relacionadas
l ISFUZZYDUP( ): proporciona un método alternativo para comparar cadenas sobre la base de la
distancia de Levenshtein.
A diferencia del comportamiento de forma predeterminada de LEVDIST( ), ISFUZZYDUP( ) no dis-
tingue entre mayúsculas y minúsculas.
l DICECOEFFICIENT( ): le quita el énfasis o ignora completamente la posición relativa de los carac-
teres o de los bloques de caracteres al comparar cadenas.
l SOUNDSLIKE( ) y SOUNDEX( ): comparan cadenas basándose en una comparación fonética
(sonido) en lugar de una comparación ortográfica (escritura).
Función LOG( )
Devuelve el logaritmo (base 10) de una expresión de numérica o valor de campo con un número espe-
cificado de posiciones decimales.
Sintaxis
LOG(número; decimales)
Parámetros
Nombre Tipo Descripción
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 3,0000:
LOG(1000; 4)
Devuelve 4,86:
LOG(72443; 2)
Ejemplos avanzados
Hallar la raíz cúbica
Crea un campo que sea la raíz cúbica del campo X con dos lugares decimales:
Nota
Puede determinar la raíz n dividiendo el logaritmo del valor entre n y tomando el expo-
nente del resultado.
Observaciones
Cómo funciona
El logaritmo de un número es el exponente (o potencia) de 10 necesario para generar ese número. Por lo
tanto, el logaritmo de 1000 es 3.
Funciones relacionadas
La función LOG( ) es la inversa de la función EXP( ).
Función LOWER( )
Devuelve una cadena con caracteres alfabéticos convertidos en minúsculas.
Sintaxis
LOWER(cadena)
Parámetros
Nombre Tipo Descripción
Salida
Carácter.
Ejemplos
Ejemplos básicos
Devuelve "abc":
LOWER("ABC")
LOWER("AbCd 12")
LOWER(Apellido)
Observaciones
Cómo funciona
La función LOWER( ) convierte todos los caracteres alfabéticos de la cadena en minúscula. Todos los
caracteres no alfabéticos no sufren cambios.
Función LTRIM( )
Devuelve una cadena con los espacios iniciales eliminados de la cadena de entrada.
Sintaxis
LTRIM(cadena)
Parámetros
Nombre Tipo Descripción
Salida
Carácter.
Ejemplos
Ejemplos básicos
Tenga en cuenta que en ambos ejemplos los espacios finales no se eliminan mediante la función LTRIM( ).
Devuelve "Vancouver ":
LTRIM(" Vancouver ")
LTRIM(" New York ")
Ejemplos avanzados
Eliminación de espacios sin separación.
La función REPLACE( ) reemplaza los espacios sin separación por espacios comunes y, a continuación,
LTRIM( ) elimina los espacios comunes iniciales.
Observaciones
Cómo funciona
La función LTRIM( ) elimina únicamente los espacios iniciales. Los espacios dentro de la cadena y al final
no se eliminan.
Funciones relacionadas
LTRIM( ) está relacionada con la función TRIM( ), que elimina los espacios finales de una cadena y a la
función ALLTRIM( ), que elimina los espacios iniciales y finales.
Función MAP( )
Regresa un valor lógico que indica si una cadena de caracteres coincide con una cadena de formato espe-
cífico que contiene caracteres comodín, caracteres literales, o ambos.
Sintaxis
MAP(cadena; formato)
Parámetros
Nombre Tipo Descripción
cadena carácter El campo, la expresión o el valor literal que se debe probar en busca
de coincidencias.
formato carácter El patrón de datos o la cadena de caracteres que desea comparar con
la cadena.
El formato puede tener caracteres comodín, caracteres literales o una
combinación de ambos:
"\9\9\9-999-9999"
Salida
Lógico. Devuelve T (verdadero) si se encuentra una coincidencia, y F (falso) en caso contrario.
Ejemplos
Ejemplos básicos
Patrones de búsqueda simples
Devuelve T:
Devuelve F (la cadena solo tiene 3 números cuando se necesita un mínimo de 4):
MAP("045"; "9999")
Escape de un comodín
Si el objetivo es devolver T solo para los valores que comienzan con el carácter literal "X", seguido de una
segunda letra, el parámetro formato "\XX" se asegura de que el primer carácter "X" del parámetro se inter-
prete de manera literal y no como un comodín.
Devuelve T:
MAP("XA-123"; "XX")
MAP("GC-123"; "XX")
MAP("XA-123"; "\XX")
Devuelve F:
MAP("GC-123"; "\XX")
Campos y patrones
Devuelve T para todos los registros con números de facturas que estén conformados o comiencen con
dos letras seguidas de cinco números. De lo contrario, devuelve F:
MAP(Número_de_factura; "XX99999")
Devuelve T para todos los registros con números de factura que coinciden totalmente con "AB12345" o
que comienzan con "AB12345". De lo contrario, devuelve F:
MAP(Número_de_factura; "AB12345")
Devuelve T para todos los registros con números de facturas que contengan o comiencen con las letras
"AB" seguidas de cinco números. De lo contrario, devuelve F:
MAP(Número_de_factura; "AB99999")
Devuelve T para todos los registros que no coinciden con el formato estándar de los números de seguridad
social en el campo SSN. De lo contrario, devuelve F:
Ejemplos avanzados
Extracción de registros con códigos de producto de 10 caracteres y la combinación de caracteres "859-" al prin-
cipio
Utilice una sentencia IF y la función MAP( ) para extraer únicamente los registros con códigos de producto
de al menos 10 caracteres de longitud y que tengan los caracteres iniciales“859-”:
Observaciones
Cuándo usar MAP( )
Use la función MAP( ) para buscar patrones o formatos particulares en datos alfanuméricos. Los patrones o
formatos pueden estar conformados por caracteres comodín, caracteres literales o una combinación de
ambos.
Coincidir mayúsc.-minúsc.
La función MAP( ) distingue entre mayúsculas y minúsculas al comparar dos caracteres literales. Por ejem-
plo, "a" no es lo mismo que "A".
Si cadena incluye datos de caracteres con uso incoherente de mayúsculas y minúsculas, puede utilizar la
función UPPER( ) para convertir los valores a un uso coherente de mayúsculas y minúsculas antes de usar
MAP( ).
Por ejemplo:
MAP(UPPER(Número_de_factura); "AB99999")
Coincidencia parcial
MAP( ) admite la coincidencia parcial en una situación pero no en la otra.
La coincidencia parcial en MAP( ) no se ve afectada por la opción Comparaciones de caracteres exac-
tos (SET EXACT ON/OFF).
MAP("AB1234567"; "AB99999")
Nota
Para devolver T (verdadero), el valor de formato debe aparecer al principio del valor de la
cadena.
MAP("AB1234", "AB99999")
Concatenar campos
Puede concatenar dos o más campos en la cadena si desea buscar en más de un campo de una tabla.
Los campos concatenados se tratan como un único campo que incluye los espacios al principio y al final
de los campos individuales, a menos que utilice la función ALLTRIM( ) para quitarlos.
Función MASK( )
Realiza una operación AND a nivel del bit en los primeros bytes de dos cadenas de caracteres.
Sintaxis
MASK(valor_carácter; máscara_de_carácter)
Parámetros
Nombre Tipo Descripción
máscara_de_carác- carácter La cadena con el byte contra el que se debe hacer la prueba (el valor
ter de máscara).
Salida
Carácter. La salida es la representación en caracteres del resultado binario de una operación AND a nivel
de los bits.
Ejemplos
Ejemplos básicos
Devuelve "2" (00110010), el resultado de una operación AND de 3 (00110011) y 6 (00110110) a nivel de
los bits:
MASK("3"; "6")
Observaciones
Cuándo usar MASK( )
Utilice MASK( ) para identificar patrones de bits específicos en un byte de datos, lo cual incluye si un bit en
particular está ajustado en 1 o no.
Cómo funciona
La función MASK( ) realiza una operación AND a nivel de los bits sobre las representaciones binarias de
los primeros caracteres de valor_de_carácter y máscara_de_carácter. Los dos bytes de comparación se
comparan de un bit por vez, lo cual arroja un tercer valor binario.
El resultado de cada comparación de bits correspondientes es 1 o 0:
0 0 0
0 1 0
1 0 0
1 1 1
Función MATCH( )
Devuelve un valor lógico que indica si el valor especificado coincide con alguno de los valores con los que
se lo compara.
Sintaxis
MATCH(valor_de_comparación; prueba <;...n>)
Parámetros
Nombre Tipo Descripción
valor_comparación carácter El campo, la expresión o el valor literal que se debe probar en busca
de coincidencias.
numérico
fechahora
prueba <;...n> carácter Cualquier campo, expresión o valor literal que desee comparar con el
valor_de_comparación.
numérico
Puede especificar tantos valores de prueba como sea necesario, pero
fechahora
todos los valores especificados deben ser del mismo tipo de datos.
Nota
Los valores de entrada de la función MATCH( ) pueden ser datos de carácter, numéricos o
de fechahora. No es posible mezclar tipos de datos. Todos los valores de entrada deben
pertenecer a la misma categoría de datos.
Salida
Lógico. Devuelve T (verdadero) si se encuentra al menos una coincidencia, y F (falso) en caso contrario.
Ejemplos
Ejemplos básicos
Nota
Los valores que se devuelven para las comparaciones de caracteres asumen que SET
EXACT está OFF (el ajuste predeterminado), salvo cuando se especifique lo contrario.
Devuelve F:
Comprobación de un campo
Devuelve T para todos los registros que contienen “Phoenix”, “Austin” o “Los Angeles” en el campo Ciu-
dad_proveedor. De lo contrario, devuelve F:
Devuelve T para todos los registros que no contienen "Phoenix", "Austin" o "Los Angeles" en el campo
Ciudad_proveedor. De lo contrario, devuelve F:
Devuelve T para todos los registros que contienen "PHOENIX", "AUSTIN" o "LOS ANGELES" en el
campo Ciudad_proveedor, sin importar las mayúsculas y minúsculas de los caracteres del campo. De lo
contrario, devuelve F:
Los valores del campo Ciudad_proveedor se convierten a mayúsculas antes de que se comparen con los
nombres de las ciudades en mayúsculas.
Comportamiento de SET EXACT
Devuelve T para todos los registros con códigos de producto "A", "D" o "F" o códigos de producto que
comienzan con "A", "D" o "F" en el campo Código_de_producto. De lo contrario, devuelve F:
Devuelve T para todos los registros con códigos de producto de un carácter "A", "D" o "F" en el campo
Código_de_producto. De lo contrario, devuelve F (SET EXACT debe estar activado en ON):
MATCH(Ciudad_proveedor; Domicilio_empleado)
Comparación de fechas
Devuelve T para todos los registros con una fecha de factura del 30 Sep 2014 o 30 Oct 2014. De lo con-
trario, devuelve F:
Ejemplos avanzados
Extracción de registros de inventario anómalos
Utilice la declaración IF y la función MATCH( ) para extraer los registros que contienen diferentes importes
en el campo Valor_inventario_al_costo y el campo calculado Costo_x_cantidad:
Se están extrayendo los registros para los departamentos 101, 103 y 107
Utilice la instrucción IF y la función MATCH( ) para extraer únicamente los registros asociados con los
departamentos 101, 103 o 107:
Observaciones
Utilice MATCH( ) en lugar del operador OR
Puede utilizar la función MATCH( ) en lugar de expresiones que utilizan el operador OR.
Por ejemplo:
equivale a
Devuelve F, porque 1.23 no es igual a 1.234 una vez que se tiene en cuenta el tercer lugar decimal:
Parámetros de caracteres
Coincidir mayúsc.-minúsc.
La función MATCH( ) diferencia entre mayúsculas y minúsculas cuando se utiliza con datos de caracteres.
Cuando compara caracteres, "a" no equivale a "A".
Devuelve F:
MATCH("a";"A";"B";"C")
Si está trabajando con datos que incluyen incoherencias entre mayúsculas y minúsculas, puede utilizar la
función UPPER( ) para convertir los valores a un uso coherente de mayúsculas antes de usar MATCH( ).
Devuelve T:
Coincidencia parcial
Se admite la coincidencia parcial para las comparaciones de caracteres. Cualquiera de los valores que se
están comparando puede estar contenido por el otro valor y eso se considerará una coincidencia.
Los siguientes dos ejemplos devuelven T:
MATCH("AB"; "ABC")
MATCH("ABC"; "AB")
Nota
El valor más corto debe aparecer al principio del valor más extenso para que exista una
coincidencia.
Parámetros Fechahora
Un campo de fecha, fechahora u hora especificado como un valor de entrada de una función puede uti-
lizar cualquier formato de fecha, fechahora u hora, siempre que la definición del campo establezca correc-
tamente el formato.
MATCH(`20141231`;`20141229`;`20141231`)
Devuelve F, aun cuando el valor_de_comparación y el segundo valor de prueba tienen una fecha idéntica
de 31 de diciembre de 2014:
MATCH(`20141231 120000`;`20141229`;`20141231`)
Si nos fijamos en el número de serie equivalente de estas dos expresiones, podemos ver por qué la
segunda se evalúa como falsa.
Devuelve T, porque el número de serie valor_de_comparación es igual al segundo número de serie
prueba:
La porción de la fecha de los números de serie 42003.500000 y 42003.000000 coincide, pero la porción de
la hora no lo hace. 0.500000 es el número de serie que equivale a 12:00 PM.
MATCH(CTOD(DATE(`20141231 120000`;"YYYYMMDD");"YYYYMMDD");`20141229`;
`20141231`)
AAAAMMDD `20141231`
AAMMDD `141231`
AAAAMMDD hhmmss `20141231 235959`
AAMMDDthhmm `141231t2359`
AAAAMMDDThh `20141231T23`
AAAAMMDD hhmmss+/-hhmm `20141231 235959-0500`
(desplazamiento de UTC)
AAMMDD hhmm+/-hh `141231 2359+01`
(desplazamiento de UTC)
thhmmss `t235959`
Thhmm `T2359`
Nota
No use solo hh en el formato de la hora
principal con datos que tienen un des-
plazamiento del UTC. Por ejemplo, evite:
hh+hhmm. Los resultados pueden no ser
confiables.
Función MAXIMUM( )
Devuelve el valor máximo de un conjunto de valores numéricos o el valor más reciente de un conjunto de
valores de fechahora.
Sintaxis
MAXIMUM(valor_1; valor_2 <;...n>)
Parámetros
Nombre Tipo Descripción
valor_1, valor_2 numérico Los valores que se compararán, separados por comas.
<;...n>
fechahora Todos los valores debe deben ser del mismo tipo de datos.
Además, los valores de fechahora deben ser del mismo subtipo. No
es posible mezclar los valores de fecha, fechahora u hora en una
única ejecución de la función.
Salida
Numérico o Fechahora.
Ejemplos
Ejemplos básicos
Valor de entrada numérico literal
Devuelve 7:
MAXIMUM(4; 7)
Devuelve 8:
MAXIMUM(4; 7; 3; 8)
Returns 8,00:
MAXIMUM(4; 7,25; 3; 8)
Devuelve `23:59:59`:
Ejemplos avanzados
Creación de un campo calculado con un valor predeterminado mínimo
Si tiene una tabla de cuentas vencidas, cree un campo Vencimiento_de_interés que contenga un valor
predeterminado mínimo de $1,00:
Si el saldo multiplicado por la tasa de interés es inferior a 1 dólar, MAXIMUM( ) devuelve 1. De lo con-
trario, MAXIMUM( ) devuelve el importe del interés calculado.
l Los registros con todas las fechas hasta el 31 de marzo de 2016 o antes, devuelven 20160331.
l Los registros con una o más fechas después del 31 de marzo de 2016 devuelven la fecha más
reciente entre los tres campos.
Observaciones
Cómo funcionan los lugares decimales en conjuntos de valores numéricos
Si los dos valores numéricos que se están comparando no tienen la misma cantidad de lugares decimales,
el resultado se ajusta a la cantidad más grande de decimales.
Devuelve 20,400:
Puede utilizar la función DECIMALS( ) para ajustar la cantidad de decimales para los parámetros valor.
Devuelve 20,40:
Función MINIMUM( )
Devuelve el valor mínimo de un conjunto de valores numéricos o el valor más antiguo de un conjunto de
valores de fechahora.
Sintaxis
MINIMUM(valor_1; valor_2 <;...n>)
Parámetros
Nombre Tipo Descripción
valor_1; valor_2<; numérico Los valores que se compararán, separados por comas.
...n>
fechahora Todos los valores debe deben ser del mismo tipo de datos.
Además, los valores de fechahora deben ser del mismo subtipo. No
es posible mezclar los valores de fecha, fechahora u hora en una
única ejecución de la función.
Salida
Numérico o Fechahora.
Ejemplos
Ejemplos básicos
Valor de entrada numérico literal
Devuelve 4:
MINIMUM(4; 7)
Devuelve 3:
MINIMUM(4; 7; 3; 8)
Devuelve 3,00:
MINIMUM(4; 7,25; 3; 8)
Devuelve `23:59:57`:
Ejemplos avanzados
Identificación del valor más bajo de varios campos
Cree un campo calculado para identificar el valor más bajo entre los campos Costo, Precio_venta y Pre-
cio_descuento, cree un campo calculado con la siguiente expresión:
l Los registros con todas las fechas posteriores al 01 de enero de 2016, inclusive, devuelven
`20160101`.
l Los registros con una o más fechas después del 01 de enero de 2016 devuelven la fecha más anti-
gua entre los tres campos.
Observaciones
Cómo funcionan los lugares decimales en conjuntos de valores numéricos
Si los dos valores numéricos que se están comparando no tienen la misma cantidad de lugares deci-
males, el resultado se ajusta a la cantidad más grande de decimales.
Devuelve 3,600:
Puede utilizar la función DECIMALS( ) para ajustar la cantidad de decimales para los parámetros valor.
Devuelve 3,60:
La abreviatura MIN( )
En ACL Script, se puede utilizar la abreviatura MIN( ) para la función MINIMUM( ) a pesar de que no se
identifica de forma única la función, que es el requisito normal cuando se abrevian nombres de funciones.
MIN( ) también podría ser una abreviatura de MINUTE( ); sin embargo ACL reserva la abreviatura MIN( )
para la función MINIMUM( ).
Función MINUTE( )
Extrae los minutos de una hora o fechahora especificada y la devuelve como un valor numérico.
Sintaxis
MINUTE(hora/fechahora)
Parámetros
Nombre Tipo Descripción
hora/fechahora fechahora El campo, expresión o el valor literal de donde extraer los minutos.
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 59:
MINUTE(`t235930`)
MINUTE(`20141231 235930`)
MINUTE(Hora_inicio_llamada)
Observaciones
Abreviatura de MINUTE( ) en scripts
En ACLScript, si abrevia la función MINUTE( ), debe utilizar por lo menos las cuatro primeras letras
(MINU). ACL reserva la abreviatura MIN para la función MINIMUM( ).
thhmmss `t235959`
Thhmm `T2359`
AAAAMMDD hhmmss `20141231 235959`
AAMMDDthhmm `141231t2359`
AAAAMMDDThh `20141231T23`
AAAAMMDD hhmmss+/-hhmm `20141231 235959-0500`
(desplazamiento de UTC)
AAMMDD hhmm+/-hh `141231 2359+01`
(desplazamiento de UTC)
Nota
No use solo hh en el formato de la hora
principal con datos que tienen un des-
plazamiento del UTC. Por ejemplo, evite:
hh+hhmm. Los resultados pueden no ser
confiables.
Función MOD( )
Devuelve el resto de la división de dos números.
Sintaxis
MOD(número; número_divisor)
Parámetros
Nombre Tipo Descripción
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 3:
MOD(93; 10)
Devuelve 2,0:
MOD(66; 16,00)
Devuelve 3,45:
MOD(53,45; 10)
Ejemplos avanzados
Cálculo de una fecha aniversario
Define un campo que muestra la cantidad de meses desde el último aniversario:
Observaciones
Cuándo usar MOD( )
Utilice la función MOD( ) esta función para probar si dos números pueden dividirse de manera exacta o ais-
lar el resto de un cálculo de división. Esta función divide un número entre otro y devuelve el resto.
Función MONTH( )
Extrae el mes de una fecha o fechahora especificada y lo devuelve como un valor numérico (1 a 12).
Sintaxis
MONTH(fecha/fechahora)
Parámetros
Nombre Tipo Descripción
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 12:
MONTH(`20141231`)
MONTH(`20141231 235959`)
MONTH(Fecha_de_factura)
Observaciones
Detalles del parámetro
Un campo especificado para fecha/fechahora puede utilizar cualquier formato de fecha o fechahora, siem-
pre que la definición del campo establezca correctamente el formato.
AAAAMMDD `20141231`
AAMMDD `141231`
AAAAMMDD hhmmss `20141231 235959`
AAMMDDthhmm `141231t2359`
AAAAMMDDThh `20141231T23`
AAAAMMDD hhmmss+/-hhmm `20141231 235959-0500`
(desplazamiento de UTC)
AAMMDD hhmm+/-hh `141231 2359+01`
(desplazamiento de UTC)
Nota
No use solo hh en el formato de la hora
principal con datos que tienen un des-
plazamiento del UTC. Por ejemplo, evite:
hh+hhmm. Los resultados pueden no ser
confiables.
Funciones relacionadas
Si necesita devolver el nombre del mes del año, utilice la función CMOY( ) en lugar de MONTH( ).
Función NOMINAL( )
Devuelve la tasa de interés anual nominal de un préstamo.
Sintaxis
NOMINAL(tasa_efectiva; períodos)
Parámetros
Nombre Tipo Descripción
Salida
Numérico. La tasa se calcula a lugares de ocho decimales.
Ejemplos
Ejemplos básicos
Devuelve 0,17998457 (18 %), la tasa de interés nominal anual sobre el saldo impago de una tarjeta de cré-
dito que cobra una tasa anual efectiva del 19,56 %:
NOMINAL(0,1956; 12)
Observaciones
¿Qué es la tasa de interés nominal?
La tasa de interés nominal anual de un préstamo es la tasa de interés estipulada o publicada, sin tener en
cuenta el interés sobre el saldo restante, compuesto mensualmente o diariamente.
Funciones relacionadas
La función EFFECTIVE( ) es la inversa de la función NOMINAL( ).
Función NORMDIST( )
Devuelve la probabilidad de que una variable aleatoria de un conjunto de datos normalmente distribuidos
sea menor que o igual a un valor especificado o que sea exactamente igual a un valor especificado.
Sintaxis
NORMDIST(x; media; desviación_estándar; acumulado)
Parámetros
Nombre Tipo Descripción
acumulado lógico Especifique T para calcular la probabilidad de que una variable alea-
toria sea inferior o igual a x (probabilidad acumulada) o F para cal-
cular la probabilidad de que una variable aleatoria sea exactamente
igual a x (probabilidad simple).
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 0,908788780274132:
Devuelve 0,109340049783996:
Función NORMSINV( )
Devuelve el puntaje z asociado con una probabilidad especificada en una distribución normal estándar. El
puntaje z es la cantidad de desviaciones estándar entre un valor y la media de una distribución normal
estándar.
Sintaxis
NORMSINV(probabilidad)
Parámetros
Nombre Tipo Descripción
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 1,333401745213610:
NORMSINV(0,9088)
Función NOW( )
Devuelve la hora actual del sistema operativo como un tipo de datos de fechahora.
Sintaxis
NOW()
Parámetros
Esta función no tiene ningún parámetro.
Salida
Fechahora.
Ejemplos
Ejemplos básicos
Devuelve la hora actual del sistema operativo se devuelve como un valor fechahora (por ejemplo,
`t235959`) y lo muestra utilizando el formato de visualización de la hora actual de ACL.
NOW()
Observaciones
Funciones relacionadas
Si necesita devolver la hora actual del sistema operativo como una cadena de caracteres, utilice TIME(
) en lugar de NOW( ).
Función NPER( )
Devuelve la cantidad de períodos necesarios para cancelar un préstamo.
Sintaxis
NPER(tasa; pago; cantidad <;tipo>)
Parámetros
Nombre Tipo Descripción
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 300,00, el número de meses necesarios para pagar un préstamo de $275.000 con un interés de
6,5 % anual, y pagos de $1.856,82 que vencen a fin de cada mes:
Devuelve 252,81, el número de meses necesarios para pagar el mismo préstamo con pagos de $2.000
que vencen a fin de cada mes:
Devuelve 249,92, el número de meses necesarios para pagar el mismo préstamo con pagos de $2.000
que vencen a fin de cada mes:
Ejemplos avanzados
Cálculos de las anualidades
Los cálculos de las anualidades involucran cuatro variables:
l valor presente o valor futuro: en los ejemplos siguientes, $21,243.39 y $ 26,973.46
l importe de pago por período: en los ejemplos siguientes, $1,000.00
l tasa de interés por período: en los ejemplos siguientes, 1% mensual
l cantidad de períodos: en los ejemplos siguientes, 24 meses
Si conoce el valor de tres de las variables, puede utilizar una función de ACL para calcular el cuarto valor.
PVANNUITY( )
Devuelve 21243.39:
FVANNUITY( )
Devuelve 26973.46:
PMT( )
Devuelve 1000:
RATE( )
Tasa de interés por período Devuelve 0.00999999 (1%):
NPER( )
Devuelve 24.00:
La fórmula para calcular el valor futuro de una anualidad ordinaria (pago al final de un período):
Función OCCURS( )
Devuelve un recuento del número de veces que aparece una subcadena en un valor de caracteres espe-
cificado.
Sintaxis
OCCURS(cadena; buscar)
Parámetros
Nombre Tipo Descripción
OCCURS(Nombre+Apellido;"John")
buscar carácter El valor que se debe buscar. La búsqueda distingue entre mayús-
culas y minúsculas.
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 2:
OCCURS("abc/abc/a";"ab")
Devuelve 3:
OCCURS("abc/abc/a";"a")
Devuelve la cantidad de veces que aparece un guion en cada valor del campo Número_de_factura:
OCCURS(Número_de_factura; "-")
Ejemplos avanzados
Buscar números de factura con más de un guion
Si los números de factura solo deben tener un guion, utilice la función OCCURS( ) para crear un filtro que
aísle los números de factura que tienen dos o más guiones:
Al incluir la función ALLTRIM( ) en la expresión, se quitan los espacios iniciales o finales del campo
Apellido, lo cual permite asegurarse de comparar únicamente los valores de texto.
Si desea encontrar todas las instancias de "United Equipment" sin importar el uso de mayúsculas o minús-
culas, utilice la función UPPER( ) para convertir los valores del campo de búsqueda en mayúsculas:
Función OFFSET( )
Devuelve el valor de un campo con el desplazamiento de la posición inicial por un número especificado de
bytes.
Sintaxis
OFFSET(campo; número_de_bytes)
Parámetros
Nombre Tipo Descripción
Salida
El valor devuelto es el mismo tipo de datos que el del parámetro de entrada campo.
Ejemplos
Ejemplos básicos
Si tiene un campo denominado "Número" que contenga el valor "1234567890" y define un campo super-
puesto, llamado "Número_desplazado" que tiene una posición inicial de 1, una longitud de 3 y sin posi-
ciones decimales, puede utilizar la función OFFSET( ) para cambiar los números del campo.
Devuelve 123:
OFFSET(Número_desplazado;0)
Devuelve 234:
OFFSET(Número_desplazado;1)
Devuelve 789:
OFFSET(Número_desplazado;6)
Observaciones
Puede utilizar esta función para desplazar temporalmente la posición inicial de un campo. Resulta útil
cuando procesa datos en donde la posición inicial del campo es variable.
Si utiliza la función OFFSET( ) con campos calculados condicionales, cualquier campo al que se haga refe-
rencia en la prueba Si también se desplazará.
Función OMIT( )
Devuelve una cadena con una o varias subcadenas especificadas eliminadas.
Sintaxis
OMIT(cadena1; cadena2 <;coincidir_mayúsc./minúsc.>)
Parámetros
Nombre Tipo Descripción
coincidir_mayús- lógico Especifique T para hacer que las subcadenas distingan entre mayús-
c./minúsc. culas de minúsculas o F para ignorar si es mayúscula o minúscula.
opcional Si se omite coincidir_mayúsc./minúsc., se utiliza el valor pre-
determinado T.
Salida
Carácter.
Ejemplos
Ejemplos básicos
Valor de entrada de caracteres literales
Devuelve "Intercity Couriers":
Nota
La distancia de Levenshtein entre los valores devueltos en los primeros dos ejemplos es 1.
Si no se eliminan los elementos genéricos, la distancia entre los dos ejemplos es 8, lo cual
podría permitir que los valores escapen a la detección como duplicados inexactos.
Devuelve todos los valores del campo Nombre_proveedor con los elementos genéricos como "Cor-
poration" e "Inc." eliminados:
OMIT(Nombre_proveedor;" ,.,Corporation,Corp,Inc,Ltd")
Nota
Los dos ejemplos anteriores devuelven los mismos resultados pero la sintaxis del segundo
ejemplo es más eficiente.
Devuelve todos los valores del campo Nombre_proveedor con "Corporation" y "Corp" eliminados, y con
todas las comas eliminadas:
Observaciones
OMIT( ) puede eliminar las subcadenas como unidades
La función OMIT( ) elimina una o más subcadenas de una cadena. Difiere de las funciones como CLEAN
( ), EXCLUDE( ), INCLUDE( ) y REMOVE( ) porque coincide y elimina caracteres por subcadenas en
lugar de carácter por carácter, lo que le permite quitar palabras específicas, abreviaturas o secuencias
repetidas de caracteres de una cadena sin afectar el resto de la cadena.
Función PACKED( )
Devuelve datos numéricos convertidos al tipo de dato Compactado.
Sintaxis
PACKED(número; longitud_del_resultado)
Parámetros
Nombre Tipo Descripción
Salida
Numérico.
Ejemplos
Ejemplos básicos
Valor de entrada entero y decimal
Devuelve 00075C:
PACKED(75; 3)
PACKED(7,5; 3)
PACKED(-12,456; 6)
Devuelve 456D:
PACKED(-12,456; 2)
Ejemplos avanzados
Creación de un campo de 8 bytes para actualizar un mainframe
Debe crear un campo de 8 bytes que contenga el salario de cada empleado como un número compactado
(PACKED) para cargarlo a un mainframe:
Observaciones
¿Qué son los datos Compactados?
El tipo de dato Compactado es utilizado por los sistemas operativos de mainframe para almacenar valores
numéricos en un formato que utiliza espacio de almacenamiento mínimo. El tipo de dato Compactado alma-
cena dos dígitos en cada byte, y el último byte indica si el valor es positivo o negativo.
Función PI( )
Devuelve el valor de pi con 15 lugares decimales.
Sintaxis
PI( )
Parámetros
Esta función no tiene ningún parámetro.
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 3,141592653589793 (el valor de pi con 15 lugares decimales):
PI( )
60 * PI( )/180
Ejemplos avanzados
Uso de grados como información de entrada
Devuelve 0,866025403784439 (el seno de 60 grados):
SIN(60 * PI( )/180)
Observaciones
Cuándo usar PI( )
Utilice PI( ) para convertir los grados en radianes: (grados * PI( )/180) = radianes. Los radianes son la
entrada necesaria para tres de las funciones matemáticas de ACL: SIN( ), COS( ) y TAN( ).
Función PMT( )
Devuelve el importe del pago periódico (capital + interés) necesario para cancelar un pago.
Sintaxis
PMT(tasa; períodos; cantidad <;tipo)
Parámetros
Nombre Tipo Descripción
Nota
Debe usar períodos de tiempo uniformes al especificar la tasa y los períodos a fin de ase-
gurarse de estar especificando la tasa de interés por período.
Por ejemplo:
l para pagos mensuales en una inversión o un préstamo a dos años, con un interés
del 5 % anual, especifique 0.05/12 para la tasa y 2 * 12 para los períodos
l para pagos anuales del mismo préstamo o inversión, especifique 0.05 para la tasa
y 2 para los períodos
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 1856,82, el pago mensual (capital inicial + interés) necesario para pagar un préstamo de
$275.000 a 25 años e intereses del 6,5 % anual, con pagos que vencen a fin de mes:
Devuelve 1846,82, el pago mensual (capital inicial + interés) necesario para pagar el mismo préstamo, con
pagos que vencen a principio de mes:
Ejemplos avanzados
Cálculos de las anualidades
Los cálculos de las anualidades involucran cuatro variables:
l valor presente o valor futuro: en los ejemplos siguientes, $21,243.39 y $ 26,973.46
l importe de pago por período: en los ejemplos siguientes, $1,000.00
l tasa de interés por período: en los ejemplos siguientes, 1% mensual
l cantidad de períodos: en los ejemplos siguientes, 24 meses
Si conoce el valor de tres de las variables, puede utilizar una función de ACL para calcular el cuarto valor.
PVANNUITY( )
Devuelve 21243.39:
FVANNUITY( )
Devuelve 26973.46:
PMT( )
Importe de pago por período Devuelve 1000:
RATE( )
Devuelve 0.00999999 (1%):
NPER( )
Devuelve 24.00:
La fórmula para calcular el valor futuro de una anualidad ordinaria (pago al final de un período):
Función PPMT( )
Devuelve el capital pagado sobre un prestamo durante un único período.
Sintaxis
PPMT(tasa; período_especificado; períodos, cantidad <;tipo>)
Parámetros
Nombre Tipo Descripción
período_espe- numérico El período para el cual desea conocer el pago del capital.
cificado
Nota
Debe usar períodos de tiempo uniformes al especificar la tasa y los períodos a fin de ase-
gurarse de estar especificando la tasa de interés por período.
Por ejemplo:
l para pagos mensuales en una inversión o un préstamo a dos años, con un interés
del 5 % anual, especifique 0.05/12 para la tasa y 2 * 12 para los períodos
l para pagos anuales del mismo préstamo o inversión, especifique 0.05 para la tasa y
2 para los períodos
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 367,24, el capital pagado durante el primer mes de un préstamo de $275.000 a 25 años e inte-
reses del 6,5 % anual, con pagos que vencen a fin de mes:
Devuelve 1846,82, el capital pagado por el mismo préstamo en el último mes del préstamo:
Observaciones
Funciones relacionadas
La función IPMT( ) es el complemento de la función PPMT( ).
La función CUMPRINC( ) calcula el capital pagado durante un intervalo de períodos.
Función PROPER( )
Devuelve una cadena donde el primer carácter de cada palabra está en mayúsculas y el resto de los carac-
teres, en minúsculas.
Sintaxis
PROPER(cadena)
Parámetros
Nombre Tipo Descripción
Salida
Carácter.
Ejemplos
Ejemplos básicos
Devuelve "Pedro Pérez":
PROPER("PEDRO PÉREZ")
PROPER("pedro pérez")
PROPER("BILL O'HARA")
Devuelve todos los valores del campo Nombre_compañía convertidos a mayúsculas o minúsculas,
según corresponda:
PROPER(Nombre_compañía)
Observaciones
Cómo funciona
La función PROPER( ) convierte el primer carácter de la cadena y cualquier carácter posterior precedido
por un espacio en blanco, en mayúsculas.
Los caracteres posteriores precedidos por un guion, un apóstrofe, el signo & y otros signos de puntuación
y caracteres especiales también se convierten a mayúsculas. Todos los demás caracteres alfabéticos se
convierten a minúsculas.
Función PROPERTIES( )
Devuelve información de propiedades para el elemento de proyecto de ACL.
Sintaxis
PROPERTIES(nombre; tipo_obj; tipo_info)
Parámetros
Nombre Tipo Descripción
nombre carácter El nombre del elemento de proyecto de ACL acerca del cual desea
obtener información. El nombre no distingue entre mayúsculas y
minúsculas.
Si el elemento del proyecto es una tabla de ACL, especifique el nom-
bre del formato de tabla, no el nombre del archivo de datos. Por ejem-
plo: "Facturas", no "facturas_de_enero.fil".
Si está utilizando la función PROPERTIES( ) para obtener el nombre
de la tabla activa, especifique el nombretabla_activa.
tipo_obj carácter El tipo de elemento del proyecto de ACL al que se hace referencia
con nombre.
Nota
Actualmente, "tabla" es el único tipo de elemento de pro-
yecto que se admite.
tipo_info carácter El tipo de información que desea acerca del elemento de proyecto de
ACL.
Si desea obtener más información, consulte "Tipos de información de
propiedades" en la página 659.
Salida
Carácter. La longitud máxima de la cadena de salida es 260 caracteres. Si no se puede encontrar la infor-
mación de propiedades, se devuelve una cadena vacía.
Ejemplos
Ejemplos básicos
Información acerca del archivo de datos de ACL (.fil)
Devuelve "Trans_Cp.fil":
Devuelve "EXCEL":
Observaciones
Información del archivo.
Los tipos de información que comienzan con "archivo" ofrecen información acerca del archivo de datos de
ACL (.fil) asociado con una tabla de ACL.
Información de origen
Los tipos de información que comienzan con "origen" ofrecen información acerca de los orígenes de datos
externos que se pueden asociar con una tabla de ACL. Solo los orígenes de datos externos que admiten la
actualización de una tabla de ACL se pueden reportar con el uso de la función PROPERTIES( ):
l Microsoft Excel
l Microsoft Access
l Texto delimitado
l Adobe Acrobat (PDF)
l Imagen de impresión (reporte)
l Formato de archivo SAP privado / DART
l XML
l XBRL
l Orígenes de datos ODBC
tipo_
obj tipo_info Devuelve:
"tabla" "nombre_de_ El nombre del archivo de datos asociado con la tabla de ACL.
archivo"
"tamaño_del_ El tamaño, en KB, del archivo de datos asociado con la tabla de ACL.
archivo"
"archivo_modi- La fecha y la hora en la que se modificó por última vez el archivo de datos asociado con la
ficado_el" tabla de ACL.
tipo_
obj tipo_info Devuelve:
Los orígenes de datos pueden ser archivos externos, como Excel, Access, PDF, XML, archi-
vos de texto delimitado u orígenes de datos ODBC.
"ruta de ori- La ruta del origen de los datos asociados con la tabla de ACL.
gen"
No se admite para orígenes de datos ODBC.
"tamaño_del_ El tamaño, en KB, del origen de los datos asociados con la tabla de ACL.
origen"
No se admite para orígenes de datos ODBC.
"origen_modi- La fecha y la hora en la que se modificó por última vez el origen de los datos asociados
ficado_el" con la tabla de ACL.
No se admite para orígenes de datos ODBC.
Función PVANNUITY( )
Devuelve el valor presente de una serie de pagos futuros que se calculan utilizando una tasa de interés
constante. El valor presente es el valor de suma global, actual.
Sintaxis
PVANNUITY(tasa; períodos; pago <;tipo>)
Parámetros
Nombre Tipo Descripción
Nota
Debe usar períodos de tiempo uniformes al especificar la tasa, los períodos y el pago a fin
de asegurarse de estar especificando la tasa de interés por período.
Por ejemplo:
l para un pago mensual en una inversión o un préstamo a dos años, con un interés del
5 % anual, especifique 0.05/12 para la tasa y 2 * 12 para los períodos
l para un pago anual del mismo préstamo o inversión, especifique 0.05 para la tasa y
2 para los períodos
Salida
Numérico. El resultado se calcula con dos lugares decimales.
Ejemplos
Ejemplos básicos
Pagos mensuales
Devuelve 21455,82, el valor presente de $1.000 pagado al inicio de cada mes durante 2 años al 1 % men-
sual, compuesto mensualmente:
Pagos anuales
Devuelve 20280,61, el valor presente de $12.000 pagado al final de cada año durante dos años al 12 %
anual, compuesto anualmente:
PVANNUITY(0,12; 2; 12000; 0)
Ejemplos avanzados
Cálculos de las anualidades
Los cálculos de las anualidades involucran cuatro variables:
l valor presente o valor futuro: en los ejemplos siguientes, $21,243.39 y $ 26,973.46
l importe de pago por período: en los ejemplos siguientes, $1,000.00
l tasa de interés por período: en los ejemplos siguientes, 1% mensual
l cantidad de períodos: en los ejemplos siguientes, 24 meses
Si conoce el valor de tres de las variables, puede utilizar una función de ACL para calcular el cuarto valor.
PVANNUITY( )
Devuelve 21243.39:
FVANNUITY( )
Devuelve 26973.46:
PMT( )
Devuelve 1000:
RATE( )
Devuelve 0.00999999 (1%):
NPER( )
Devuelve 24.00:
La fórmula para calcular el valor futuro de una anualidad ordinaria (pago al final de un período):
Observaciones
Funciones relacionadas
La función FVANNUITY( ) es la inversa de la función PVANNUITY( ).
Función PVLUMPSUM( )
Devuelve el valor presente necesario para generar la suma global futura específica que se calcula uti-
lizando una tasa de interés constante. El valor presente es el valor de suma global, actual.
Sintaxis
PVLUMPSUM(tasa; períodos; cantidad)
Parámetros
Nombre Tipo Descripción
cantidad numérico El valor de la suma global futura al final del último período.
Nota
Debe usar períodos de tiempo uniformes al especificar la tasa y los períodos a fin de ase-
gurarse de estar especificando la tasa de interés por período.
Por ejemplo:
l para pagos mensuales en una inversión o un préstamo a dos años, con un interés
del 5 % anual, especifique 0.05/12 para la tasa y 2 * 12 para los períodos
l para pagos anuales del mismo préstamo o inversión, especifique 0.05 para la tasa
y 2 para los períodos
Salida
Numérico. El resultado se calcula con dos lugares decimales.
Ejemplos
Ejemplos básicos
Interés compuesto mensual
Devuelve 1000,00, el capital de inversión inicial necesario para generar una suma global futura de
$1.269,73, cuando se lo invierte a 2 años al 1 % mensual, compuesto mensualmente:
Devuelve 787,57, el capital de inversión inicial necesario para generar una suma global futura de $1.000,
cuando se lo invierte a 2 años al 1 % mensual, compuesto mensualmente:
Devuelve 21455,82, el capital de inversión inicial necesario para generar una suma global futura de
$27.243,20, cuando se lo invierte a 2 años al 1 % mensual, compuesto mensualmente:
PVLUMPSUM(0,12/2; 2; 1000)
Observaciones
¿Qué es el valor presente?
El valor presente de una suma invertida es el capital inicial necesario para generar una suma específica
futura, dentro de un plazo de tiempo en particular. El valor futuro es el capital inicial más el interés com-
puesto acumulado.
Funciones relacionadas
La función FVLUMPSUM( ) es la inversa de la función PVLUMPSUM( ).
Función PYDATE( )
Devuelve un valor de fecha calculado por una función en un script externo de Python. El procesamiento de
datos de Python se hace fuera de ACL.
Sintaxis
PYDATE("ArchivoPy;FunciónPy" <; campo|valor <;...n>>)
Parámetros
Nombre Tipo Descripción
ArchivoPy;FunciónPy carácter El nombre del script Python que se debe ejecutar, seguido de una
coma y, a continuación, el nombre de la función que devuelve el
valor:
"myScript,myFunction"
campo |valor <;...n> carácter Esta lista de campos, expresiones o valores literales que se deben uti-
lizar como argumentos para la función de Python. Los valores se
opcional numérico
pasan a la función que invoca en el orden en que los especifique.
fechahora
Puede incluir tantos argumentos como sea necesario para satisfacer
lógico la definición de la función en el script de Python.
Nota
Utilice la función ALLTRIM() para quitar los espacios al
principio o al final en las entradas de caracteres:
ALLTRIM(str). Si desea obtener más información, con-
sulte "Función ALLTRIM( )" en la página 430.
Salida
Fechahora.
Ejemplos
Ejemplos básicos
Devuelve `20160630`:
El script externo de Python acepta una fecha y un período de gracia como una cantidad de días y calcula
la fecha de vencimiento de la factura. Para una fecha de factura de 2016-05-31 y un período de 30
días: "2016-06-30":
#! python
from datetime import timedelta
Ejemplos avanzados
Definición de un campo calculado
Define un campo calculado en la tabla Trans_Cp utilizando el script de Python que calcula la fecha de ven-
cimiento:
OPEN Trans_Cp
DEFINE FIELD fecha_de_vencimiento COMPUTED
WIDTH 27
PYDATE('hello;due_date'; fecha_de_factura; período_de_pago)
Función PYDATETIME( )
Devuelve un valor de fechahora calculado por una función en un script externo de Python. El pro-
cesamiento de datos de Python se hace fuera de ACL.
Sintaxis
PYDATETIME("ArchivoPy;FunciónPy" <; campo|valor <;...n>>)
Parámetros
Nombre Tipo Descripción
ArchivoPy;FunciónPy carácter El nombre del script Python que se debe ejecutar, seguido de una
coma y, a continuación, el nombre de la función que devuelve el
valor:
"myScript,myFunction"
campo |valor <;...n> carácter Esta lista de campos, expresiones o valores literales que se deben uti-
lizar como argumentos para la función de Python. Los valores se
opcional numérico
pasan a la función que invoca en el orden en que los especifique.
fechahora
Puede incluir tantos argumentos como sea necesario para satisfacer
lógico la definición de la función en el script de Python.
Nota
Utilice la función ALLTRIM() para quitar los espacios al
principio o al final en las entradas de caracteres:
ALLTRIM(str). Si desea obtener más información, con-
sulte "Función ALLTRIM( )" en la página 430.
Salida
Fechahora.
Ejemplos
Ejemplos básicos
Devuelve `20170101t0500`:
El script externo de Python acepta un argumento de fecha y un argumento de hora, y devuelve un objeto
fechahora combinado:
# hello.py content
from datetime import datetime
def combine_date_time(d,t):
return datetime.combine(d,t)
Ejemplos avanzados
Agregar la hora a la fechahora
Devuelve `20160101t2230`:
Script externo de Python que acepta una fechahora y una hora, y agrega la hora a la fechahora: 2016-01-
01 15:00:00 + 7 horas, 30 minutos, 00 segundos = 2016-01-01 22:30:00.
# hello.py content
from datetime import timedelta
from datetime import datetime
from datetime import time
def add_time(start, time_to_add):
return start + timedelta(hours=time_to_add.hour, minutes=time_to_add.minute, seconds=time_to_
add.second)
Función PYLOGICAL( )
Devuelve un valor lógico calculado por una función en un script externo de Python. El procesamiento de
datos de Python se hace fuera de ACL.
Sintaxis
PYLOGICAL("ArchivoPy;FunciónPy" <; campo|valor <;...n>>)
Parámetros
Nombre Tipo Descripción
ArchivoPy;FunciónPy carácter El nombre del script Python que se debe ejecutar, seguido de una
coma y, a continuación, el nombre de la función que devuelve el
valor:
"myScript,myFunction"
campo |valor <;...n> carácter Esta lista de campos, expresiones o valores literales que se deben uti-
lizar como argumentos para la función de Python. Los valores se
opcional numérico
pasan a la función que invoca en el orden en que los especifique.
fechahora
Puede incluir tantos argumentos como sea necesario para satisfacer
lógico la definición de la función en el script de Python.
Nota
Utilice la función ALLTRIM() para quitar los espacios al
principio o al final en las entradas de caracteres:
ALLTRIM(str). Si desea obtener más información, con-
sulte "Función ALLTRIM( )" en la página 430.
Salida
Lógico.
Ejemplos
Ejemplos básicos
Devuelve F:
Script externo de Python que compara str1 y str2 utilizando el recuento del carácter que se pasa como
char:
# hello.py content
def str_compare(str1, str2, char):
return str1.count(char) > str2.count(char)
Ejemplos avanzados
Uso de campos
Devuelve un valor verdadero al comparar Nombre_proveedor y Ciudad_proveedor:
Script externo de Python que compara str1 y str2 utilizando el recuento del carácter que se pasa como
char:
# hello.py content
def str_compare(str1, str2, char):
return str1.count(char) > str2.count(char)
Función PYNUMERIC( )
Devuelve un valor numérico calculado por una función en un script externo de Python. El procesamiento de
datos de Python se hace fuera de ACL.
Sintaxis
PYNUMERIC(ArchivoPy;FunciónPy; decimal <; campo|valor <;...n>>)
Parámetros
Nombre Tipo Descripción
ArchivoPy;FunciónPy carácter El nombre del script Python que se debe ejecutar, seguido de una
coma y, a continuación, el nombre de la función que devuelve el
valor:
"myScript,myFunction"
campo |valor <;...n> carácter Esta lista de campos, expresiones o valores literales que se deben uti-
lizar como argumentos para la función de Python. Los valores se
opcional numérico
pasan a la función que invoca en el orden en que los especifique.
fechahora
Puede incluir tantos argumentos como sea necesario para satisfacer
lógico la definición de la función en el script de Python.
Nota
Utilice la función ALLTRIM() para quitar los espacios al
principio o al final en las entradas de caracteres:
ALLTRIM(str). Si desea obtener más información, con-
sulte "Función ALLTRIM( )" en la página 430.
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 35,00:
Script externo de Python que devuelve el valor según el percentil solicitado a partir de una lista de valores
de tamaño dinámico:
# hello.py content
from math import ceil
def get_nth_percent(percentage, *values):
input_length = len(values)
position = ceil((percentage/100.00) * input_length)
return values[position-1]
Función PYSTRING( )
Devuelve un valor de carácter calculado por una función en un script externo de Python. El procesamiento
de datos de Python se hace fuera de ACL.
Sintaxis
PYSTRING("ArchivoPy;FunciónPy"; longitud <;campo|valor <;...n>>)
ArchivoPy;FunciónPy carácter El nombre del script Python que se debe ejecutar, seguido de una
coma y, a continuación, el nombre de la función que devuelve el
valor:
"myScript,myFunction"
campo |valor <;...n> carácter Esta lista de campos, expresiones o valores literales que se deben uti-
lizar como argumentos para la función de Python. Los valores se
opcional numérico
pasan a la función que invoca en el orden en que los especifique.
fechahora
Puede incluir tantos argumentos como sea necesario para satisfacer
lógico la definición de la función en el script de Python.
Nota
Utilice la función ALLTRIM() para quitar los espacios al
principio o al final en las entradas de caracteres:
ALLTRIM(str). Si desea obtener más información, con-
sulte "Función ALLTRIM( )" en la página 430.
Salida
Carácter.
Ejemplos
Ejemplos básicos
Devuelve "mi prueba":
Script externo de Python que acepta una cadena y concatena " prueba" a la cadena:
#! python
# hello.py content
def main(str):
str2 = str + ' test'
return(str2)
Ejemplos avanzados
Devolución de una subcadena
Este ejemplo quita los dos últimos caracteres del campo Nombre proveedor y devuelve la subcadena:
Script externo de Python que acepta una cadena, una longitud de cadena y dos posiciones de caracteres.
La función devuelve una subcadena entre la posición uno y la posición dos:
#hello.py content
def sub_set(str, length, p1, p2):
if p1 >= 0 and p2 < length and p1 < p2:
str2 = str[p1:p2]
else:
str2 = str
return str2
Función PYTIME( )
Devuelve un valor de hora calculado por una función en un script externo de Python. El procesamiento de
datos de Python se hace fuera de ACL.
Sintaxis
PYTIME("ArchivoPy;FunciónPy" <; campo|valor <;...n>>)
Parámetros
Nombre Tipo Descripción
ArchivoPy;FunciónPy carácter El nombre del script Python que se debe ejecutar, seguido de una
coma y, a continuación, el nombre de la función que devuelve el
valor:
"myScript,myFunction"
campo |valor <;...n> carácter Esta lista de campos, expresiones o valores literales que se deben uti-
lizar como argumentos para la función de Python. Los valores se
opcional numérico
pasan a la función que invoca en el orden en que los especifique.
fechahora
Puede incluir tantos argumentos como sea necesario para satisfacer
lógico la definición de la función en el script de Python.
Nota
Utilice la función ALLTRIM() para quitar los espacios al
principio o al final en las entradas de caracteres:
ALLTRIM(str). Si desea obtener más información, con-
sulte "Función ALLTRIM( )" en la página 430.
Salida
Fechahora.
Ejemplos
Ejemplos básicos
Devuelve `t2122`:
# hello.py content
from datetime import time
from datetime import date
def get_time(timestamp):
return timestamp.time();
Función RAND( )
Devuelve un número aleatorio que está dentro de un límite específico.
Sintaxis
RAND(número)
Parámetros
Nombre Tipo Descripción
RAND(100)
RAND(-100)
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 278,61:
RAND(1000,00)
Devuelve 3781:
RAND(10000)
Nota
El valor devuelto será diferente cada vez que se ejecute la función.
Observaciones
RAND( ) no puede repetir los resultados
Si utiliza la función RAND( ) de manera consecutiva con el mismo valor de número, genera resultados dife-
rentes. A diferencia del comando RANDOM, la función RAND( ) no tiene un valor semilla.
Función RATE( )
Devuelve la tasa de interés por período.
Sintaxis
RATE(períodos; pago; cantidad)
Parámetros
Nombre Tipo Descripción
Nota
La función RATE( ) supone que los pagos se efectúan al final de cada período.
Salida
Numérico. La tasa se calcula a lugares de ocho decimales.
Ejemplos
Ejemplos básicos
Devuelve 0,00541667 (0,54 %), la tasa de interés mensual de un préstamo de $275.000 a veinticinco años,
con pagos mensuales de $1.856,82:
Ejemplos avanzados
Conversión de la tasa nominal a la tasa efectiva
La función RATE( ) calcula la tasa de interés nominal. Puede usar la función EFFECTIVE( ) para convertir
el resultado de RATE( ) en la tasa de interés efectiva.
Devuelve 0,06715155 (6,7 %), la tasa de interés anual efectiva del préstamo de los ejemplos anteriores:
PVANNUITY( )
Devuelve 21243.39:
FVANNUITY( )
Devuelve 26973.46:
PMT( )
Devuelve 1000:
RATE( )
Devuelve 0.00999999 (1%):
NPER( )
Devuelve 24.00:
La fórmula para calcular el valor futuro de una anualidad ordinaria (pago al final de un período):
Función RDATE( )
Devuelve un valor de fecha calculado por un script o una función Rvachev. El procesamiento de datos en
R se hace fuera de ACL.
Sintaxis
RDATE(rScript|rCódigo <;campo|valor <;...n>>)
Parámetros
Nombre Tipo Descripción
campo | valor <;...n> carácter Esta lista de campos, expresiones o valores literales que se deben
utilizar como argumentos para el fragmento de código o script R.
opcional numérico
Los valores se pasan la función que invoque en el orden en que lo
fechahora
especifique y usted hace referencia a ellos utilizando valor1, valor2
lógico ... valorN en el código R.
Puede incluir tantos argumentos como sea necesario para satisfacer
la definición de la función en el código R.
Nota
Utilice la función ALLTRIM() para quitar los espacios al
principio o al final en las entradas de caracteres:
ALLTRIM(str). Si desea obtener más información, con-
sulte "Función ALLTRIM( )" en la página 430.
Salida
Fechahora.
Ejemplos
Ejemplos básicos
Devuelve `20160530`:
RDATE("as.Date(value1,'%m-%d-%Y')"; "05-30-16")
Ejemplos avanzados
Uso de un script externo de R
Convierte una cadena en una fecha y la devuelve:
RDATE("a<-source('c:\\scripts\\r_scripts\\sample.r');a[[1]]"; dateText)
Observaciones
Datos devueltos por R
Al invocar scripts de R, utilice la función source y asigne el objeto de retorno a una variable. Puede acceder
al valor que devolvió su función Rvachev desde el objeto devuelto:
Archivo de log de R
ACL registra los mensajes del lenguaje R en un archivo aclrlang.log en la carpeta del proyecto. Utilice
este archivo de log para depurar los errores de R.
Consejo
El archivo de log está disponible en la carpeta Resultados de los trabajos de estudio ana-
lítico de ACL GRC Analytics Exchange.
Función RDATETIME( )
Devuelve un valor de fechahora calculado por un script o una función Rvachev. El procesamiento de datos
en R se hace fuera de ACL.
Sintaxis
RDATETIME(rScript|rCódigo <;campo|valor <;...n>>)
Parámetros
Nombre Tipo Descripción
campo | valor <;...n> carácter Esta lista de campos, expresiones o valores literales que se deben uti-
lizar como argumentos para el fragmento de código o script R.
opcional numérico
Los valores se pasan la función que invoque en el orden en que lo
fechahora
especifique y usted hace referencia a ellos utilizando valor1, valor2 ...
lógico valorN en el código R.
Puede incluir tantos argumentos como sea necesario para satisfacer
la definición de la función en el código R.
Nota
Utilice la función ALLTRIM() para quitar los espacios al
principio o al final en las entradas de caracteres:
ALLTRIM(str). Si desea obtener más información, con-
sulte "Función ALLTRIM( )" en la página 430.
Salida
Fechahora.
Ejemplos
Ejemplos básicos
Agrega 45 minutos a la fecha y hora actual:
RDATETIME("Sys.time() + value1";2700)
Ejemplos avanzados
Uso de un script externo de R
Agrega 45 minutos a un campo fechahora pasando un campo y un valor literal a una función Rvachev
externa:
Observaciones
Datos devueltos por R
Al invocar scripts de R, utilice la función source y asigne el objeto de retorno a una variable. Puede acce-
der al valor que devolvió su función Rvachev desde el objeto devuelto:
Archivo de log de R
ACL registra los mensajes del lenguaje R en un archivo aclrlang.log en la carpeta del proyecto. Uti-
lice este archivo de log para depurar los errores de R.
Consejo
El archivo de log está disponible en la carpeta Resultados de los trabajos de estudio ana-
lítico de ACL GRC Analytics Exchange.
Función RECLEN( )
Devuelve la longitud del registro actual.
Sintaxis
RECLEN( )
Parámetros
Esta función no tiene ningún parámetro.
Salida
Numérico.
Ejemplos
Ejemplos básicos
El siguiente ejemplo extrae todos los registros cuya longitud es exactamente 110:
Observaciones
Puede utilizar la función RECLEN( ) para identificar registros de una longitud determinada, o para probar
si es más corta que los registros esperados. Esta función resulta útil si trabaja con archivos de imagen de
impresión (reporte), ya que proporciona una manera fácil de examinar las longitudes de los registros:
l Para registros de longitud fija, el valor devuelto es un valor constante (la longitud del registro).
l Para registros de longitud variable, el valor devuelto cambia para cada uno de los registros.
Función RECNO( )
Devuelve el número del registro actual.
Sintaxis
RECNO( )
Parámetros
Esta función no tiene ningún parámetro.
Salida
Numérico.
Ejemplos
Ejemplos básicos
En el ejemplo siguiente, se extraen los registros enumerados del 10 al 20 a una nueva tabla de ACL:
Observaciones
Puede utilizar la función RECNO( ) para enviar los números de registro a una tabla o para determinar la ubi-
cación relativa de un registro determinado en una tabla.
Función RECOFFSET( )
Devuelve un valor de campo de un registro que es una cantidad de registros especificada del registro
actual.
Sintaxis
RECOFFSET(campo; número_de_registros)
Parámetros
Nombre Tipo Descripción
número_de_regis- numérico El número de registros del registro actual. Un número positivo espe-
tros cifica un registro posterior al registro actual; un número negativo espe-
cifica un registro anterior al registro actual.
Salida
Carácter, Numérico o Fechahora. El valor devuelto pertenece a la misma categoría de datos como el pará-
metro de entrada campo.
Ejemplos
Ejemplos básicos
Devuelve un valor Cantidad del siguiente registro:
RECOFFSET(Cantidad;1)
RECOFFSET(Cantidad; -1)
Ejemplos avanzados
Uso de RECOFFSET en un campo calculado
El campo calculado Cantidad_siguiente muestra el valor del campo Cantidad en el registro siguiente sólo
si el registro siguiente tiene el mismo número de cliente.
Para definir este campo calculado en un script, utilice la siguiente sintaxis:
Cantidad_siguiente es el valor del campo Cantidad del siguiente registro solo si el número de cliente del
siguiente registro es el mismo que el número de cliente del registro actual. En caso contrario, a Cantidad_
siguiente se le asigna un valor de cero.
Observaciones
La función RECOFFSET( ) devuelve un valor de campo de un registro que es un número específico de
registros superior o inferior al registro actual.
Función REGEXFIND( )
Devuelve un valor lógico que indica si el patrón que se especificó con una expresión regular aparece en una
cadena.
Sintaxis
REGEXFIND(cadena; patrón)
Parámetros
Nombre Tipo Descripción
cadena carácter El campo, la expresión o el valor literal que se debe probar en busca
de un patrón de coincidencias.
Salida
Lógico. Devuelve T (verdadero) si se encuentra el valor de patrón especificado y F (falso) en caso contrario.
Ejemplos
Ejemplos básicos
Patrones de caracteres alfabéticos
Devuelve T para todos los registros que contienen “Phoenix”, “Austin” o “Los Angeles” en el campo Ciu-
dad_proveedor. De lo contrario, devuelve F:
Regresa T para todos los apellidos que comienzan con "John" o "Jon". Por ejemplo: John, Jon, Johnson,
Johnston, Jonson, Jonston, Jones, etc. De lo contrario, devuelve F:
REGEXFIND(Apellido;"^Joh?n")
Regresa T únicamente para los apellidos que son "John" o "Jon". De lo contrario, devuelve F:
REGEXFIND(Apellido;"^Joh?n\b")
REGEXFIND(Número_factura; "98")
Regresa T para todos los registros con números de factura que comienzan con "98". De lo contrario,
devuelve F:
REGEXFIND(Número_factura; "\b98")
Regresa T para todos los registros con números de factura que finalizan con "98". De lo contrario,
devuelve F:
REGEXFIND(Número_factura; "98\b")
Regresa T para todos los registros con números de factura que contienen “98” en la 5° y 6° posición. De lo
contrario, devuelve F:
REGEXFIND(Número_factura; "\b\d\d\d\d98")
REGEXFIND(Número_factura; "\b\d{4}98")
REGEXFIND(Código_producto; "\b\d{3}-[a-zA-Z]{6}\b")
Regresa T para todos los registros con códigos de producto que comienzan con 3 o más números, segui-
dos de un guion y 6 o más letras. De lo contrario, devuelve F:
REGEXFIND(Código_producto; "\b\d{3,}-[a-zA-Z]{6}")
Regresa T para todos los registros con identificadores de factura alfanuméricos que contienen “98” en la 5°
y 6° posición. De lo contrario, devuelve F:
REGEXFIND(Número_factura; "\b\w{4}98")
Regresa T para todos los registros con identificadores de factura que contienen las siguientes condiciones;
de lo contrario, devuelve F:
l cualquier carácter en las primeras cuatro posiciones
l "98" en la 5° y 6° posición
REGEXFIND(Número_factura; "\b.{4}98")
Regresa T para todos los registros con identificadores de factura que contienen “98” después de 1 a 4
caracteres iniciales. De lo contrario, devuelve F:
REGEXFIND(Número_factura; "\b.{1,4}98")
Regresa 'T' para todos los registros con identificadores de factura que contienen la totalidad de las siguien-
tes condiciones; de lo contrario, devuelve F:
l cualquier carácter en las tres primeras posiciones
l "5" o "6" en la cuarta posición
l "98" en la 5° y 6° posición
REGEXFIND(Número_factura; "\b.{3}[56]98")
Regresa T para todos los registros con identificadores de factura que contienen la totalidad de las siguien-
tes condiciones; de lo contrario, devuelve F:
l cualquier carácter en las dos primeras posiciones
l "55" o "56" en la tercera y cuarta posición
l "98" en la 5° y 6° posición
REGEXFIND(Número_factura; "\b.{2}(55|56)98")
Observaciones
Cómo funciona
La función REGEXFIND( ) utiliza una expresión regular para buscar datos en ACL.
Las expresiones regulares son cadenas de búsqueda potentes y flexibles que combinan caracteres lite-
rales y metacaracteres, que son caracteres especiales que realizan una variedad de operaciones de bús-
queda.
Por ejemplo:
REGEXFIND(Apellido;"Sm(i|y)the{0,1}")
utiliza los metacaracteres de grupo ( ), alternancia | y cuantificador { } para crear una expresión regular
que encuentra “Smith”, “Smyth”, “Smithe” o “Smythe” en el campo Apellido.
Concatenar campos
Puede concatenar dos o más campos en la cadena si desea buscar en varios campos de manera simul-
tánea.
Por ejemplo:
REGEXFIND(Nombre_proveedor+Calle_proveedor;"Hardware.*Main")
busca las palabras "Hardware" y "Main" tanto en el campo Nombre_proveedor como en el campo Calle_
proveedor, ya sea juntas o separadas por caracteres.
Un negocio que incluya la palabra "Hardware" en el nombre, ubicado en la calle "Main" coincidiría con esta
expresión regular. Y lo mismo ocurre con un negocio denominado “Hardware on Main”.
Los campos concatenados se tratan como un único campo que incluye los espacios al principio y al final de
los campos individuales, a menos que utilice la función ALLTRIM( ) para quitar los espacios.
Metacarácter Descripción
? Busca una coincidencia de 0 o 1 aparición del elemento, metacarácter o literal inmediatamente ante-
rior
* Busca una coincidencia de 0 o más apariciones del elemento, metacarácter o literal inmediatamente
anterior
Metacarácter Descripción
+ Busca una coincidencia de 1 o más apariciones del elemento, metacarácter o literal inmediatamente
anterior
{} Busca una coincidencia de la cantidad especificada de apariciones del elemento, metacarácter o lite-
ral inmediatamente anterior Puede especificar un número exacto, un rango o un rango abierto.
Por ejemplo:
o a{3} coincide con "aaa"
o X{0,2}L coincide con "L", "XL" y "XXL"
o AB-\d{2,}-YZ coincide con cualquier identificador alfanumérico con el prefijo "AB-", el sufijo "-YZ" y
dos o más números en el cuerpo del identificador
[] Coincide con cualquier carácter único que se encuentre dentro de los corchetes
Por ejemplo:
o [aeiou] coincide con a, o e, o i, u o, o u
o [^aeiou] coincide con cualquier carácter que no sea a, o e, o i, u o, o u
o [A-G] coincide con cualquier letra de la A a la G, en mayúscula
o [A-Ga-g] coincide con cualquier letra mayúscula de la A a la G o con cualquier letra minúscula de
la a a la g
o [5-9] coincide con cualquier número del 5 al 9
() Crea un grupo que define una secuencia o un bloque de caracteres, que pueden ser tratados como
una misma unidad.
Por ejemplo:
o S(ch)?mid?th? coincide con "Smith" o "Schmidt"
o (56A.*){2} coincide con cualquier identificador alfanumérico en el que aparezca la secuencia "56A",
al menos dos veces
o (56A).*-.*\1 coincide con cualquier identificador alfanumérico en el que la secuencia "56A" apa-
rezca al menos dos veces, con un guion entre dos de las apariciones
\ Un carácter de escape que especifica que el carácter siguiente es un literal. Utilice el carácter de
escape si desea hacer coincidir literalmente cualquiera de los metacaracteres. Por ejemplo, \( encuen-
tra un paréntesis de apertura y \\ encuentra una barra invertida.
Utilice el carácter de escape si desea hacer coincidir literalmente cualquiera de los siguientes carac-
teres:
^ $ . * + ? = ! : | \ ( ) [ ] { }
Otros caracteres de puntuación, como & o @, no requieren el carácter de escape.
\ int Especifica que un grupo, anteriormente definido como paréntesis ( ), se repite. int es un número entero
que identifica la posición secuencial del grupo previamente definido en relación con cualquier otro
grupo. Este metacarácter se puede utilizar en el parámetro patrón tanto en REGEXFIND( ) como en
REGEXREPLACE( ).
Por ejemplo:
Metacarácter Descripción
o (123).*\1 coincide con cualquier identificador en el que el grupo de dígitos "123" aparece dos
veces, como mínimo
o ^(\d{3}).*\1 coincide con cualquier identificador en el que los primeros 3 dígitos se repiten
o ^(\d{3}).*\1.*\1 coincide con cualquier identificador en el cual los primeros 3 dígitos se repiten dos
veces, como mínimo
o ^(\D)(\d)-.*\2\1 coincide con cualquier identificador en el cual el prefijo alfanumérico se repite con
los caracteres alfabéticos y numéricos invertidos
$int Especifica que un grupo que se encuentra en una cadena de destino se utiliza en una cadena de
reemplazo. int es un número entero que identifica la posición secuencial del grupo en la cadena de
destino respecto de otros grupos. Este metacarácter se puede utilizar únicamente en el parámetro
cadena_nueva en REGEXREPLACE( ).
Por ejemplo:
o Si se utiliza el patrón (\d{3})[ -]?(\d{3})[ -]?(\d{4}) para buscar una coincidencia con una variedad
de formatos de número de teléfono diferentes, se puede utilizar cadena_nueva ($1)-$2-$3 para
reemplazar los números por sí mismos y estandarizar el formato. Tanto 999 123-4567 como
9991234567 se convierten en (999)-123-4567.
| Coincide con el carácter, el bloque de caracteres o la expresión que se encuentra antes o después del
separador (|)
Por ejemplo:
o a|b coincide con a o con b
o abc|def coincide con "abc" o "def"
o Sm(i|y)th coincide con Smith o Smyth
o [a-c]|[Q-S]|[x-z] coincide con cualquiera de estas letras: a, b, c, Q, R, S, x, y, z
o \s|- coincide con un espacio o un guion
\W Coincide con cualquier carácter que no sea de palabra (que no sea a a la z, A a la Z, 0 a 9 o el carác-
ter de guion bajo _ )
\D Coincide con cualquier carácter no numérico (cualquier carácter que no sea un dígito decimal)
Metacarácter Descripción
b\W\b\w*\b
Consejo
Además de los espacios, los límites entre las palabras pueden derivar de comas, pun-
tos u otros caracteres que no sean palabras.
Por ejemplo, la siguiente expresión se evalúa como Verdadera:
REGEXFIND("[email protected]"; "\bexample\b")
Funciones relacionadas
Si desea buscar y reemplazar patrones coincidente utilice "Función REGEXREPLACE( )" en la página
opuesta.
Función REGEXREPLACE( )
Reemplaza todas las instancias de cadenas que coinciden con una expresión regular por una nueva
cadena.
Sintaxis
REGEXREPLACE( cadena; patrón; cadena_nueva)
Parámetros
Nombre Tipo Descripción
cadena carácter El campo, la expresión o el valor literal que se debe probar en busca
de un patrón de coincidencias.
cadena_nueva carácter La cadena que se debe utilizar para reemplazar todos los valores que
coinciden con el patrón.
La cadena de reemplazo puede contener caracteres literales, grupos
de caracteres de la cadena original (con el elemento $int) o una com-
binación de ambos.
Salida
Carácter.
Ejemplos
Ejemplos básicos
Trabajo con espacios
Devuelve "AB CD EF", reemplazando varios espacios entre los caracteres de texto por un solo espacio:
Devuelve los datos del campo de caracteres con el espaciado entre las palabras estandarizado con un
solo espacio:
Devuelve los datos del campo de caracteres con el espaciado entre las palabras estandarizado con un
solo espacio. El uso de la función BLANKS( ) en cadena_nueva, en lugar de un espacio literal, hace que
los espacios sean más fáciles de leer y que resulte más difícil pasarlos por alto:
Extrae los números de teléfono de entre el texto que los rodea en el campo Comentario y estandariza el
formato:
REGEXREPLACE(REGEXREPLACE(REGEXREPLACE("1ABC-123aa";"\d";"9");"[a-z]";"x");"[A-Z]";
"X")
REGEXREPLACE(REGEXREPLACE(REGEXREPLACE(Número_de_factura;"\d";"9");"[a-z]";"x");"
[A-Z]"; "X")
Devuelve los nombres del campo Nombre_completo en el orden normal: Nombre (Segundo_nombre) (Ter-
cer_nombre) Apellido:
Nota
Los datos de nombre pueden presentar varias complicaciones, como la presencia de após-
trofes. Tener en cuenta las variaciones de los datos de nombre suele requerir expresiones
regulares más complejas que las que se ofrecen en el ejemplo anterior.
Observaciones
Cómo funciona
La función REGEXREPLACE( ) utiliza una expresión regular para encontrar patrones coincidentes en los
datos y reemplazar los valores coincidentes por una cadena nueva.
Por ejemplo:
estandariza el espaciado en los datos de caracteres reemplazando uno o más espacios entre caracteres
por un único espacio.
REGEXREPLACE(REGEXREPLACE("123ABC";"\d";"9");"[A-Z]";"X")
Devuelve "9X9X9X":
REGEXREPLACE(REGEXREPLACE("1A2B3C";"\d";"9");"[A-Z]";"X")
REGEXREPLACE("x123x";"123";"ABCDE")
Devuelve "xABCDEx", lo cual incluye todos los caracteres de reemplazo y los caracteres existentes que no
se reemplazaron:
REGEXREPLACE(SUBSTR("x123x";1;10),"123";"ABCDE")
Nota
La implementación actual de las expresiones regulares en ACL no admite com-
pletamente la búsqueda en otros idiomas que no sean el inglés.
Metacarácter Descripción
? Busca una coincidencia de 0 o 1 aparición del elemento, metacarácter o literal inmediatamente ante-
rior
* Busca una coincidencia de 0 o más apariciones del elemento, metacarácter o literal inmediatamente
anterior
+ Busca una coincidencia de 1 o más apariciones del elemento, metacarácter o literal inmediatamente
anterior
{} Busca una coincidencia de la cantidad especificada de apariciones del elemento, metacarácter o lite-
ral inmediatamente anterior Puede especificar un número exacto, un rango o un rango abierto.
Por ejemplo:
o a{3} coincide con "aaa"
o X{0,2}L coincide con "L", "XL" y "XXL"
o AB-\d{2,}-YZ coincide con cualquier identificador alfanumérico con el prefijo "AB-", el sufijo "-YZ"
y dos o más números en el cuerpo del identificador
[] Coincide con cualquier carácter único que se encuentre dentro de los corchetes
Por ejemplo:
o [aeiou] coincide con a, o e, o i, u o, o u
o [^aeiou] coincide con cualquier carácter que no sea a, o e, o i, u o, o u
o [A-G] coincide con cualquier letra de la A a la G, en mayúscula
o [A-Ga-g] coincide con cualquier letra mayúscula de la A a la G o con cualquier letra minúscula de
la a a la g
o [5-9] coincide con cualquier número del 5 al 9
() Crea un grupo que define una secuencia o un bloque de caracteres, que pueden ser tratados como
una misma unidad.
Por ejemplo:
o S(ch)?mid?th? coincide con "Smith" o "Schmidt"
o (56A.*){2} coincide con cualquier identificador alfanumérico en el que aparezca la secuencia
"56A", al menos dos veces
o (56A).*-.*\1 coincide con cualquier identificador alfanumérico en el que la secuencia "56A" apa-
rezca al menos dos veces, con un guion entre dos de las apariciones
\ Un carácter de escape que especifica que el carácter siguiente es un literal. Utilice el carácter de
escape si desea hacer coincidir literalmente cualquiera de los metacaracteres. Por ejemplo, \(
encuentra un paréntesis de apertura y \\ encuentra una barra invertida.
Metacarácter Descripción
Utilice el carácter de escape si desea hacer coincidir literalmente cualquiera de los siguientes carac-
teres:
^ $ . * + ? = ! : | \ ( ) [ ] { }
Otros caracteres de puntuación, como & o @, no requieren el carácter de escape.
\ int Especifica que un grupo, anteriormente definido como paréntesis ( ), se repite. int es un número
entero que identifica la posición secuencial del grupo previamente definido en relación con cual-
quier otro grupo. Este metacarácter se puede utilizar en el parámetro patrón tanto en REGEXFIND( )
como en REGEXREPLACE( ).
Por ejemplo:
o (123).*\1 coincide con cualquier identificador en el que el grupo de dígitos "123" aparece dos
veces, como mínimo
o ^(\d{3}).*\1 coincide con cualquier identificador en el que los primeros 3 dígitos se repiten
o ^(\d{3}).*\1.*\1 coincide con cualquier identificador en el cual los primeros 3 dígitos se repiten
dos veces, como mínimo
o ^(\D)(\d)-.*\2\1 coincide con cualquier identificador en el cual el prefijo alfanumérico se repite con
los caracteres alfabéticos y numéricos invertidos
$int Especifica que un grupo que se encuentra en una cadena de destino se utiliza en una cadena de
reemplazo. int es un número entero que identifica la posición secuencial del grupo en la cadena de
destino respecto de otros grupos. Este metacarácter se puede utilizar únicamente en el parámetro
cadena_nueva en REGEXREPLACE( ).
Por ejemplo:
o Si se utiliza el patrón (\d{3})[ -]?(\d{3})[ -]?(\d{4}) para buscar una coincidencia con una variedad
de formatos de número de teléfono diferentes, se puede utilizar cadena_nueva ($1)-$2-$3 para
reemplazar los números por sí mismos y estandarizar el formato. Tanto 999 123-4567 como
9991234567 se convierten en (999)-123-4567.
| Coincide con el carácter, el bloque de caracteres o la expresión que se encuentra antes o después
del separador (|)
Por ejemplo:
o a|b coincide con a o con b
o abc|def coincide con "abc" o "def"
o Sm(i|y)th coincide con Smith o Smyth
o [a-c]|[Q-S]|[x-z] coincide con cualquiera de estas letras: a, b, c, Q, R, S, x, y, z
o \s|- coincide con un espacio o un guion
\W Coincide con cualquier carácter que no sea de palabra (que no sea a a la z, A a la Z, 0 a 9 o el carác-
ter de guion bajo _ )
Metacarácter Descripción
\D Coincide con cualquier carácter no numérico (cualquier carácter que no sea un dígito decimal)
REGEXFIND("[email protected]"; "\bexample\b")
Funciones relacionadas
Si desea buscar patrones coincidentes sin reemplazarlos, utilice la "Función REGEXFIND( )" en la
página 695.
Función REMOVE( )
Devuelve una cadena que incluye solo los caracteres especificados.
Sintaxis
REMOVE(cadena; caracteres_válidos)
Parámetros
Nombre Tipo Descripción
Salida
Carácter.
Ejemplos
Ejemplos básicos
Devuelve "ABC123 ":
Devuelve "ABC123XX ":
Devuelve "1234 ":
Devuelve todos los valores del campo Nombre_producto con todos los caracteres que no son numéricos
eliminados:
REMOVE(Número_producto;"0123456789")
Observaciones
Nota
La función REMOVE ha sido sustituida por las funciones INCLUDE( ) y EXCLUDE( ).
Aún está disponible REMOVE( ) en la versión actual deACL para compatibilizar con las
versiones anteriores.
Cómo funciona
La función REMOVE( ) elimina los caracteres no deseados de los datos de caracteres y devuelve una
cadena de longitud fija.
Coincidir mayúsc.-minúsc.
La función REMOVE( ) distingue entre mayúsculas y minúsculas. Si especifica "ID" en caracteres_
válidos, estos caracteres no se incluyen en "id#94022". Si existe la posibilidad de que las mayúsculas y
minúsculas estén mezcladas, primero use la función UPPER( ) para pasar todos los caracteres de la
cadena a mayúsculas.
Por ejemplo:
REMOVE(UPPER("id#94022"); "ID0123456789")
Funciones relacionadas
REMOVE( ) es similar a la función INCLUDE( ), con la siguiente diferencia:
l REMOVE( ) agrega espacios en blanco al final de la salida para reemplazar los caracteres que se
han quitado. Se mantiene la longitud original de la cadena.
l INCLUDE( ) no agrega espacios en blanco.
Función REPEAT( )
Devuelve una cadena que repite una subcadena un número especificado de veces.
Sintaxis
REPEAT(cadena; recuento)
Parámetros
Nombre Tipo Descripción
Salida
Carácter.
Ejemplos
Ejemplos básicos
Devuelve "ABCABCABC":
REPEAT("ABC";3)
Devuelve "000000000":
REPEAT("0";9)
Observaciones
Cuándo usar REPEAT( )
Utilice la función REPEAT( ) para inicializar una variable con valores o espacios en blanco constantes; o
para configurar un valor predeterminado para un campo calculado.
Función REPLACE( )
Reemplaza todas las instancias de una cadena de caracteres especificada por una nueva cadena de
caracteres.
Sintaxis
REPLACE(cadena; texto_anterior; nuevo_texto)
Parámetros
Nombre Tipo Descripción
Salida
Carácter.
Ejemplos
Ejemplos básicos
Devuelve "a12345efg":
REPLACE("abcdefg";"bcd";"12345")
Devuelve "Rd.":
REPLACE("Road";"Road";"Rd.")
Devuelve "ac":
REPLACE("abc";"b";"")
Ejemplos avanzados
Quitar los caracteres especificados
Utilice REPLACE( ) para quitar una cadena de caracteres específica de una cadena de origen, reem-
plazándola por una cadena de caracteres vacíos ( "" ).
Devuelve "1234 Scott":
La longitud del campo no se incrementa automáticamente para los siguientes reemplazos y es posible que
se acorte si el campo no es lo suficientemente extenso como para contener a todos los nuevos caracteres.
Devuelve "9ABC9A":
Para evitar el truncamiento, puede incrementar la longitud de cadena utilizando la función BLANKS( ) o
espacios en blanco literales.
Devuelve "9ABC9ABC":
Si la cadena que se obtiene es más corta que cadena, la cadena que se obtiene se completa con espacios
en blanco para conservar la misma longitud de campo.
Devuelve "9X9 ":
Observaciones
Cómo funciona
La función REPLACE( ) reemplaza cada instancia de una cadena existente por una nueva cadena.
Devuelve "1234 Scott Road":
Coincidir mayúsc.-minúsc.
La función REPLACE( ) distingue entre mayúsculas y minúsculas. Si especifica "RD." en texto_anterior y
los valores en la cadena están en minúsculas, el valor texto_nuevo no será sustituido porque no se encon-
trarán coincidencias.
Si existe la posibilidad de que las mayúsculas y minúsculas estén mezcladas en la cadena, primero use la
función UPPER( ) para poner todos los caracteres en mayúsculas.
Devuelve "1234 SCOTT ROAD":
Al agregar un espacio inicial y un espacio final al valor en texto_anterior (" rd "), se evita que la función
reemplace instancias en donde "rd" aparezca dentro de un nombre, dado que en estas instancias no exis-
ten espacios iniciales.
Devuelve "645 Richard Road":
Función REVERSE( )
Devuelve una cadena con los caracteres en orden inverso.
Sintaxis
REVERSE(cadena)
Parámetros
Nombre Tipo Descripción
Salida
Carácter.
Ejemplos
Ejemplos básicos
Devuelve "E DCBA":
REVERSE("ABCD E")
Función RJUSTIFY( )
Devuelve una cadena justificada a la derecha con la misma longitud que la cadena especificada, con cual-
quier espacio en blanco final movido a la izquierda de la cadena.
Sintaxis
RJUSTIFY(cadena)
Parámetros
Nombre Tipo Descripción
Salida
Carácter.
Ejemplos
Ejemplos básicos
Devuelve " ABC":
RJUSTIFY("ABC ")
Observaciones
Cuándo usar RJUSTIFY( )
Utilice RJUSTIFY( ) para justificar un campo de caracteres a la derecha.
Función RLOGICAL( )
Devuelve un valor lógico calculado por un script o una función Rvachev. El procesamiento de datos en R
se hace fuera de ACL.
Sintaxis
RLOGICAL(rScript|rCódigo <;campo|valor <;...n>>)
Parámetros
Nombre Tipo Descripción
campo | valor <;...n> carácter Esta lista de campos, expresiones o valores literales que se deben
utilizar como argumentos para el fragmento de código o script R.
opcional numérico
Los valores se pasan la función que invoque en el orden en que lo
fechahora
especifique y usted hace referencia a ellos utilizando valor1, valor2
lógico ... valorN en el código R.
Puede incluir tantos argumentos como sea necesario para satisfacer
la definición de la función en el código R.
Nota
Utilice la función ALLTRIM() para quitar los espacios al
principio o al final en las entradas de caracteres:
ALLTRIM(str). Si desea obtener más información, con-
sulte "Función ALLTRIM( )" en la página 430.
Salida
Lógico.
Ejemplos
Ejemplos básicos
Devuelve T:
Ejemplos avanzados
Uso de un script externo de R
Acepta una cantidad y un valor umbral superior e inferior. La función devuelve un valor de verdad sobre la
base de una serie de comparaciones lógicas:
Observaciones
Datos devueltos por R
Al invocar scripts de R, utilice la función source y asigne el objeto de retorno a una variable. Puede acceder
al valor que devolvió su función Rvachev desde el objeto devuelto:
Archivo de log de R
ACL registra los mensajes del lenguaje R en un archivo aclrlang.log en la carpeta del proyecto. Uti-
lice este archivo de log para depurar los errores de R.
Consejo
El archivo de log está disponible en la carpeta Resultados de los trabajos de estudio ana-
lítico de ACL GRC Analytics Exchange.
Función RNUMERIC( )
Devuelve un valor numérico calculado por un script o una función Rvachev. El procesamiento de datos en R
se hace fuera de ACL.
Sintaxis
RNUMERIC(rScript|rCódigo; decimales <;campo|valor <;...n>>)
Parámetros
Nombre Tipo Descripción
campo | valor <;...n> carácter Esta lista de campos, expresiones o valores literales que se deben uti-
lizar como argumentos para el fragmento de código o script R.
opcional numérico
Los valores se pasan la función que invoque en el orden en que lo
fechahora
especifique y usted hace referencia a ellos utilizando valor1, valor2 ...
lógico valorN en el código R.
Puede incluir tantos argumentos como sea necesario para satisfacer
la definición de la función en el código R.
Nota
Utilice la función ALLTRIM() para quitar los espacios al
principio o al final en las entradas de caracteres:
ALLTRIM(str). Si desea obtener más información, con-
sulte "Función ALLTRIM( )" en la página 430.
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 100 con 10 decimales (100,0000000000):
Ejemplos avanzados
Almacenamiento de código R como una variable
Devuelve 100 con 10 decimales (100,0000000000):
ASSIGN v_rcódigo = "print(value1)"
RNUMERIC(v_código; 10; 100)
Observaciones
Datos devueltos por R
Al invocar scripts de R, utilice la función source y asigne el objeto de retorno a una variable. Puede acce-
der al valor que devolvió su función Rvachev desde el objeto devuelto:
Archivo de log de R
ACL registra los mensajes del lenguaje R en un archivo aclrlang.log en la carpeta del proyecto. Uti-
lice este archivo de log para depurar los errores de R.
Consejo
El archivo de log está disponible en la carpeta Resultados de los trabajos de estudio ana-
lítico de ACL GRC Analytics Exchange.
Función ROOT( )
Devuelve la raíz cuadrada de una expresión numérica.
Sintaxis
ROOT(número; decimales)
Parámetros
Nombre Tipo Descripción
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 10,00:
ROOT(100; 2)
Devuelve 31,6228:
ROOT(1000; 4)
Observaciones
Cómo funciona
La función ROOT( ) devuelve la raíz cuadrada de la expresión numérica o el valor de campo con el número
especificado de posiciones decimales. El resultado se redondea adecuadamente.
Función ROUND( )
Devuelve un número entero redondeado para un valor numérico.
Sintaxis
ROUND(número)
Parámetros
Nombre Tipo Descripción
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 7:
ROUND(7,2)
Devuelve 8:
ROUND(7,5)
Devuelve -8:
ROUND(-7,5)
Ejemplos avanzados
Redondeo de valores monetarios
Crea un campo que es igual al saldo redondeado al valor más cercano en dólares:
Observaciones
Cómo funciona
ROUND( ) devuelve un número igual al valor número redondeado al entero más cercano:
l Para los valores positivos de número, la función se redondea los valores decimales >= 0,5 hacia el
entero superior y los valores < 0,5 hacia el entero inferior
l Para los valores negativos de número, la función redondea los valores decimales >=0,5 hacia al
entero inferior y < 0,5 hacia el entero inferior
ROUND(número)
es equivalente a
DEC(número; 0)
Función RSTRING( )
Devuelve un valor de cadena calculado por un script o una función Rvachev. El procesamiento de datos
en R se hace fuera de ACL.
Sintaxis
RSTRING(rScript|rCódigo; longitud <;campo|valor <;...n>>)
Parámetros
Nombre Tipo Descripción
campo | valor <;...n> carácter Esta lista de campos, expresiones o valores literales que se deben
utilizar como argumentos para el fragmento de código o script R.
opcional numérico
Los valores se pasan la función que invoque en el orden en que lo
fechahora
especifique y usted hace referencia a ellos utilizando valor1, valor2
lógico ... valorN en el código R.
Puede incluir tantos argumentos como sea necesario para satisfacer
la definición de la función en el código R.
Nota
Utilice la función ALLTRIM() para quitar los espacios al
principio o al final en las entradas de caracteres:
ALLTRIM(str). Si desea obtener más información, con-
sulte "Función ALLTRIM( )" en la página 430.
Salida
Carácter.
Ejemplos
Ejemplos básicos
Devuelve "abc123":
RSTRING("print(paste(value1,value2,sep=""))",6,"abc","123")
Ejemplos avanzados
Uso de un script externo de R
Concatena x e y en una única cadena delimitada por un carácter de espacio:
conc<-function(x, y) {
paste(x, y, sep=" ")
}
print(conc(value1, value2))
Consejo
Para abrir el paquete uuid, abra R.exe y ejecute el siguiente comando:
install.packages("uuid")
Observaciones
Datos devueltos por R
Al invocar scripts de R, utilice la función source y asigne el objeto de retorno a una variable. Puede acce-
der al valor que devolvió su función Rvachev desde el objeto devuelto:
Archivo de log de R
ACL registra los mensajes del lenguaje R en un archivo aclrlang.log en la carpeta del proyecto. Uti-
lice este archivo de log para depurar los errores de R.
Consejo
El archivo de log está disponible en la carpeta Resultados de los trabajos de estudio ana-
lítico de ACL GRC Analytics Exchange.
Función RTIME( )
Devuelve un valor de hora calculado por un script o una función Rvachev. El procesamiento de datos en R
se hace fuera de ACL.
Sintaxis
RTIME(rScript|rCódigo <;campo|valor <;...n>>)
Parámetros
Nombre Tipo Descripción
campo | valor <;...n> carácter Esta lista de campos, expresiones o valores literales que se deben uti-
lizar como argumentos para el fragmento de código o script R.
opcional numérico
Los valores se pasan la función que invoque en el orden en que lo
fechahora
especifique y usted hace referencia a ellos utilizando valor1, valor2 ...
lógico valorN en el código R.
Puede incluir tantos argumentos como sea necesario para satisfacer
la definición de la función en el código R.
Nota
Utilice la función ALLTRIM() para quitar los espacios al
principio o al final en las entradas de caracteres:
ALLTRIM(str). Si desea obtener más información, con-
sulte "Función ALLTRIM( )" en la página 430.
Salida
Fechahora.
Ejemplos
Ejemplos básicos
Devuelve `t0545`:
RTIME("value1+2700";`t0500`)
Ejemplos avanzados
Uso de un script externo de R
Agrega 45 minutos a un campo de hora pasando un campo y un valor literal a una función Rvachev
externa:
Observaciones
Datos devueltos por R
Al invocar scripts de R, utilice la función source y asigne el objeto de retorno a una variable. Puede acce-
der al valor que devolvió su función Rvachev desde el objeto devuelto:
Archivo de log de R
ACL registra los mensajes del lenguaje R en un archivo aclrlang.log en la carpeta del proyecto. Uti-
lice este archivo de log para depurar los errores de R.
Consejo
El archivo de log está disponible en la carpeta Resultados de los trabajos de estudio ana-
lítico de ACL GRC Analytics Exchange.
Función SECOND( )
Extrae los segundos de una hora o fechahora especificada y la devuelve como un valor numérico.
Sintaxis
SECOND(hora/fechahora)
Parámetros
Nombre Tipo Descripción
hora/fechahora fechahora El campo, expresión o el valor literal de donde extraer los segundos.
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 30:
SECOND(`t235930`)
SECOND(`20141231 235930`)
SECOND(Hora_inicio_llamada)
Observaciones
Detalles del parámetro
Un campo especificado para hora/fechahora puede utilizar cualquier formato de hora o fechahora, siempre
que la definición del campo establezca correctamente el formato.
Especificar un valor de fechahora u hora literal
Al especificar un valor literal de hora o fechahora para hora/fechahora, solo puede utilizar los formatos de la
siguiente tabla y debe encerrar el valor entre acentos graves; por ejemplo, `20141231 235959`.
No utilice ningún separador, como barras (/) o dos puntos (:), entre los componentes individuales de fechas
u horas.
l Valores de hora: puede utilizar cualquiera de los formatos de la siguiente tabla. Debe utilizar un sepa-
rador antes de un valor de la hora independiente para que la función opere correctamente. Los sepa-
radores válidos son la letra 't' o la letra 'T'. Debe especificar las horas con el reloj de 24 horas. Los
desplazamientos respecto del Horario Universal Coordinado (UTC, por sus siglas en inglés) deben ir
precedidos de un signo más (+) o un signo menos (-).
l Valores de fechahora: puede utilizar cualquier combinación de formatos de fecha, separador y hora
de la siguiente tabla. La fecha debe preceder a la hora y se debe utilizar un separador entre las dos.
Los separadores válidos son un espacio en blanco, la letra 't' o la letra 'T'.
thhmmss `t235959`
Thhmm `T2359`
AAAAMMDD hhmmss `20141231 235959`
AAMMDDthhmm `141231t2359`
AAAAMMDDThh `20141231T23`
AAAAMMDD hhmmss+/-hhmm `20141231 235959-0500`
(desplazamiento de UTC)
AAMMDD hhmm+/-hh `141231 2359+01`
(desplazamiento de UTC)
Nota
No use solo hh en el formato de la hora
principal con datos que tienen un des-
plazamiento del UTC. Por ejemplo, evite:
hh+hhmm. Los resultados pueden no ser
confiables.
Función SHIFT( )
Devuelve una cadena de caracteres individuales con los bits en el primer carácter del valor de entrada
hacia la izquierda o derecha.
Sintaxis
SHIFT(carácter; número_de_bits_a_la_izquierda)
Parámetros
Nombre Tipo Descripción
número_de_bits_a_ numérico Especifica el número de bits para desplazar el valor del carácter.
la_izquierda o Si el valor es positivo: carácter se desplaza hacia la izquierda
o Si el valor es negativo: carácter se desplaza hacia la derecha
Si el valor especificado es mayor que 15 o menor que -15, el resul-
tado es cero binario, CHR(0).
Salida
Carácter.
Ejemplos
Ejemplos básicos
Devuelve la letra "X" o CHR(88) (00010110 se transforma en 01011000):
SHIFT(CHR(22); 2)
SHIFT(CHR(16); -1)
SHIFT(CHR(155); 5)
Observaciones
Cuándo usar SHIFT( )
Utilice SHIFT( ) junto con las funciones BYTE( ), CHR( ) y MASK( ) para aislar y mover bits individuales de
un registro.
Función SIN( )
Devuelve el seno de un ángulo expresado en radianes, con una precisión de 15 lugares decimales.
Sintaxis
SIN(radianes)
Parámetros
Nombre Tipo Descripción
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 0,500000000000000 (el seno de la cantidad especificada de radianes, equivalente a 30 grados):
SIN(0,523598775598299)
SIN(30 * PI( )/180)
Ejemplos avanzados
Uso de grados como información de entrada
Devuelve 0,500 (el coseno de 30 grados, redondeado a 3 lugares decimales):
DEC(SIN(30 * PI( )/180);3)
Observaciones
Realización de la Prueba de arco de la mantisa
as tres funciones trigonométricas de ACL – SIN( ), COS( ) y TAN( ) – permiten realizar la Prueba de arco
de la mantisa asociada con la Ley de Benford.
Función SOUNDEX( )
Devuelve el código soundex para la cadena especificada, que puede ser utilizado para las comparaciones
fonéticas con otras cadenas.
Sintaxis
SOUNDEX(nombre)
Parámetros
Nombre Tipo Descripción
Salida
Carácter. Devuelve un código soundex de cuatro caracteres.
Ejemplos
Ejemplos básicos
Palabras que suenan igual pero se escriben diferente
Los dos ejemplos a continuación ofrecen el mismo código soundex porque suenan igual, aunque se escri-
ben de manera diferente.
Devuelve F634:
SOUNDEX("Fairdale")
Devuelve F634:
SOUNDEX("Faredale")
SOUNDEX("Jonson")
Devuelve J523:
SOUNDEX("Jonston")
SOUNDEX("Smith")
Devuelve M235:
SOUNDEX("MacDonald")
SOUNDEX(Apellido)
Ejemplos avanzados
Identificación de códigos soundex coincidentes
Cree el campo calculado Código_soundex para mostrar el código soundex de cada valor del campo Ape-
llido:
Los códigos soundex coincidentes indican que los valores de caracteres asociados en el campo Apellido
son posibles duplicados.
Observaciones
Cuándo usar SOUNDEX( )
Utilice la función SOUNDEX( ) para buscar valores que suenen de manera similar. La similitud fonética es
una manera de localizar posibles valores duplicados, u ortografía incoherente en los datos que se intro-
ducen de forma manual.
Cómo funciona
SOUNDEX( ) devuelve el código Soundex estadounidense para la cadena evaluada. Todos los códigos
están compuestos por una letra seguida de tres números. Por ejemplo: "F634".
l Aunque el proceso soundex realiza una coincidencia fonética, todas las palabras coincidentes
deben comenzar con la misma letra, lo que significa que algunas palabras que suenan igual no se
dan por coincidentes.
Por ejemplo, una palabra que comienza con una "F" y una palabra que comienza con "Ph" podrían
sonar igual, pero nunca se darán por coincidentes.
Funciones relacionadas
l SOUNDSLIKE( ): proporciona un método alternativo para comparar cadenas fonéticamente.
l ISFUZZYDUP( ) y LEVDIST: comparan cadenas según la comparación ortográfica (escritura) en
lugar de hacerlo por una comparación fonética (sonido).
l DICECOEFFICIENT( ): le quita el énfasis o ignora completamente la posición relativa de los carac-
teres o de los bloques de caracteres al comparar cadenas.
Función SOUNDSLIKE( )
Devuelve un valor lógico que indica si una cadena coincide fonéticamente con una cadena de comparación.
Sintaxis
SOUNDSLIKE(nombre; suena_como_nombre)
Parámetros
Nombre Tipo Descripción
Salida
Lógico. Devuelve T (verdadero) si los valores que se están comparando coinciden fonéticamente y F (falso)
en caso contrario.
Ejemplos
Ejemplos básicos
Devuelve T, porque tanto “Fairdale” como “Faredale” tienen un código soundex de F634:
SOUNDSLIKE("Fairdale";"Faredale")
Devuelve F, porque "Jonson" tiene un código soundex de J525 y "Jonston" tiene un código soundex de
J523:
SOUNDSLIKE("Jonson";"Jonston")
Devuelve un valor lógico (T o F) que indica si el código soundex para cada valor del campo Apellido coin-
cide con el código soundex para la cadena "Smith":
SOUNDSLIKE(Apellido; Smith")
Ejemplos avanzados
Aislar valores que suenan como "Smith"
Cree un filtro que aísle todos los valores del campo Apellido que suenan como "Smith":
Observaciones
Cuándo usar SOUNDSLIKE( )
Utilice la función SOUNDSLIKE( ) para buscar valores que suenen de manera similar. La similitud fonética
es una manera de localizar posibles valores duplicados, u ortografía incoherente en los datos que se intro-
ducen de forma manual.
Cómo funciona
SOUNDSLIKE( ) convierte las cadenas de comparación en códigos Soundex de cuatro caracteres esta-
dounidenses, a partir de la primera letra y las tres primeras consonantes después de la primera letra, en
cada cadena.
A continuación, la función compara el código de cada cadena y devuelve un valor lógico que indica si coin-
ciden.
Si desea obtener más información acerca de los códigos soundex, consulte "Función SOUNDEX( )" en la
página 745.
Coincidir mayúsc.-minúsc.
Esta función no distingue entre mayúsculas y minúsculas; por lo tanto "SMITH" es equivalente a "smith".
Por ejemplo, una palabra que comienza con una "F" y una palabra que comienza con "Ph" podrían
sonar igual, pero nunca se darán por coincidentes.
Funciones relacionadas
l SOUNDEX( ): proporciona un método alternativo para comparar cadenas fonéticamente.
l ISFUZZYDUP( ) y LEVDIST: comparan cadenas según la comparación ortográfica (escritura) en
lugar de hacerlo por una comparación fonética (sonido).
l DICECOEFFICIENT( ): le quita el énfasis o ignora completamente la posición relativa de los carac-
teres o de los bloques de caracteres al comparar cadenas.
Función SPLIT( )
Devuelve un segmento especificado de una cadena.
Sintaxis
SPLIT(cadena; separador; segmento <;calificador_de_texto>)
Parámetros
Nombre Tipo Descripción
calificador_de_texto carácter El o los caracteres que indican el inicio y el final de los segmentos de
texto.
opcional
Si el carácter separador está presente dentro de un par de cali-
ficadores de texto, se lo lee como texto y no como separador.
Debe encerrar el calificador de texto entre comillas. Los calificadores
de texto de comillas simples deben estar entre comillas dobles, y los
calificadores de texto de comillas dobles deben estar entre comillas
simples.
Consejo
Este parámetro opcional puede resultar útil al trabajar
con datos de origen importados que conservan los
separadores y los calificadores de texto.
Salida
Carácter.
Ejemplos
Ejemplos básicos
Segmentos delimitados por comas
Devuelve "seg1":
SPLIT("seg1,seg2,seg3"; ","; 1)
Devuelve "seg3":
SPLIT("seg1,seg2,seg3"; ","; 3)
SPLIT("seg1,seg2,,seg4"; ","; 3)
SPLIT("seg1/*seg2/*seg3"; "/*"; 3)
Devuelve "Doe":
Ejemplos avanzados
Extracción de dígitos de un número de tarjeta de crédito
Utilice el comando SPLIT( ) para quitar guiones de un número de tarjeta de crédito.
Las variables se utilizan para capturar cada segmento del número de tarjeta de crédito y luego los seg-
mentos se concatenan entre sí en una variable adicional.
Observaciones
Cómo funciona
La función SPLIT( ) divide los datos de caracteres en segmentos en función de los separadores, como
comas o espacios y extrae un segmento especificado.
SPLIT("seg1,seg2,seg3"; ","; 1)
Si la cadena de origen comienza con un separador, el segmento siguiente al separador se trata como seg-
mento 2.
Devuelve "seg1":
SPLIT("seg1,seg2,seg3"; ","; 2)
Coincidir mayúsc.-minúsc.
Si separador o calificador_de_texto especifica caracteres que tienen tanto una versión en mayúscula como
en minúscula, la letra que se utilice debe coincidir con la del separador o el calificador de texto de los datos.
Funciones relacionadas
SPLIT( ) y SUBSTR( ) devuelven un segmento de datos de una cadena de origen más extensa.
l SPLIT( ) identifica el segmento sobre la base de un carácter separador.
l SUBSTR( ) identifica el segmento sobre la base de una posición numérica de los caracteres.
Función STOD( )
Convierte una fecha de serie - es decir, una fecha expresada como un entero - a un valor de fecha. Abre-
viatura de la expresión "Fecha de serie a fecha", en inglés.
Sintaxis
STOD(fecha_de_serie <;fecha_de_inicio>)
Parámetros
Nombre Tipo Descripción
fecha_de_inicio fechahora La fecha de inicio a partir de la cual se calculan las fechas de serie.
Si se omite, se utiliza el valor de inicio predeterminado que es el 01
opcional
de enero de 1900.
Salida
Fechahora. La salida del valor fecha utiliza el formato de visualización de fecha actual de ACL.
Ejemplos
Ejemplos básicos
Devuelve `20141231` que se visualiza como 31 Dic 2014 suponiendo que el formato de visualización
actual de la fecha de ACL sea DD MMM AAAA:
STOD(42003)
Devuelve `20181231` que se visualiza como 31 Dic 2018 suponiendo que el formato de visualización
actual de la fecha de ACL sea DD MMM AAAA:
STOD(42003; `19040101`)
Devuelve la fecha equivalente para cada valor de fecha de serie en el campo Fecha_de_factura:
STOD(Fecha_de_factura)
Ejemplos avanzados
Ajuste para una fecha de inicio anterior a 1900-01-01
Utilice la aritmética de fecha para ajustar la fecha de inicio a un valor anterior a la fecha mínima de 1 de
enero de 1900 de ACL:
1. Convierte la fecha de serie utilizando la fecha de inicio predeterminada.
2. Reste la cantidad de días antes de 1900-01-01 en los que cae la fecha de inicio real.
Para usar 1899-01-01 como la fecha de inicio (se evalúa como `20131231`):
STOD(42003) - 365
Observaciones
Cómo funciona
La función STOD ( ) le permite convertir fechas de serie a fechas regulares. Las fechas de serie ACL repre-
sentan la cantidad de días que han transcurrido desde el 01 de enero 1900.
1 02 enero 1900
0 no válido
Si desea obtener más información acerca de las fechas de serie, consulte Fechahoras en serie.
Comparación entre las fechas de serie de ACL y las fechas de serie de Excel
Las fechas de serie ACL son similares a las fechas de serie de Microsoft Excel. Debe tener en cuenta que
hay un punto clave de similitud y una diferencia clave. Los dos temas no están relacionados.
Coincidencias
Tanto ACL como Excel tratan el año 1900 como un año bisiesto, con 366 días. Aunque 1900 no fue, de
hecho, un año bisiesto, Excel lo trató como uno con el fin de mantener la compatibilidad con Lotus 1-2-3.
Diferencias
Las fechas de serie ACL están desplazadas en un día respecto las fechas de serie de Excel. En Excel, el
01 enero 1900 tiene una fecha de serie de '1 '. En ACL, el 01 enero 1900 no se cuenta y el 02 enero 1900
tiene una fecha de serie de '1 '.
La fecha_de_inicio
Algunos archivos de datos de origen tal vez usen una fecha de inicio diferente del 1 de enero de 1900. La
fecha_de_inicio le permite hacer coincidir la fecha de inicio en un archivo de datos de origen. La fecha de
inicio es la fecha a partir de la cual se calculan las fechas de serie.
Fecha de ini-
cio en los
archivos de
datos de ori-
gen Especificar: Detalles
STODT( ) Convierte una fechahora de serie - es decir, una fechahora expresada como un entero, y una
porción fraccionaria de 24 horas - en un valor de fechahora. Abreviatura de la expresión
"Fecha de serie a fechahora", en inglés.
Función Descripción
STOT( ) Convierte una hora de serie - es decir, una hora expresada como una porción fraccionaria de
24 horas, con 24 horas equivalentes a 1 - en un valor de hora. Abreviatura de la expresión
"Hora de serie a hora", en inglés.
CTOD( ) Convierte un valor de fecha numérico o de caracteres en una fecha. También se puede extraer
la fecha del valor en caracteres o numérico de fechahora y devolverlo como una fecha. Abre-
viatura de la expresión "Carácter a fecha", en inglés.
CTOT( ) Convierte un valor de caracteres o numérico de hora en una hora. También se puede extraer
la hora de un valor de caracteres o numérico de fechahora y devolverlo como una hora. Abre-
viatura de la expresión "Carácter a hora", en inglés.
DATE( ) Extrae la fecha a partir de una fecha o fechahora especificada y la devuelve como una cadena
de caracteres. También puede devolver la fecha actual del sistema operativo.
DATETIME( ) Convierte una fechahora en una cadena de caracteres. También puede devolver la fechahora
actual del sistema operativo.
TIME( ) Extrae la porción hora a partir de una hora o fechahora especificada y la devuelve como una
cadena de caracteres. También puede devolver la hora actual del sistema operativo.
Función STODT( )
Convierte una fechahora de serie - es decir, una fechahora expresada como un entero, y una porción frac-
cionaria de 24 horas - en un valor de fechahora. Abreviatura de la expresión "Fecha de serie a
fechahora", en inglés.
Sintaxis
STODT(fechahora_de_serie <;fecha_de_inicio>)
Parámetros
Nombre Tipo Descripción
fecha_de_inicio fechahora La fecha de inicio a partir de la cual se calculan las fechas de serie.
Si se omite, se utiliza el valor de inicio predeterminado que es el 01
opcional
de enero de 1900.
Salida
Fechahora. La salida del valor fechahora utiliza los formatos de visualización de fecha y hora actuales de
ACL.
Ejemplos
Ejemplos básicos
Fechas de inicio sin ajustar
Devuelve `20141231t060000` que se visualiza como 31 Dic 2014 06:00:00 AM suponiendo que los for-
matos de visualización actual de la fecha y la hora de ACL sean DD MMM AAAA y hh:mm:ss PM:
STODT(42003,25000)
Devuelve `20141231t191530` que se visualiza como 31 Dic 2014 07:15:30 PM suponiendo que los for-
matos de visualización actual de la fecha y la hora de ACL sean DD MMM AAAA y hh:mm:ss PM:
STODT(42003,802431)
STODT(42003,50000; `19040101`)
STODT(Fechahora_de_recepción)
Ejemplos avanzados
Ajuste para una fecha de inicio anterior a 1900-01-01
Utilice la aritmética de fecha para ajustar la fecha de inicio a un valor anterior a la fecha mínima de 1 de
enero de 1900 de ACL:
1. Convierte la fechahora de serie utilizando la fecha de inicio predeterminada.
2. Reste la cantidad de días antes de 1900-01-01 en los que cae la fecha de inicio real.
Para usar 1899-01-01 como la fecha de inicio (se evalúa como `20131231t180000`):
STODT(42003,75000) - 365
Observaciones
Cómo funciona
La función STODT( ) le permite convertir fechashoras de serie a fechashoras regulares. Las fechashoras
de serie ACL representan el número de días que han transcurrido desde el 01 de enero 1900, y después de
la coma decimal, representan una porción fraccionaria de 24 horas, con 24 horas equivalente a 1.
0,0 no válido
Si desea obtener más información acerca de las fechahoras de serie, consulte Fechahoras en serie.
Comparación entre las fechas de serie de ACL y las fechas de serie de Excel
Las fechas de serie ACL son similares a las fechas de serie de Microsoft Excel. Debe tener en cuenta que
hay un punto clave de similitud y una diferencia clave. Los dos temas no están relacionados.
Coincidencias
Tanto ACL como Excel tratan el año 1900 como un año bisiesto, con 366 días. Aunque 1900 no fue, de
hecho, un año bisiesto, Excel lo trató como uno con el fin de mantener la compatibilidad con Lotus 1-2-3.
Diferencias
Las fechas de serie ACL están desplazadas en un día respecto las fechas de serie de Excel. En Excel, el
01 enero 1900 tiene una fecha de serie de '1 '. En ACL, el 01 enero 1900 no se cuenta y el 02 enero 1900
tiene una fecha de serie de '1 '.
La fecha_de_inicio
Algunos archivos de datos de origen tal vez usen una fecha de inicio diferente del 1 de enero de 1900. La
fecha_de_inicio le permite hacer coincidir la fecha de inicio en un archivo de datos de origen. La fecha de
inicio es la fecha a partir de la cual se calculan las fechahoras de serie.
Fecha de ini-
cio en los
archivos de
datos de ori-
gen Especificar: Detalles
Fecha de ini-
cio en los
archivos de
datos de ori-
gen Especificar: Detalles
STOD( ) Convierte una fecha de serie - es decir, una fecha expresada como un entero - a un valor de
fecha. Abreviatura de la expresión "Fecha de serie a fecha", en inglés.
STOT( ) Convierte una hora de serie - es decir, una hora expresada como una porción fraccionaria de
24 horas, con 24 horas equivalentes a 1 - en un valor de hora. Abreviatura de la expresión
"Hora de serie a hora", en inglés.
CTOD( ) Convierte un valor de fecha numérico o de caracteres en una fecha. También se puede extraer
la fecha del valor en caracteres o numérico de fechahora y devolverlo como una fecha. Abre-
viatura de la expresión "Carácter a fecha", en inglés.
CTOT( ) Convierte un valor de caracteres o numérico de hora en una hora. También se puede extraer
la hora de un valor de caracteres o numérico de fechahora y devolverlo como una hora. Abre-
viatura de la expresión "Carácter a hora", en inglés.
DATE( ) Extrae la fecha a partir de una fecha o fechahora especificada y la devuelve como una
cadena de caracteres. También puede devolver la fecha actual del sistema operativo.
DATETIME( ) Convierte una fechahora en una cadena de caracteres. También puede devolver la
fechahora actual del sistema operativo.
TIME( ) Extrae la porción hora a partir de una hora o fechahora especificada y la devuelve como una
cadena de caracteres. También puede devolver la hora actual del sistema operativo.
Función STOT( )
Convierte una hora de serie - es decir, una hora expresada como una porción fraccionaria de 24 horas, con
24 horas equivalentes a 1 - en un valor de hora. Abreviatura de la expresión "Hora de serie a hora", en
inglés.
Sintaxis
STOT(hora_de_serie)
Parámetros
Nombre Tipo Descripción
Salida
Fechahora. La salida del valor hora utiliza el formato de visualización de la hora actual de ACL.
Ejemplos
Ejemplos básicos
Devuelve `t060000` que se visualiza como 06:00:00 AM suponiendo que el formato de visualización actual
de la hora de ACL sea hh:mm:ss PM:
STOT(0,25000)
Devuelve `t191530` que se visualiza como 07:15:30 PM suponiendo que el formato de visualización actual
de la hora de ACL sea hh:mm:ss PM:
STOT(0,802431)
Devuelve la hora regular equivalente para cada valor de hora de serie en el campo Hora_de_acceso:
STOT(Hora_de_acceso)
Observaciones
Cuándo usar STOT( )
Utilice la función STOT( ) para convertir horas de serie en horas regulares.
0,00 12:00:00 AM
0,0006945 12:01:00 AM
0,04167 01:00:00 AM
0.0423645 01:01:00 AM
0,042998 01:01:55 AM
0,25 06:00:00 AM
0,50 12:00:00 PM
0,75 06:00:00 PM
0,79167 07:00:00 PM
0,802431 07:15:30 PM
1,00 12:00:00 AM
STOD( ) Convierte una fecha de serie - es decir, una fecha expresada como un entero - a un valor de
fecha. Abreviatura de la expresión "Fecha de serie a fecha", en inglés.
STODT( ) Convierte una fechahora de serie - es decir, una fechahora expresada como un entero, y una
porción fraccionaria de 24 horas - en un valor de fechahora. Abreviatura de la expresión
"Fecha de serie a fechahora", en inglés.
CTOD( ) Convierte un valor de fecha numérico o de caracteres en una fecha. También se puede extraer
la fecha del valor en caracteres o numérico de fechahora y devolverlo como una fecha. Abre-
viatura de la expresión "Carácter a fecha", en inglés.
CTOT( ) Convierte un valor de caracteres o numérico de hora en una hora. También se puede extraer
la hora de un valor de caracteres o numérico de fechahora y devolverlo como una hora. Abre-
viatura de la expresión "Carácter a hora", en inglés.
DATE( ) Extrae la fecha a partir de una fecha o fechahora especificada y la devuelve como una
cadena de caracteres. También puede devolver la fecha actual del sistema operativo.
DATETIME( ) Convierte una fechahora en una cadena de caracteres. También puede devolver la
fechahora actual del sistema operativo.
TIME( ) Extrae la porción hora a partir de una hora o fechahora especificada y la devuelve como una
cadena de caracteres. También puede devolver la hora actual del sistema operativo.
Función STRING( )
Convierte un valor numérico en una cadena de caracteres.
Sintaxis
STRING(número; longitud <;formato>)
Parámetros
Nombre Tipo Descripción
formato carácter El formato que se debe aplicar a la cadena de salida. Por ejemplo, "
(9.999,99)"
opcional
Salida
Carácter.
Ejemplos
Ejemplos básicos
Cadenas sin formato
Devuelve " 125,2":
STRING(125,2; 6)
Devuelve "25,2" (-1 se trunca porque la longitud es menor que la cantidad de dígitos y caracteres de for-
mato indicada en número):
STRING(-125,2; 4)
STRING(-125,2; 7)
Devuelve "25,20" (1 se trunca porque la longitud es menor que la cantidad de dígitos y caracteres de for-
mato indicada en número):
STRING(125,2; 6; "(9,999.99)")
STRING(Número_empleado; 10)
Observaciones
Valores de retorno rellenados y truncados
STRING( ) convierte número en una cadena de caracteres de la longitud especificada en longitud:
l Si número es más corto que longitud, se agregan espacios iniciales al valor que se devuelve
l Si número es mayor que la longitud, se trunca el valor de retorno desde el lado izquierdo
Funciones relacionadas
La función STRING( ) es la opuesta de VALUE( ), que convierte los datos de caracteres en datos numé-
ricos.
Función SUBSTR( )
Devuelve una subcadena especificada de una cadena.
Sintaxis
SUBSTR(cadena; inicio; longitud)
Parámetros
Nombre Tipo Descripción
Salida
Carácter.
Ejemplos
Ejemplos básicos
Valor de entrada de caracteres literales
Devuelve "BCD":
SUBSTR("ABCDEF"; 2; 3)
Devuelve "EF":
SUBSTR("ABCDEF"; 5; 10)
SUBSTR("***189543***"; 4; 6)
Devuelve el año de cuatro dígitos a partir de un campo de caracteres que contiene fechas con el formato
"MM/DD/AAAA":
SUBSTR(DATE; 7; 4)
Ejemplos avanzados
Incremento de la longitud del campo
Utilice SUBSTR( ) para incrementar la longitud de un campo de caracteres. El incremento de la longitud de
un campo es una tarea común de armonización que puede necesitar realizar antes de unir o anexar dos
campos.
El siguiente ejemplo completa el campo Descripción_del_producto con espacios en blanco para crear el
campo calculado Descripción_del_producto_extensa con una longitud de 50 caracteres.
Observaciones
Cómo funciona
La función SUBSTR( ) devuelve caracteres del valor cadena que comienzan desde la posición de carac-
teres especificada por inicio. El número de caracteres devuelto se especifica en longitud.
Nota
Aun cuando SUBSTR( ) especifique una longitud de 50 caracteres, la salida se limita a la
longitud del campo Descripción_del_producto.
Funciones relacionadas
SUBSTR( ) y SPLIT( ) devuelven un segmento de datos de una cadena de origen más extensa.
l SUBSTR( ) identifica el segmento sobre la base de una posición numérica de los caracteres.
l SPLIT( ) identifica el segmento sobre la base de un carácter separador.
Función TAN( )
Devuelve la tangente de un ángulo expresada en radianes, con una precisión de 15 lugares decimales.
Sintaxis
TAN(radianes)
Parámetros
Nombre Tipo Descripción
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 0,999999999999999 (la tangente del número especificado de radianes, equivalente a 45 gra-
dos):
TAN(0,785398163397448)
TAN(45 * PI( )/180)
Ejemplos avanzados
Uso de grados como información de entrada
DEC(TAN(45 * PI( )/180);3)
Observaciones
Realización de la Prueba de arco de la mantisa
as tres funciones trigonométricas de ACL – SIN( ), COS( ) y TAN( ) – permiten realizar la Prueba de arco
de la mantisa asociada con la Ley de Benford.
Función TEST( )
Devuelve un valor lógico que indica si una cadena especificada aparece en una posición específica de byte
en un registro.
Sintaxis
TEST(ubicación_de_byte; cadena)
Parámetros
Nombre Tipo Descripción
ubicación_de_byte numérico El número secuencial desde la izquierda del diseño de la tabla que
identifica la ubicación del primer carácter de la cadena.
La función se evalúa como F si no se identifica el inicio de la cadena
en esta posición, incluso si cadena aparece en otra posición en el
registro.
Salida
Lógico. Devuelve T (verdadero) si la cadena de texto especificada comienza en la ubicación de byte espe-
cificada dentro de un registro y F (falso) en caso contrario.
Ejemplos
Ejemplos básicos
Dado un registro que contenga:
Departamento: Marketing
....|....|....|....|....|
Devuelve T:
TEST(5; "Departamento")
TEST(6; "Departamento")
TEST(5; "DEPARTAMENTO")
Ejemplos avanzados
Aislamiento de registros que son encabezados de página
Utilice TEST( ) para crear un filtro que aísle todos los registros que comienzan con "Página:":
Función TIME( )
Extrae la porción hora a partir de una hora o fechahora especificada y la devuelve como una cadena de
caracteres. También puede devolver la hora actual del sistema operativo.
Sintaxis
TIME(< hora/fechahora> <;formato>)
Parámetros
Nombre Tipo Descripción
formato carácter El formato que se debe aplicar a la cadena de salida, por ejemplo "hh/-
mm/ss". Si se omite, se utiliza el formato de visualización de la hora
opcional
actual de ACL. No puede especificar un formato si ha omitido fecha/-
fechahora.
Salida
Carácter.
Ejemplos
Ejemplos básicos
Valores de entrada literales
Devuelve "23:59:59" suponiendo que el formato de visualización de la hora de ACL sea hh:mm:ss:
TIME(`20141231 235959`)
Devuelve la hora actual del sistema operativo como una cadena de caracteres en formato hh:mm:ss (reloj
de 24 horas):
TIME()
TIME(Marca_de_hora_recepción)
Devuelve una cadena de caracteres para cada valor del campo Marca_de_hora_recepción, utilizando el
formato de visualización de hora especificado:
TIME(Marca_de_hora_recepción; "hh:mm:ss")
Ejemplos avanzados
Calcular el tiempo transcurrido para ejecutar un comando o un script
Utilice la función TIME( ) para ayudar a calcular la cantidad de tiempo que lleva ejecutar un comando de
ACL específico o un script completo.
Inmediatamente antes del comando que desea medir, o al comenzar el script, especifique esta línea para
crear una variable que almacene la hora actual del sistema operativo:
Inmediatamente después del comando, o al final del script, especifique las dos líneas que figuran a con-
tinuación.
La primera línea crea una variable que almacena la hora del sistema operativo una vez que se completa el
comando o el script. La segunda línea calcula la diferencia entre las horas de inicio y finalización, y con-
vierte el resultado en un formato de fácil lectura.
Consejo
Puede hacer doble clic en la entrada del registro CALCULATE para ver el tiempo trans-
currido para el comando o el script.
Si la ejecución del comando se extenderá hasta después de la medianoche, utilice esta segunda línea:
Observaciones
Longitud de la cadena de salida
La longitud de la cadena de salida es siempre de 14 caracteres. Si el formato de salida especificado, o el for-
mato de visualización de la hora de ACL, tiene menos de 14 caracteres, la cadena de salida se rellena con
espacios finales en blanco.
hhmm
hh
No utilice ningún separador, como barras (/) o dos puntos (:), entre los componentes individuales de
fechas u horas.
l Valores de hora: puede utilizar cualquiera de los formatos de la siguiente tabla. Debe utilizar un
separador antes de un valor de la hora independiente para que la función opere correctamente.
Los separadores válidos son la letra 't' o la letra 'T'. Debe especificar las horas con el reloj de 24
horas. Los desplazamientos respecto del Horario Universal Coordinado (UTC, por sus siglas en
inglés) deben ir precedidos de un signo más (+) o un signo menos (-).
l Valores de fechahora: puede utilizar cualquier combinación de formatos de fecha, separador y
hora de la siguiente tabla. La fecha debe preceder a la hora y se debe utilizar un separador entre
las dos. Los separadores válidos son un espacio en blanco, la letra 't' o la letra 'T'.
thhmmss `t235959`
Thhmm `T2359`
AAAAMMDD hhmmss `20141231 235959`
AAMMDDthhmm `141231t2359`
AAAAMMDDThh `20141231T23`
AAAAMMDD hhmmss+/-hhmm `20141231 235959-0500`
(desplazamiento de UTC)
AAMMDD hhmm+/-hh `141231 2359+01`
(desplazamiento de UTC)
Nota
No use solo hh en el formato de la hora
principal con datos que tienen un des-
plazamiento del UTC. Por ejemplo, evite:
hh+hhmm. Los resultados pueden no ser
confiables.
Funciones relacionadas
Si necesita devolver la hora actual del sistema operativo como un valor de fechahora, utilice NOW( ) en
lugar de TIME( ).
DATE( ) Extrae la fecha a partir de una fecha o fechahora especificada y la devuelve como una cadena
de caracteres. También puede devolver la fecha actual del sistema operativo.
DATETIME( ) Convierte una fechahora en una cadena de caracteres. También puede devolver la fechahora
actual del sistema operativo.
CTOD( ) Convierte un valor de fecha numérico o de caracteres en una fecha. También se puede extraer
la fecha del valor en caracteres o numérico de fechahora y devolverlo como una fecha. Abre-
viatura de la expresión "Carácter a fecha", en inglés.
CTOT( ) Convierte un valor de caracteres o numérico de hora en una hora. También se puede extraer
la hora de un valor de caracteres o numérico de fechahora y devolverlo como una hora. Abre-
viatura de la expresión "Carácter a hora", en inglés.
STOD( ) Convierte una fecha de serie - es decir, una fecha expresada como un entero - a un valor de
fecha. Abreviatura de la expresión "Fecha de serie a fecha", en inglés.
STODT( ) Convierte una fechahora de serie - es decir, una fechahora expresada como un entero, y una
porción fraccionaria de 24 horas - en un valor de fechahora. Abreviatura de la expresión
"Fecha de serie a fechahora", en inglés.
STOT( ) Convierte una hora de serie - es decir, una hora expresada como una porción fraccionaria de
24 horas, con 24 horas equivalentes a 1 - en un valor de hora. Abreviatura de la expresión
"Hora de serie a hora", en inglés.
Función TODAY( )
Devuelve la fecha actual del sistema operativo como un tipo de datos de fechahora.
Sintaxis
TODAY()
Parámetros
Esta función no tiene ningún parámetro.
Salida
Fechahora.
Ejemplos
Ejemplos básicos
Devuelve la hora actual del sistema operativo como un valor fechahora, por ejemplo `20141231`, que se
muestra utilizando el formato de visualización actual de la hora de ACL.
TODAY()
Observaciones
Funciones relacionadas
Si necesita devolver la hora actual del sistema operativo como una cadena de caracteres, utilice DATE( )
en lugar de TODAY ).
Función TRANSFORM( )
Invierte el orden de visualización del texto bidireccional dentro de una cadena especificada.
Sintaxis
TRANSFORM(cadena_original)
Parámetros
Nombre Tipo Descripción
Salida
Carácter.
Ejemplos
Ejemplos básicos
En la cadena de entrada, los caracteres "XZQB" representan caracteres hebreos/bidireccionales de una
cadena de entrada que, por los demás, contiene caracteres regulares.
En la cadena de salida, la dirección de "XZQB" se invierte y se devuelve "BQZX". Los demás caracteres no
se modifican.
Devuelve "ABC BQZX 123":
Observaciones
Cómo funciona
La función TRANSFORMS( ) identifica los datos bidireccionales y los muestra correctamente en la vista,
de derecha a izquierda.
El resto de los caracteres procesados por la función no sufren modificaciones y se continúan mostrando
de izquierda a derecha.
Función TRIM( )
Devuelve una cadena con los espacios finales eliminados de la cadena de entrada.
Sintaxis
TRIM(cadena)
Parámetros
Nombre Tipo Descripción
Salida
Carácter.
Ejemplos
Ejemplos básicos
Tenga en cuenta que en ambos ejemplos los espacios iniciales y los espacios entre las palabras no son eli-
minados por la función TRIM( ).
Devuelve " Vancouver":
TRIM(" Vancouver ")
TRIM(" Nueva York")
Ejemplos avanzados
Eliminación de espacios sin separación.
La función REPLACE( ) reemplaza los espacios sin separación por espacios comunes y, a continuación,
TRIM( ) elimina los espacios comunes finales.
Observaciones
Cómo funciona
La función TRIM( ) elimina únicamente los espacios finales. Los espacios dentro de la cadena y los ini-
ciales no se eliminan.
Funciones relacionadas
TRIM( ) es similar a la función LTRIM( ), que elimina los espacios en blanco iniciales de una cadena y a
ALLTRIM( ), que elimina los espacios en blanco iniciales y finales.
Función UNSIGNED( )
Devuelve datos numéricos convertidos al tipo de datos sin signo.
Sintaxis
UNSIGNED(número; longitud_del_resultado)
Parámetros
Nombre Tipo Descripción
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 000075:
UNSIGNED(75; 3)
UNSIGNED(-75; 3)
UNSIGNED(7,5; 3)
Devuelve 2456 (1 se trunca porque solo se pueden almacenar 4 dígitos cuando longitud_del_resultado es
2):
UNSIGNED(12456; 2)
Devuelve 000000012456:
UNSIGNED(-12,456; 6)
Observaciones
¿Que son los datos sin signo?
El tipo de datos Sin signo se utiliza en los sistemas operativos de mainframe para almacenar valores
numéricos en un formato que utiliza espacio mínimo, almacenando dos dígitos en cada byte. El tipo de
datos Sin signo es el mismo que el tipo de datos compactados, pero no utiliza el último byte para espe-
cificar si el valor es positivo o negativo.
Función UPPER( )
Devuelve una cadena con los caracteres alfabéticos convertidos en mayúsculas.
Sintaxis
UPPER(cadena)
Parámetros
Nombre Tipo Descripción
Salida
Carácter.
Ejemplos
Ejemplos básicos
Devuelve "ABC":
UPPER("abc")
UPPER("AbCd 12")
UPPER(Apellido)
Observaciones
Cómo funciona
La función UPPER( ) convierte todos los caracteres alfabéticos de la cadena en mayúscula. Todos los
caracteres no alfabéticos no sufren cambios.
Función UTOD( )
Convierte una cadena Unicode que contiene una fecha con formato en un valor de fecha de ACL. Abre-
viatura de la expresión "Unicode a Fecha", en inglés.
Nota
Esta función es específica de la edición Unicode de ACL. No es una función admitida en la
edición no Unicode.
Utilice esta función cuando trabaje con fechas en idiomas y formatos diferentes de los de la
instalación predeterminada. Si la cadena que desea convertir se encuentra en su idioma
predeterminado, utilice CTOD( ).
Sintaxis
UTOD(cadena <;localidad> <;estilo>)
Parámetros
Nombre Tipo Descripción
estilo numérico El estilo de formato de fecha que se debe usar para la cadena Uni-
DISPLAY DTOU(`20160909`; "es_MX"; 3)
Salida
Fechahora. La salida del valor fecha utiliza el formato de visualización de fecha actual de ACL.
Ejemplos
Ejemplos básicos
Nota
En todos los ejemplos se supone que el formato de visualización de la fecha de ACL actual
es DD MMM AAAA.
En los ejemplos siguientes, los códigos de configuración regional de chino ("zh") y chino
simplificado ("zh_CN") coinciden con diferentes cadenas de entrada y no son inter-
cambiables.
También debe especificar el estilo correcto. Una cadena de fecha Unicode larga (es decir,
estilo es 1) no devuelve una fecha de ACL si se especifica un estilo de 2.
UTOD(Fecha_de_factura; "zh"; 1)
Devuelve `20141231` que se muestra como 31 Dic 2014 (se especifica el identificador de región):
UTOD("2014年12月31日星期三"; "zh_CN"; 0)
Devuelve `20141231` que se muestra como 31 Dic 2014 (se especifica el identificador de región):
UTOD("2014年12月31日"; "zh_CN"; 1)
Observaciones
Conversión de cadenas Unicode con éxito
Para convertir correctamente las cadenas Unicode que contienen fechas a fechas de ACL, debe espe-
cificar los parámetros configuración regional y estilo que coincidan con el idioma, el país/región (si corres-
ponde) y el estilo de la fecha en la cadena Unicode.
Funciones relacionadas
UTOD( ) es la inversa de la función DTOU( ), que convierte una fecha en una cadena Unicode. Si no está
seguro de qué país/región y estilo especificar para UTOD( ), puede utilizar DTOU ( ) y experimentar con
diferentes parámetros para generar una cadena Unicode de salida que coincida con la forma de las cade-
nas Unicode de entrada que desea convertir con UTOD( ).
Función VALUE( )
Convierte una cadena de caracteres en un valor numérico.
Sintaxis
VALUE(cadena; decimales)
Parámetros
Nombre Tipo Descripción
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve -123.400:
VALUE("123,4-"; 3)
Devuelve 123456,00:
VALUE("$123.456"; 2)
Devuelve-77,45:
VALUE("77,45CR"; 2)
Devuelve -123457:
VALUE(" (123.456,78)"; 0)
VALUE(Salario; 0)
Observaciones
Cómo funciona
Convierte los datos de caracteres en datos numéricos. Puede usar la función VALUE( ) si necesita con-
vertir expresiones de caracteres o valores de campo en valores numéricos para usar en comandos de
ACL.
Valores negativos
La función VALUE( ) puede interpretar indicadores diferentes de valores negativos tales como paréntesis
o el signo menos. También puede interpretar CR (crédito) y DR (débito). Por ejemplo:
Devuelve -1000,00:
VALUE("(1000)"; 2)
VALUE("1000CR"; 2)
VALUE("123"; 2)
VALUE("10,56"; 1)
Funciones relacionadas
La función VALUE( ) es la opuesta de STRING( ), que convierte los datos numéricos en datos de carac-
teres.
Función VERIFY( )
Devuelve un valor lógico que indica si los datos en un campo de datos físicos son válidos.
Sintaxis
VERIFY(campo)
Parámetros
Nombre Tipo Descripción
Salida
Lógico. Devuelve T (verdadero) si los datos en el campo son válidos, y F (falso) en caso contrario.
Ejemplos
Ejemplos básicos
Extrae todos los registros donde la función VERIFY( ) se evalúa como falso en una nueva tabla ACL.
Observaciones
La función VERIFY( ) determina si los datos de un campo son coherentes con el tipo de datos espe-
cificados para el campo.
Función WORKDAY( )
Devuelve la cantidad de días laborables entre dos fechas.
Sintaxis
WORKDAY( fecha_de_inicio ; fecha_de_finalización <;díasnolaborables>)
Parámetros
Nombre Tipo Descripción
fecha_de_inicio fechahora La fecha de inicio del período para el cual se calculan los días labo-
rables. La fecha de inicio está incluida en el período.
fecha_de_fina- fechahora La fecha de finalización del período para el cual se calculan los días
lización laborables. La fecha de finalización está incluida en el período.
díasnolaborables carácter Los días de la semana que son fin de semana, o días no laborables,
se excluyen del cálculo. Si se omite díasnolaborables, el sábado y el
opcional
domingo se usan como los días no laborables predeterminados.
Introduzca díasnolaborables usando las siguientes abreviaturas,
separadas por un espacio o una coma:
o Mon
o Tue
o Wed
o Thu
o Fri
o Sat
o Sun
díasnolaborables no distingue entre mayúsculas y minúsculas. Las
abreviaturas se deben introducir en inglés, aun cuando esté usando
una versión localizada de .
Nota
Puede especificar un valor de fechahora para fecha_de_inicio o fecha_de_finalización
pero se ignora la parte de la hora del valor.
Si la fecha_de_inicio es más reciente que la fecha_de_finalización, se devuelve un valor
negativo.
Salida
Numérico. La cantidad de días no laborables del período para el cual se calculan los días laborables.
Ejemplos
Ejemplos básicos
Valores de entrada literales
Devuelve 5 (la cantidad de días laborables entre el lunes 02 de marzo de 2015 y el domingo 08 de marzo de
2015 (inclusive):
WORKDAY(`20150302`; `20150308`)
Devuelve 6 (la cantidad de días laborables entre el lunes 02 de marzo de 2015 y el domingo 08 de marzo de
2015 (inclusive), cuando el domingo es el único día no laborable):
Devuelve 5 (la cantidad de días laborables entre el domingo 01 de marzo de 2015 y el sábado 07 de marzo
de 2015 (inclusive), cuando el viernes y el sábado son los días no laborables):
WORKDAY(Fecha_de_inicio ; `20151231`)
Devuelve la cantidad de días laborables entre cada fecha del campo Fecha_de_inicio y una fecha corres-
pondiente en el campo Fecha_de_finalización (inclusive):
l Los días festivos obligatorios se incluyen en el total de días laborables y se pueden excluir con un cál-
culo independiente.
l La devolución de un valor negativo indica que la fecha de inicio es más reciente que una fecha de fina-
lización.
WORKDAY(Fecha_de_inicio ; Fecha_de_finalización)
Observaciones
Formatos de fecha
Un campo especificado para fecha_de_inicio o fecha_de_finalización puede utilizar cualquier formato de
fecha, siempre que la definición del campo establezca correctamente el formato.
Al especificar un valor literal de fecha para fecha_de_inicio o fecha_de_finalización, solo puede utilizar los
formatos AAAAMMDD y AAMMDD y debe encerrar el valor entre acentos graves; por ejemplo,
`20141231`.
l 16 febrero 2015
El ejemplo que se incluye a continuación sirve para períodos con cualquier fecha de inicio y fecha de fina-
lización dentro del trimestre.
Primero crea un campo calculado, por ejemplo Días_laborables , que calcule los días laborables para todos
los períodos del trimestre:
Nota
El orden de las condiciones del campo calculado condicional es importante.
ACL evalúa varias condiciones comenzando por el principio. La primera condición que eva-
lúa como verdadera para un registro asigna el valor del campo calculado condicional para
ese registro. La siguiente condición que evalúa como verdadera no modifica el valor asig-
nado.
Función YEAR( )
Extrae el año de una fecha o fechahora especificada y lo devuelve como un valor numérico con el formato
YYYY.
Sintaxis
YEAR(fecha/fechahora)
Parámetros
Nombre Tipo Descripción
Salida
Numérico.
Ejemplos
Ejemplos básicos
Devuelve 2014:
YEAR(`20141231`)
YEAR(`141231 235959`)
YEAR(Fecha_de_factura)
Observaciones
Detalles del parámetro
Un campo especificado para fecha/fechahora puede utilizar cualquier formato de fecha o fechahora, siem-
pre que la definición del campo establezca correctamente el formato.
AAAAMMDD `20141231`
AAMMDD `141231`
AAAAMMDD hhmmss `20141231 235959`
AAMMDDthhmm `141231t2359`
AAAAMMDDThh `20141231T23`
AAAAMMDD hhmmss+/-hhmm `20141231 235959-0500`
(desplazamiento de UTC)
AAMMDD hhmm+/-hh `141231 2359+01`
(desplazamiento de UTC)
Nota
No use solo hh en el formato de la hora
principal con datos que tienen un des-
plazamiento del UTC. Por ejemplo, evite:
hh+hhmm. Los resultados pueden no ser
confiables.
Función ZONED( )
Convierte datos numéricos en datos de caracteres y agrega ceros a la izquierda de los datos de salida.
Sintaxis
ZONED(número; longitud)
Parámetros
Nombre Tipo Descripción
Salida
Carácter.
Ejemplos
Ejemplos básicos
Información de entrada de íntegro
Devuelve "235":
ZONED(235; 3)
Devuelve "00235" porque longitud es mayor que el número de dígitos de número; por lo tanto, se agregan
dos ceros al principio del resultado:
ZONED(235; 5)
Devuelve "35" porque longitud es menor que el número de dígitos de número; por lo tanto, el dígito ubicado
más a la izquierda se quita del resultado:
ZONED(235; 2)
ZONED(235,85; 5)
ZONED(-6448,94; 6)
Devuelve "489J", porque la longitud es inferior a la cantidad de dígitos del número; por lo tanto, los dos dígi-
tos ubicados más a la izquierda se truncan del resultado y el número es negativo y "J" representa el dígito
final 1:
ZONED(-6448,91; 4)
Ejemplos avanzados
Armonización de un campo clave al unir tablas
Usted tiene dos tablas, Ar y Cliente, y necesita unirlas por el campo NúmClien para realizar más análisis.
Cada una de las dos tablas tiene un campo NúmClien, pero el formato de datos es diferente:
l Campo numérico Ar: (por ejemplo, 235)
l Cliente: campo de 5 caracteres que completa los números con ceros al principio (por ejemplo,
"00235")
Para unificar los campos al unir, de manera que las longitudes y los tipos de datos sean iguales, utiliza la fun-
ción ZONED( ) para convertir el campo clave Ar NúmClien a un campo de caracteres con una longitud de 5
para que coincida con el formato del campo clave en Cliente:
OPEN Ar PRIMARY
OPEN Cliente SECONDARY
JOIN PKEY ZONED (NúmClien;5) FIELDS NúmClien Vencimiento Monto SKEY NúmClien
UNMATCHED TO Ar_Clien OPEN PRESORT SECSORT
Observaciones
Cómo funciona
Esta función convierte los datos numéricos en datos de caracteres y agrega ceros al inicio a la salida. La
función se suele utilizar para unificar los campos que requieren ceros al inicio, por ejemplo, los campos de
número de cheque, número de orden de compra y número de factura.
Números decimales
El tipo de datos de zona no incluye una coma decimal explícita.
Números negativos
Si el número de valor de entrada es negativo, el dígito ubicado más a la derecha se muestra como un
carácter en el resultado:
l "}" para 0
l una letra entre "J" y "R" para los dígitos 1 al 9
Función ZSTAT( )
Devuelve la estadística Z estándar.
Sintaxis
ZSTAT(proporción_real; proporción_esperada; población)
Parámetros
Nombre Tipo Descripción
población numérico El número total de elementos de prueba. Este parámetro debe ser un
número entero positivo mayor que 0.
Salida
Numérico.
Ejemplos
Ejemplos avanzados
Parámetros expresados como números
Basándose en 10 años de datos anteriores, se sabe que la distribución mensual de reclamos por dis-
capacidad de trabajador por lo general es muy uniforme. En abril, mayo y junio de este año, los reclamos
fueron superiores en un 10 %, lo cual equivale a un promedio de 220 por mes en lugar de 200. Los recla-
mos en julio y agosto fueron levemente inferiores, de 193 y 197. Los reclamos totales para el año ascen-
dieron a 2.450. Para probar si estos valores alto y bajo fueron significativos, utilice Z-statistic.
El número real de reclamos de abril a junio es mayor de lo esperado. El número esperado de reclamos
para este período debe ser 25 % de los 2.450 reclamos anuales, lo que equivale a 612,5 La estadística Z
para estos recuentos se calcula como 2,193:
Una estadística Z de 1,96 tiene una significación de 0,05 y 2,57 una significación de 0,01. Por lo tanto, la
probabilidad de que las tasas superiores de reclamos se deban a eventualidades es entre 1:20 y 1:100.
El número real de reclamos de julio y agosto es inferior al esperado (390). El número esperado de recla-
mos para este período es un sexto de los 2.450 reclamos anuales, lo que equivale a 408,33. La estadística
Z para estas proporciones se calcula como 0,967:
Este no es un resultado muy significativo. Las estadísticas Z de 1,000 y menores son muy comunes y por
lo general pueden ser ignoradas.
Una estadística Z de 1,96 tiene una significación de 0,05 y 2,57 una significación de 0,01. Por lo tanto, la
probabilidad de que las tasas superiores de reclamos se deban a eventualidades es entre 1:20 y 1:100.
El número real de reclamos de julio y agosto es inferior al esperado (390). El número esperado de recla-
mos para este período debería ser un sexto o 16,6667 % de los 2.450 reclamos anuales. La estadística Z
para estas proporciones es 0,967:
Este no es un resultado muy significativo. Las estadísticas Z de 1,000 y menores son muy comunes y por lo
general pueden ser ignoradas.
Observaciones
Cómo funciona
La función ZSTAT( ) calcula la estadística Z estándar para utilizar en muchas tareas de resolución de pro-
blemas, incluso análisis digital. Devuelve el resultado con una precisión de tres decimales.
Uso de ZSTAT( )
Utilice ZSTAT( ) para evaluar la probabilidad de frecuencia de ocurrencia de un determinado resultado en
un período o categoría específicos. Cuanto más sea la estadística Z resultante, menor será la probabilidad
de ocurrencia.
Por ejemplo, una estadística Z de 1,96 tiene una significación de 0,05, representando la posibilidad de una
en 20 ocurrencias, mientras una estadística Z de 2,57 tiene una significación de 0,01, representando la posi-
bilidad de una en 100 ocurrencias. Para obtener información sobre estadísticas Z, consulte un libro de esta-
dística.
Estudios analíticos
COMMENT
//ANALYTIC Identificar cheques faltantes
Este estudio analítico identifica los números de cheques faltantes
END
FTYPE("ax_main") = "b"
Si el script se está ejecutando en ACL GRC Analytics Exchange o en la ventana Aplicación de análisis, la
expresión se evalúa como verdadera (T). En el caso de los scripts que se están ejecutando en ACL Ana-
lytics, la expresión se evalúa como falsa (F). Si desea obtener más información, consulte "Función
FTYPE( )" en la página 540.
Nota
AXRunByUser solo está disponible al ejecutar estudios analíticos en el Servidor de AX. No
se reconoce la variable al ejecutar scripts en ACL Analytics.
Ejemplo
El siguiente ejemplo de encabezado de estudio analítico identifica una tabla y un campo para utilizar en el
script, así como el parámetro de fecha de inicio:
COMMENT
//ANALYTIC Identificar cheques faltantes
Este estudio analítico identifica los números de cheque faltantes
//TABLE v_tabla_pagos Tabla de pagos
Seleccione una tabla que enumere los pagos e incluya una columna de números de cheque
//FIELD v_núm_cheche CN Número de cheque
Seleccione el campo que contiene los números de cheque
//PARAM v_fecha_de_inicio D OPTIONAL Fecha de inicio (opcional)
Introduzca la fecha de inicio para el análisis
END
El indicador de etiqueta // debe ser el primer carácter que no sea un espacio en blanco en la línea del script.
La etiqueta debe ir inmediatamente después del indicador de etiqueta, sin ningún espacio ni carácter entre
ellos.
Nombres de las eti- Los nombres de las etiquetas no distinguen entre mayúsculas y minúsculas.
quetas
A diferencia de los nombres de comandos y funciones de ACL, los nombres de las etiquetas
no se pueden abreviar.
Atributos de las eti- Al especificar valores de atributos para una etiqueta, debe incluir espacios y, si lo desea, ence-
quetas rrar el valor entre comillas.
Descripciones de las Las descripciones son opcionales Si se especifica una descripción, esta puede tener varias
etiquetas líneas, pero los saltos de líneas no se conservan en AX Cliente, Cliente Web AX o la ventana
Aplicación de análisis.
Cuando el script se ejecuta en ACL Analytics, el parámetro asume el valor que se especifica en la asig-
nación. Una vez que se ejecute el estudio analítico en ACL GRC Analytics Exchange o la ventana Apli-
cación de análisis, se ignora la asignación del valor de prueba y se utilizan los parámetros de entrada
definidos por el usuario.
Debe dejar un espacio entre el operador de asignación y el nombre de la etiqueta, y los valores deben uti-
lizar el calificador correcto para el tipo de datos, tal como se hace en ACL Analytics. Si desea obtener más
información, consulte "Tipos de datos" en la página 21.
"ANALYTIC" en la Designa un script de ACL como un estudio analítico que se puede ejecutar en el Servidor de
página opuesta AX o en la ventana Aplicación de análisis.
"FILE" en la Especifica un archivo ajeno a ACL, como un archivo de Excel o un archivo delimitado, que
página 823 proporciona datos de entrada para un estudio analítico que se ejecuta en el Servidor de AX.
El archivo debe estar ubicado en la subcarpeta Archivos relacionados de la carpeta del Ser-
vidor de AX en la cual se encuentra el estudio analítico.
"TABLE" en la Define una tabla de ACL que el usuario que ejecuta el estudio analítico selecciona como
página 825 información de entrada para el script. La etiqueta TABLE puede ir seguida de cero o más eti-
quetas FIELD en líneas secuenciales.
"FIELD" en la Define un campo que el usuario que ejecuta el estudio analítico selecciona como información
página 827 de entrada para el script. El campo forma parte de la tabla que se define en la etiqueta
TABLE previa. La primera etiqueta FIELD debe ir directamente a continuación de una eti-
queta TABLE y puede ir seguida de más etiquetas FIELD en líneas secuenciales.
"PARAM" en la Crea parámetros de entrada para un estudio analítico y define los requisitos para los valores
página 829 de entrada. Un parámetro de entrada es un marcador de posición que permite a los usuarios
que ejecutan un estudio analítico especificar el valor real que se debe utilizar al ejecutar o
programar un estudio analítico.
"PASSWORD" en la Especifica un parámetro de contraseña para los comandos de ACLScript. Se solicita a los
página 839 usuarios que especifiquen el valor de contraseña solicitado al programar o ejecutar un estu-
dio analítico, de forma que no sea necesaria la intervención del usuario cuando se ejecuta el
script.
"DATA" en la Especifica que la salida de una tabla de ACL realizada por un estudio analítico se copia a la
página 841 subcarpeta de Datos de la carpeta Servidor de AX o la carpeta de Windows en la cual está
ubicada la aplicación de análisis si se ejecuta en la ventana Aplicación de análisis. En gene-
ral, usted copia las tablas a la subcarpeta de Datos para que puedan ser utilizadas como
tablas de entrada para estudios analíticos posteriores.
"RESULT" en la Especifica los resultados de la salida del estudio analítico que usted desea poner a dis-
página 843 posición de los usuarios finales en las aplicaciones cliente. Los resultados de salida, aun
cuando existen, no están disponibles de forma automática, excepto por un archivo de log si el
estudio analítico no se puede completar correctamente. Debe utilizar una etiqueta RESULT
para cada elemento de resultado que desee que esté disponible.
"PUBLISH" en la Especifica un archivo que contiene metadatos que definen qué tablas de ACL se deben publi-
página 846 car en AX Exception cuando se termina de procesar un estudio analítico.
ANALYTIC
Designa un script de ACL como un estudio analítico que se puede ejecutar en el Servidor de AX o en la ven-
tana Aplicación de análisis.
Sintaxis
//ANALYTIC <TYPE IMPORT|PREPARE|ANALYSIS> nombre
< descripción>
Parámetros
Nombre Descripción
TYPE Identifica el tipo de script de estudio analítico como uno de los siguientes tres tipos:
opcional o IMPORT:: extraen datos de un origen de datos. La salida de un estudio analítico de
importación es una tabla de datos sin procesar.
o PREPARE:: transforman datos sin procesar del modo que resulte necesario para que
sean aptos para el análisis. La salida de un estudio analítico de preparación es una
tabla de análisis.
o ANALYSIS:: llevan a cabo pruebas en los datos de las tablas de análisis. La salida de
un estudio analítico de análisis es una o más tablas de resultados.
Los estudios analíticos con un TYPE especificado se organizan en las áreas corres-
pondientes de Importación, Preparación o Análisis del Cliente Web AX y la ventana Apli-
cación de análisis. Esta ubicación orienta al usuario para ejecutar los estudios analíticos
en la secuencia adecuada. La secuencia no es obligatoria y tampoco lo es el tipo de fun-
cionalidad dentro del estudio analítico.
Si omite TYPE, el estudio analítico aparece en la sección de Análisis.
nombre El nombre del estudio analítico. El nombre identifica el estudio analítico en las apli-
caciones cliente. El nombre del estudio analítico es independiente del nombre del script
que usted especifica al crear inicialmente el script.
Nota:
Los estudios analíticos deben tener un nombre exclusivo dentro de una
aplicación de análisis. Si se utiliza el mismo nombre en dos o más estu-
dios analíticos de una aplicación de análisis, se generará un error al
intentar importar o abrir la aplicación de análisis.
Los nombres de los estudios analíticos no deben incluir caracteres que no se pueden uti-
lizar en los nombres de archivos de Windows (< > : " / \ | ? *), porque esto causará un
error que impedirá exportar los resultados del estudio analítico. No utilice el valor TYPE
como nombre.
En las aplicaciones cliente, los nombres se incluyen en orden alfanumérico. Para orien-
Nombre Descripción
tar a los usuarios acerca de la secuencia correcta para la ejecución de varios estudios
analíticos en una única aplicación de análisis, puede agregar un prefijo para ordenar los
nombres de los estudios analíticos dentro de cada área. Por ejemplo: “01_analizar_PO”,
“02_analizar_facturas” y así en adelante. La secuencia implícita en el orden de los nom-
bres no se hace cumplir.
descripción Una descripción del estudio analítico u otra información que el usuario puede llegar a
necesitar para ejecutar correctamente el estudio analítico.
opcional
La descripción aparece con el estudio analítico en las aplicaciones cliente. La des-
cripción puede ser de varias líneas, pero no se pueden saltear líneas. La descripción se
debe introducir en la línea ubicada debajo de la etiqueta ANALYTIC con la cual está aso-
ciada.
Ejemplos
Encabezado de estudio analítico básico
El siguiente encabezado de estudio analítico contiene un nombre y una descripción del estudio analítico:
COMMENT
//ANALYTIC Identificar cheques faltantes
Este estudio analítico identifica los números de cheques faltantes.
END
COMMENT
//ANALYTIC TYPE PREPARE Estandarizar datos de domicilio
Este estudio analítico limpia y estandariza el campo de domicilio a fin de prepararlo para el análisis de
duplicados.
END
Observaciones
Se debe introducir un comando COMMENT de ACLScript en la primera línea del script, seguido de la eti-
queta ANALYTIC en la segunda línea. Si se utiliza la etiqueta ANALYTIC en cualquier otro lugar, se la
ignora.
En un proyecto de ACL, uno o más scripts pueden incluir una etiqueta ANALYTIC.
FILE
Especifica un archivo ajeno a ACL, como un archivo de Excel o un archivo delimitado, que proporciona
datos de entrada para un estudio analítico que se ejecuta en el Servidor de AX. El archivo debe estar ubi-
cado en la subcarpeta Archivos relacionados de la carpeta del Servidor de AX en la cual se encuentra el
estudio analítico.
Sintaxis
//FILE nombre de archivo
Parámetros
Nombre Descripción
nombre de archivo El nombre del elemento de la subcarpeta Archivos relacionados que se utiliza como
archivo de datos de entrada para un estudio analítico. El nombre de archivo no puede
incluir una ruta.
Se admite el uso de comodines al especificar un nombre de archivo. Utilice un asterisco
(*) para reemplazar ninguno, uno o más caracteres.
Por ejemplo:
o Fac12* coincide con todas las siguientes opciones: Fac12, Fac123 e Fac1234
o *.* coincide con todos los archivos de todas las extensiones de la carpeta Archivos
relacionados
o Fac_*.* coincide con Fac_ene.pdf e Fac_feb.xls
Consejo
Puede usar la etiqueta //FILE para hacer referencia a un archivo de pre-
ferencias .prf de ACL Analytics. Al hacerlo, se utiliza el archivo de pre-
ferencias de la subcarpeta Archivos relacionados para establecer la
configuración del entorno de ejecución en lugar de utilizar el archivo de
preferencias global del Servidor de AX. El archivo de preferencias debe
ser de la última versión de ACL Analytics que sea compatible con su ins-
talación de ACL GRC Analytics Exchange.
Ejemplos
Ejemplos básicos
Especifica un archivo específico:
//FILE Cuentasmarcadas.csv
//FILE *marcadas.csv
//FILE *.*
Ejemplos avanzados
Importar datos desde un archivo incluido
Usted ejecuta un análisis mensual de los datos de los empleados en el Servidor de AX. Uno de los estu-
dios analíticos de la aplicación de análisis importa los datos que se deben analizar de un archivo deli-
mitado que se coloca en la carpeta Archivos relacionados mensualmente:
COMMENT
//ANALYTIC TYPE IMPORT importar_empleado
Importa los registros de empleados de un campo delimitado almacenado en la carpeta Archivos rela-
cionados.
//FILE Empleados.csv
END
IMPORT DELIMITED TO "Empleados.fil" FROM "Empleados.csv" 0 SEPARATOR "," QUALIFIER '"'
CONSECUTIVE STARTLINE 1 KEEPTITLE FIELD "Nombre" C AT 1 DEC 0 WID 11 PIC "" AS
"Nombre" FIELD "Apellido" C AT 12 DEC 0 WID 12 PIC "" AS "Apellido"
Observaciones
No se admite la etiqueta FILE para ser utilizada en estudios analíticos que se ejecutan en la ventana Apli-
cación de análisis. Si desea especificar un archivo de datos de entrada para los estudios analíticos que se
ejecutan en la ventana Aplicación de análisis, utilice la etiqueta PARAM. Si desea obtener más infor-
mación, consulte "PARAM" en la página 829.
TABLE
Define una tabla de ACL que el usuario que ejecuta el estudio analítico selecciona como información de
entrada para el script. La etiqueta TABLE puede ir seguida de cero o más etiquetas FIELD en líneas
secuenciales.
Sintaxis
//TABLE id nombre
<descripción>
Parámetros
Nombre Descripción
descripción Texto descriptivo que especifica la finalidad de la tabla. La descripción puede ser de
varias líneas, pero no se pueden saltear líneas.
opcional
El valor se muestra en las aplicaciones cliente cuando se le solicita al usuario que selec-
cione la tabla. La descripción puede solicitar al usuario que seleccione la tabla correcta.
Por ejemplo, "Seleccione la tabla que incluye la información de nómina".
La descripción se debe introducir en la línea ubicada debajo de la etiqueta TABLE con la
cual está asociada.
Ejemplos
Ejemplos básicos
Etiqueta TABLE con descripción para ayudar al usuario a seleccionar la tabla de entrada correcta:
Ejemplos avanzados
Uso de una tabla definida en la etiqueta TABLE en el script
El siguiente script ejecuta un comando AGE en una tabla seleccionada por el usuario a partir de las tablas
de datos del proyecto:
COMMENT
//ANALYTIC script_de_ejemplo
//TABLE v_tabla_pagos Tabla de pagos
Seleccione una tabla que enumere los pagos e incluya una columna de números de cheque
END
OPEN %v_tabla_pagos%
AGE ON fecha_de_pago CUTOFF 20141231 INTERVAL 0;30;60;90;120;10000 SUBTOTAL
Importe_pago TO r_salida
CLOSE %v_tabla_pagos%
FIELD
Define un campo que el usuario que ejecuta el estudio analítico selecciona como información de entrada
para el script. El campo forma parte de la tabla que se define en la etiqueta TABLE previa. La primera eti-
queta FIELD debe ir directamente a continuación de una etiqueta TABLE y puede ir seguida de más eti-
quetas FIELD en líneas secuenciales.
Sintaxis
//FIELD id tipo nombre
<descripción>
Parámetros
Nombre Descripción
tipo Los tipos de campos que se pueden seleccionar. Es posible seleccionar cualquier tipo o
combinación de tipos de la siguiente lista:
o C: datos de caracteres
o N: datos numéricos
o D:Un subtipo de fecha, fechahora u hora del tipo de datos fechahora
o L: datos lógicos
Se puede seleccionar cualquier campo calculado de una tabla sin importar el tipo que se
especifique.
descripción Texto descriptivo que especifica la finalidad del campo. La descripción puede ser de
varias líneas, pero no se pueden saltear líneas.
opcional
El valor se muestra en las aplicaciones cliente cuando se le solicita al usuario que selec-
cione el campo. La descripción puede solicitar al usuario que seleccione el campo
correcto. Por ejemplo: “Seleccione el campo que incluye el monto de pago”.
La descripción se debe introducir en la línea ubicada debajo de la etiqueta FIELD con la
cual está asociada.
Ejemplos
Ejemplos básicos
Especifica un campo de caracteres:
Ejemplos avanzados
TABLE con dos etiquetas FIELD que la acompañan
Los siguientes encabezados de estudio analítico permiten que el usuario especifique dos campos de
entrada desde la tabla v_tabla_pagos cuando se ejecuta el script:
COMMENT
//ANALYTIC estudio analítico de prueba
//TABLE v_tabla_pagos Tabla de pagos
Seleccione una tabla que enumere los pagos e incluya una columna de números de cheque
//FIELD v_núm_cheque CN Campo Número de cheque
//FIELD v_fecha_de_pago D Campo Fecha de pago
Seleccione la columna que contiene la fecha de pago del cheque.
END
OPEN %v_tabla_pagos%
EXTRACT FIELDS %v_núm_cheque%; %v_fecha_pago% TO t_analizar
PARAM
Crea parámetros de entrada para un estudio analítico y define los requisitos para los valores de entrada. Un
parámetro de entrada es un marcador de posición que permite a los usuarios que ejecutan un estudio ana-
lítico especificar el valor real que se debe utilizar al ejecutar o programar un estudio analítico.
Sintaxis
//PARAM id tipo <OPTIONAL> <MULTI> <SEPARATOR valor> <QUALIFIER valor>
<VALUES lista_de_valores> etiqueta
<descripción>
Parámetros
Nombre Descripción
id La variable que almacena los valores de entrada del estudio analítico que el usuario
seleccionó o especificó.
Por ejemplo, v_fecha_de_inicio o v_regiones o v_archivo_de_entrada. También sirve
como identificador exclusivo para el parámetro.
Cuando se ejecuta un estudio analítico, se crea la variable únicamente si el usuario pro-
porciona un valor de entrada. Si un parámetro es opcional y el usuario lo saltea, no se
crea la variable. Si la lógica posterior del estudio analítico requiere que exista la varia-
ble, puede comprobar si existe. Si no existe, puede crearla e inicializarla.
tipo El tipo de datos del parámetro, que controla qué tipo de valores de entrada se pueden
introducir. También puede especificar que se abra una utilidad de carga de archivos o
un explorador de archivos de Windows.
Es posible especificar los siguientes tipos utilizando mayúsculas:
o C: datos de caracteres
o N: datos numéricos
o D: datos de fechahora del subtipo de fecha
o DT: datos de fechahora del subtipo de fechahora
o T: datos de fechahora del subtipo de hora
o L: datos lógicos
o F: abre una utilidad de carga de archivos o un explorador de archivos de Windows y
permite que el usuario seleccione un archivo de entrada ajeno a ACL para el estudio
analítico al ejecutarlo en el Cliente Web AX o la ventana Aplicación de análisis
Al seleccionarlo, se introduce automáticamente el nombre de archivo como un valor
de entrada de Carácter. Especifique F únicamente. No especifique F C.
Nombre Descripción
Nota
No se admite el tipo 'F' para estudios analíticos que se ejecutan en AX
Cliente. Si desea especificar un archivo de entrada para los estudios
analíticos que se ejecutan en AX Cliente, utilice la etiqueta FILE. Si
desea obtener más información, consulte "FILE" en la página 823.
OPTIONAL Especifica que el parámetro es opcional y que el usuario no necesita introducir un valor.
opcional
MULTI Especifica que el parámetro acepta valores de entrada diferentes. Se puede utilizar
MULTI con o sin la opción VALUES:
opcional
o MULTI con VALUES: el usuario puede seleccionar uno o más valores de una lista de
valores
o MULTI sin VALUES: el usuario puede introducir manualmente uno o más valores; por
ejemplo: 5812 5813 5814
MULTI se puede especificar para todos los tipos y subtipos de datos (C, N, D, DT, T),
excepto para el tipo de datos Lógico (L).
Si especifica MULTI y el tipo es C (Carácter), también puede especificar las opciones
SEPARATOR y QUALIFIER para insertar automáticamente separadores (delimitadores)
y calificadores de texto en una cadena de valores de entrada. Para ejecutar con éxito un
estudio analítico es necesario delimitar y calificar los valores de entrada de caracteres.
SEPARATOR valor Especifica que se inserta automáticamente un carácter separador entre los valores de
entrada de caracteres múltiples, lo cual genera una lista delimitada que se pasa al estu-
opcional
dio analítico para el procesamiento.
valor especifica qué carácter separador se va a utilizar. Un separador, o delimitador, que
se utiliza comúnmente es la coma ",". Si se omite SEPARATOR, se utiliza un espacio
como separador por valor predeterminado. No es posible especificar el carácter de espa-
cio como valor.
SEPARATOR solo puede ser utilizado cuando el tipo es C (Carácter) y se especifica la
opción MULTI, ya sea con o sin la opción VALUES.
QUALIFIER valor Especifica que se inserta automáticamente un carácter calificador de texto al principio y
al final de cada valor de entrada de caracteres en una lista delimitada que se pasa al
opcional
estudio analítico para el procesamiento.
Cualquier texto encerrado entre los caracteres calificadores será tratado como texto sin
formato. El valor especifica qué carácter calificador utilizar. Un calificador utilizado
comúnmente es la comilla simple. Si se omite QUALIFIER, no se utiliza ningún cali-
ficador por valor predeterminado. No es posible especificar un carácter de espacio como
valor.
QUALIFIER solo puede ser utilizado cuando el tipo es C (Carácter) y se especifica la
opción MULTI, ya sea con o sin la opción VALUES.
Nota
En la actualidad, los parámetros de entrada de los estudios analíticos no
admiten el uso de las comillas (") como calificador del texto. En su lugar,
puede usar una comilla simple ('). Si especifica comillas como calificador,
la etiqueta PARAM no funcionará correctamente.
Nombre Descripción
VALUES lista_de_valores Una lista de verificación de valores que el usuario puede seleccionar al ejecutar el estu-
dio analítico. Utilice la siguiente sintaxis para especificar los valores
opcional
VALUES |Valor1|Valor2|Valor3|Valor n|
etiqueta La etiqueta de la interfaz de usuario que se debe asociar con el parámetro. El valor de la
etiqueta se muestra en las aplicaciones cliente cuando se le solicita al usuario que intro-
duzca o seleccione un valor de entrada para el parámetro.
Ejemplos
Ejemplos básicos
Permite que el usuario pueda especificar, si lo desea, un intervalo de fechas:
//PARAM v_códigos C MULTI SEPARATOR , QUALIFIER ' Código(s) de comerciante para incluir
Especifique uno o más códigos de categoría de comerciante. Pulse "Intro" después de cada código
para que cada código quede en una línea separada. No encierre los códigos entre comillas.
Ejemplos avanzados
Solicite que un usuario especifique un rango de importe
Debe clasificar los registros de la tabla que caen entre un rango mínimo y máximo de importes. Este rango
cambia ocasionalmente, por lo que usted ofrece parámetros de entrada que permiten al usuario que eje-
cuta el estudio analítico definir el rango al programar o ejecutar el script:
COMMENT
//ANALYTIC estudio_analítico_de_prueba
//PARAM v_importe_mín N Importe mínimo
Introduzca un importe mínimo
//PARAM v_importe_máx N Importe máximo
Introduzca un importe máximo
END
Permita que los usuario excluyan, si lo desean, uno o más números de cliente
Debe clasificar los registros de una tabla pero desea brindarle al usuario la opción de excluir a algunos
COMMENT
//ANALYTIC estudio_analítico_de_prueba
//PARAM v_núm_cliente C OPTIONAL MULTI SEPARATOR , QUALIFIER ' Números de cliente que
se deben excluir (opcional)
Especifique uno o más números de cliente. Pulse "Intro" después de cada número, para que cada
número quede en una línea separada. No encierre los números entre comillas.
END
Permita que el usuario seleccione un archivo de entrada (Cliente Web AX o ventana Aplicación de análisis úni-
camente)
Está distribuyendo una aplicación de análisis entre colegas que la ejecutarán en la ventana Aplicación de
análisis. Cuando ejecutan el script de estudio analítico en la aplicación, usted desea proporcionarles un
explorador de archivos de Windows para seleccionar un archivo de Microsoft Excel desde el cual importar
datos:
COMMENT
//ANALYTIC estudio_analítico_de_prueba
//PARAM v_archivo_entrada F Archivo de entrada
Seleccione un archivo de entrada
END
Requiera que el usuario especifique una ruta de archivo de entrada y un nombre de archivo (únicamente la ven-
tana Aplicación de análisis)
Está distribuyendo una aplicación de análisis entre colegas que la ejecutarán en la ventana Aplicación de
análisis. Cuando ejecuten el script de estudio analítico en la aplicación, usted desea que especifiquen una
ruta y un nombre de archivo para utilizarlo como archivo de importación:
COMMENT
//ANALYTIC estudio_analítico_de_prueba
//PARAM v_archivo_entrada C Ruta y nombre de archivo de entrada
Escriba una ruta absoluta y un nombre de archivo; por ejemplo: C:\Usuarios\nombre_de_usua-
rio\Documentos\Datos de ACL\Archivos de datos de muestra\Trans_Mayo.xls
END
COMMENT
//ANALYTIC prueba
Este estudio analítico prueba el PARAM
//RESULT TABLE t_resultados
//PARAM v_fecha_de_inicio D OPTIONAL Introduzca la fecha de inicio
//PARAM v_fecha_de_finalización D OPTIONAL Introduzca la fecha de finalización
//PARAM v_lista_de_entidades C MULTI OPTIONAL |entidad1|entidad2|
END
Observaciones
Diseño de parámetros de entrada opcionales
Si utiliza OPTIONAL con la etiqueta PARAM, la variable asociada con el parámetro de entrada del estudio
analítico se puede crear, o no, cuando se ejecuta el estudio analítico. Si el usuario especifica un valor de
entrada, se crea automáticamente la variable del parámetro. Sin embargo, si el usuario saltea el parámetro
opcional y no especifica un valor de entrada, no se crea la variable del parámetro.
Si la lógica posterior del estudio analítico depende de la capacidad de evaluar el contenido de la variable del
parámetro, lo cual incluye evaluar un estado vacío o nulo, debe comprobar la existencia de la variable del
parámetro y, si no existe, crearla e inicializarla en nulo. Puede usar la función FTYPE( ) o la función
ISDEFINED( ) para realizar la prueba:
l IF FTYPE("nombre_var") = "U" nombre_var = ""
l IF NOT ISDEFINED("nombre_var") nombre_var = ""
Realice la prueba después del encabezado del estudio analítico y antes de cualquier lógica del script de
ACL que dependa de la existencia de la variable del parámetro. Vea el Ejemplo "f", más adelante.
Existen cuatro métodos diferentes para insertar calificadores de texto alrededor de los valores de entrada
de caracteres (se indican a continuación). Debe asegurarse de que el parámetro de entrada que diseñe
utilice solo uno de estos métodos. Según el método, se inserta también un separador entre los valores
de entrada. Es posible que uno o más métodos no se puedan aplicar, según la manera en la que esté
usando las opciones MULTI y VALUES.
Métodos para insertar calificadores de texto (utilice solo uno por parámetro):
l Método 1: utilizar las opciones SEPARATOR y QUALIFIER
Incluya las opciones SEPARATOR y QUALIFIER en la etiqueta PARAM. Por ejemplo:
Utilice este método siempre que sea posible. Es el que requiere menos trabajo y el que genera
menos probabilidad de errores. No se aplica si utiliza VALUES sin MULTI.
l Método 2: especificar manualmente separadores y calificadores
Solicite al usuario del estudio analítico que especifique manualmente los separadores y los cali-
ficadores, además de los valores de entrada reales. Por ejemplo:
IF MATCH(REGIONS; "%v_regiones%")
La tabla que se incluye a continuación resume cuándo utilizar los diferentes métodos para insertar cali-
ficadores de texto.
Métodos para insertar calificadores de texto
Tanto MULTI como
MULTI sin VALUES VALUES sin MULTI VALUES
La ven-
Cliente tana Apli-
Cliente Web cación de
Método Detalles AX AX análisis
La ruta del Este método evita el uso de la etiqueta PARAM; sin embargo,
archivo de es el menos flexible. El usuario se debe asegurar de que, en
entrada y el nom- cada computadora en la que se ejecute el estudio analítico, el
bre del archivo se archivo de entrada tenga una ruta de archivo y un nombre de
incluyen en el archivo idéntico a los que se especifican en el estudio ana-
código del estudio lítico.
analítico
(ejemplo "i", a con-
tinuación)
PASSWORD
Especifica un parámetro de contraseña para los comandos de ACLScript. Se solicita a los usuarios que
especifiquen el valor de contraseña solicitado al programar o ejecutar un estudio analítico, de forma que no
sea necesaria la intervención del usuario cuando se ejecuta el script.
Sintaxis
//PASSWORD índice nombre
< descripción>
Parámetros
Nombre Descripción
índice El identificador numérico asociado con la contraseña. El valor debe estar entre 1 y 10.
nombre El nombre que se debe asociar con la contraseña. El valor se muestra en el Cliente Web
AX y AX Cliente cuando las aplicaciones le piden al usuario que introduzca un valor
para la contraseña.
Ejemplos
Configuración de una contraseña para utilizarla en el script
El siguiente encabezado de estudio analítico define una contraseña que se utiliza para ejecutar una con-
sulta de Direct Link:
COMMENT
//ANALYTIC Ejemplo de contraseña
//PASSWORD 1 Contraseña SAP:
//DATA RSADMIN
END
Observaciones
Almacenamiento y cifrado de la contraseña
Los valores de la contraseña se asocian con los usuarios individuales de ACL GRC Analytics Exchange y
se cifran cuando están en reposo. Las contraseñas permanecen seguras a lo largo de todo el pro-
cesamiento del estudio analítico y se encriptan en cualquier archivo temporal que se cree en el servidor o
que se cargue a AX Servidor.
DATA
Especifica que la salida de una tabla de ACL realizada por un estudio analítico se copia a la subcarpeta de
Datos de la carpeta Servidor de AX o la carpeta de Windows en la cual está ubicada la aplicación de aná-
lisis si se ejecuta en la ventana Aplicación de análisis. En general, usted copia las tablas a la subcarpeta de
Datos para que puedan ser utilizadas como tablas de entrada para estudios analíticos posteriores.
Sintaxis
//DATA nombre
Parámetros
Nombre Descripción
//DATA Cheques_faltantes
Lo siguiente es incorrecto:
//DATA
Cheques_faltantes.fil
Ejemplos
Guardado de una tabla de datos
El siguiente encabezado de estudio analítico especifica que la tabla Facturas se copia a la subcarpeta de
Datos:
COMMENT
//ANALYTIC Importar tabla
//DATA Facturas
END
IMPORT DELIMITED TO Facturas "Facturas.fil" FROM "Facturas.csv" 0 SEPARATOR ","
QUALIFIER '"' CONSECUTIVE STARTLINE 1 KEEPTITLE ALLCHAR ALLFIELDS
Observaciones
Guardado de las tablas de salida
Las tablas de salida no se copian automáticamente a la subcarpeta de Datos . Debe utilizar una etiqueta
DATA para cada tabla que desee copiar. Si es necesario, puede incluir varias etiquetas DATA en un estu-
dio analítico.
RESULT
Especifica los resultados de la salida del estudio analítico que usted desea poner a disposición de los usua-
rios finales en las aplicaciones cliente. Los resultados de salida, aun cuando existen, no están disponibles
de forma automática, excepto por un archivo de log si el estudio analítico no se puede completar correc-
tamente. Debe utilizar una etiqueta RESULT para cada elemento de resultado que desee que esté dis-
ponible.
Sintaxis
//RESULT tipo nombre
<descripción>
Parámetros
Nombre Descripción
nombre El nombre del elemento de resultado. El nombre no puede tener espacios en blanco.
Nombre Descripción
Nota
El valor nombre debe ser el nombre de la tabla de ACL, no el nombre del
archivo de datos de origen. Por ejemplo:
Lo siguiente es incorrecto:
descripción Texto descriptivo sobre el resultado u otra información. La descripción puede ser de
varias líneas, pero no se pueden saltear líneas.
opcional
Ejemplos
Etiqueta RESULT para una tabla de ACL:
//RESULT LOG
Observaciones
Almacenamiento y disponibilidad del archivo de resultados durante la ejecución de
un script en el Servidor de AX
Cuando use la etiqueta //RESULT FILE, el archivo que se crea está disponible para que lo descargue
desde el Cliente Web AX y AX Cliente una vez que finaliza el script. Este archivo se almacena en la base de
datos de AX y no está disponible en el sistema de archivos del Servidor de AX cuando no se está eje-
cutando el script.
Durante la ejecución del script, el archivo está temporalmente disponible en el sistema de archivos del Ser-
vidor de AX y usted puede trabajar con él por medio de procesos externos, como los que se invocan a tra-
vés del comando EXECUTE. Mientras su script se está ejecutando, los procesos externos pueden acceder
al archivo desde la subcarpeta del trabajo de estudio analítico.
Nota
Por valor predeterminado, las subcarpetas del trabajo de estudio analítico están ubicadas
dentro de ACL\Datos\trabajos. Una vez que se termina de ejecutar el script, se quita
la subcarpeta del trabajo de estudio analítico y el archivo se almacena en la base de datos.
PUBLISH
Especifica un archivo que contiene metadatos que definen qué tablas de ACL se deben publicar en AX
Exception cuando se termina de procesar un estudio analítico.
Sintaxis
//PUBLISH nombre de archivo
Parámetros
Nombre Descripción
nombre de archivo El nombre del archivo que contiene los metadatos de publicación para AX Exception.
Ejemplos
La definición del estudio analítico y el archivo de texto que especifica los detalles de publicación para el estudio
analítico
Es necesaria la etiqueta FILE si el archivo que se desea publicar está almacenado en la carpeta AX, de
manera que el archivo se recupere cuando se procesa el estudio analítico.
COMMENT
//ANALYTIC Publicar resultados
//RESULT TABLE Resultados
//FILE ex_publicar.txt
//PUBLISH ex_publicar.txt
END
EXTRACT RECORD TO Resultados
"Resultados","Mientidad","Miestudioanalítico"
//RESULT LOG
Si desea obtener más información acerca de la asignación de valores de prueba temporales, consulte
"Especificación de valores de entrada de las etiquetas en ACL Analytics" en la página 819.
Asegúrese de eliminar los valores de prueba temporales y la sintaxis de asignación de todas las etiquetas
del estudio analítico.
Comprobar el log
Si un estudio analítico no se ejecuta correctamente, abra y revise el archivo de log (nombre_estudio_ana-
lítico.log). El log debería incluir una entrada, marcada con una X roja, que indica el motivo por el cual no se
pudo completar correctamente el estudio analítico:
l por valores de entrada que se introdujeron incorrectamente, vuelva a ejecutar inmediatamente el
estudio analítico con un valor de entrada correcto
l por errores de sintaxis y lógicos en el cuerpo del script, corrija el error en ACL Analytics y vuelva a
abrir la aplicación de análisis en la ventana Aplicación de análisis
Un estudio analítico puede completarse con éxito, pero es posible que la tabla de resultados no contenga
los resultados que usted esperaba. Cuando ocurra esto, revise las entradas del log en secuencia y com-
pruebe los valores de entrada que se enviaron al estudio analítico para asegurarse de que el estudio ana-
lítico esté funcionando de la manera deseada.
Reemplace los comandos que requieran la intervención del usuario por etiquetas
de estudio analítico
Quite todos los comandos que requieran la intervención del usuario y reemplácelos por etiquetas de estu-
dio analíticos equivalentes en el encabezado del estudio analítico, que permitan que los usuarios pro-
porcionen los valores de entrada antes de que se ejecute el estudio analítico:
l PAUSE
l ACCEPT
l DIALOG
l PASSWORD
Pautas
l para evitar errores de procesamiento del estudio analítico, quite todos los comandos interactivos
l para asegurarse de que sea posible sobrescribir los archivos, según sea necesario, sin mostrar un
cuadro de diálogo de confirmación, agregue el comando SET SAFETY OFF al principio de un estu-
dio analítico y después agregue el comando SET SAFETY ON al final del estudio analítico para recu-
perar el comportamiento predeterminado
l para evitar que los diálogos de confirmación detengan el estudio analítico, agregue el parámetro OK
después de los comandos que normalmente muestran un cuadro de diálogo de confirmación:
l RENAME
l DELETE
OPEN Tabla_grande
SET FILTER TO fecha_trans >= `20091201` AND fecha_trans < `20100101`
COUNT
TOTAL importe
CLASSIFY ON cuenta ACCUMULATE importe TO CuentaClasTrans
OPEN Tabla_grande
SET FILTER TO fecha_trans >= `20091201` AND fecha_trans < `20100101`
EXTRACT FIELDS trans_date desc cuenta tipo importe TO TablaAnálisis
OPEN TablaAnálisis
COUNT
TOTAL importe
CLASSIFY ON cuenta ACCUMULATE importe TO CuentaClasTrans
Importación al Servidor de AX
Utilice aplicaciones de análisis empaquetadas para preparar un proyecto de ACL a fin de importarlo al Ser-
vidor de AX. Puede escoger qué tablas y archivos de datos importar junto con los scripts de estudio ana-
lítico al proyecto.
También puede usar na aplicación de análisis empaquetada (.aclapp) para importar interpretaciones
existentes. Para incluir interpretaciones de una aplicación de análisis existente (.aclx), debe volver a
empaquetar su proyecto de ACL y fusionar esta aplicación de análisis empaquetada (.aclapp) con el
archivo .aclx existente en la carpeta de su proyecto.
Nota
Cuando use una aplicación de análisis existente (archivo .aclx), el contenido del pro-
yecto de ACL tiene prioridad; por lo tanto, si hay scripts o tablas en el .aclx que ya no exis-
ten en el archivo .acl, no se las incluye en la aplicación de análisis empaquetada
resultante (archivo .aclapp).
2. En ACL Analytics, haga clic con el botón derecho del ratón en la entrada del proyecto en la ficha
Panorama del Navegador y seleccione Empaquetar Aplicación de análisis .
El proyecto de ACL es la carpeta de nivel superior en la vista de árbol.
//PARAM v_núm_cliente C OPTIONAL MULTI SEPARATOR , QUALIFIER ' Números de cliente para
excluir (opcional)
Especifique uno o más números de cliente para excluir. Pulse "Intro" después de cada número, para
que cada número quede en una línea separada. No encierre los números entre comillas.
//PARAM v_fecha_de_inicio D VALUES
|05/01/2003|05/02/2003|05/03/2003|05/04/2003|05/05/2003|05/06/2003|05/07/2003|05/08/2003|05/0-
9/2003|05/10/2003|05/11/2003|05/12/2003|05/13/2003|05/14/2003|05/15/2003|05/16/2003|05/17/200-
3|05/18/2003|05/19/2003|05/20/2003|05/21/2003|05/22/2003|05/23/2003|05/24/2003|05/25/2003|05/-
26/2003|05/27/2003|05/28/2003|05/29/2003|05/30/2003|05/31/2003|Fecha de inicio
Seleccione una fecha de inicio
//PARAM v_fecha_de_finalización
Escriba una fecha de finalización o escoja una del calendario
//PARAM v_importe_mín N Importe mínimo
Introduzca un importe mínimo
//PARAM v_importe_máx N Importe máximo
Introduzca un importe máximo
//RESULT TABLE *_clasificada
//RESULT LOG
END
Apéndice
Requisitos de software
Nota
Algunos requisitos previos de software se instalan automáticamente si aún no están pre-
sentes en su computadora. Para ver una lista completa de los requisitos previos que se
instalan automáticamente, consulte la documentación en línea.
Uno de los siguientes sistemas ACL para Windows es una aplicación de 32 bits que puede ejecutarse en las ver-
operativos: siones de 64 bits de Windows.
o Microsoft Windows 10 (64 Nota
bits)
Para instalar ACL para Windows en Windows 7, debe tener ins-
o Microsoft Windows 8.1 (64
talado el Service Pack 1. ACL para Windows requiere Microsoft
bits)
o Microsoft Windows 7 Service .Net 4.6, que no se puede instalar en las versiones de Windows 7
Pack 1 (SP 1) (32 o 64 bits) anteriores al SP1.
Windows XP ya no es un sistema operativo admitido.
Para usar las funciones de ACL La arquitectura de bits de la versión instalada de R debe coincidir con la arqui-
que integran el lenguaje de pro- tectura de bits del sistema operativo.
gramación R, debe instalar y
Si utiliza uno de los paquetes de CRAN R, probablemente deba agregar la ruta a
configurar R (32 bits/64 bits).
la carpeta binaria de R a la variable de entorno PATH de su computadora.
Las siguientes versiones de R
Por ejemplo:
se han probado con ACL Ana-
lytics, aunque las versiones ante- o C:\Archivos de programa\R\R-<versión>\bin\i386 (32 bits)
riores de R probablemente o C:\Archivos de programa\R\R-<versión>\bin\x64 (64 bits)
también funcionen: Nota
o 3.3.2 No es necesario que instale R si no tiene planeado usar las fun-
o 3.3.1 ciones de ACL integradas con este lenguaje.
o 3.2.5
o 3.2.3
Puede usar CRAN R (32 bits/64
bits) o Microsoft R (solo 64 bits).
Para usar las funciones de ACL La versión 3.5.x de Python ha sido totalmente probada y es compatible. Puede
que integran el lenguaje de pro- usar una versión diferente, como 3.3.x o 3.6.x; sin embargo, estas versiones no
gramación Python, debe instalar ofrecen las mismas garantías de pruebas y soporte con ACL que la versión 3.5.x.
y configurar:
Al instalar Python, debe configurarlo para que se pueda ejecutar en su sistema.
o Python versión 3.3.x o pos- Si desea obtener más información, consulte "Configuración de Python para uso
terior (32 bits) con ACL" en la página 871.
o La variable de entorno
Nota
PYTHONPATH
o La variable de entorno No es necesario que instale Python si no tiene planeado usar las
ACLPYTHONDLL funciones de ACL integradas con este lenguaje.
Para utilizar el Conector de o No es necesario que instale Oracle Instant Client si no tiene planeado utilizar
ACL para Oracle, debe instalar: el Conector de ACL para Oracle.
o La arquitectura de bits de Oracle Instant Client debe coincidir con la arqui-
o Oracle Instant Client 11g o
tectura de bits de su sistema operativo. Si instala Instant Client de 32 bits en
12c
un equipo de 64 bits, la conexión no podrá realizarse con éxito.
o Si está utilizando el conector con ACL GRC Analytics Exchange e instala Ora-
cle Instant Client después de Servidor de AX, debe reiniciar el servicio de Ana-
lytics Exchange antes de poder utilizar el conector.
Requisitos de hardware
Nota
Para un mejor desempeño de ACL Analytics en un entorno de producción es posible que
necesite más recursos que la especificación mínima.
Obtenga el instalador
Obtenga su instalador del contacto principal de su organización con ACL. Si usted es el contacto principal:
l Acceso a Internet: obtenga el instalador de la página de descargas de Launchpad (http://www.a-
clgrc.com/)
l Sin acceso a Internet: pídale a su representante de ACL que lo ayude a obtener el instalador desde
Launchpad
Extraiga el instalador
1. Haga doble clic en el paquete de instalación de ACL para Windows (ACLforWindows1303.exe).
2. Si aparece un cuadro de diálogo de advertencia, revise la información que se incluye allí y haga clic
en Sí .
3. Seleccione el idioma que desea utilizar para su instalación y haga clic en Aceptar.
4. En la página Configurar la ubicación de extracción, haga clic en Extraer.
Una vez que se hayan extraído los archivos, el instalador se iniciará automáticamente.
Active su licencia
Si tiene acceso a Internet, puede activarla la primera vez que inicie ACL para Windows e inicie sesión en
su organización. Para activar su licencia sin conexión, comuníquese con el Soporte de ACL.
Para crear un nuevo proyecto de ACL vacío En Crear, haga clic en Proyecto de estudio analítico
Para abrir un proyecto de ACL existente En Abrir, haga clic en Proyecto de estudio analítico
Para abrir un proyecto de ACL (.acl) de muestra o En Archivos de estudios analíticos recientes, o Archivos
reciente de muestra, haga clic en el nombre de un archivo
Cómo funciona
Para ejecutar los scripts de Python, ACL Analytics debe ser capaz de invocar el ejecutable de Python y de
encontrar los scripts que deban ejecutarse. ACL usa la variable de entorno PATH para localizar Python y la
variable de entorno PYTHONPATH para localizar los scripts.
4. Para guardar la variable, haga clic en Aceptar y luego, en el cuadro de diálogo Propiedades del
sistema, haga clic en Aceptar nuevamente.
¿Qué es Unicode?
Unicode es un estándar de codificación de texto que utiliza dos o más bytes para representar cada carác-
ter y los caracteres de todos los idiomas están incluidos en un único conjunto de caracteres. Las ediciones
Unicode de los productos ACL le permiten ver y trabajar con archivos y bases de datos que contienen
datos codificados en Unicode en todos los idiomas modernos.
Nota
ACL Analytics y el motor de AX admiten datos Unicode con la codificación little-endian
(LE). Estos productos no se pueden utilizar para analizar datos con la codificación big-
endian (BE).
Además, para los datos Unicode, especifique una posición inicial de bytes impar para los campos y una
cantidad par de bytes para la longitud de los campos. Si especifica una posición de inicio par o una longitud
impar, es posible que los caracteres no se vean correctamente.
No Unicode
Unicode
Funciones de conversión
l PACKED( )
l STRING( )
l UNSIGNED( )
l VALUE( )
l ZONED( )
Funciones de cadena
l AT( )
l BLANKS( )
l INSERT( )
l LAST( )
l LENGTH( )
l REPEAT( )
l SUBSTRING( )
Funciones varias
l FILESIZE( )
l LEADING( )
l OFFSET( )
l RECLEN( )
l DTOU( ): convierte un valor de fecha en la cadena Unicode correcta sobre la base del ajuste espe-
cífico de configuración regional.
l HTOU( ): devuelve el equivalente Unicode de una cadena hexadecimal especificada. Esta función
es la opuesta a DHEX( ).
l UTOD( ): convierte una cadena Unicode específica de una configuración regional en un valor de
fecha de ACL.
Prerrequisitos
Para ejecutar scripts de R en el Servidor de AX, usted debe:
1. Instalar una versión admitida del lenguaje de generación de scripts R en su Servidor de AX.
2. Agregar la extensión .r a la lista blanca de extensión de archivos del Servidor de AX.
3. En ACL Analytics, crear un proyecto para trabajar con él e importarlo al Servidor de AX.
Nota
Si necesita ayuda para completar estos requisitos previos, comuníquese con su admi-
nistrador de ACL GRC Analytics Exchange y consulte:
l Requisitos del Servidor de AX
l Lista blanca de extensiones de archivo
Archivos R de ejemplo
Los siguientes archivos R de ejemplo contienen scripts triviales que concatenan dos cadenas y devuelven
una única cadena unida por un espacio. Estos ejemplos tienen por fin mostrar de qué manera se ejecutan
los scripts de R en el Servidor de AX, no de qué manera se analizan los datos con R.
analysis_a.r
conc<-function(x, y) {
paste(x, y, sep=" ")
}
print(conc(value1, value2))
analysis_b.r
conc<-function(x, y) {
paste(y, x, sep=" ")
}
print(conc(value1, value2))
COMMENT
//ANALYTIC Prueba de integración de R
verifica la integración de R en el Servidor de AX
//DATA t_tmp
//FILE analysis_a.r
//FILE analysis_b.r
//RESULT TABLE resultados
END
OPEN t_tmp
CLOSE t_tmp
COMMENT
//ANALYTIC Prueba de integración de R
verifica la integración de R en el Servidor de AX
//DATA t_tmp
//FILE analysis_a.r
//FILE analysis_b.r
//RESULT TABLE resultados
END
OPEN t_tmp
CLOSE t_tmp
1. En el AX Cliente, cree una colección y una carpeta para albergar el proyecto de ACL
2. Para importar el proyecto y los archivos R:
a. Haga clic con el botón derecho del ratón en la carpeta que creó y seleccione Importar.
b. Vaya a su proyecto de ACL en su computadora local, seleccione el archivo del proyecto .acl y los
scripts .r de R.
Nota
Asegúrese de seleccionar los archivos R de la carpeta del proyecto, así como el
proyecto de ACL, utilizando la combinación Ctrl+clic para importarlos al Servidor
de AX. También debe importar los archivos de datos de origen para la tabla t_tmp.
c. Haga clic en Abrir.
l Aplicaciones de análisis
l Nombre_proyecto_ACL
l Nombre_del_script_del_estudio_analítico
l Datos
l t_tmp
l Archivos relacionados
l analysis_a.r
l analysis_b.r
Resultados
l Aplicaciones de análisis
l Nombre_proyecto_ACL
l Nombre_del_script_del_estudio_analítico
l Datos
l resultados
l Archivos relacionados
l analysis_a.r
l analysis_b.r
Tabla de resultados
l valor
l valor de prueba
l prueba del valor
Prerrequisitos
Para ejecutar scripts de Python en el Servidor de AX, usted debe:
1. Instalar una versión admitida del lenguaje de generación de scripts Python en su Servidor de AX.
2. Establecer la variable de entorno PYTHONPATH en el Servidor de AX.
3. En ACL Analytics, crear un proyecto para trabajar con él e importarlo al Servidor de AX.
Nota
Si necesita ayuda para completar estos requisitos previos, comuníquese con su admi-
nistrador de ACL GRC Analytics Exchange y consulte:
l Requisitos del Servidor de AX
l Configuración de Python para uso con el Servidor de AX
COMMENT
//ANALYTIC Prueba de integración de Python
verifica la integración de Python en el Servidor de AX
//DATA py
//DATA resultados
//RESULT TABLE resultados
END
OPEN py
GROUP
ASSIGN v_máx = 11
ASSIGN v_recuento = 1
COMMENT
//ANALYTIC Prueba de integración de Python
verifica la integración de Python en el Servidor de AX
//DATA py
//DATA resultados
//RESULT TABLE resultados
END
OPEN py
GROUP
ASSIGN v_máx = 11
ASSIGN v_recuento = 1
LOOP WHILE v_recuento < v_máx
EXTRACT PYNUMERIC("lambda_example,myFunc",0,v_counter) AS "Valor de los resultados" TO
"resultados.fil"
v_recuento = v_recuento + 1
END
END
CLOSE py
1. En el AX Cliente, cree una colección y una carpeta para albergar el proyecto de ACL
2. Para importar el proyecto:
a. Haga clic con el botón derecho del ratón en la carpeta que creó y seleccione Importar.
b. Vaya a su proyecto de ACL en su computadora local, seleccione el archivo del proyecto .acl y,
a continuación, haga clic en Abrir.
Nota
Asegúrese de importar los archivos de datos de origen para importar la tabla py
con su proyecto de ACL.
l Aplicaciones de análisis
l Nombre_proyecto_ACL
l Nombre_del_script_del_estudio_analítico
l Datos
l py
l Archivos relacionados
Resultados
l Aplicaciones de análisis
l Nombre_proyecto_ACL
l Nombre_del_script_del_estudio_analítico
l Datos
l py
l resultados
l Archivos relacionados
Tabla de resultados
l Valor de los resultados
l 1
l 4
l 9
l 16
l 25
l 36
l 49
l 64
l 81
l 100
1000 No se especificó ningún archivo de preferencias. Se creó un nuevo archivo de preferencias pre-
determinado.
1001 Existe un problema con el archivo de preferencias. Se creó un nuevo archivo de preferencias pre-
determinado.
1002 El proyecto ha sido actualizado a partir de una versión anterior. Se ha guardado una copia con la
Código de
error Descripción
extensión .old.
1003 No se ha podido procesar el archivo del proyecto. Se utilizó el último proyecto guardado.
1007 El proyecto especificado está siendo utilizado actualmente por otra aplicación.
1008 No se puede utilizar el archivo de proyecto .old especificado. Debe especificar un archivo de proyecto
con la extensión .ACL.
1011 El archivo de proyecto especificado no se puede guardar como una versión anterior.
Errores de comando
En la siguiente tabla se indican los códigos de error que se muestran cuando el estudio analítico falla debido
a un comando no válido de ACLScript. El número de código de error que se muestra identifica el comando
que ha fallado.
1 SAMPLE
2 EXTRACT
3 LIST
4 TOTAL
5 DEFINE
6 COMMENT
7 QUIT
8 STOP
9 BYE
10 USE
11 OPEN
12 SAVE
13 DISPLAY
14 ACTIVATE
15 CLOSE
16 HELP
17 COUNT
18 STATISTICS
19 HISTOGRAM
20 STRATIFY
21 SUMMARIZE
22 EXPLAIN
23 GROUP
24 ELSE
25 END
26 CANCEL
27 SUBMIT
28 DELETE
29 RANDOM
30 SORT
31 FIND
32 DIRECTORY
33 TYPE
34 DUMP
35 INDEX
37 SET
40 DO
41 TOP
42 EXPORT
43 VERIFY
44 SEEK
45 JOIN
46 MERGE
47 SEQUENCE
48 CALCULATE
49 PRINT
50 LOCATE
51 RENAME
54 COPY
55 REPORT
56 EJECT
58 LET
59 ACCUMULATE
63 ACCEPT
64 ASSIGN
65 AGE
66 CLASSIFY
67 PROFILE
68 DO REPORT
69 LOOP
70 PAUSE
71 SIZE
72 EVALUATE
73 DIALOG
74 IF
75 GAPS
76 DUPS
77 SQLOPEN
78 PASSWORD
79 IMPORT
80 REFRESH
81 NOTIFY
82 CONNECT
83 RETRIEVE
84 FIELDSHIFT
85 BENFORD
86 CROSSTAB
87 (sin uso)
88 ESCAPE
89 NOTES
90 FUZZY DUPLICATE
91 EXECUTE
-10 No se pudieron guardar los resultados del estudio analítico porque la carpeta de destino de los resultados
fue eliminada después de que se comenzara a ejecutar el estudio analítico.
-16 No se pudo ejecutar debido a un error de configuración de las propiedades del servidor.
-23 No se logró realizar la publicación. Uno o más de los nombres de columna de la tabla son demasiado exten-
sos.
-24 No se logró realizar la publicación. Hay celdas de datos con valores no válidos dentro de la tabla de ACL.
-25 No se logró realizar la publicación. Los campos de la tabla tienen tipos de datos no admitidos.
Código
de error Mensaje de error
-26 No se logró realizar la publicación. No se logró establecer la conexión con el servidor de AX Exception.
-28 No se ejecutó el trabajo. Error inesperado. Consulte el log del servidor y el log de ACL para obtener más
detalles.
-29 No se lograron copiar los archivos de datos. El estudio analítico no se pudo completar porque no fue posi-
ble copiar los archivos de datos necesarios al directorio de trabajos.
AXRunByUser Una variable del sistema que almacena el nombre de usuario del usuario que está ejecutando
un script de estudio analítico en el Servidor de AX con el formato "dominio\nombre_de_
usuario".
END Da por concluido el flujo de entrada y actúa como una línea nula.
LINE Es utilizado por el comando DEFINE COLUMN para especificar si un campo se divide en una
cantidad especificada de líneas.
NODUPS Suprime los valores visibles duplicados en el campo de corte de un reporte de ACL.
NOZEROS Muestra o imprime los valores de cero en un campo numérico o un reporte como espacios en
blanco.
OTHER Indica qué campos o expresiones se deben incluir, pero no subtotalizar, en la salida del
comando SUMMARIZE.
TAPE Hace referencia a un método más antiguo de acceder a los datos con ACL.
No se puede usar como un nombre para una tabla de ACL.