Trabalhando com variáveis no ACLScript

Quando cria um script no Analytics, muitas vezes você precisa considerar valores que variam ou são alterados. Por exemplo:

  • Configuração do script Você quer uma forma fácil de personalizar valores na lógica de um script, como uma tabela ou nomes de campo, sem precisar atualizar cada ocorrência de um valor

  • Entrada do usuário Quando os usuários executam um script, querem personalizar valores de entrada como intervalos de datas ou valores de limite

  • Armazenamento temporário A lógica em um script precisa armazenar temporariamente um valor atualizado continuamente durante a execução do script, como um contador ou total acumulado

Para essas e outras finalidades, você usa variáveis.

O que é uma variável?

Você pode considerar uma variável como um contêiner com nome que mantém ou armazena um valor mutável. O valor pode mudar, mas o nome da variável não muda. Como autor do script, você usa o nome de variável fixo em toda a lógica do script. Quando o script é executado, ele não processa o nome da variável. Em vez disso, ele acessa e processa o valor contido na variável naquele momento.

No exemplo abaixo, v_data_inicial e v_data_final são nomes de variáveis, e as datas são os valores contidos nas variáveis.

O benefício das variáveis

Em um script, você pode usar variáveis em vez de vez de valores literais. A substituição de nomes de tabelas, nomes de campos, valores de texto, número e datas por variáveis que fazem referência a esses itens aumenta consideravelmente a flexibilidade do script. Em vez de criar um script que funciona apenas em uma situação bem específica, você pode criar um script que pode ser usado em um número ilimitado de situações.

Como e quando as variáveis podem ser usadas?

Assim como os itens literais a que fazem referência, as variáveis podem ser criadas, renomeadas, atualizadas, excluídas, usadas em cálculos e diversas expressões, exportadas e extraídas. Ou seja, elas podem ser usadas em qualquer local em que um item literal seria válido.

Como criar uma variável?

Você pode criar uma variável com o comando do Analytics ASSIGN ou com vários outros comandos. Normalmente, você inclui o comando em um script, mas também pode criar uma variável manualmente inserindo o comando ASSIGN na linha de comando do Analytics.

Exemplo

Você quer que um script tenha um intervalo de datas personalizável. Portanto, você cria variáveis para as datas inicial e final.

No exemplo abaixo, uma variável com o nome v_data_inicial contém no momento o valor de data `20210101` e uma variável com o nome v_data_final contém no momento o valor de data `20210331`.

Você pode usar essas duas variáveis para armazenar qualquer data inicial e final especificada por um usuário. Na lógica do script, você especifica v_data_inicial e v_data_final sempre que as datas são necessárias. No entanto, quando o script é executado, usa as datas especificadas pelo usuário.

ASSIGN v_data_inicial = `20210101`
ASSIGN v_data_final = `20210331`

Dica

Você pode criar uma dessas variáveis copiando o comando ASSIGN e seus parâmetros para a linha de comando do Analytics e pressionando Enter. No Navegador, abra a guia Variáveis para ver o resultado.

Se a caixa de texto Linha de comando não estiver visível, selecione Janela > Linha de comando.

Exibição de variáveis em um projeto do Analytics

Quando você trabalha com variáveis, é muito útil poder ver as variáveis que existem em um projeto do Analytics e seus valores atuais. Dois métodos permitem exibir variáveis e seus valores:

  • a guia Variáveis

  • o comando DISPLAY VARIABLES

A guia Variáveis

A guia Variáveis, no Navegador, rastreia a criação de variáveis e a atribuição de valores a variáveis em tempo real. A guia é somente para leitura e exibe os nomes, os tipos de dados e os valores atuais de todas as variáveis em um projeto do Analytics. Os nomes são listados em ordem alfabética.

Se você percorrer um script linha por linha, todas as variáveis definidas no script ou geradas pelo sistema aparecerão na guia Variáveis no momento em que forem criadas. Se a variável já existe, o valor será atualizado dinamicamente de acordo com a lógica do script. (No Editor de scripts, use a opção Passo para percorrer um script.)

A capacidade de observar exatamente quais alterações são feitas nas variáveis de scripts no momento em que ocorrem é uma ferramenta de diagnóstico importante. Com esse recurso, você consegue identificar erros de script que podem ser difíceis de localizar examinando apenas a sintaxe do script.

Se você executar um script, todas as alterações associadas com as variáveis serão exibidas na guia Variáveis quando um ponto de interrupção for alcançado ou na conclusão do script.

O comando DISPLAY VARIABLES

O comando DISPLAY VARIABLES exibe os nomes, os tipos de dados e os valores atuais de todas as variáveis em um projeto do Analytics. Os nomes são listados em ordem cronológica inversa do momento em que a variável foi criada ou atualizada mais recentemente.

DISPLAY nome_variável retorna as informações associadas a uma única variável.

Você pode usar o comando DISPLAY VARIABLES de duas maneiras diferentes:

  • Estado atual das variáveis de projeto Digite DISPLAY VARIABLES na linha de comando e pressione Enter.

    Todas as variáveis do projeto e seus valores atuais serão exibidos na tela em ordem cronológica inversa.

  • Estado das variáveis do projeto em diferentes pontos de um script Adicione DISPLAY VARIABLES a um script no ponto ou pontos do script onde você deseja capturar o estado das variáveis do projeto. Você também pode usar um ponto de interrupção para essa finalidade. A diferença é que um ponto de interrupção suspende a execução do script e o comando DISPLAY VARIABLES não.

    Após a conclusão do script, clique duas vezes na entrada DISPLAY VARIABLES correspondente no log de comandos. O estado das variáveis de projeto no ponto do script que você especificou é exibido em ordem cronológica inversa na tela.

Nota

Você não pode usar o comando DISPLAY VARIABLES dentro do comando GROUP.

Oito informações importantes sobre as variáveis do ACLScript

Se você está familiarizado com outras linguagens de programação ou script, já conhece variáveis e seus vários usos. As principais características das variáveis do ACLScript são descritas a seguir.

Se você for iniciante em scripts e variáveis, as informações a seguir farão mais sentido assim que começar a trabalhar com variáveis.

1. Uma variável é criada automaticamente quando você atribui um valor

2. Existem vários métodos para criar uma variável

3. O tipo de dados de uma variável é especificado automaticamente

4. Os nomes das variáveis são flexíveis, com algumas restrições

5. Uma variável tem escopo global

6. Uma variável persiste até que o projeto do Analytics seja fechado

7. Uma variável pode ser excluída explicitamente

8. As variáveis do sistema são criadas automaticamente por alguns comandos do Analytics

1. Uma variável é criada automaticamente quando você atribui um valor

Uma variável é criada automaticamente (declarada) quando você atribui um valor inicial à variável nomeada. A atribuição de um valor inicial a uma variável também é conhecida como inicializar uma variável.

No exemplo abaixo, a variável v_tabela_entrada é criada automaticamente quando você usa o comando ASSIGN para atribuir o valor "Trans_Cp" à variável. Em outras palavras, a criação da variável e a atribuição de um valor à variável (declaração e inicialização) ocorrem em uma única etapa.

ASSIGN v_tabela_entrada = "Trans_Cp"

Quando e onde você deve criar uma variável?

Você pode criar uma variável em qualquer lugar em um script, desde que a variável seja criada antes de seu primeiro uso.

Uma prática recomendada é criar todas as variáveis de entrada do usuário e de configuração do script no início do script. Se você seguir essa abordagem, um usuário pode inserir todos os valores de entrada necessários no início de um script e depois deixar o script para ser executado. Você também pode confiar que todas as variáveis de configuração de script necessárias residem em um único local organizado no início do script.

Variáveis que não precisam de entrada do usuário ou configuração avançada podem ser criadas no ponto do script em que são necessárias.

Se necessário, você pode atribuir um valor em branco a uma variável de caracteres ou datahora para que a variável exista, mas esteja inicialmente vazia.

ASSIGN v_tabela_entrada = ""
ASSIGN v_lista_todos_campos = BLANKS(20000)
ASSIGN v_data_inicial = `19000101`

2. Existem vários métodos para criar uma variável

A forma como você cria uma variável depende do uso pretendido para essa variável.

Uso Método de criação

Configuração de script

Armazenamento temporário

Outros usos no decorrer de um script

 

Comando ASSIGN

Use o Comando ASSIGN em uma linha separada em um script para declarar e inicializar uma variável. O tipo de dados do valor atribuído determina o tipo de dados da variável.

Nota

A especificação explícita da palavra-chave ASSIGN é uma prática recomendada, pois facilita a leitura e compreensão dos scripts. No entanto, você pode omitir a palavra-chave ASSIGN e simplesmente especificar:

nome_variável = valor_variável

Entrada do usuário

Comando ACCEPT

Use o Comando ACCEPT para criar uma caixa de diálogo básica que solicita interativamente um ou mais valores de entrada de script dos usuários. Cada valor de entrada, independentemente do que representa, é armazenado em uma variável nomeada de caracteres.

Consulte também Criar scripts interativos.

Comando DIALOG

Use o Comando DIALOG, e o Construtor de diálogos associado, para criar uma caixa de diálogo mais avançada que solicita interativamente um ou mais valores de entrada de script dos usuários. Cada valor de entrada é armazenado em uma variável nomeada. A maioria das opções de entrada usa uma variável de caracteres.

Além das opções oferecidas pelo comando ACCEPT, o comando DIALOG permite mais opções, como caixas de seleção, botões de opção e listas suspensas.

Consulte também Criar scripts interativos.

Tag PARAM, tag TABLE, tag FIELD

Para entrada de usuário em scripts executados no Robôs, crie um cabeçalho de análise e use Tag PARAM, Tag TABLE ou Tag FIELD.

A tag PARAM é um método de criação de variável que exige que você especifique explicitamente um tipo de dados para a variável associada.

As tags TABLE e FIELD armazenam valores de entrada em uma variável de caracteres.

Entrada de credenciais

Comando PASSWORD

Use o Comando PASSWORD para criar uma caixa de diálogo que solicita interativamente aos usuários uma senha, um token ou outras informações confidenciais. O comando PASSWORD oferece entrada de dados segura e armazenamento criptografado do valor da credencial em um local de memória protegido.

Como parte do processamento seguro de credenciais, a variável que contém as informações confidenciais não é exibida e não pode ser mantida diretamente.

Consulte também Criar scripts interativos.

Você também pode usar o comando SET PASSWORD para especificar diretamente uma senha sem exigir a entrada do usuário. No entanto, a senha aparece em texto simples no script.

Tag PASSWORD

Para entrada de credenciais em scripts executados no Robôs, crie um cabeçalho de análise e use Tag PASSWORD.

3. O tipo de dados de uma variável é especificado automaticamente

Quando você usa o comando ASSIGN, o tipo de dados do valor atribuído a uma variável determina o tipo de dados da variável. Este processo é conhecido como tipagem implícita. Na maioria dos casos, você não especifica explicitamente o tipo de dados das variáveis no Analytics.

Dica

Preste muita atenção aos tipos de dados de variáveis nos scripts que você cria. Uma causa comum de erros de script é uma incompatibilidade entre o tipo de dados de uma variável e a maneira como ela é usada. Para obter mais informações, consulte A importância do tipo de dados de uma variável.

Os tipos de valores que você pode atribuir a uma variável

Você pode atribuir um valor literal a uma variável. Também é possível atribuir um campo a uma variável e a variável. Nesse caso, ela é inicializada com o valor do campo no registro selecionado no momento. Você também pode atribuir o valor atual de uma variável a outra variável.

Os tipos de dados de valores

No Analytics, o valor dos dados pertence a um dos tipos (ou categorias) de dados a seguir:

  • Caractere

  • Numérico

  • Datahora

  • Lógico

O tipo de dados de um valor é estabelecido de uma das seguintes formas:

  • Valor literal O tipo de dados de um valor literal é estabelecido pela presença ou ausência de qualificadores que envolvem o valor e pelos caracteres alfanuméricos que compõem o valor.

  • Campo O tipo de dados dos valores em um campo é estabelecido pelo tipo de dados do campo.

  • Variável O tipo de dados da variável "de" e o valor que ela contém já está definido e se torna o tipo de dados da variável "para". Normalmente, os tipos de dados das variáveis depois que são criadas, mas isso pode ser feito.

Exemplos de uso do comando ASSIGN para criar variáveis de diferentes tipos de dados

Nota

Quando você usa o comando ACCEPT para criar uma variável, ou a maioria das opções no comando DIALOG, a variável tem um tipo de dados de caracteres, independentemente do tipo do valor que ela contém.

Tipo de dados da variável e do valor Exemplo

Caractere

Um valor de caracteres pode incluir caracteres alfanuméricos e especiais.

Um valor de caracteres literal deve estar entre apóstrofos ou aspas.

Se um valor de caracteres tiver apóstrofos ou aspas, use esta abordagem:

  • Se tiver aspas, inclua todo o valor entre apóstrofos.
  • Se tiver apóstrofos, inclua todo o valor entre aspas.

Exemplo de valor de caracteres

Atribui o valor de caracteres "Número_Fornecedor" à variável v_tabela_entrada.

ASSIGN v_tabela_entrada = "Número_Fornecedor"

Atribui o valor do campo de caracteres Número_Fornecedor do registro selecionado no momento à variável v_identificador.

ASSIGN v_identificador = Número_Fornecedor

Nota

É importante entender a diferença entre atribuir um nome de campo qualificado e um não qualificado a uma variável.

A atribuição de "Número_Fornecedor" atribui a sequência de caracteres real que compõe o nome do campo.

A atribuição de Número_Fornecedor atribui um dos valores contidos no campo Número_Fornecedor.

Numérico

Um valor numérico pode incluir os números de 0 a 9, um separador decimal e um sinal negativo.

Um valor numérico literal não deve ser colocado entre qualificadores.

Exemplo de valor numérico

Atribui o valor numérico 1000 à variável v_quantidade_min.

ASSIGN v_quantidade_min = 1000

Atribui o valor do campo numérico Valor_Fatura do registro atualmente selecionado à variável v_total_acumulado.

ASSIGN v_total_acumulado = Valor_Fatura

Datahora

Um valor datahora pode ser uma data, uma hora ou uma datahora. O valor deve usar um formato compatível com o Analytics.

Para obter mais informações sobre os formatos de datahora permitidos, consulteFormato dos literais de datahora.

Um valor de datahora literal deve ser colocado entre apóstrofos invertidos.

Nota

O Analytics também permite valores de datahora que usam o tipo de dados de caracteres. Para obter mais informações, consulte Observação para valores datahora.

Exemplo de valor datahora

Atribui o valor de data `20210101` à variável v_data_inicial.

ASSIGN v_data_inicial = `20210101`

Atribui o valor do campo datahora Data_Fatura do registro atualmente selecionado à variável v_data.

ASSIGN v_data = Data_Fatura

Lógico

Um valor lógico pode ser T ou F.

Um valor lógico literal não deve ser colocado entre qualificadores.

Exemplo de valor lógico

Atribui o valor lógico T à variável v_T1.

ASSIGN v_T1 = T

Atribui o valor do campo lógico Aprovado do registro atualmente selecionado à variável v_aprovado.

ASSIGN v_aprovado = Aprovado

4. Os nomes das variáveis são flexíveis, com algumas restrições

Na maioria das vezes, você pode nomear uma variável da maneira mais adequada ao que pretende fazer.

Convenções voluntárias

Estas convenções voluntárias facilitam a leitura e o entendimento dos scripts:

  • Dê às variáveis nomes fáceis de entender e descritivos que se relacionem diretamente com as funções desempenhadas pelas variáveis em um script. Um nome um pouco mais longo e claramente descritivo é melhor do que um nome mais curto e enigmático que não esclarece a finalidade de uma variável.

  • Adote uma convenção geral de nomenclatura, como prefixar cada nome de variável com v_.

Restrições impostas

O Analytics impõe estas restrições aos nomes de variáveis:

  • Tamanho máximo 31 caracteres

  • Caracteres válidos Caracteres alfanuméricos e o caractere de sublinhado (_). O nome não pode conter nenhum caractere especial, espaços ou começar com um número.

    Nota

    Não use caracteres que não sejam em inglês, como é, em nomes de variáveis que serão usadas na substituição de variáveis. Nomes variáveis que contenham caracteres não ingleses causarão falhas na substituição de variáveis.

    As versões deste tópico de ajuda em idiomas diferentes de inglês, como o francês, podem mostrar nomes de variáveis com caracteres acentuados. No script real, verifique se nenhum caractere acentuado é usado em nomes de variáveis utilizadas para substituição de variáveis.

  • Unicidade Os nomes de variáveis devem ser únicos em um projeto do Analytics porque as variáveis funcionam globalmente em todo o projeto

Os nomes de variáveis não diferenciam maiúsculas de minúsculas. No ACLScript, v_data_inicial e v_Data_Inicial são a mesma variável.

5. Uma variável tem escopo global

Uma variável criada em um script do Analytics está disponível para todas as partes subsequentes do script. Ela também está disponível para outros scripts no projeto do Analytics. Esse comportamento é útil se você quiser usar uma variável em um script secundário que é definido em um script principal.

O ACLScript não aceita variáveis com escopo local.

6. Uma variável persiste até que o projeto do Analytics seja fechado

A variável permanece na memória do computador até que o projeto do Analytics onde está contida seja fechado ou até ser excluída explicitamente.

Se você quer que uma variável persista depois de fechar um projeto e esteja disponível quando reabrir o projeto, pode criar uma variável permanente. Prefixe o nome da variável com um sublinhado para criar uma variável permanente. Por exemplo: _v_data_inicial. Tanto a variável quanto o valor que ela contém persistem. A única maneira de descartar de uma variável permanente é excluí-la explicitamente.

Nota

As variáveis permanentes não são suportadas em scripts executados no Robôs.

7. Uma variável pode ser excluída explicitamente

Para excluir explicitamente uma ou mais variáveis ​​atuais, você pode usar o botão Excluir na guia Variáveis ​​ou o comando DELETE.

Exclua variáveis ​​usando o botão Excluir

Para excluir explicitamente uma, várias ou todas as variáveis ​​em um projeto do Analytics, use o botão Excluir na parte superior da guia Variáveis ​​no Navegador.

  1. No Navegador, abra a guia Variáveis.

  2. Execute uma das seguintes ações:

    • Para excluir todas as variáveis, clique em Excluir .

    • Para excluir variáveis específicas, selecione as variáveis e clique em Excluir .

      Use Ctrl+clique para selecionar várias variáveis não adjacentes.

  3. Clique em Sim na caixa de diálogo de confirmação.

    As variáveis são excluídas.

