Árvore de páginas

Documento de API

Produto:

Datasul

Ocorrência:

Documentação de API

Nome Físicorep/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.