Procedures e Scripts - Melhores práticas

Ir em baixo

Procedures e Scripts - Melhores práticas Empty Procedures e Scripts - Melhores práticas

Mensagem  Admin em Ter 26 Mar - 10:43

Estamos abrindo este tópico para listar algumas das melhores práticas no uso de ACLSCript.

Admin
Admin

Mensagens : 10
Data de inscrição : 16/02/2012

http://techsolutions.forumeiros.com

Voltar ao Topo Ir em baixo

Procedures e Scripts - Melhores práticas Empty COMMENT

Mensagem  Admin em Ter 26 Mar - 10:55

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).

Admin
Admin

Mensagens : 10
Data de inscrição : 16/02/2012

http://techsolutions.forumeiros.com

Voltar ao Topo Ir em baixo

Procedures e Scripts - Melhores práticas Empty GROUP pode fazer diferença na performance

Mensagem  Miro em Ter 26 Mar - 19:03

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


Última edição por Miro em Qua 30 Jan - 9:04, editado 2 vez(es)

Miro

Mensagens : 110
Data de inscrição : 24/02/2012

http://www.it-tech.com.br

Voltar ao Topo Ir em baixo

Procedures e Scripts - Melhores práticas Empty Variáveis

Mensagem  Admin em Seg 1 Abr - 13:47

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

Admin
Admin

Mensagens : 10
Data de inscrição : 16/02/2012

http://techsolutions.forumeiros.com

Voltar ao Topo Ir em baixo

Procedures e Scripts - Melhores práticas Empty Re: Procedures e Scripts - Melhores práticas

Mensagem  Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum