As 30 principais funções do Analytics

As 30 principais funções do ACLScript são úteis para várias tarefas diferentes. Use essas funções regularmente para ajudar a preparar, analisar, converter e harmonizar dados em scripts.

Remoção de espaço à esquerda e à direta

Muitas vezes, os campos de caracteres em tabelas do Analytics contêm espaços à direita ou à esquerda porque a largura dos campos tem comprimento fixo. Quando for necessário executar uma operação usando os dados de um campo de caracteres, você poderá remover esses espaços para que a cadeia contenha apenas os dados reais.

ALLTRIM( )

Retorna uma cadeia com os espaços iniciais e finais removidos da cadeia de entrada.

Nota

É uma prática recomendada usar ALLTRIM() em qualquer campo de caractere que você estiver usando como entrada para outra função para que nenhum espaço à direita ou à esquerda afete o valor retornado.

Exemplo

O campo Número_Fornecedor contém o valor " 1254". É necessário remover esse espaço extra de Número_Fornecedor para que seja possível harmonizar o campo com os dados em outra tabela.

COMMENT retorna "1254"
ALLTRIM(Número_Fornecedor)

Sincronização de maiúsculas e minúsculas

A comparação de cadeias no Analytics diferencia maiúsculas de minúsculas. Portanto, é útil sincronizar as maiúsculas e minúsculas de todos os dados em um campo antes de executar qualquer comparação, associação ou relação usando os dados.

UPPER( )

Retorna uma cadeia com caracteres alfabéticos convertidos em maiúsculas.

Exemplo

O campo Sobrenome contém o valor "Fernando". Você precisa transformar esse valor em maiúsculas para compará-lo com o valor em maiúsculas de outra tabela.

COMMENT retorna "FERNANDO"
UPPER(Sobrenome)

LOWER( )

Retorna uma cadeia com caracteres alfabéticos convertidos em minúsculas.

Exemplo

O campo Sobrenome contém o valor "Fernando". Você precisa transformar esse valor em minúsculas para compará-lo com o valor em minúsculas de outra tabela.

COMMENT retorna "fernando"
LOWER(Sobrenome)

PROPER( )

Retorna uma cadeia com o primeiro caractere de cada palavra em letra maiúscula e os caracteres restantes em minúsculas.

Exemplo

O campo Sobrenome contém o valor "fernando". Você precisa exibi-lo como um nome próprio na saída.

COMMENT retorna "Fernando"
PROPER(Sobrenome)

Cálculo e separação de cadeias de caracteres

Quando você precisa extrair um segmento de dados de uma cadeia maior, ou testar algumas informações sobre a cadeia, como seu comprimento ou conteúdo, use estas funções.

SUBSTR( )

Retorna uma subcadeia especificada de uma cadeia.

Exemplo

O campo Código_Conta_LR contém o valor "001-458-873-99". Você precisa extrair os três primeiros bytes, ou caracteres, da cadeia.

COMMENT retorna "001"
ASSIGN v_pos_inicial = 1
ASSIGN v_comprimento = 3
SUBSTR(Código_Conta_LR; v_pos_inicial; v_comprimento)

LAST( )

Retorna um número especificado de caracteres do final de uma cadeia.

Exemplo

O campo Código_Conta_LR contém o valor "001-458-873-99". Você precisa extrair os dois últimos bytes, ou caracteres, da cadeia.

COMMENT retorna "99"
ASSIGN v_núm_caracteres = 2
LAST(Código_Conta_LR; v_núm_caracteres)

SPLIT( )

Retorna um segmento especificado de uma cadeia.

Exemplo

O campo Código_Conta_LR contém o valor "001-458-873-99". Você precisa extrair o segundo segmento de código da cadeia.

COMMENT retorna "458"
ASSIGN v_delimitador = "-"
ASSIGN v_núm_segmentos = 2
SPLIT(Código_Conta_LR; v_delimitador; v_núm_segmentos)

AT( )

Retorna um número especificando a localização inicial de uma determinada ocorrência de uma subcadeia dentro de um valor de caracteres.

Exemplo

O campo Código_Conta_LR contém o valor "001-458-873-99". Você precisa determinar a posição de byte inicial do valor "458" para testar se o segundo segmento do código de LR é "458" (posição inicial "5").

COMMENT retorna "5"
ASSIGN v_ocorrência = 1
ASSIGN v_subcadeia = "458"
AT(v_ocorrência; v_subcadeia; Código_Conta_LR)

OCCURS( )

Retorna a contagem de quantas vezes um trecho de cadeia ocorre em um valor de caracteres especificado.

Exemplo

O campo Código_Conta_LR contém o valor "001-458-873-99". Você precisa determinar se o código de LR está formatado corretamente, garantindo que os dados contêm três caracteres hífen.

COMMENT retorna "3"
ASSIGN v_subcadeia = "-"
OCCURS(Código_Conta_LR; v_subcadeia)

