Skip to content
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')&gt;%% -- 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')&gt;%%

Package em PostgreSQL ​

Texto não disponível.

Categorias ​