Banco de Dados
Referenciado por: Comunicação | Dicas Técnicas | Predefinição:Guia de Programação Banco de Dados | Guia para Atualização de Metadados do Totali Commerce | Guia para Manutenção de Estrutura do Totali Commerce | Guia para Manutenção de Functions e Procedures do Totali Commerce | Guia para Manutenção de Packages do Totali Commerce | Guia para Manutenção de Triggers do Totali Commerce | Guia para Manutenção de Views do Totali Commerce | Introdução a Programação de Banco do Totali Commerce |
| 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 conhecimentos referentes a exportação de dados do Totali Commerce para Commerce Checkout.
Visão Geral
Ao modificar a estrutura do Totali Commerce, pode ser necessário alterar a rotina de exportação para o Commerce Checkout. Isso é feito alterando o arquivo da carga para o Checkout.
O processo consiste no seguinte:
- O arquivo 5_criaout.mac possui a INSERTs na tabela TT_OUT.
- O C. Server utiliza os selects que possuem CODEXP=0 para criar os arquivos .DBF.
- Checkout lê/copia os arquivos .DBF.
Em alguns casos, para que a carga seja mais ágil, tratamos a carga incremental.
Atualmente, as únicas tabelas que o sistema faz tratamento diferente são VEN, REC, CLI e END.
Esse tratamento fica nos fontes do C. Server.
A carga incremental de produtos é feita pelo próprio Checkout via select direto na base.
Carga incremental
Para carga incremental, C. Server utiliza os selects da carga completa (CODEXP = 0).
E somente para as tabelas com tratamento fixo na TTFEXCKO.pas, sistema concatena um filtro com ATU_EM.
Tutorias
Exportar Coluna
Para exportar uma coluna para Checkout seguir os seguintes procedimentos.
1. Incluir a coluna nos INSERT da TT_OUT do arquivo ansi\export\5_criaout.mac.
Incluir coluna em todos os selects de carga completa [TT_OUT.CODEXP=0] que exportar colunas da tabela em questão.
Preservar a ordem dos scripts que é por CODEXP.
Incluir comentários seguindo o padrão das demais instruções.
Respeitar as regras definidas nesse artigo.
Exportar Tabela
Para exportar uma tabela para Checkout seguir os seguintes procedimentos.
1. Incluir o INSERT na TT_OUT no arquivo ansi\export\5_criaout.mac para carga completa.
2. Se for solicitado, incluir tratamento para carga incremental na unit TTFEXCKO.pas.
O processo consiste em concatenar filtro com ATU_EM na query da carga completa.
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.
Nome Definido
A coluna deve ter um nome definido.
Errado:
TO_CHAR(COLUNA)
Correto:
TO_CHAR(COLUNA) AS COLUNA
Nome Único
A coluna não pode estar repetida
Errado:
COLUNA, COLUNA
Correto:
COLUNA, COLUNA AS COLUNA_A
ou, se tratar do mesmo dado
COLUNA
Tamanho Máximo do Nome
A coluna deve ter no máximo 10 posições.
Checkout corta se tiver mais de 10.
Errado:
CONFIGURACAO_LONGA_PARA_TESTE
Correto:
CONFIGURACAO_LONGA_PARA_TESTE AS "CFGLONGATE"
DICAA melhor prática para casos em que a coluna tem mais de 10 posições é exportar os 10 primeiros dígitos. Mas desde que isso seja significado e não gere duplicidade com alguma outra coluna.
Exportação de Campo Data
As colunas de data não devem ser exportadas sem tratamento.
Errado:
DATINC
Correto:
CAST(TO_CHAR(DATREF,"DD/MM/YYYY") AS VARCHAR(10)) AS DATREF -- Se a coluna não tem hora CAST(TO_CHAR(DATINC,"DD/MM/YYYY HH24:MI:SS") as VARCHAR(21)) AS DATINC -- Se a coluna contem data e hora
Exportação de Campo Numérico
Quando exportamos um campo numérico que pode ser nulo, devemos fazer um cast dele para VARCHAR.
Isso é necessário porque o Fox atribui 0 para campo numérico nulo.
Esse tratamento só é necessário se for preciso distinguir o valor 0 de null.
Errado:
CFG.TRANSFER_N
Correto:
CAST(TO_CHAR(CFG.TRANSFER_NAT) AS VARCHAR(5)) AS TRANSFER_N
Não Extrapolar o Limite de Colunas
Algumas tabelas como CFG e a TAB (TAB é uma view com várias TDs) já atingiram o número máximo de colunas. Por isso, foram criadas as cargas CFG2 e TAB2.