Exclua variáveis ​​usando o comando DELETE

Para excluir explicitamente uma ou todas as variáveis em um projeto do Analytics, use o comando DELETE na linha de comando ou em um script.

Para excluir explicitamente uma variável específica:

DELETE nome_variável OK

Para excluir explicitamente Todas as variáveis:

DELETE ALL OK

O que é excluído?

Quando exclui uma variável, você está excluindo o contêiner nomeado e o valor contido apenas na memória do computador.

A exclusão de uma variável não afeta nada relacionado à variável em um script. Você pode restabelecer a variável na memória executando manualmente o comando ASSIGN na linha de comando ou executando o script que contém a atribuição da variável.

A exclusão de uma variável e seu valor também não afeta nada a que o valor faça referência e que exista fora da variável, como uma tabela do Analytics.

Exemplo

Os dois exemplos abaixo mostram como uma variável e o item a que ela faz referência são entidades separadas. A exclusão de um não afeta o outro.

Nota

Os exemplos usam substituição de variáveis para substituir o nome da variável pelo conteúdo da variável.

No primeiro exemplo, a exclusão da variável v_tabela_teste exclui o valor da variável "Totais_acumulados", mas não exclui a tabela Totais_acumulados real.

ASSIGN v_tabela_teste = "Totais_acumulados"

COMMENT Executa corretamente
OPEN %v_tabela_teste%

COMMENT Excluir a variável
DELETE v_tabela_teste OK

COMMENT Executa corretamente
OPEN Totais_acumulados

No segundo exemplo, a exclusão da tabela Totais_acumulados real não tem efeito sobre a variável v_tabela_teste, embora o valor da variável agora seja uma referência a uma tabela que não existe.

ASSIGN v_tabela_teste = "Totais_acumulados"

COMMENT Executa corretamente
OPEN %v_tabela_teste%

COMMENT Excluir a tabela a que a variável faz referência
DELETE FORMAT %v_tabela_teste% OK

COMMENT Falha com o erro "Tabela 'Totais_acumulados' inválida"
OPEN %v_tabela_teste%

8. As variáveis do sistema são criadas automaticamente por alguns comandos do Analytics

Quando você executa determinados comandos do Analytics, as variáveis do sistema são criadas automaticamente. Por exemplo, o comando COUNT gera a variável de sistema COUNTn, que contém o número de registros contados. É possível usar essas variáveis e os valores contidos nelas no processamento dos comandos subsequentes de um script.

Por exemplo, este script termina automaticamente se o usuário selecionar uma tabela que não contenha registros:

ACCEPT "Selecione uma tabela de entrada:" FIELDS "xf" TO v_tabela_entrada
OPEN %v_tabela_entrada%
COUNT
PAUSE "A tabela selecionada não contém registros. O script será encerrado." IF COUNT1 = 0
ESCAPE IF COUNT1 = 0
DO SCRIPT resumir_transações

Para obter mais informações, consulte Variáveis de sistema criadas por comandos do Analytics.

A importância do tipo de dados de uma variável

Quando um comando ou função do Analytics faz referência a uma variável, o tipo de dados da variável deve corresponder ao tipo de dados aceito pelo comando ou função. Se os tipos de dados não corresponderem, você receberá um erro e o processamento do comando ou função falhará.

Para evitar esses erros, você pode usar funções do Analytics para converter o valor armazenado de uma variável em um tipo de dados utilizável. Por exemplo, esta expressão converte uma data armazenada em uma variável de caracteres para um tipo de dados datahora:

CTOD(v_data_caracteres)

Esta expressão converte um número armazenado em uma variável de caracteres para um tipo de dados numérico:

VALUE(v_numero_caracteres; 2)

Para obter mais informações, consulte Funções de conversão.

Nota

Datas e números são armazenados em variáveis de caracteres quando informados por entrada do usuário. Para obter mais informações, consulte Existem vários métodos para criar uma variável.

Observação para valores datahora

No Analytics, você pode processar valores de datahora que usam o tipo de dados datahora ou caracteres. Normalmente, o tipo de dados associado aos valores de datahora é baseado na natureza dos dados importados para o Analytics.

Qual é a implicação para variáveis que contêm valores de data, hora ou datahora? Simplificando, você precisa saber o tipo dos dados subjacentes com os quais você trabalha. A sintaxe do seu script precisa ser diferente de acordo com o tipo de dados em uso.

Exemplo

Os dois exemplos abaixo mostram a sintaxe para filtrar um campo de data com base em um intervalo de datas fornecido pelo usuário.

  • No primeiro exemplo, o campo de data usa um tipo de dados de datahora.

  • No segundo exemplo, o campo de data usa um tipo de dados de caracteres.

  • Em ambos os exemplos, as variáveis v_data_inicial e v_data_final usam o tipo de dados de caracteres porque foram criadas usando o comando ACCEPT ou o comando DIALOG.

No primeiro exemplo, você deve usar a função CTOD( ) para converter os valores do intervalo de datas do tipo de dados de caracteres para o tipo de dados de datahora. (CTOD significa "caractere para data".) Você deve realizar essa conversão para que o tipo de dados dos valores de intervalo de datas corresponda ao tipo de dados do campo de datahora.

SET FILTER TO BETWEEN(campo_data_datahora; CTOD(v_data_inicial); CTOD(v_data_final))

No segundo exemplo, você não realiza nenhuma conversão dos valores do intervalo de datas porque eles já correspondem ao tipo de dados do campo de data de caracteres. Se você convertê-los, eles não corresponderão e o script falhará.

SET FILTER TO BETWEEN(campo_data_caracteres; v_data_inicial; v_data_final)

Substituição de variáveis

Quando você usa uma variável de caracteres como entrada para um comando ou função do Analytics, precisa substituir o nome da variável pelo valor da variável. Se não realizar esta substituição, o comando ou função tentará operar no nome da variável real, em vez do valor contido na variável, o que causará um erro.

A substituição de variáveis é o método para substituir o nome da variável pelo valor contido em uma variável de caracteres. Para usar a substituição de variável, coloque o nome da variável de caracteres entre sinais de porcentagem (%). Por exemplo, %v_tabela_entrada% recupera o nome real da tabela armazenado em v_tabela_entrada e o substitui pelo nome da variável.

