| Guia de programação para linguagem de banco | |
| Introdução | |
| Padrões Gerais | |
| Estrutura | |
| Exportação para Checkout | |
| Metadados | |
| Views | |
| Functions | |
| Triggers | |
| Packages |
Esse artigo reúne os conhecimentos relacionação a criação e manutenção de packages de banco para o Totali Commerce.
Tutoriais
Como criar uma nova package
1. Criar package na pasta ansi\function\5\ dos fontes do totalicommerce.
Modelos
Package simples:
SVN://totalicommerce/modelos/ansi/Criar_Package.mac
Nota: baseada na TT_IVE
Padrões
Seguir os padrões gerais definidos em Padrões Gerais para Programação de Banco do Totali Commerce e os específicos definidos neste artigo.
Nomenclatura
Usar PC_<tabela da trigger>:
- PC_IVE
- PC_IVE_AUX
- PC_IVE_PLS
Como podemos ter mais de uma package por trigger, em alguns casos precisamos colocar um sufixo para diferenciar as packages.
Se a package é genérica, utilizamos "_AUX". Uma segunda opção para packages genéricas seria utilizar "_PLS". Se ela é específica para tratamento de uma tabela, podemos usar o apelido dessa tabela. Ex.: "_CLI".
Dentro da package existe uma ou mais funções que vai efetivamente executar o processo. Para o nome dessas funções devemos adotar o seguinte padrão:
Usar <nome da package>_<nome da função>:
- PC_REC_AUX_GeraTitulo
- PC_REC_AUX_TrazMaximo
- PC_REC_AUX_Update
Nome do Arquivo
O nome do arquivo deve ser o nome da package:
- PC_IVE.mac
- PC_IVE_AUX.mac
- PC_IVE_PLS.mac
Conteúdo do Arquivo
O arquivo deve contar uma package, o corpo dessa package e suas funções.
Pasta
O padrão é criarmos as packages na pasta "ansi\function\5\". Mas se ela depender de uma função dessa pasta, vale a mesma regra de hierarquia das funções.
Melhores Práticas
Finalidade
As packages tornam o processo das triggers mais complexo. Seu uso deve ser restrito a casos de extrema necessidade.
Normalmente, seu uso está relacionado às seguintes situações:
- Evitar erro Erro Mutating Table em Oracle.
- Limitar quantidade de registros em uma tabela.
- Fazer tratamentos com dados modificados em todos os registros afetados por um comando DML.
Funções Auxiliares na Package
%%<BEGINPACKAGE_FUN('PC_REC_FuncaoAuxiliar', ['pColuna'], ['TABELA.COLUNA%TYPE'], 'VARCHAR')>%% -- Objetivos: -- 1. Explicar o objetivo 1 aqui... -- 2. Explicar o objetivo 2 aqui... -- Declaração de variáveis e cursores cResultado VARCHAR(2); -- Início da função BEGIN -- Incluir os tratamentos aqui... RETURN cResultado; %%<ENDPACKAGE_FUN('PC_REC_FuncaoAuxiliar')>%%
Package em PostgreSQL
Texto não disponível.