Treinta funciones principales de Analytics
Las treinta funciones principales en ACLScript son útiles para una serie de tareas diferentes. Utilice estas funciones de manera regular para preparar, analizar, convertir y unificar los datos de sus scripts.
Eliminar los espacios iniciales y finales
Los campos de caracteres de las tablas de Analytics suelen contener espacios al principio o al final debido a que el ancho de los campos tiene una longitud fija. Cuando necesite realizar una operación utilizando los datos de un campo de caracteres, puede quitar estos espacios para que la cadena contenga únicamente los datos reales.
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.
COMMENT devuelve "1254" ALLTRIM(Número_de_proveedor)
Sincronización de mayúsculas y minúsculas
La comparación de cadenas en Analytics distingue entre mayúsculas y minúsculas; por lo tanto, resulta útil unificar las mayúsculas y minúsculas de todos los datos de un campo antes de realizar una comparación, unión o relación utilizando los datos.
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 valor en mayúsculas de otra tabla.
COMMENT devuelve "SMITH" UPPER(Apellido)
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.
COMMENT devuelve "smith" LOWER(Apellido)
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.
COMMENT devuelve "Smith" PROPER(Apellido)
Cálculo y separación de cadenas
Cuando necesite extraer un segmento de datos de una cadena más extensa o probar información de la cadena, como su longitud o su contenido, utilice las siguientes funciones.
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.
COMMENT devuelve "001" ASSIGN v_pos_inicial = 1 ASSIGN v_largo = 3 SUBSTR(Código_de_cuenta_GL; v_pos_inicial; v_largo)
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.
COMMENT devuelve "99" ASSIGN v_cant_caracteres = 2 LAST(Código_de_cuenta_GL; v_cant_caracteres)
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.
COMMENT devuelve "458" ASSIGN v_delimitador = "-" ASSIGN v_núm_segmento = 2 SPLIT(Código_de_cuenta_GL; v_delimitador; v_núm_segmento)
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").
COMMENT devuelve "5" ASSIGN v_occurrencia = 1 ASSIGN v_subcadena = "458" AT(v_occurrencia; v_subcadena; Código_de_cuenta_GL)
OCCURS( )
Devuelve un recuento del número de veces que aparece una subcadena en un valor de caracteres especificado.
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.
COMMENT devuelve "3" ASSIGN v_subcadena = "-" OCCURS(Código_de_Cuenta_GL; v_subcadena)
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.
COMMENT devuelve "14" LENGTH(Código_de_cuenta_GL)
Conversión de tipos de datos
Según el origen de los datos y las declaraciones de importación que produjeron la tabla de Analytics, es posible que tenga que convertir los valores de un campo de un tipo de datos a otro para que sea posible la operación. Por ejemplo, para realizar un cálculo aritmético en los datos que se importaron como caracteres ("12345"), debe convertirlos en datos numéricos.
STRING( )
Convierte un valor numérico en una cadena de caracteres.
Ejemplo
El campo Importe_factura contiene el valor 12345,67. Debe convertir este valor en datos de carácter.
COMMENT devuelve "12345,67" ASSIGN v_largo_cadena = 8 STRING(Importe_factura; v_largo_cadena)
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.
COMMENT devuelve 12345,67 VALUE(Importe_factura; 2)
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.
COMMENT devuelve `20160425` ASSIGN v_formato_fecha = "mmm dd, aaaa" CTOD(Fecha_de_envío; v_formato_fecha)
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.
Ejemplo
El campo Fecha_de_envío contiene el valor `20160425`. Debe convertir este valor en datos de carácter.
COMMENT devuelve "04/25/2016" ASSIGN v_formato_fecha = "MM/DD/AAAA" DATE(Fecha_de_envío; v_formato_fecha)
Agregar ceros al principio
Convierta los datos numéricos en datos de carácter y agregue ceros al principio de la salida cuando necesite unificar campos que requieren ceros al principio.
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().
COMMENT devuelve "0000254879" ASSIGN v_largo_cadena = 10 ASSIGN v_cant_decimales = 0 ZONED(VALUE(Número_de_empleado; v_cant_decimales); v_largo_cadena)
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 las ediciones no Unicode, consulte ZONED() más atrás.
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(). A continuación, utilice BINTOSTR() para convertir los datos ASCII devueltos por ZONED() a Unicode.
COMMENT devuelve "0000254879" ASSIGN v_largo_cadena = 10 ASSIGN v_cant_decimales = 0 ASSIGN v_tipo_cadena = "A" BINTOSTR(ZONED(VALUE(Número_de_empleado; v_cant_decimales); v_largo_cadena); v_tipo_cadena)
Extracción de partes de un valor de fechahora
Utilice estas funciones para aislar y extraer componentes específicos de un valor de fechahora.
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.
COMMENT devuelve "08" ASSIGN v_largo_cadena = 2 ZONED(MONTH(Fecha_de_transacción); v_largo_cadena)
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.
COMMENT devuelve "15" ASSIGN v_largo_cadena = 2 STRING(DAY(Fecha_de_transacción); v_largo_cadena)
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.
COMMENT devuelve 2016 YEAR(Fecha_de_transacció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.
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)
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 expresió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.
COMMENT devuelve "Mon" CDOW(Fecha_de_transacción; 3)
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.
COMMENT devuelve "Aug" CMOY(Fecha_de_transacción; 3)
Manipulación de las cadenas
Quita o reemplaza segmentos de campos de caracteres utilizando estas funciones.
INCLUDE( )
Devuelve una cadena que incluye solo los caracteres especificados.
Ejemplo
El campo Domicilio contiene el valor "12345 ABC Corporation". Debe extraer el número del domicilio y excluir el nombre de la compañía.
COMMENT devuelve "12345" ASSIGN v_caracteres_a_devolver = "0123456789" INCLUDE(Domicilio; v_caracteres_a_devolver)
EXCLUDE( )
Devuelve una cadena que excluye los caracteres especificados.
Ejemplo
El campo Domicilio contiene el valor "12345 ABC Corporation". Debe extraer el nombre de la compañía y excluir el número del domicilio.
COMMENT devuelve "ABC Corporation" ASSIGN v_caracteres_a_excluir = "0123456789" EXCLUDE(Domicilio; v_caracteres_a_excluir)
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 ".
COMMENT devuelve "12345 Acme and Sons" ASSIGN v_carácter_destino = "&" ASSIGN v_carácter_reemplazo = " and " REPLACE(Domicilio; v_carácter_destino; v_carácter_reemplazo)
OMIT( )
Devuelve una cadena con una o varias subcadenas especificadas eliminadas.
Ejemplo
El campo Domicilio contiene el valor "12345 Fake St". Debe extraer el domicilio sin el sufijo St.
COMMENT devuelve "12345 Fake" ASSIGN v_caracteres_a_omitir = "St" OMIT(Domicilio; v_caracteres_a_omitiir)
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 omitir los espacios al principio o al final.
COMMENT devuelve "RC 93.4785 noitcerroC 100" REVERSE(ALLTRIM(Línea_de_reporte))
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.
COMMENT BLANKS devuelve una cadena de 8 caracteres " " ASSIGN v_largo = 8 DEFINE FIELD región COMPUTED "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)