Como a entrada do usuário para um script é normalmente armazenada em uma variável de caracteres, a substituição de variáveis é bastante usada na incorporação da entrada do usuário à lógica do script.

Nota

A substituição de variáveis deve ser usada apenas com variáveis de caracteres que contêm valores que representam dados de caracteres. Se você usar a substituição de variáveis com variáveis de outros tipos de dados ou com variáveis de caracteres que contêm valores que representam números, datahoras ou valores lógicos, o resultado poderá ser pouco confiável ou um erro.

Exemplo

Você quer que um script permita que um usuário selecione uma tabela de entrada. O script abre a tabela selecionada pelo usuário. Use a substituição de variáveis com o comando OPEN para que o comando use o nome correto da tabela.

Quando você especifica OPEN %v_tabela_entrada%, o que o script realmente vê é:

OPEN nome_da_tabela_selecionada_pelo_usuário

ACCEPT "Selecione uma tabela de entrada:" FIELDS "xf" TO v_tabela_entrada
OPEN %v_tabela_entrada%

Se você não usar a substituição de variável neste exemplo, o script provavelmente falhará porque o comando OPEN está tentando abrir uma tabela chamada v_tabela_entrada e não existe nenhuma tabela com esse nome.

ACCEPT "Selecione uma tabela de entrada:" FIELDS "xf" TO v_tabela_entrada
OPEN v_tabela_entrada

Usar a substituição de variáveis pode ser complicado

Em algumas situações, a substituição de variáveis pode parecer adequada, mas gera um erro.

Considere um dos exemplos apresentados anteriormente:

SET FILTER TO BETWEEN(campo_data_caracteres; v_data_inicial; v_data_final)

Neste exemplo, você está comparando valores de data armazenados como dados de caracteres nas variáveis e no campo. Logo, a substituição de variáveis deve funcionar:

SET FILTER TO BETWEEN(campo_data_caracteres; %v_data_inicial%; %v_data_final%)

Por que a substituição de variáveis causa um erro nesta situação? A resposta é que a substituição de variáveis é absolutamente literal. Para solucionar o erro, observe os valores precisos armazenados nas variáveis, substitua-os manualmente na expressão e analise a expressão resultante. Por exemplo:

SET FILTER TO BETWEEN(campo_data_caracteres; 20000101; 20001231)

Esta expressão compara datas que usam um tipo de dados de caracteres com números que, após a substituição, usam um tipo de dados numérico, o que é uma incompatibilidade de tipos de dados.

Como você especificou um campo de caracteres com BETWEEN( ), a função interpreta automaticamente os valores em v_data_inicial e v_data_final como valores de caracteres e não é preciso usar a substituição de variáveis.

Para obter mais informações, consulte Solução de problemas.

Uma exceção à regra

Em alguns casos, pode ser possível usar a substituição de variáveis com uma variável numérica sem problemas. O benefício é que o valor da variável numérica é capturado no log, o que pode ser útil para a solução de problemas.

Ambos os exemplos abaixo atribuem o valor da variável numérica COUNT1 à variável numérica v_contador. No entanto, no primeiro exemplo, o valor atribuído real não é capturado no log. No segundo exemplo, o valor real é capturado.

COMMENT entrada do log: ASSIGN v_contador = COUNT1
ASSIGN v_contador = COUNT1
COMMENT entrada do log: ASSIGN v_contador = 500
ASSIGN v_contador = %COUNT1%

Manutenção manual de variáveis

Você pode manter variáveis manualmente usando a caixa de diálogo Variáveis, disponível no menu principal do Analytics. É possível criar, renomear, duplicar ou excluir variáveis ou atualizar valores de variáveis.

Qualquer manutenção que você executar afeta apenas a instância atual da variável na memória. Por exemplo, se você renomear uma variável, renomeará apenas a instância da variável na memória. A variável no script não é renomeada.

Nota

A capacidade de manter variáveis manualmente usando a interface de usuário pode ser conveniente em alguns casos. A manutenção manual não oferece nenhuma funcionalidade adicional em relação à manutenção de variáveis usando comandos.

A maioria dos criadores de scripts trabalha com variáveis exclusivamente no Editor de Scripts e nos recursos associados, como a linha de comando e a guia Variáveis.

  1. No menu principal do Analytics, selecione Editar > Variáveis.

    A caixa de diálogo Variáveis é aberta e exibe uma lista de todas as variáveis definidas pelo sistema e pelo usuário no projeto. Variáveis ​​do sistema são aquelas criadas automaticamente por comandos.

  2. Execute uma destas ações:
    Criar uma nova variável
    1. Clique em Novo para abrir o Construtor de expressões.

    2. Na caixa de texto Expressão, insira o valor ou a expressão a ser atribuída à variável.

      Os valores literais devem usar o formato e os qualificadores corretos (quando necessário). Para obter mais informações, consulte O tipo de dados de uma variável é especificado automaticamente.

    3. Opcional. Clique em Verificar para confirmar a validade do valor ou expressão.

    4. Digite o nome da variável na caixa de texto Salvar como.

      Para obter mais informações, consulte:

    5. Clique em OK.

      A variável é criada e aparece na guia Variáveis.

    Atualizar o valor de uma variável
    1. Selecione uma variável na lista e clique em OK para abrir o Construtor de expressões.

    2. Na caixa de texto Expressão, atualize o valor ou a expressão atribuída à variável.

      Os valores literais devem usar o formato e os qualificadores corretos (quando necessário). Para obter mais informações, consulte O tipo de dados de uma variável é especificado automaticamente.

    3. Opcional. Clique em Verificar para confirmar a validade do valor ou expressão.

    4. Clique em OK.

      O valor atribuído à variável é atualizado na memória do computador.

    Renomear uma variável
    1. Selecione uma variável na lista e clique em Renomear.

    2. Na caixa de texto Renomear, insira um novo nome e clique em OK.

      O valor atribuído à variável é renomeado na memória do computador.

    3. Clique em Cancelar para fechar a caixa de diálogo Variáveis.

    Duplicar uma variável
    1. Selecione uma variável na lista e clique em Duplicar.

      A variável e seu valor são duplicados na memória do computador. Um sufixo numérico é adicionado ao nome da variável duplicada.

    2. Execute uma das seguintes ações:

      • Clique em Concluído para fechar a caixa de diálogo Variáveis.

      • Clique em OK para atualizar o valor ou expressão atribuída à variável.

    Excluir uma variável
    1. Selecione uma variável na lista.

    2. Opcional. Use shift+clique ou ctrl+clique para selecionar várias variáveis para exclusão.

    3. Clique em Excluir.

    4. Clique em Excluir novamente.

      A variável ou variáveis são excluídas da memória do computador.

    5. Clique em Concluído para fechar a caixa de diálogo Variáveis.