LENGTH( )

Retorna o número de caracteres em uma cadeia.

Exemplo

O campo Código_Conta_LR contém o valor "001-458-873-99". Você precisa determinar se o código de LR está formatado corretamente, garantindo que os dados contêm 14 caracteres.

COMMENT retorna "14"
LENGTH(Código_Conta_LR)

Convertendo tipos de dados

Dependendo da origem de dados e das instruções de importação que geraram a tabela do Analytics, pode ser necessário converter valores em um campo de um tipo de dados em outro para permitir uma operação. Por exemplo, para executar aritmética em dados importados como caracteres ("12345"), é necessário convertê-los para numéricos.

STRING( )

Converte um valor numérico em uma sequência de caracteres.

Exemplo

O campo Valor_Fatura contém o valor 12345,67. Você precisa converter isso em dados de caracteres.

COMMENT retorna "12345,67"
ASSIGN v_comprimento_cadeia = 8
STRING(Valor_Fatura; v_comprimento_cadeia)

VALUE( )

Converte uma sequência de caracteres em um valor numérico.

Dica

VALUE( ) é usado frequentemente com ZONED( ) para adicionar zeros à esquerda.

Exemplo

O campo Valor_Fatura contém o valor "12345,67". Você precisa converter isso em dados numéricos.

COMMENT retorna 12345,67
VALUE(Valor_Fatura; 2)

CTOD( )

Converte um valor em caractere ou numérico de data em uma data. Também é possível extrair a data de um valor de datahora em formato de caracteres ou numérico e retorná-lo como uma data. Abreviação de "Caractere para Data".

Exemplo

O campo Data_Envio contém o valor "April 25, 2016". Você precisa converter isso em dados datahora.

COMMENT retorna `20160425`
ASSIGN v_formato_data = "mmm dd, aaaa"
CTOD(Data_Envio; v_formato_data)

DATE( )

Extrai a data a partir de uma data ou datahora específica e retorna como sequência de caracteres. Também pode retornar a data atual do sistema operacional.

Exemplo

O campo Data_Envio contém o valor `20160425`. Você precisa converter isso em dados de caracteres.

COMMENT retorna "04/25/2016"
ASSIGN v_formato_data = "MM/DD/AAAA"
DATE(Data_Envio; v_formato_data)

Adição de zeros à esquerda

Converte dados numéricos em dados de caracteres e adiciona zeros à esquerda na saída quando é necessário harmonizar campos que exigem em zeros à esquerda.

ZONED( )

Converte dados numéricos em dados de caracteres e adiciona zeros à esquerda na saída.

Exemplo

O campo Número_Funcionário contém o valor "254879". Você precisa converter o valor para uma cadeia de 10 dígitos com zeros à esquerda.

Dica

Você precisa usar a função VALUE() para converter os caracteres em dados numéricos antes de usar o numeral como entrada para ZONED().

COMMENT retorna "0000254879"
ASSIGN v_comprimento_cadeia = 10
ASSIGN v_núm_decimais = 0
ZONED(VALUE(Número_Funcionário; v_núm_decimais); v_comprimento_cadeia)

BINTOSTR( )

Retorna os dados de caracteres Unicode convertidos de dados de caracteres ZONED ou EBCDIC. Abreviação de "Binário para Cadeia".

Nota

Somente para a edição Unicode. Para edições não Unicode, consulte ZONED() acima.

Exemplo

O campo Número_Funcionário contém o valor "254879". Você precisa converter o valor para uma cadeia de 10 dígitos com zeros à esquerda.

Dica

Você precisa usar a função VALUE() para converter os caracteres em dados numéricos antes de usar o numeral como entrada para ZONED(). Então, você usa BINTOSTR() para converter os dados ASCII retornados de ZONED() em Unicode.

COMMENT retorna "0000254879"
ASSIGN v_comprimento_cadeia = 10
ASSIGN v_núm_decimais = 0
ASSIGN v_tipo_cadeia = "A"
BINTOSTR(ZONED(VALUE(Número_Funcionário; v_núm_decimais); v_comprimento_cadeia); v_tipo_cadeia)

Extração de partes de datahora

Use essas funções para isolar e extrair componentes específicos de um valor datahora.

MONTH( )

Extrai o mês de uma data ou datahora específica e retorna o mês como valor numérico (1 a 12).

Exemplo

O campo Data_Transação contém o valor `20160815 100252`. Você precisa extrair o mês como dados de caracteres com um zero à esquerda.

COMMENT retorna "08"
ASSIGN v_comprimento_cadeia = 2
ZONED(MONTH(Data_Transação); v_comprimento_cadeia)

DAY( )

Extrai o dia de um mês a partir de uma data ou datahora específica e retorna o dia como valor numérico (1 a 31).

Exemplo

O campo Data_Transação contém o valor `20160815 100252`. Você precisa extrair o dia como dados de caracteres.

