Documento de API
Produto: | Datasul |
Ocorrência: | Documentação de API |
Nome Físico | rep/reapi190.p |
Considerações Gerais
Objetivo
Gerar notas fiscais no módulo Recebimento pela importação das temp-tables a serem passadas como parâmetros de entrada para a API.
Funcionamento
- Devem ser passadas 6 (seis) temp-tables de entrada e 1 (uma) temp-table de saída com informações e parâmetros para a criação das notas.
- Podem ser importados mais de um documento de uma única vez.
- Importa somente notas de Compra e Devolução de cliente.
- Não trata notas do tipo: Transferência, Operação com Terceiros e Rateio de Frete, bem como importação de notas para o Recebimento Físico.
- Não está preparada para tratar notas fiscais de devolução de item composto/configurado.
Todas as temp-tables são passadas como parâmetro através do comando INPUT PARAM TABLE, com exceção da última, que deve ser passado com OUTPUT PARAM TABLE.
Exemplo:
run rep/reapi190.p (input table tt-versao-integr, input table tt-docum-est, input table tt-item-doc-est, input table tt-dupli-apagar, input table tt-dupli-imp, input table tt-unid-neg-nota, output table tt-erro). |
- A API funciona da seguinte forma: Recebe como parâmetros as temp-tables, faz as criticas das mesmas, caso não tenha ocorrido nenhum problema faz a importação da(s) notas(s). Caso houver algum problema na importação, os erros encontrados serão gravados na temp-table de saída.
- Os atributos que não possuem nenhuma utilização no Datasul-EMS 2.0 podem ser deixados em branco e as definições das temp-tables devem seguir exatamente as descrições contidas neste documento, para que não ocorram conflitos na chamada da api.
Tabelas Temporárias
Nos atributos das tabelas temporárias de entrada e saída:
tt-versao-integr | Entrada/Saída | ||||
Deverá ser armazenada nesta temp-table a versão de integração da API. | Entrada | ||||
Atributo | Tipo | Formato | Descrição | Obrigatório | Evolução |
Registro | Integer | “9” | Indica qual registro está sendo importado no momento: 1 – tt-versao-integr.; 2 - tt-docum-est; 3 – tt-item-doc-est; 4 – tt-dupli-apagar; 5 –- tt-dupli-imp; | Sim |
|
Cod-versao-integracao | Integer | “999” | Controle interno da API que consiste se a versão de integração que o programa chamador espera da API é a versão atual da API – esta versão é incrementada sempre que houver alguma alteração no layout das temp-tables´s, ou na forma de passar e receber os parâmetros. | Sim |
|
tt-docum-est | Entrada/Saída | ||||
Nesta temp-table deverão ser armazenadas todas as informações com relação ao cabeçalho da(s) nota(s) importada(s). | Entrada | ||||
Atributo | Tipo | Formato | Descrição | Obrigatório | Evolução |
Registro | Integer | “9” | Indica qual registro está sendo importado no momento: 1 – tt-versao-integr.; 2 - tt-docum-est; 3 – tt-item-doc-est; 4 – tt-dupli-apagar; 5 –- tt-dupli-imp; | Sim |
|
Serie-docto | Character | “x(05)” | Série utilizada pela nota. | Sim |
|
Nro-docto | Character | “x(16)” | Número da nota fiscal de entrada. | Sim |
|
Cod-emitente | Integer | “>>>>>>>>9” | Emitente do documento. | Sim |
|
Nat-operacao | Character | “X(06)” | Natureza de operação do documento. | Sim |
|
Cod-observa | Integer | “9” | Código de observação da nota fiscal. | Sim |
|
Cod-estabel | Character | “x(5)” | Estabelecimento. | Sim |
|
Estab-fisc | Character | “x(5”) | Estabelecimento para geração dos documentos fiscais. | Sim |
|
Ct-transit | Character | “x(20)” | Conta Transitória | Sim |
|
Sc-transit | Character | “x(20)” | Sub-Conta Transitória | Sim |
|
Dt-emissao | Date | “99/99/9999” | Data de emissão da nota fiscal. | Sim |
|
Dt-trans | Date | “99/99/9999” | Data da transação. | Sim |
|
Usuario | Character | “x(12)” | Usuário responsável pela atualização do documento. | Sim |
|
Uf | Character | “x(4)” | Unidade de Federação. | Sim |
|
Via-transp | Integer | “9” | Via de transporte. | Sim |
|
Mod-frete | Integer | “>9” | Modalidade de frete: CIF ou FOB | Sim |
|
Nff | Logical | “Sim/Não” | Nota fiscal fatura. | Sim |
|
Tot-peso | Decimal-4 | “>>>>,>>>,>>9.9999” | Peso total. | Sim |
|
Tot-desconto | Decimal-2 | “>>>>>,>>>,>>9.9” | Total do desconto. | Sim |
|
Valor-frete | Decimal-2 | “>>>>>,>>>,>>9.9” | Despesas com frete. | Sim |
|
Valor-seguro | Decimal-2 | “>>>>>,>>>,>>9.9” | Despesas com seguro. | Sim |
|
Valor-embal | Decimal-2 | “>>>>>,>>>,>>9.9” | Despesas com embalagem. | Sim |
|
Valor-outras | Decimal-2 | “>>>>>,>>>,>>9.9” | Outras despesas, alem de Frete, Seguro ou Embalagem | Sim |
|
Valor-mercad | Decimal-2 | “>>>>>,>>>,>>9.9” | Valor da mercadoria. | Sim |
|
Dt-venc-ipi | Date | “99/99/9999” | Data para vencimento do IPI. | Sim |
|
Dt-venc-icm | Date | “99/99/9999” | Data para vencimento do ICMS. | Sim |
|
Tot-valor | Decimal-2 | “>>>>,>>>,>>>,>>9.99” | Valor total da nota fiscal. | Sim |
|
Efetua-calculo | Integer | “9” | Se efetua cálculos na nota fiscal (impostos, rateio (frete, desconto, despesa) 1- Efetua cálculos ; Diferente de 1 – Assume valores informados na nota. | Sim |
|
Observação | Character | “x(2000)” | Observação da nota fiscal | Não |
|
Cotação-dia | Descimal-8 | “>>>,>9.99999999” | Cotação do dia (Utilizado pelo Módulo Importação) | Não |
|
Embarque | Character | “x(12)” | Número do embarque (Utilizado pelo Módulo Importação) | Não |
|
Sequencia | Integer | "999999" | Identifica o documento na listagem de erros | Sim |
|
Esp-docto | Integer | “>9” | Espécie do documento | Sim |
|
Rec-fisico | Logical | “Sim/Não” | Utilização recebimento físico | Não |
|
Origem | Character | “ ! ” | Origem do Documento | Não |
|
Pais-origem | Character | “x(20) “ | Informar : “ re1001” | Sim |
|
Gera-unid-neg | Integer | “9” | Indica se irá gerar as unidades de negócio de acordo com o item ou família de material. Onde: 0 = Não Gera Unidade de Negócio 1 = Gera Unidade de Negócio Se for informada uma unidade de negócio na temp-table tt-unid-neg-nota, este parâmetro será ignorado. (Esta informação será utilizada somente para clientes que possuam integração com o Contas a Pagar do EMS 5 e utilizem unidade de negócio). | Não |
|
nome-transp | Character | “x(12)” | Placa 1 | Não |
|
Cod-placa-1 | Character | “x(07)” | Placa 2 | Não |
|
Cod-placa-2 | Character | “x(07)” | Placa 3 | Não |
|
Cod-placa-3 | Character | “x(07)” | UF da Placa 1 | Não |
|
Cod-uf-placa-1 | Character | “x(02)” | UF da Placa 2 | Não |
|
Cod-uf-placa-2 | Character | “x(02)” | UF da Placa 3 | Não |
|
Cod-uf-placa-3 | Character | “x(02)” | Campo livre | Não |
|
Char-1 | Character | “x(100)” | Chave de acesso da NF-e | Não |
|
Cod-chave-aces-nf-eletro | Character | “x(60)” | Situação Nota Fiscal de Entrada | Sim |
|
Cdn-sit-nfe | Integer | “9” | Modalidade de frete | Não |
|
Cod-modalid-frete | Character | “x(08)” | Indica qual registro está sendo importado no momento: 1 – tt-versao-integr.; 2 - tt-docum-est; 3 – tt-item-doc-est; 4 – tt-dupli-apagar; 5 –- tt-dupli-imp; | Não |
|
tt-item-doc-est | Entrada/Saída | ||||
Deverão ser armazenadas nesta temp-table as informações gerais dos itens pertencentes a nota fiscal. | Entrada | ||||
Atributo | Tipo | Formato | Descrição | Obrigatório | Evolução |
Registro | Integer | “9” | Indica qual registro está sendo importado no momento: 1 – tt-versao-integr.; 2 - tt-docum-est; 3 – tt-item-doc-est; 4 – tt-dupli-apagar; 5 –- tt-dupli-imp; | Sim |
|
It-codigo | Character | “x(16)” | Código do item. | Sim |
|
Cod-refer | Character | “x(8)” | Código da Referência. | Não |
|
Numero-ordem | Integer | “zzzzz9,99” | Número da ordem de compra. | Sim |
|
Parcela | Integer | “>>>>9” | Parcela. | Sim |
|
Encerra-pa | Logical | “Sim/Não” | Encerra Parcela. | Sim |
|
Nr-ord-prod | Integer | “>>>,>>>,>>9” | Número da ordem de produção. | Sim |
|
Cod-roteiro | Character | “x(16)” | Código do roteiro. | Não |
|
Op-codigo | Integer | “>>>>9” | Código da operação. | Não |
|
Item-pai | Character | “x(16)” | Item pai. | Sim |
|
Ct-codigo | Character | “x(20)” | Conta Transitória | Sim |
|
Sc-codigo | Character | “x(20)” | Sub-Conta Transitória | Sim |
|
Baixa-ce | Logical | “Sim/Não” | Indica se item deve ser baixado do estoque. | Sim |
|
Etiquetas | Integer | “zz9” | Quantidade de etiquetas. | Sim |
|
Qt-do-forn | Decimal-4 | “>>>>,>>>,>>9.9999” | Quantidade na unidade de medida do emitente. | Sim |
|
Quantidade | Decimal-4 | “>>>>>,>>9.9999” | Nossa Quantidade. | Sim |
|
Preco-total | Decimal-2[2] | “>>>>,>>>,>>9.99” | Preço total do item, sem desconto, sem IPI e com ICMS | Sim |
|
Desconto | Decimal-2[2] | “>>>>,>>>,>>9.99” | Desconto. | Não |
|
Vl-frete-cons | Decimal-2 | “>>>>,>>>,>>9.99” | Valor do frete constante. | Não |
|
Despesas | Decimal-2[2] | “>>>>,>>>,>>9.99” | Valor das despesas. | Não |
|
Peso-liquido | Decimal-5 | “>>>>,>>9.99999” | Peso líquido. | Sim |
|
Cod-depos | Character | “x(3)” | Código do deposito. | Sim |
|
Cod-localiz | Character | “x(10)” | Código da localização. | Não |
|
Lote | Character | “x(10)” | Lote ou número de serie. | Sim |
|
Dt-vali-lote | Date | “99/99/9999” | Data de validade do lote. | Não |
|
Class-fiscal | Character | “9999.99.99” | Classificação fiscal. | Sim |
|
Aliquota-ipi | Decimal-2 | “>>9.99” | Alíquota do IPI. | Não |
|
Cd-trib-ipi | Integer | “>9” | Código de tributação do IPI. | Sim |
|
Base-ipi | Decimal-2[2] | “>>>>,>>>,>>9.99” | B ase de cálculo do IPI. | Sim |
|
Valor-ipi | Decimal-2[2] | “>>>>,>>>,>>9.99” | Valor do IPI. | Sim |
|
Aliquota-iss | Decimal-2 | “>>9.99” | Alíquota do ISS. | Não |
|
Cd-trib-iss | Integer | “>9” | Código de tributação do ISS. | Sim |
|
Base-iss | Decimal-2[2] | “>>>>,>>>,>>9.99” | Base de cálculo do ISS. | Sim |
|
Valor-iss | Decimal-2[2] | “>>>>,>>>,>>9.99” | Valor do ISS. | Sim |
|
Base-pis | Decimal-2 | “>>>,>>>,>>>,>>9.99” | Base Cálculo PIS. | Sim |
|
Valor-pis | Decimal-2 | “>>>,>>>,>>>,>>9.99” | Valor PIS. | Sim |
|
cd-trib-pis | Integer | “9” | Trib. PIS. | Sim |
|
Aliquota-pis | Decimal-2 | “>>9.99” | Alíquota PIS. | Sim |
|
Base-cofins | Decimal-2 | “>>>,>>>,>>>,>>9.99” | Base Cálculo COFINS. | Sim |
|
Valor-cofins | Decimal-2 | “>>>,>>>,>>>,>>9.99” | Valor COFINS. | Sim |
|
cd-trib-cofins | Integer | “9” | Trib. COFINS. | Sim |
|
Aliquota-cofins | Decimal-2 | “>>9.99” | Alíquota COFINS. | Sim |
|
Aliquota-icm | Decimal-2 | “>>9.99” | Alíquota do ICMS. | Não |
|
Cd-trib-icm | Integer | “>9” | Código de tributação do ICMS. | Sim |
|
Base-icm | Decimal-2[2] | “>>>>,>>>,>>9.99” | Base de cálculo do ICMS. | Sim |
|
Valor-icm | Decimal-2[2] | “>>>>,>>>,>>9.99” | Valor do ICMS. | Sim |
|
Base-subs | Decimal-2[2] | “>>>>>,>>>,>>9.9” | Base de cálculo da substituição tributária. | Sim |
|
Valor-subs | Decimal-2[2] | “>>>>>,>>>,>>9.9” | Valor da substituição tributária. | Sim |
|
Icm-complem | Decimal-2[2] | “>>>>,>>>,>>9.99” | ICMS complementar. | Sim |
|
Ind-icm-ret | Logical | “Sim/Não” | Indica se o ICMS é retido. | Sim |
|
Narrativa | Character | “x(2000)” | Narrativa | Sim |
|
Serie-comp | Character | “x(5)” | Série da Nota Fiscal de Saída | Não |
|
Nro-comp | Character | “x(16)” | Número da Nota Fiscal de Saída | Não |
|
Nat-comp | Character | “x(6)” | Natureza de Operação da Nota Fiscal de Saída | Não |
|
Seq-comp | Integer | “>>>>9” | Sequência da Nota Fiscal de Saída | Não |
|
Data-comp | Date | “99/99/9999” | Data da Nota Fiscal de Saída | Não |
|
Icm-outras | Decimal-2[2] | “>>>>,>>>,>>9.99” | Valor do ICMS outras | Não |
|
Ipi-outras | Decimal-2[2] | “>>>>,>>>,>>9.99” | Valor do IPI outras | Não |
|
Iss-outras | Decimal-2[2] | “>>>>,>>>,>>9.99” | Valor do ISS outras | Não |
|
Icm-ntrib | Decimal-2[2] | “>>>>,>>>,>>9.99” | Valor do ICMS isento | Não |
|
Ipi-ntrib | Decimal-2[2] | “>>>>,>>>,>>9.99” | Valor do IPI isento | Não |
|
Iss-ntrib | Decimal-2[2] | “>>>>,>>>,>>9.99” | Valor do ISS isento | Não |
|
val-perc-red-ipi | Decimal-2 | “>>9.9999” | Percentual Redução IPI | Não |
|
val-perc-red-icm | Decimal-2 | “>>9.9999” | Percentual Redução ICMS | Não |
|
Nr-proc-imp | Character | “x(12)” | Número do processo de importação (Utilizado pelo Módulo Importação). | Não |
|
Serie-docto | Character | “x(5)” | Série do documento. | Sim |
|
Nro-docto | Character | “x(16)” | Número do documento. | Sim |
|
Cod-emitente | Integer | “>>>>>>>>9” | Código do emitente. | Sim |
|
Nat-operacao | Character | “x(06)” | Natureza de operação | Sim |
|
Sequência | Integer | “>>>>9” | Número sequencial do item no pedido do cliente | Sim |
|
Nr-ato-concessorio* | Character | “x(20)” | Número do ato-concessorio de Drawback (Release 2.03 ou superior) | Não |
|
Per-ppm | Decimal | “>>>>,>>9.9999” | Utilizado para alimentar o campo per-ppm da tabela rat-lote. | Não |
|
Cod-unid-negoc | Character | “x(3)” | Unidade de Negócio. | Não |
|
Un | Character | “xx” | Unidadade. | Sim |
|
Cod-lote-fabrican | Character | “x(10)” | Lote Fabricante. | Não |
|
Dat-fabricc-lote | Date | “99/99/9999” | Data Fabricação. | Não |
|
Dat-valid-lote-fabrican | Date | “99/99/9999” | Validadade Lote Fabricação. | Não |
|
Nom-fabrican | Character | “x(60)” | Fabricação. | Não |
|
* Somente release 2.04 ou superior.
tt-dupli-apagar | Entrada/Saída | ||||
Deverá ser armazenada nesta temp-table as duplicatas amarradas a nota fiscal. | Entrada | ||||
Atributo | Tipo | Formato | Descrição | Obrigatório | Evolução |
Registro | Integer | “9” | Indica qual registro está sendo importado no momento: 1 – tt-versao-integr.; 2 - tt-docum-est; 3 – tt-item-doc-est; 4 – tt-dupli-apagar; 5 –- tt-dupli-imp; | Sim |
|
Parcela | Character | “x(2)” | Parcela. | Sim |
|
Nr-duplic | Character | “x(16)” | Número da duplicata. | Sim |
|
Cod-esp | Character | “!!” | Código da espécie. | Sim |
|
Tp-despesa | Integer | “>>9” | Tipo de despesa. | Sim |
|
Dt-vencim | Date | “99/99/9999” | Data de Vencimento. | Sim |
|
Vl-a-pagar | Decimal-2 | “>>>>>,>>>,>>9.9” | Valor da duplicata. | Sim |
|
Vl-desconto | Decimal-2 | “>>>>>,>>>,>>9.9” | Valor do desconto. | Sim |
|
Dt-venc-desc | Date | “99/99/9999” | Data de vencimento do desconto. | Sim |
|
Cod-ret-irf | Integer | “>>>>9’ | Código de retenção do desconto. | Sim |
|
Serie-docto | Character | “x(5)” | Série do documento. | Sim |
|
Nro-docto | Character | “X(16)” | Número da duplicata. | Sim |
|
Cod-emitente | Integer | “>>>>>>>>9” | Código do emitente. | Sim |
|
Nat-operacao | Character | “x(6)” | Natureza de operação. | Sim |
|
Mo-codigo | Integer | “>9” | Código da moeda. (Utilizado pelo Módulo Importação) | Não |
|
Vl-a-pagar-mo | Decimal-2 | “>>>>>,>>>,>>9.99” | Valor da duplicata na moeda estrangeira. (Utilizado pelo Módulo Importação) | Não |
|
tt-dupli-imp | Entrada/Saída | ||||
Deverá ser armazenada nesta temp-table os impostos da(s) duplicata(s). | Entrada | ||||
Atributo | Tipo | Formato | Descrição | Obrigatório | Evolução |
Registro | Integer | “9” | Indica qual registro está sendo importado no momento: 1 – tt-versao-integr.; 2 - tt-docum-est; 3 – tt-item-doc-est; 4 – tt-dupli-apagar; 5 –- tt-dupli-imp; | Sim |
|
Cod-imp | Integer | “>>>9” | Código do imposto. | Sim |
|
Cod-esp | Character | “!!” | Código da espécie do documento. | Sim |
|
Dt-venc-imp | Date | “99/99/9999” | Data de vencimento do imposto. | Sim |
|
Rend-trib | Decimal-2 | “->>>,>>>,>>9.99” | Rendimentos tributados. | Sim |
|
Aliquota | Decimal-2 | “>>9.99” | Alíquota. | Sim |
|
Vl-imposto | Decimal-2 | “>>>,>>>,>>>,>>9.99” | Valor do imposto. | Sim |
|
Tp-codigo | Integer | “>>9” | Tipo Receita/Despesa. | Sim |
|
Cod-retencao | Integer | “>>>>9” | Código de retenção. | Sim |
|
Serie-docto | Character | “x(5)” | Série do documento. | Sim |
|
Nro-docto | Character | “x(16)” | Número do documento. | Sim |
|
Cod-emitente | Integer | “>>>>>>>>9” | Código do emitente do documento. | Sim |
|
Nat-operacao | Character | “x(06)” | Natureza de operação. | Sim |
|
Parcela | Character | “x(2)” | Parcela do documento | Sim |
|
tt-unid-neg-nota | Entrada/Saída | ||||
Deverá ser armazenada nesta temp-table as unidades de negócio do item da nota. ( Esta informação apenas será utilizada para clientes que possuam integração com EMS 5 e utilizem unidade de negócio ). | Entrada | ||||
Atributo | Tipo | Formato | Descrição | Obrigatório | Evolução |
Registro | Integer | “9” | Indica qual registro está sendo importado no momento: 1 – tt-versao-integr.; 2 - tt-docum-est; 3 – tt-item-doc-est; 4 – tt-dupli-apagar; 5 –- tt-dupli-imp; 6 – Unidade de Negócio | Sim |
|
Cod-emitente | Integer | “>>>>>>>>9” | Código do emitente do documento. | Sim |
|
Serie-docto | Character | “x(5)” | Série do documento. | Sim |
|
Nro-docto | Character | “X(16)” | Número do documento. | Sim |
|
Nat-operacao | Character | “x(06)” | Natureza de operação. | Sim |
|
Sequencia | Integer | “>>>>9” | Sequencia do Item da Nota ao qual está relacionada a unidade de negócio | Sim |
|
Cod_unid_negoc | Character | “x(3)” | Código da Unidade de Negócio | Sim |
|
Perc-unid-neg | Decimal-4 | “>>9.9999” | Percentual da Unidade de Negócio. | Sim |
|
tt-erro | Entrada/Saída |
Para cada nota fiscal de entrada serão feitas diversas consistências. Se algum problema for identificado na importação, a API não importará a nota com inconsistências e gravará na temp-table de erros quais notas não foram importadas, o código e a descrição do erro. Fica a cargo do programa chamador identificar os erros que houveram na importação. | Saída |
Exemplo de como buscar o conteúdo desta temp-table:
for each tt-erro no-lock break by tt-erro.i-sequen: /* Quebra os erros por nota */ if first-of(tt-erro.i-sequen) and tt-erro.i-sequen > 0 /* Se for o primeiro erro da nota, imprimirá o cabeçalho da mesma */ then do: find first tt-docum-est where tt-docum-est.sequencia = tt-erro.i-sequen no-lock no-error. disp tt-docum-est.cod-estabel colon 30 tt-docum-est.serie colon 30 tt-docum-est.nro-docto colon 30 tt-docum-est.cod-emitente colon 30 tt-docum-est.nat-operacao colon 30. end.
disp tt-erro.cd-erro /* Exibirá os erros da nota */ tt-erro.mensagem. end. |
Atributo | Tipo | Formato | Descrição | Obrigatório | Evolução |
I-sequen | Integer | “9999” | Sequência da nota fiscal onde o erro ocorreu. | I-sequen | Integer |
Cd-erro | Integer | “99999” | Código do erro. | Cd-erro | Integer |
Mensagem | Character | “x(70)” | Descrição do erro. | Mensagem | Character |
Método Básico
Quando a API for executada em modo persistente, os seguintes métodos estarão disponíveis para execução:
Execução:
O programa rep/reapi190.p executará uma validação básica:
Validação: Versão de Integração
O programa verifica se o programa chamador está íntegro com a API, e isto ocorre pela verificação da versão de integração passada como parâmetro pela temp-table tt-versao-integr (campo cod-versao-integracao). Caso a versão esteja incompatível, a API abortará a execução retornando pela temp-table tt-erro o código de erro 3941.
Número do Erro | Mensagem | Ajuda |
3941 | Versão de Integração incorreta. | A versão de integração é informada por meio de parâmetros internos e o que foi informado está incompatível. Favor contatar suporte técnico. |
O programa rep/reapi190.p executará diversas validações sobre as notas a serem importadas. Caso ocorra algum erro, a nota fiscal de entrada não será importada. Cabe ao programa de origem, verificar os registros que estão com erro.