Exemplos de uso de variáveis

Variáveis para configuração de scripts

Você quer criar um script que calcule os valores dos impostos sobre vendas e lide com as alíquotas dos impostos sobre vendas que mudam periodicamente.

Variáveis obrigatórias

Para permitir a configuração de diferentes alíquotas e um intervalo de datas, você usa o Comando ASSIGN para criar o seguinte conjunto de variáveis.

Nome da variável Variável contém
v_imposto_1 A primeira alíquota
v_imposto_2 A segunda alíquota
v_imposto_2_início A data em que a segunda alíquota entra em vigor
v_imposto_2_fim A data em que a segunda alíquota termina ou a data atual quando a alíquota ainda estiver em vigor.

O script

COMMENT Criar e inicializar variáveis para alíquotas de impostos sobre vendas e um intervalo de datas
COMMENT Se necessário, você pode ampliar o script adicionando variáveis de alíquota e intervalo de datas
ASSIGN v_imposto_1 = 0,05
ASSIGN v_imposto_2 = 0,06
ASSIGN v_imposto_2_início = `20210701`
ASSIGN v_imposto_2_fim = `20211231`

COMMENT Criar um campo calculado condicional que usa alíquotas de imposto de vendas diferentes para dois períodos diferentes
DEFINE FIELD imposto_vendas COMPUTED

Valor_Fatura * v_imposto_2 IF BETWEEN(Data_Fatura; v_imposto_2_início; v_imposto_2_fim)
Valor_Fatura * v_imposto_1

As variáveis criadas e inicializadas na guia Variáveis

Depois de executar o script, as variáveis criadas e inicializadas são exibidas na guia Variáveis.

Como o comando ASSIGN cria as variáveis, o tipo de dados dos valores atribuídos determina o tipo de dados das variáveis. Neste exemplo, há duas variáveis numéricas e duas variáveis de datahora.

Variáveis para entrada do usuário

Você quer criar um script que permita ao usuário selecionar qualquer tabela em um projeto do Analytics, filtrar os registros na tabela por um intervalo numérico e um intervalo de datas, e enviar os registros filtrados para uma nova tabela.

Variáveis obrigatórias

Para capturar a entrada do usuário para o script, você usa o Comando ACCEPT para criar o seguinte conjunto de variáveis.

Nome da variável Variável contém
v_tabela_entrada O nome da tabela do Analytics a ser usada como entrada
v_tabela_saida O nome da tabela de saída do Analytics para os registros filtrados
v_campo_numerico O campo numérico na tabela de entrada a ser usado com o intervalo numérico
v_quantidade_min O limite inferior do intervalo numérico
v_quantidade_max O limite superior do intervalo numérico
v_campo_data O campo de data na tabela de entrada a ser usado com o intervalo de datas
v_data_inicial A data mais antiga no intervalo de datas
v_data_final A data mais recente no intervalo de datas

Considerações de scripts

Como você usa o comando ACCEPT para solicitar interativamente que os usuários informem os valores de entrada de script, cada valor de entrada é armazenado em uma variável nomeada de caracteres, mesmo que o valor represente um número ou uma data. Para resolver isso, é preciso usar funções do Analytics em certos pontos do script para converter o valor da variável para o tipo de dados exigido pela lógica do script.

Por exemplo:

  • A função VALUE( ) converte o número armazenado em v_quantidade_min de um tipo de dados de caracteres para um tipo de dados numérico:

    VALUE(v_quantidade_min; 2)
  • A função CTOD( ) converte a data armazenada em v_data_inicial de um tipo de dados de caracteres para um tipo de dados datahora:

    CTOD(v_data_inicial)

Você precisa fazer essas conversões de tipo de dados porque os valores nessas variáveis estão sendo comparados com valores em campos que usam um tipo de dados numérico ou datahora.

Você também precisa usar a substituição de variáveis para acessar os nomes reais das tabelas e os campos armazenados em algumas das variáveis.

Por exemplo:

OPEN %v_tabela_entrada%

O script

COMMENT Criar uma caixa de diálogo para solicitar ao usuário uma tabela de entrada e uma tabela de saída
ACCEPT "Selecione uma tabela de entrada:" FIELDS "xf" TO v_tabela_entrada; "Especifique um nome para a tabela de saída (sem espaço):" TO v_tabela_saida

COMMENT Abrir a tabela de entrada selecionada pelo usuário
OPEN %v_tabela_entrada%

COMMENT Criar uma caixa de diálogo para solicitar ao usuário um campo numérico e um intervalo numérico
ACCEPT "Selecione um campo numérico a ser filtrado:" FIELDS "N" TO v_campo_numerico; "Especifique uma quantidade mínima:" TO v_quantidade_min; "Especifique uma quantidade máxima:" TO v_quantidade_max

COMMENT Criar uma caixa de diálogo para solicitar ao usuário um campo de data e um intervalo de datas
ACCEPT "Selecione um campo de data a ser filtrado:" FIELDS "D" TO v_campo_data; "Especifique uma data inicial (AAAAMMDD):" TO v_data_inicial; "Especifique uma data final (AAAAMMDD):" TO v_data_final

COMMENT Filtrar a tabela de entrada com base nos intervalos numéricos e de datas do usuário
SET FILTER TO BETWEEN(%v_campo_numerico%; VALUE(v_quantidade_min; 2); VALUE(v_quantidade_max; 2)) AND BETWEEN(%v_campo_data%; CTOD(v_data_inicial); CTOD(v_data_final))

COMMENT Extrair o conjunto de registros filtrados para a tabela de saída especificada pelo usuário
EXTRACT RECORD TO %v_tabela_saida%

COMMENT Abrir a tabela de saída com os registros filtrados
OPEN %v_tabela_saida%

As variáveis criadas e inicializadas na guia Variáveis

Depois de executar o script, as variáveis criadas e inicializadas são exibidas na guia Variáveis.

