Últimos assuntos
Procedures e Scripts - Melhores práticas
2 participantes
Página 1 de 1
Procedures e Scripts - Melhores práticas
Estamos abrindo este tópico para listar algumas das melhores práticas no uso de ACLSCript.
COMMENT
O COMMENT permite documentar um Script incluindo textos como propósitos, descrições e outras explicações necessárias.
Em um Script, os comentários são registrados como parte do arquivo de script e são incluídos no arquivo de log durante a execução do script.
Sintaxe:
COMMENT texto_comentário
ou
COMMENT
texto_comentário
texto_comentário
...
END
Quando você incluir mais de uma linha de texto de comentário, use END após a linha final dos comentários (uma linha em branco também funciona mas não é recomendada).
Em um Script, os comentários são registrados como parte do arquivo de script e são incluídos no arquivo de log durante a execução do script.
Sintaxe:
COMMENT texto_comentário
ou
COMMENT
texto_comentário
texto_comentário
...
END
Quando você incluir mais de uma linha de texto de comentário, use END após a linha final dos comentários (uma linha em branco também funciona mas não é recomendada).
GROUP pode fazer diferença na performance
Para cada comando o ARBUTUS ou ACL lê o arquivo aberto linha à linha executando o referido comando. Vamos imaginar um Arquivo de Notas Fiscais com 1 milhão de linhas (registros). Para ele você codifica:
1. SUMARIZE para ter um conjunto de CNPJ agrupados por valor de nota;
2. EXTRACT nas Notas Fiscais gerando uma tabela por Estado de Origem;
3. EXPORT gerando uma planilha com as Notas Fiscais com valores superiores a R$ 500.000,00.
Somando-se: 01 Sumarize + 27 Extract (01 por estado + DF) + 01 Export. O SCRIPT vai executar 29 leituras no arquivo = 29 X 1 milhão de linhas.
O Script ficaria algo assim:
OPEN NOTAS
SUMMARIZE .....
EXTRACT … IF UF = “AC”
EXTRACT … IF UF = “AL”
EXTRACT … IF UF = “AM”
…
EXTRACT … IF UF = “SP”
EXPORT …..IF VALOR > 500000
O uso do GROUP / END indica que o SCRIPT deve executar todos os comandos dentro do GROUP / END em uma única leitura do arquivo aberto: O SCRIPT lê um registro e executa todo conjunto de comandos para depois passar para o próximo até o final do arquivo. = 01 X 1 milhão de linhas.
OPEN NOTAS
GROUP
SUMMARIZE .....
EXTRACT … IF UF = “AC”
EXTRACT … IF UF = “AL”
EXTRACT … IF UF = “AM”
…
EXTRACT … IF UF = “SP”
EXPORT …..IF VALOR > 500000
END
Os comandos a seguir podem ser usados dentro de um GROUP, porém nenhum comando pode alterar a ordem de leitura do arquivo aberto (parâmetro PRESORT) ou tentar abrir outro arquivo (parâmetro OPEN): AGE, ASSIGN, BENFORD, CLASSIFY, COMMENT, COUNT, CROSSTAB, DUPLICATES, ELSE, END, EXPORT, EXTRACT, GAPS, HISTOGRAM, JOIN, LIST, LOOP, MERGE, PROFILE, REPORT, SEQUENCE, STATISTICS, STRATIFY, SUMMARIZE, TOTAL, and VERIFY.
A sintaxe completa do GROUP segue abaixo, mas o uso simples como no exemplo acima já pode melhorar muito a performance de um Script:
GROUP <IF teste> <WHILE teste> <FIRST|NEXT intervalo>
comandos
...
<ELSE> <IF teste>
comandos
...
END
1. SUMARIZE para ter um conjunto de CNPJ agrupados por valor de nota;
2. EXTRACT nas Notas Fiscais gerando uma tabela por Estado de Origem;
3. EXPORT gerando uma planilha com as Notas Fiscais com valores superiores a R$ 500.000,00.
Somando-se: 01 Sumarize + 27 Extract (01 por estado + DF) + 01 Export. O SCRIPT vai executar 29 leituras no arquivo = 29 X 1 milhão de linhas.
O Script ficaria algo assim:
OPEN NOTAS
SUMMARIZE .....
EXTRACT … IF UF = “AC”
EXTRACT … IF UF = “AL”
EXTRACT … IF UF = “AM”
…
EXTRACT … IF UF = “SP”
EXPORT …..IF VALOR > 500000
O uso do GROUP / END indica que o SCRIPT deve executar todos os comandos dentro do GROUP / END em uma única leitura do arquivo aberto: O SCRIPT lê um registro e executa todo conjunto de comandos para depois passar para o próximo até o final do arquivo. = 01 X 1 milhão de linhas.
OPEN NOTAS
GROUP
SUMMARIZE .....
EXTRACT … IF UF = “AC”
EXTRACT … IF UF = “AL”
EXTRACT … IF UF = “AM”
…
EXTRACT … IF UF = “SP”
EXPORT …..IF VALOR > 500000
END
Os comandos a seguir podem ser usados dentro de um GROUP, porém nenhum comando pode alterar a ordem de leitura do arquivo aberto (parâmetro PRESORT) ou tentar abrir outro arquivo (parâmetro OPEN): AGE, ASSIGN, BENFORD, CLASSIFY, COMMENT, COUNT, CROSSTAB, DUPLICATES, ELSE, END, EXPORT, EXTRACT, GAPS, HISTOGRAM, JOIN, LIST, LOOP, MERGE, PROFILE, REPORT, SEQUENCE, STATISTICS, STRATIFY, SUMMARIZE, TOTAL, and VERIFY.
A sintaxe completa do GROUP segue abaixo, mas o uso simples como no exemplo acima já pode melhorar muito a performance de um Script:
GROUP <IF teste> <WHILE teste> <FIRST|NEXT intervalo>
comandos
...
<ELSE> <IF teste>
comandos
...
END
Última edição por Miro em Qua 30 Jan - 9:04, editado 2 vez(es)
Variáveis
As variáveis podem conter qualquer texto, números, símbolos, expressões ou comandos inteiros e partes de nomes. As variáveis são comumente criadas com os comandos ACCEPT, ASSIGN ou DIALOG. Em um Script o nome de uma variável entre o sinal de percentual (%) indica para o ACL que naquele ponto do código ele deve substituir o nome da variável pelo seu conteúdo.
Exemplo 1: O sinal de percentual (%) faz com que o conteúdo da variável apareça depois do comando OPEN possibilitando abrir a tabela digitada pelo usuário no comando ACCEPT.
ACCEPT "Digite o nome do campo:" TO Nome_da_tabela
OPEN %Nome_da_tabela%
Exemplo 2: O Script extrai registros e exporta dados para um arquivo XLS.
ACCEPT "Digite o nome do arquivo de entrada:" TO Entrada "Digite o nome do Campo:" TO Campo "Digite o Limite:" TO Limite "Digite o nome do arquivo de saída" TO Saida
OPEN %Entrada%
EXTRACT RECORD IF %Campo% > %Limite% TO Temp
OPEN Temp
EXPORT ALL XLSX TO %Saída%
CLOSE
Exemplo 1: O sinal de percentual (%) faz com que o conteúdo da variável apareça depois do comando OPEN possibilitando abrir a tabela digitada pelo usuário no comando ACCEPT.
ACCEPT "Digite o nome do campo:" TO Nome_da_tabela
OPEN %Nome_da_tabela%
Exemplo 2: O Script extrai registros e exporta dados para um arquivo XLS.
ACCEPT "Digite o nome do arquivo de entrada:" TO Entrada "Digite o nome do Campo:" TO Campo "Digite o Limite:" TO Limite "Digite o nome do arquivo de saída" TO Saida
OPEN %Entrada%
EXTRACT RECORD IF %Campo% > %Limite% TO Temp
OPEN Temp
EXPORT ALL XLSX TO %Saída%
CLOSE
Tópicos semelhantes
» Melhores Práticas de Monitoramento para Detecção e Prevenção de Fraudes
» Relacionamento em Scripts
» Boas Práticas para nomes e etc.
» Lista aponta 10 ‘práticas de corrupção’ do dia a dia do brasileiro
» Relacionamento em Scripts
» Boas Práticas para nomes e etc.
» Lista aponta 10 ‘práticas de corrupção’ do dia a dia do brasileiro
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|
Sex 13 Out - 10:25 por Felipe Naibert
» Exportar Arquivos em quantidades (blocos) fixos de linhas.
Qui 20 Ago - 12:17 por Miro
» GRUPO DE ESTUDOS AUDIT ANALYTICS
Ter 9 Jun - 9:22 por Miro
» Cálculo do número da Semana no ano
Seg 11 maio - 11:18 por Miro
» A ordem dos argumentos altera o tempo de processamento
Qui 23 Abr - 14:50 por Miro
» Como pegar dados únicos de um campo?
Seg 23 Fev - 19:33 por Fernanda
» Existe algum comando no Analyzer que eu realize as instruções do SQL?
Qua 18 Fev - 9:22 por Raphael Moita Bertolino
» Lei de Benford: How Forensic Accountants Use Benford's Law To Detect Fraud
Qua 24 Dez - 7:53 por Márcia
» Importação de PDF
Ter 9 Dez - 13:23 por Fernanda