Mudanças entre as edições de "Integração DAV via Stored Procedure"
(→ENVIA_DAV) |
(→Alterações) |
||
(49 revisões intermediárias por 3 usuários não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
− | Interface de Integração de Orçamento via Stored Procedure | + | {{Tags|Integração}} |
+ | {{Referencias}} | ||
+ | Interface de Integração de Orçamento via Stored Procedure. | ||
+ | == Conceito == | ||
+ | |||
+ | O processo de integração de orçamentos (DAVs e Pré-vendas) via stored procedure serve para que sistemas parceiros similares ao Totall Order possam enviar DAVs para serem resgatadas pelo Commerce Checkout. <BR/> | ||
+ | |||
+ | |||
+ | A partir da versão 01.08 do PAF-ECF (2011) passam a vigorar as seguintes regras para a retaguarda: | ||
+ | * Gravação do DAV no banco de dados deve ser de forma concomitante, ou seja a cada novo item inserido deve-se gravar no banco de dados. | ||
+ | * O DAV não pode ser impresso mais de uma vez. | ||
+ | * Após impresso o DAV não pode ser alterado. | ||
+ | * Não é permitir exclusão de itens de orçamento, podendo apenas cancelar os mesmos. | ||
+ | * Não permitir alterar a quantidade de um item. | ||
+ | * Os itens cancelados precisam ser enviados para o Checkout com um campo para definir que ele foi cancelado. | ||
+ | * Não será permitido incluir novos itens de DAV se o mesmo tiver algum item vendido. | ||
+ | |||
+ | |||
+ | As imagens abaixo ilustram a principal mudança de conceito. Antes o DAV poderia ser todo criado na retaguarda para depois ser passado ao banco de dados. | ||
+ | Agora, essas duas etapas se fundiram porque o DAV precisa ser o tempo todo gravado no banco. | ||
+ | |||
+ | <gallery widths="280px" heights="180px" perrow="2"> | ||
+ | Imagem:Integracao-antes.PNG|Antes | ||
+ | Imagem:Integracao-depois.PNG|Depois | ||
+ | </gallery> | ||
+ | |||
+ | |||
+ | A imagem abaixo ilustra o uso das stored procedures para enviar um pedido de venda para o banco de dados. | ||
+ | |||
+ | [[Imagem:Pre-venda-2011.png|856px]] | ||
== ENVIA_DAV == | == ENVIA_DAV == | ||
Linha 6: | Linha 35: | ||
Método responsável pela inserção ou atualização de uma DAV ou Pré-venda. | Método responsável pela inserção ou atualização de uma DAV ou Pré-venda. | ||
Quando o orçamento é novo ele não ficará disponível para ser vendido enquanto não for executado o método VALIDA_DAV. | Quando o orçamento é novo ele não ficará disponível para ser vendido enquanto não for executado o método VALIDA_DAV. | ||
− | Caso alguma inconsistência seja verificada gerará exceção. | + | Caso alguma inconsistência seja verificada o método gerará exceção. |
− | Para PostgreSQL | + | Para PostgreSQL foi implementado como uma função que retorna o campo NUMPED. |
− | No Oracle | + | No Oracle deve-se chamar como Stored Procedure passando os valores por parâmetro e pegando o retorno no parâmetro NUMPED. |
− | + | ||
{| cellpadding="6px" border=1 style="border:1px solid #C0C0C0; border-collapse:collapse;" | {| cellpadding="6px" border=1 style="border:1px solid #C0C0C0; border-collapse:collapse;" | ||
Linha 61: | Linha 89: | ||
||CHAR | ||CHAR | ||
||3 | ||3 | ||
− | || | + | || |
|| | || | ||
|| | || | ||
Linha 71: | Linha 99: | ||
||1 | ||1 | ||
|| | || | ||
− | ||' | + | ||'O' |
− | ||O - DAV | + | ||O - DAV<BR />P - Pré-Venda |
− | P - Pré-Venda | + | |
|| | || | ||
|- | |- | ||
Linha 80: | Linha 107: | ||
||VARCHAR | ||VARCHAR | ||
||20 | ||20 | ||
− | || | + | || |
|| | || | ||
|| | || | ||
Linha 89: | Linha 116: | ||
||NUMBER | ||NUMBER | ||
||12,2 | ||12,2 | ||
− | || | + | || |
|| | || | ||
|| | || | ||
Linha 98: | Linha 125: | ||
||NUMBER | ||NUMBER | ||
||12,2 | ||12,2 | ||
− | || | + | || |
|| | || | ||
|| | || | ||
Linha 226: | Linha 253: | ||
|| | || | ||
||'F' | ||'F' | ||
− | || | + | ||F - Falso<BR />T - Verdadeiro |
|| | || | ||
|- | |- | ||
Linha 235: | Linha 262: | ||
|| | || | ||
||'F' | ||'F' | ||
− | || | + | ||F - Falso<BR />T - Verdadeiro |
|| | || | ||
|- | |- | ||
Linha 325: | Linha 352: | ||
|| | || | ||
||'A' | ||'A' | ||
− | ||A - Aprovado | + | ||A - Aprovado<BR />E - Em Aprovação |
− | E - Em Aprovação | + | |
|| | || | ||
|- | |- | ||
Linha 333: | Linha 359: | ||
||CHAR | ||CHAR | ||
||1 | ||1 | ||
− | || | + | || |
||'1' | ||'1' | ||
− | ||1 - Aprovado | + | ||1 - Aprovado<BR />A - Em Aberto<BR />2 - Reprovado |
− | A - Em Aberto | + | |
− | + | ||
− | 2 - Reprovado | + | |
|| | || | ||
|- | |- | ||
Linha 374: | Linha 397: | ||
|| | || | ||
|| | || | ||
− | || | + | ||''(solicitar a Totall)'' |
|| | || | ||
|- | |- | ||
Linha 394: | Linha 417: | ||
|| | || | ||
||Sim | ||Sim | ||
+ | |- | ||
+ | || ORCIMP | ||
+ | || Imprimiu? | ||
+ | || VARCHAR | ||
+ | || 1 | ||
+ | || | ||
+ | || 'F' | ||
+ | || F - Falso<BR />T - Verdadeiro | ||
+ | || | ||
|} | |} | ||
Linha 508: | Linha 540: | ||
|| | || | ||
||'N' | ||'N' | ||
− | ||N - Não promocional no plano | + | ||N - Não promocional no plano<BR/>E - Promocional no plano<BR/>Q - Promocional para qualquer plano |
− | E - Promocional no plano | + | |
− | + | ||
− | Q | + | |
|| | || | ||
|- | |- | ||
Linha 542: | Linha 571: | ||
|- | |- | ||
||PERIPI | ||PERIPI | ||
− | ||% IPI | + | ||% IPI Última Compra |
||NUMBER | ||NUMBER | ||
||5,2 | ||5,2 | ||
Linha 556: | Linha 585: | ||
||Sim | ||Sim | ||
|| | || | ||
+ | || | ||
+ | || | ||
+ | |- | ||
+ | ||FLGEST | ||
+ | ||Situação do Item | ||
+ | ||CHAR | ||
+ | ||1 | ||
+ | ||Sim | ||
+ | || | ||
+ | ||A - Aberto<br />R - Reservado<br />NULL - Sistema usa o que foi mandado na TT_ORC.RESERV | ||
+ | || | ||
+ | |- | ||
+ | ||LOTEXT | ||
+ | ||Código externo do lote | ||
+ | ||VARCHAR | ||
+ | ||1 | ||
+ | ||Sim | ||
+ | ||20 | ||
|| | || | ||
|| | || | ||
|} | |} | ||
+ | == CANCELAITEM_DAV == | ||
− | + | Método responsável por cancelar um item de DAV. | |
− | + | Caso não encontre o item ou o mesmo não possa ser cancelado gerará uma exceção. | |
− | Método responsável | + | |
− | Caso não encontre o item ou o mesmo não possa ser | + | |
{| cellpadding="6px" border=1 style="border:1px solid #C0C0C0; border-collapse:collapse;" | {| cellpadding="6px" border=1 style="border:1px solid #C0C0C0; border-collapse:collapse;" | ||
Linha 613: | Linha 659: | ||
|| | || | ||
|} | |} | ||
+ | |||
== VALIDA_DAV == | == VALIDA_DAV == | ||
− | Método responsável pela verificação do DAV. Realizando validações entre o DAV e seus itens. | + | Método responsável pela verificação do DAV e liberação para o Checkout. Realizando validações entre o DAV e seus itens. |
− | Caso a validação | + | Caso a validação não gere exceção o DAV ficará disponível para ser resgatado na Venda. |
Caso alguma inconsistência seja verificada gerará exceção. | Caso alguma inconsistência seja verificada gerará exceção. | ||
Linha 658: | Linha 705: | ||
|| | || | ||
|} | |} | ||
+ | |||
== CANCELA_DAV == | == CANCELA_DAV == | ||
Linha 696: | Linha 744: | ||
− | == | + | == Procedimentos para Assinatura == |
− | + | Os métodos de integração de DAV devem ser executados em uma sessão de banco de dados assinada.<br/> | |
− | + | Isso quer dizer que os comandos de integração de DAV devem ser precedidos do comando '''RegistraAcesso'''.<br/> | |
+ | O método está descrito no artigo [[Integração de Banco via Rotinas de Importação]]. | ||
− | + | == Impressão de DAV == | |
− | + | ||
− | + | Não é permitido que o DAV/Pré-venda seja impresso mais de uma vez.<BR/> | |
− | + | Com isso, quem quiser implementar a rotina de impressão deve se preocupar em mandar o parâmetro <TT>ORCIMP = 'T'</TT> no ENVIA_DAV.<BR/> | |
− | + | No caso de uma tentativa de reimpressão o sistema deve apresentar a seguinte mensagem: | |
− | + | ||
− | + | PAF Req VI item 11 - É vedada a reimpressão de DAV. | |
− | + | ||
− | + | == Alterações == | |
− | + | ||
− | + | === Versão 5.3 === | |
− | + | ||
− | + | * Remoção do método ASSINA_DAV. | |
− | + | ||
− | + | === Versão 5.2A === | |
− | + | ||
− | + | * Inclusão do campo LOTEXT no ENVIAITEM_DAV. | |
− | + | ||
− | + | === Versão 5.0G === | |
− | + | ||
− | + | * Inclusão do campo ORCIMP no ENVIA_DAV. | |
− | + | * Inclusão do campo FLGEST no ENVIAITEM_DAV. | |
− | + | * Substituição da função EXCLUIITEM_DAV por CANCELAITEM_DAV. | |
− | + | * Inclusão de comentários Procedimentos para Assinatura explicando como utilizar RegistraAcesso ao invés de ASSINA_DAV. | |
− | + | * Inclusão de novas colunas nos parâmetros de ConcatenaIOR. | |
− | + | * Bloqueio para reimpressão de DAV. | |
− | + | ||
− | + | == Categorias == | |
− | + | [[Categoria:Integração]] | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + |
Edição atual tal como às 11h46min de 21 de novembro de 2016
IntegraçãoInterface de Integração de Orçamento via Stored Procedure.
Índice
Conceito
O processo de integração de orçamentos (DAVs e Pré-vendas) via stored procedure serve para que sistemas parceiros similares ao Totall Order possam enviar DAVs para serem resgatadas pelo Commerce Checkout.
A partir da versão 01.08 do PAF-ECF (2011) passam a vigorar as seguintes regras para a retaguarda:
- Gravação do DAV no banco de dados deve ser de forma concomitante, ou seja a cada novo item inserido deve-se gravar no banco de dados.
- O DAV não pode ser impresso mais de uma vez.
- Após impresso o DAV não pode ser alterado.
- Não é permitir exclusão de itens de orçamento, podendo apenas cancelar os mesmos.
- Não permitir alterar a quantidade de um item.
- Os itens cancelados precisam ser enviados para o Checkout com um campo para definir que ele foi cancelado.
- Não será permitido incluir novos itens de DAV se o mesmo tiver algum item vendido.
As imagens abaixo ilustram a principal mudança de conceito. Antes o DAV poderia ser todo criado na retaguarda para depois ser passado ao banco de dados.
Agora, essas duas etapas se fundiram porque o DAV precisa ser o tempo todo gravado no banco.
A imagem abaixo ilustra o uso das stored procedures para enviar um pedido de venda para o banco de dados.
ENVIA_DAV
Método responsável pela inserção ou atualização de uma DAV ou Pré-venda. Quando o orçamento é novo ele não ficará disponível para ser vendido enquanto não for executado o método VALIDA_DAV. Caso alguma inconsistência seja verificada o método gerará exceção. Para PostgreSQL foi implementado como uma função que retorna o campo NUMPED. No Oracle deve-se chamar como Stored Procedure passando os valores por parâmetro e pegando o retorno no parâmetro NUMPED.
Parâmetro | Significado | Tipo | Tamanho | Aceita Nulo | Default | Domínio | Coluna Retorno? |
---|---|---|---|---|---|---|---|
CODEXT | Código Externo | NUMBER | 15,0 | Sim | |||
CODSER | Série Padrão para a Venda | CHAR | 2 | Sim | |||
DOCNFP | Documento p/ NFP | VARCHAR2 | 15 | Sim | |||
DATAPR | Data de aprovação | DATE | 7 | Sim | |||
CODFIL | Filial | CHAR | 3 | ||||
TIPPED | Tipo de Pedido/OS | CHAR | 1 | 'O' | O - DAV P - Pré-Venda |
||
CLIEXT | Código externo do Cliente | VARCHAR | 20 | ||||
VLRTOT | Valor Total | NUMBER | 12,2 | ||||
VLRPAR | Valor da Parcela | NUMBER | 12,2 | ||||
VLRDES | Valor do Desconto/Acréscimo | NUMBER | 12,2 | ||||
QTDPAR | Qtd. de Parcelas | NUMBER | 5,0 | ||||
FILFAT | Filial. End. Fatura | CHAR | 3 | ||||
NUMFAT | Núm. End. Fatura | NUMBER | 4,0 | ||||
FILENT | Filial. End. Entrega | CHAR | 3 | ||||
NUMENT | Núm. End. Entrega | NUMBER | 4,0 | ||||
FILCOB | Filial. End Cobrança | CHAR | 3 | ||||
NUMCOB | Núm. End Cobrança | NUMBER | 4,0 | ||||
DATVAL | Validade | DATE | 7 | ||||
DATPRI | 1º Parcela | DATE | 7 | ||||
APEVEN | Apelido Vendedor | VARCHAR | 10 | ||||
PLANO | Plano | CHAR | 9 | ||||
DESPRE | Descrição da Tabela de Preços (se nulo utiliza VAREJO) | VARCHAR | 30 | Sim | |||
RESERV | Reserva? | VARCHAR2 | 1 | 'F' | F - Falso T - Verdadeiro |
||
EMIDES | Frete pelo Emitente? | VARCHAR2 | 1 | 'F' | F - Falso T - Verdadeiro |
||
PESLIQ | Peso Líquido | NUMBER | 12,2 | Sim | |||
PESBRU | Peso Bruto | NUMBER | 12,2 | Sim | |||
VLRSEG | Valor do Seguro | NUMBER | 12,2 | Sim | |||
VLRFRE | Valor do Frete | NUMBER | 12,2 | Sim | |||
SINAL | Sinal ou Entrada | NUMBER | 12,2 | Sim | |||
OBSERV | Observações de venda | VARCHAR2 | 4000 | Sim | |||
NUMBLO | Número do Bloco | VARCHAR2 | 8 | Sim | |||
OBSORC | Observação Orçamento | VARCHAR2 | 4000 | Sim | |||
DATSEG | 2º Parcela | DATE | 7 | Sim | |||
APROVA | Tipo Aprovação | CHAR | 1 | 'A' | A - Aprovado E - Em Aprovação |
||
APRCLI | Aprovação Cliente | CHAR | 1 | '1' | 1 - Aprovado A - Em Aberto 2 - Reprovado |
||
PLACAS | Placa Veículo | VARCHAR2 | 7 | Sim | |||
QTD_KM | Qtde KM | NUMBER | 7,0 | Sim | |||
CODSEQ | Cód. Sequen. NSU | NUMBER | 22 | Sim | |||
CODEMP | Código da Empresa da Retaguarda | NUMBER | 5 | (solicitar a Totall) | |||
ASSINA | Assinatura do Registro | VARCHAR | 256 | Sim | |||
NUMPED | Número da DAV ou Pré-Venda | CHAR | 8 | Sim | Sim | ||
ORCIMP | Imprimiu? | VARCHAR | 1 | 'F' | F - Falso T - Verdadeiro |
ENVIAITEM_DAV
Método responsável pela inserção ou atualização de um item de DAV ou Pré-venda. Somente pode ser executado após ter sido incluso o DAV pelo método ENVIA_DAV. Caso alguma inconsistência seja verificada gerará exceção.
Parâmetro | Significado | Tipo | Tamanho | Aceita Nulo | Default | Domínio | Coluna Retorno? |
---|---|---|---|---|---|---|---|
CODFIL | Filial da DAV | CHAR | 3 | ||||
TIPPED | Tipo Pedido/OS | CHAR | 1 | 'O' | O - DAV
P - Pré-Venda |
||
NUMPED | Número da DAV ou Pré-Venda | CHAR | 8 | ||||
NUMITE | Item (número seqüencial por DAV) | NUMBER | 5,0 | ||||
VLRCUS | Valor Total | NUMBER | 12,2 | ||||
VLRPGT | Valor Total Sem Desc/Acrés | NUMBER | 12,2 | ||||
QTDITE | Quantidade | NUMBER | 12,4 | ||||
VLRITE | Vlr. Unitário | NUMBER | 14,4 | ||||
VLRENT | Vlr. Unitário Sem desconto/Acrés. | NUMBER | 14,4 | ||||
PROEXT | Código externo do Produto | VARCHAR | 20 | ||||
PROMOC | Promoção | CHAR | 1 | 'N' | N - Não promocional no plano E - Promocional no plano Q - Promocional para qualquer plano |
||
PREUNI | Preço Unitário | NUMBER | 12,2 | Sim | |||
DESMUL | Sub-Estoque | VARCHAR | 30 | Sim | Nulo | ||
OBSERV | Observação | VARCHAR2 | 4000 | Sim | |||
PERIPI | % IPI Última Compra | NUMBER | 5,2 | Sim | |||
ASSINA | Assinatura do Registro | VARCHAR | 256 | Sim | |||
FLGEST | Situação do Item | CHAR | 1 | Sim | A - Aberto R - Reservado NULL - Sistema usa o que foi mandado na TT_ORC.RESERV |
||
LOTEXT | Código externo do lote | VARCHAR | 1 | Sim | 20 |
CANCELAITEM_DAV
Método responsável por cancelar um item de DAV.
Caso não encontre o item ou o mesmo não possa ser cancelado gerará uma exceção.
Parâmetro | Significado | Tipo | Tamanho | Aceita Nulo | Default | Domínio | Coluna Retorno? |
---|---|---|---|---|---|---|---|
CODFIL | Filial da DAV | CHAR | 3 | ||||
TIPPED | Tipo Pedido/OS | CHAR | 1 | 'O' | O - DAV
P - Pré-Venda |
||
NUMPED | Número da DAV ou Pré-Venda | CHAR | 8 | ||||
NUMITE | Item (número seqüencial por DAV) | NUMBER | 5,0 |
VALIDA_DAV
Método responsável pela verificação do DAV e liberação para o Checkout. Realizando validações entre o DAV e seus itens. Caso a validação não gere exceção o DAV ficará disponível para ser resgatado na Venda. Caso alguma inconsistência seja verificada gerará exceção.
Parâmetro | Significado | Tipo | Tamanho | Aceita Nulo | Default | Domínio | Coluna Retorno? |
---|---|---|---|---|---|---|---|
CODFIL | Filial da DAV | CHAR | 3 | ||||
NUMPED | Número da DAV ou Pré-Venda | CHAR | 8 | ||||
TIPPED | Tipo Pedido/OS | CHAR | 1 | 'O' | O - DAV
P - Pré-Venda |
CANCELA_DAV
Função responsável pelo cancelamento de uma DAV.
Obs.: Função não existente para Pré-Venda por obrigação do PAF. Caso não seja possível o cancelamento gerará exceção.
Parâmetro | Significado | Tipo | Tamanho | Aceita Nulo | Default | Domínio | Coluna Retorno? |
---|---|---|---|---|---|---|---|
CODFIL | Filial da DAV | CHAR | 3 | ||||
NUMPED | Número da DAV ou Pré-Venda | CHAR | 8 |
Procedimentos para Assinatura
Os métodos de integração de DAV devem ser executados em uma sessão de banco de dados assinada.
Isso quer dizer que os comandos de integração de DAV devem ser precedidos do comando RegistraAcesso.
O método está descrito no artigo Integração de Banco via Rotinas de Importação.
Impressão de DAV
Não é permitido que o DAV/Pré-venda seja impresso mais de uma vez.
Com isso, quem quiser implementar a rotina de impressão deve se preocupar em mandar o parâmetro ORCIMP = 'T' no ENVIA_DAV.
No caso de uma tentativa de reimpressão o sistema deve apresentar a seguinte mensagem:
PAF Req VI item 11 - É vedada a reimpressão de DAV.
Alterações
Versão 5.3
- Remoção do método ASSINA_DAV.
Versão 5.2A
- Inclusão do campo LOTEXT no ENVIAITEM_DAV.
Versão 5.0G
- Inclusão do campo ORCIMP no ENVIA_DAV.
- Inclusão do campo FLGEST no ENVIAITEM_DAV.
- Substituição da função EXCLUIITEM_DAV por CANCELAITEM_DAV.
- Inclusão de comentários Procedimentos para Assinatura explicando como utilizar RegistraAcesso ao invés de ASSINA_DAV.
- Inclusão de novas colunas nos parâmetros de ConcatenaIOR.
- Bloqueio para reimpressão de DAV.