Como o comando ACCEPT cria as variáveis, elas usam o tipo de dados de caracteres, mesmo que o valor da variável represente um número ou uma data.

WRITE1 é uma variável do sistema. Nesta situação atual, o valor representa o número de registros na tabela de saída (v_tabela_saida). Para obter mais informações, consulte Variáveis de sistema criadas por comandos do Analytics.

Valores padrão para variáveis de entrada do usuário

Você pode preencher um valor padrão em um campo de entrada do usuário em vez de exibir um campo em branco. Além de facilitar o uso da tela, um valor padrão pode reduzir erros, exibindo o formato correto para um valor de entrada.

Para especificar um valor padrão, use primeiro o Comando ASSIGN para inicializar uma variável com o valor padrão. Em seguida, use o Comando ACCEPT com o mesmo nome de variável para permitir que o usuário substitua opcionalmente o valor padrão.

Este exemplo é o mesmo que Variáveis para entrada do usuário acima, com a adição de uma seção preliminar para inicializar variáveis com valores padrão para os intervalos numéricos e de datas.

Inicialização de variáveis com valores padrão

Para inicializar variáveis com valores padrão, use o comando ASSIGN para criar as seguintes variáveis.

Nome da variável Variável contém
v_quantidade_min O limite inferior do intervalo numérico
v_quantidade_max O limite superior do intervalo numérico
v_numero_de_meses A duração do intervalo de datas, em meses
v_data_final A data mais recente no intervalo de datas (calculada)
v_data_inicial A data mais antiga no intervalo de datas (calculada)

Considerações de scripts

Como você está preenchendo valores padrão em campos criados pelo comando ACCEPT, esses valores devem usar o tipo de dados de caracteres. Se você tentar preencher valores de outro tipo de dados, os valores não serão exibidos.

Para resolver isso, talvez seja necessário usar funções do Analytics para converter os valores padrão para o tipo de dados de caracteres. (Depois, você pode usar outras funções para converter os valores das variáveis para o tipo de dados exigido pela lógica do script.)

Por exemplo:

  • A função STRING( ) converte o número 5000 para uma cadeia de caracteres armazenada na variável v_quantidade_min:

    ASSIGN v_quantidade_min = STRING(5000; 4)
  • A função DATE( ) converte a data final calculada em uma cadeia de caracteres armazenada na variável v_data_final:

    ASSIGN v_data_final = ALLTRIM(DATE(EOMONTH(TODAY();-1)))

Cálculo do intervalo de datas

O cálculo do intervalo de datas define o intervalo padrão para os 12 meses completos anteriores à data atual. Para alterar a duração do intervalo, atualize o valor atribuído à variável v_numero_de_meses. Para saber mais sobre a função usada para calcular o intervalo de datas, consulteFunção EOMONTH( ).

O script

COMMENT Definir o formato de datas para a duração da sessão do Analytics
SET DATE "AAAAMMDD"

COMMENT Especifique os valores padrão para os limites inferior e superior do intervalo numérico
ASSIGN v_quantidade_min = STRING(5000; 4)
ASSIGN v_quantidade_max = STRING(100000; 6)

COMMENT Informar a duração do intervalo de datas calculado em meses
ASSIGN v_numero_de_meses = 12

COMMENT Calcular as datas inicial e final do intervalo de datas padrão com base na data atual e na duração especificada em v_numero_de_meses
ASSIGN v_data_final = ALLTRIM(DATE(EOMONTH(TODAY();-1)))
ASSIGN v_data_inicial = ALLTRIM(DATE(EOMONTH(CTOD(v_data_final); -v_numero_de_meses) + 1))

COMMENT Criar uma caixa de diálogo para solicitar ao usuário uma tabela de entrada e uma tabela de saída
ACCEPT "Selecione uma tabela de entrada:" FIELDS "xf" TO v_tabela_entrada; "Especifique um nome para a tabela de saída (sem espaço):" TO v_tabela_saida

COMMENT Abrir a tabela de entrada selecionada pelo usuário
OPEN %v_tabela_entrada%

COMMENT Criar uma caixa de diálogo para solicitar ao usuário um campo numérico e um intervalo numérico
ACCEPT "Selecione um campo numérico a ser filtrado:" FIELDS "N" TO v_campo_numerico; "Especifique uma quantidade mínima:" TO v_quantidade_min; "Especifique uma quantidade máxima:" TO v_quantidade_max

COMMENT Criar uma caixa de diálogo para solicitar ao usuário um campo de data e um intervalo de datas
ACCEPT "Selecione um campo de data a ser filtrado:" FIELDS "D" TO v_campo_data; "Especifique uma data inicial (AAAAMMDD):" TO v_data_inicial; "Especifique uma data final (AAAAMMDD):" TO v_data_final

COMMENT Filtrar a tabela de entrada com base nos intervalos numéricos e de datas do usuário
SET FILTER TO BETWEEN(%v_campo_numerico%; VALUE(v_quantidade_min; 2); VALUE(v_quantidade_max; 2)) AND BETWEEN(%v_campo_data%; CTOD(v_data_inicial); CTOD(v_data_final))

COMMENT Extrair o conjunto de registros filtrados para a tabela de saída especificada pelo usuário
EXTRACT RECORD TO %v_tabela_saida%

COMMENT Abrir a tabela de saída com os registros filtrados
OPEN %v_tabela_saida%

Variáveis para armazenamento temporário

Você quer criar um script que calcule um total acumulado com base nos valores de um campo numérico. O total acumulado começa em zero (0,00) para cada valor exclusivo em um campo identificador.

Variáveis obrigatórias

O script usa variáveis com três finalidades diferentes:

  • entrada do usuário

  • armazenamento temporário de variáveis

  • configuração de script

Entrada do usuário

Para capturar a entrada do usuário para o script, você usa o Comando ACCEPT para criar o seguinte conjunto de variáveis.

Nome da variável Variável contém
v_tabela_entrada O nome da tabela do Analytics a ser usada como entrada
v_tabela_saida O nome da tabela de saída do Analytics para os totais acumulados
v_campo_id O campo na tabela de entrada que contém valores de identificadores, como IDs de cliente ou fornecedor
v_campo_numerico O campo numérico na tabela de entrada a ser usado para calcular totais acumulados
Armazenamento temporário de variáveis e configuração de script