COMMENT retorna "15"
ASSIGN v_comprimento_cadeia = 2
STRING(DAY(Data_Transação); v_comprimento_cadeia)

YEAR( )

Extrai o ano de uma data ou datahora específica e retorna como valor numérico usando o formato AAAA.

Exemplo

O campo Data_Transação contém o valor `20160815 100252`. Você precisa extrair o ano como valor numérico.

COMMENT retorna 2016
YEAR(Data_Transação)

HOUR( )

Extrai a hora de uma hora ou datahora específica e retorna como valor numérico usando o relógio 24 horas.

Exemplo

O campo Data_Transação contém o valor `20160815 100252`. Você precisa extrair a hora como valor numérico.

COMMENT retorna 10
HOUR(Data_Transação)

MINUTE( )

Extrai os minutos de uma hora ou datahora específica e retorna como valor numérico.

Exemplo

O campo Data_Transação contém o valor `20160815 100252`. Você precisa extrair os minutos como valor numérico.

COMMENT retorna 2
MINUTE(Data_Transação)

SECOND( )

Extrai os segundos de uma hora ou datahora específica e retorna como valor numérico.

Exemplo

O campo Data_Transação contém o valor `20160815 100252`. Você precisa extrair os segundos como valor numérico.

COMMENT retorna 52
SECOND(Data_Transação)

CDOW( )

Retorna o nome do dia da semana para uma data ou datahora especificada. Abreviação de "Caractere Dia da Semana".

Exemplo

O campo Data_Transação contém o valor `20160815 100252`. Você precisa extrair o nome do dia como dados de caracteres.

COMMENT retorna "Seg"
CDOW(Data_Transação; 3)

CMOY( )

Retorna o nome do mês do ano para uma data ou datahora especificada. Abreviação de "Caractere para o Mês do Ano".

Exemplo

O campo Data_Transação contém o valor `20160815 100252`. Você precisa extrair o nome do mês como dados de caracteres.

COMMENT retorna "Ago"
CMOY(Data_Transação; 3)

Manipulação de cadeias de caracteres

Remova ou substitua segmentos de campos de caracteres usando essas funções.

INCLUDE( )

Retorna uma cadeia que inclui apenas os caracteres especificados.

Exemplo

O campo Endereço contém o valor "12345 ABC Corporation". Você precisa extrair o número do endereço e excluir o nome da empresa.

COMMENT retorna "12345"
ASSIGN v_caracteres_a_retornar = "0123456789"
INCLUDE(Endereço; v_caracteres_a_retornar)

EXCLUDE( )

Retorna uma cadeia que exclui os caracteres especificados.

Exemplo

O campo Endereço contém o valor "12345 ABC Corporation". Você precisa extrair o nome da empresa e excluir o número do endereço.

COMMENT retorna "ABC Corporation"
ASSIGN v_caracteres_a_excluir = "0123456789" 
EXCLUDE(Endereço; v_caracteres_a_excluir)

REPLACE( )

Substitui todas as instâncias de uma cadeia de caracteres especificada por uma nova cadeia de caracteres.

Exemplo

O campo Endereço contém o valor "12345 Acme&Sons". Você precisa substituir o caractere "&" pela palavra " and ".

COMMENT retorna "12345 Acme and Sons"
ASSIGN v_caractere_destino = "&"
ASSIGN v_caractere_substituição = " and "
REPLACE(Endereço; v_caractere_destino; v_caractere_substituição)

OMIT( )

Retorna uma cadeia com um ou mais subcadeias especificadas removidas.

Exemplo

O campo Endereço contém o valor "12345 Fake St". Você precisa extrair o endereço sem o sufixo de rua ("St").

COMMENT retorna "12345 Fake"
ASSIGN v_caracteres_a_omitir = "St"
OMIT(Endereço; v_caracteres_a_omitir)

REVERSE()

Retorna uma cadeia com os caracteres na ordem invertida.

Exemplo

O campo Linha_Relatório contém o valor "001 Correção 5874,39 CR ". Você precisa reverter o valor e omitir qualquer espaço à esquerda ou à direita.

COMMENT retorna "RC 93,4785 oãçerroC 100"
REVERSE(ALLTRIM(Linha_Relatório))

BLANKS( )

Retorna uma cadeia que contém um número especificado de espaços em branco.

Exemplo

Você precisa criar um campo calculado para um nome de região com base em um valor no campo código_região. Você deve garantir que o valor padrão especificado no final do comando tenha um tamanho pelo menos igual ao valor de entrada mais longo.

COMMENT BLANKS retorna uma cadeia com 8 caracteres " "
ASSIGN v_comprimento = 8
DEFINE FIELD região COMPUTED

"Sul" IF código_região = 1
"Norte" IF código_região = 2
"Leste" IF código_região = 3
"Oeste" IF código_região = 4
BLANKS(v_comprimento)