Para permitir o armazenamento temporário de valores durante o processamento dos registros da tabela de entrada pelo script, use o Comando ASSIGN para criar (e também atualizar) as duas variáveis a seguir. Se necessário, você pode configurar um ponto de partida diferente de zero (0,00) para o total acumulado.

Nome da variável Variável contém
v_valor_id O valor do identificador no registro processado pelo script
v_total_acumulado

O valor do total acumulado no registro que o script está processando

O script

COMMENT
Permitir a substituição de arquivos sem exibir uma caixa de diálogo de confirmação
END
SET SAFETY OFF

COMMENT
Criar uma caixa de diálogo para solicitar ao usuário uma tabela de entrada e uma tabela de saída
END
ACCEPT "Selecione uma tabela de entrada:" FIELDS "xf" TO v_tabela_entrada; "Especifique um nome para a tabela de saída (sem espaço):" TO v_tabela_saida
OPEN %v_tabela_entrada%

COMMENT
Criar uma caixa de diálogo para solicitar ao usuário um campo de caracteres de identificador
END
ACCEPT "Selecione um campo de caracteres de identificador:" FIELDS "C" TO v_campo_id

COMMENT
Criar uma caixa de diálogo para solicitar ao usuário um campo numérico
END
ACCEPT "Selecione um campo numérico:" FIELDS "N" TO v_campo_numerico

COMMENT
Indexar (ordenar) a tabela pelo campo de caracteres de identificador
END
INDEX ON %v_campo_id% TO "campo_ID_ordenado"
SET INDEX TO "campo_ID_ordenado"

COMMENT
Atribua o valor atual no campo de caracteres de identificador à variável v_valor_id.
Quando v_tabela_entrada é aberta pela primeira vez, o valor atual é o primeiro valor no campo. Depois disso, o valor atual dependerá do registro sendo processado pelo script.
END
ASSIGN v_valor_id = %v_campo_id%

COMMENT
Defina o valor inicial do total acumulado como zero (0,00)
END
ASSIGN v_total_acumulado = 0,00

COMMENT
Processar a tabela registro por registro. Para cada identificador exclusivo, calcule um total acumulado para o campo numérico.
END
GROUP IF v_valor_id = %v_campo_id%
  ASSIGN v_total_acumulado = v_total_acumulado + %v_campo_numerico%
  EXTRACT %v_campo_id% %v_campo_numerico% v_total_acumulado AS "Total acumulado %v_campo_numerico%" TO %v_tabela_saida%
ELSE
  ASSIGN v_valor_id = %v_campo_id%
  ASSIGN v_total_acumulado = 0,00
  ASSIGN v_total_acumulado = v_total_acumulado + %v_campo_numerico%
  EXTRACT %v_campo_id% %v_campo_numerico% v_total_acumulado AS "Total acumulado %v_campo_numerico%" TO %v_tabela_saida%
END

COMMENT Abrir a tabela de saída com os totais acumulados calculados
OPEN %v_tabela_saida%

COMMENT Restaurar o comportamento padrão de exibir uma caixa de diálogo de confirmação antes de substituir arquivos
SET SAFETY ON

As variáveis criadas e inicializadas na guia Variáveis

Depois de executar o script, as variáveis criadas e inicializadas são exibidas na guia Variáveis.

As variáveis criadas pelo comando ACCEPT usam o tipo de dados de caracteres. As variáveis criadas pelo comando ASSIGN (v_valor_id; v_total_acumulado) usam o tipo de dados do valor atribuído.

Os valores atribuídos a v_valor_id e v_total_acumulado são atualizados continuamente durante a execução do script. A guia Variáveis exibe seus valores finais antes da conclusão do script.

Para obter informações sobre as variáveis de sistema (WRITEn) e seu esquema de numeração, consulteVariáveis de sistema numeradas incrementalmente.

Solução de problemas

Duas categorias gerais de erro são as mais comuns quando você trabalha com variáveis em scripts:

  • Resultados inesperados O script é executado até a conclusão, mas a análise que inclui variáveis não gera os resultados esperados.

  • Problema de tipo de dados O script falha com um erro relacionado ao tipo de dados, como "Incongruência do tipo de expressão" ou "É necessária expressão com caracteres".

Resultados inesperados

Para o primeiro tipo de erro, experimente esta abordagem de solução de problemas:

  1. No Navegador, abra a guia Variáveis.

  2. Na linha de comando do Analytics, digite DELETE ALL OK para excluir todas as variáveis existentes.

    Se a caixa de texto Linha de comando não estiver visível, selecione Janela > Linha de comando.

  3. No Editor de scripts, use a opção Passo para percorrer o script linha a linha e acompanhar a criação de cada variável e o valor atribuído na guia Variáveis.

    Você pode descobrir que o valor que está sendo atribuído a uma variável não é o que você pretendia e sua lógica de script precisa ser ajustada. Para obter mais informações, consulte Teste e depuração de scripts.

Nota

Não é possível executar passo a passo o conteúdo de comandos de várias linhas, como GROUP, LOOP ou DEFINE FIELD . . . COMPUTED. Para testar a lógica do script nesta situação, copie temporariamente a lógica do script sem a sintaxe do comando associado para um script separado.

Problema de tipo de dados

Quando você desenvolve scripts que usam variáveis, provavelmente encontrará erros causados por tipos de dados incompatíveis. Os erros são mais prováveis se você combinar funções de conversão e substituição de variáveis na mesma expressão.

Encontrar erros é normal, e a maneira de superá-los é testar diferentes abordagens e lembrar destes princípios:

  • Preste muita atenção aos tipos de dados em cada elemento de uma expressão. Todos os tipos de dados em uma expressão estão alinhados da forma exigida pelo ACLScript?

  • Lembre-se de que a substituição de variáveis é absolutamente literal. Se você suspeita que a substituição de variáveis está causando um erro, observe o valor preciso armazenado em uma variável e substitua manualmente o valor na expressão. A execução dessa etapa simples de solução de problemas pode revelar o problema.

  • A inserção do comando DISPLAY VARIABLES em diferentes locais de um script permite capturar o estado pontual das variáveis do projeto.

  • Percorrer o script linha a linha e definir pontos de interrupção pode facilitar muito a solução de problemas. Para obter mais informações, consulte Teste e depuração de scripts.