Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Migration of unmigrated content due to installation of a new plugin

Documento de API

Produto:

Datasul

Ocorrência:

Documentação de API

Nome Físico
laphtml
utp/
mlahtml002p
ut-webservicetaf.p

...


Considerações Gerais


Objetivo 


O objetivo desta API é fornecer dados sobre pendências do módulo do MLA para o documento Solicitação de Compra (Total), estejam elas pendentes de aprovações, aprovadas ou reprovadas.

 

Funcionamento

 

A API fornece basicamente dois tipos de informações: listagem de documentos (neste caso solicitações de compra) e/ou detalhe um documento (neste caso solicitação de compra).

 

realizar a integração das informações do produto Datasul com o TAF, através do Web Service.


Funcionamento

 A A sintaxe para a chamada da API, que deve ser de forma persistente: 

run

laphtml

utp/

mlahtml002p

ut-webservicetaf.p persistent set h-handle.

...

A variável denominada h-handle irá receber o “handle” do programa, permitindo o acesso aos “métodos” internos da API.

Método Negócio

...

Quando a API estiver executada em modo persistente, os seguintes métodos estarão disponíveis para execução:

listagemDocumentos

VerificaConexaoTAF

Requisito

Listagem de pendências do MLA (em várias situações) do documento de Solicitação de compra – por total

Teste de conexão com o Web Service

Sintaxe

define variable c-url as character no-undo.
define variable c-porta as character no-undo.
define variable l-conexao as character no-undo.

RUN verificaConexaoTAF

Sintaxe

{laphtml/mladados.i}

 

RUN listagemDocumentos

in h-handle (

input  iCodTipDoc

input c-url ,

                                                              

                                                              input 

tipoDoc

c-porta,

                                                               input dtIni,

                                                               input dtFim,

                                                               output table ttDados

                                                              output l-conexao).                                                                       

Descrição

Através dos parâmetros passados para a procedure, ela retorna

os registros para listagem dos documentos (Solicitação de compra – total)

a variável lógica indicando se foi possível conectar no Web Service do TAF.

Parâmetros

Tipo

Descrição

iCodTipDoc

c-url

INTEGER

CHARACTER

Código do tipo de documento (neste caso para solicitação de compra por total, informar 2)

tipoDoc

CHARACTER

Tipo de documento a ser apresentado. As opções que podem ser utilizadas são:

 

prin: Documentos pendentes de aprovação

saida: Documentos aprovados, rejeitados e reaprovados (histórico de aprovação)

alt: Documentos pendentes como usuário alternativo

mes: Documentos como usuário mestre

ambos: Documentos pendente de aprovação como usuário principal e como alternativo

aprov: Documentos aprovados e reaprovados

reprov: Documentos reprovados

dtIni

DATE

Data de início para consideração dos documentos já aprovados, rejeitados, reaprovados (histórico)

dtFim

DATE

Data de término para consideração dos documentos já aprovados, rejeitados, reaprovados (histórico)

 

As datas somente são utilizadas para o histórico e caso não sejam informadas serão considerados 30 dias.                                     

Retorno

A procedure retorna uma temp-table, do tipo ttDados, que está definida na include laphtml/mladados.i.

Nesta temp-table contém dados da temp-table  tt-requisicao-lista, que é detalhada na tabela mais abaixo.

 

Exemplo de registro que poderiam existir na tt-requisicao-lista:

 

ttDados.cTable = “tt-requisicao-lista”

ttDados.iRow = 1

ttDados.cField = “nr-requisicao”

ttDados.cValue = “3456”

 

ttDados.cTable = “tt-requisicao-lista”

ttDados.iRow = 1

ttDados.cField = “cod-estabel”

ttDados.cValue = “EST1”

 

ttDados.cTable = “tt-requisicao-lista”

ttDados.iRow = 1

ttDados.cField = “nome-abrev”

ttDados.cValue = “Usuário XXX”

ttDados

Entrada/Saída

Temp-table com dados da listagem em formato único.

Saída

Atributo

Tipo

Descrição

Obrigatório

Evolução

cTable

CHARACTER

Nome da temp-table

Sim

Não se aplica

iRow

INTEGER

Sequencial de registro

Sim

Não se aplica

cField

CHARACTER

Nome do campo da temp-table

Sim

Não se aplica

cValue

CHARACTER

Valor do campo

Sim

Não se aplica

tt-requisicao-lista

Entrada/

Saída

Temp-table com dados de solicitação de compra para serem apresentados na listagem

Saída

Atributo

Tipo

Formato

Descrição

Obrigatório

cod-estabel

CHARACTER

X(5)

Estabelecimento

Sim

nr-requisicao

INTEGER

>>>,>>>,>>9

Requisição

Sim

nome-abrev

CHARACTER

X(12)

Requisitante

Sim

situacao

CHARACTER

X(10)

Situação

Sim

estado

CHARACTER

X(12)

Estado

Sim

valor

DECIMAL

->>,>>>,>>9.99

Valor

Sim

situacao-doc

INTEGER

>9

Situação da pendência

Sim

situacao-doc-desc

CHARACTER

X(15)

Descrição da situação

Sim

nr-trans

INTEGER

>>>,>>>,>>9

Número da transação (MLA)

Sim

alternativo

LOGICAL

YES/NO

Indica que é uma pendência como alternativo

Sim

mestreLOGICALYES/NOIndica que é uma pendência como mestreSim

cod-usuar

CHARACTER

X(12)

Aprovador

Sim

mla-doc-pend-aprov-valor-doc

DECIMAL

->>,>>>,>>9.99

Valor do documento

Sim

chave-doc

CHARACTER

X(40)

Chave do documento

Sim

chave-doc-formatada

CHARACTER

X(70)

Chave do documento formatada

Sim

mla-ep-codigoCHARACTERX(3)Código da empresaSim
mla-cod-estabelCHARACTERX(5)Código do estabelecimentoSim
mla-desc-ep-codigoCHARACTERX(70)Nome da empresaSim
mla-desc-cod-estabelCHARACTERX(40)Nome do estabelecimentoSim
mla-nome-usuarCHARACTERX(40)Nome do aprovadorSim

 

Obs.: Se necessário alterar ou incluir informação na listagem, existe um ponto de EPC com evento com o nome de “ListagemDocs” que pode ser utilizado. Ele possui o parâmetro “Handle_ttDados”, que possui o handle da temp-table ttDados.

listagemDocumentosEmpresaEstab

Requisito

Listagem de pendências do MLA (em várias situações) do documento de Solicitação de compra – por total por empresa e estabelecimento

Sintaxe

{laphtml/mladados.i}

 

RUN listagemDocumentosEmpresaEstab in h-handle (input cEpCodigo,

input cCodEstabel,

input  iCodTipDoc,

input  tipoDoc,

input dtIni,

input dtFim,

output table ttDados).                                                                       

Descrição

Através dos parâmetros passados para a procedure, ela retorna os registros para listagem dos documentos (Solicitação de compra – Total)

Parâmetros

Tipo

Descrição

cEpCodigoCHARACTERCódigo da empresa (Se passar em branco considera todas)
cCodEstabelCHARACTERCódigo do estabelecimento (Se passar em branco considera todos)

iCodTipDoc

INTEGER

Código do tipo de documento (neste caso para solicitação de compra por total, informar 2)

tipoDoc

CHARACTER

Tipo de documento a ser apresentado. As opções que podem ser utilizadas são:

 

prin: Documentos pendentes de aprovação

saida: Documentos aprovados, rejeitados e reaprovados (histórico de aprovação)

alt: Documentos pendentes como usuário alternativo

mes: Documentos como usuário mestre

ambos: Documentos pendente de aprovação como usuário principal e como alternativo

aprov: Documentos aprovados e reaprovados

reprov: Documentos reprovados

dtIni

DATE

Data de início para consideração dos documentos já aprovados, rejeitados, reaprovados (histórico)

dtFim

DATE

Data de término para consideração dos documentos já aprovados, rejeitados, reaprovados (histórico)

 

As datas somente são utilizadas para o histórico e caso não sejam informadas serão considerados 30 dias.                                      

Retorno

A procedure retorna uma temp-table, do tipo ttDados, que está definida na include laphtml/mladados.i.

Nesta temp-table contém dados da temp-table  tt-requisicao-lista, que é detalhada na tabela mais abaixo.

 

Exemplo de registro que poderiam existir na tt-requisicao-lista:

 

ttDados.cTable = “tt-requisicao-lista”

ttDados.iRow = 1

ttDados.cField = “nr-requisicao”

ttDados.cValue = “3456”

 

ttDados.cTable = “tt-requisicao-lista”

ttDados.iRow = 1

ttDados.cField = “cod-estabel”

ttDados.cValue = “EST1”

 

ttDados.cTable = “tt-requisicao-lista”

ttDados.iRow = 1

ttDados.cField = “nome-abrev”

ttDados.cValue = “Usuário XXX”

 

 

detalheDocumento

Requisito

Detalhe de pendências do MLA do documento de Solicitação de compra – por total

Sintaxe

{laphtml/mladados.i}

 

RUN detalheDocumento in h-handle (input  p-nr-transacao,

                                                            input  p-situacao,

                                                            output table ttDados).                                                                       

Descrição

Através dos parâmetros passados para a procedure, ela retorna as informações para detalhamento da pendência do documento (Solicitação de compra – Total)

Parâmetros

Descrição

p-nr-transacao

Número da transação da pendência (no MLA)

Retorno

p-situacao: Situação da pendência (INTEGER) – Conforme situação no MLA (doc-pend-aprov)

 

A procedure retorna também uma temp-table, do tipo ttDados, que está definida na include laphtml/mladados.i.

Nesta temp-table contém dados das temp-tables  tt-requisicao e tt-it-requisicao, que são detalhadas na tabela mais a baixo.

 

Exemplo de registro que poderiam existir na tt-requisicao:

 

ttDados.cTable = “tt-requisicao”

ttDados.iRow = 1

ttDados.cField = “nr-requisicao”

ttDados.cValue = “3456”

 

ttDados.cTable = “tt-requisicao”

ttDados.iRow = 1

ttDados.cField = “cod-estabel”

ttDados.cValue = “EST1”

 

ttDados.cTable = “tt-requisicao”

ttDados.iRow = 1

ttDados.cField = “desc-tp-requis”

ttDados.cValue = “Solicitação de Compra”

tt-requisicao

Entrada/

Saída

Temp-table com dados da solicitação de compra para serem apresentados no detalhamento do documento

Saída

Atributo

Tipo

Formato

Descrição

Obrigatório

nr-requisicao

INTEGER

>>>,>>>,>>9

Requisição

Sim

tp-requis

INTEGER

>9

Tipo Requisição

Sim

desc-tp-requis

CHARACTER

X(30)

Descrição Tipo Requisição

Sim

narrativa

CHARACTER

X(2000)

Narrativa Requisição

Não

ep-codigo

CHARACTER

X(3)

Empresa

Sim

desc-ep-codigo

CHARACTER

X(60)

Razão social da empresa

Sim

cod-estabel

CHARACTER

X(5)

Estabelecimento

Sim

desc-cod-estabel

CHARACTER

X(40)

Nome estabelecimento

Sim

nome-abrev

CHARACTER

X(12)

Requisitante

Sim

desc-nome-abrev

CHARACTER

X(40)

Nome requisitante

Sim

cod-lotacao

CHARACTER

X(20)

Lotação

Sim

desc-cod-lotacao

CHARACTER

X(32)

Descrição lotação

Sim

dt-requisicao

DATE

99/99/9999

Data Requisição

Sim

loc-entrega

CHARACTER

X(30)

Local entrega

Não

total-doc

DECIMAL

>>>>>,>>>,>>9.9999

Valor total do documento

Sim

tt-it-requisicao

Entrada/

Saída

Temp-table com dados dos itens de solicitação de compra para serem apresentados no detalhamento do documento

Saída

Atributo

Tipo

Formato

Descrição

Obrigatório

it-codigo

CHARACTER

X(16)

Item

Sim

desc-it-codigo

CHARACTER

X(60)

Descrição do item

Sim

nr-requisicao

INTEGER

>>>,>>>,>>9

Requisição

Sim

ct-codigo

CHARACTER

X(20)

Conta

Não

desc-ct-codigo

CHARACTER

X(40)

Descrição da conta

Não

sc-codigo

CHARACTER

X(20)

Sub-conta

Não

desc-sc-codigo

CHARACTER

X(40)

Descrição sub-conta

Não

sequencia

INTEGER

>>9

Sequência

Sim

un

CHARACTER

X(2)

Unidade de medida

Sim

desc-un

CHARACTER

X(15)

Descrição da unidade medida

Sim

narrativa

CHARACTER

X(2000)

Narrativa

Não

qt-requisitada

DECIMAL

>>>,>>>,>>9.9999

Quantidade requisitada

Sim

qt-a-atender

DECIMAL

>>>,>>>,>>9.9999

Quantidade a atender

Não

dt-entrega

DATE

99/99/9999

Data entrega

Sim

preco-unit

DECIMAL

>>>>>,>>>,>>9.99999

Preço unitário

Não

cod-utiliz

CHARACTER

X(12)

Código Utilização

Não

desc-cod-utiliz

CHARACTER

X(40)

Descrição Código Uitlização

Não

total-item

DECIMAL

>>>>>,>>>,>>9.9999

Total do Item

Sim

valor-unit

DECIMAL

>>>>>,>>>,>>9.9999

Valor unitário

Sim

cod-refer

CHARACTER

X(8)

Referência

Sim

desc-cod-refer

CHARACTER

X(32)

Descrição da referência

Sim

urgente

LOGICAL

YES/NO

Urgente

Sim

homologa

LOGICAL

YES/NO

Homola fornecedor

Sim

afeta-qualidade

LOGICAL

YES/NO

Afeta Qualidade

Sim

num-ord-inv

INTEGER

>>>,>>9

Ordem Investimento

Não

prioridade

CHARACTER

X(15)

Prioridade

Sim

Nota
titleNota:

Se necessário alterar ou incluir informação no detalhamento, existe um ponto de EPC com evento com o nome de “DetalheDoc” que pode ser utilizado. Ele possui o parâmetro “Handle_ttDados”, que possui o handle da temp-table ttDados.

Endereço/IP do serviço fornecido pelo Web Service

c-porta

CHARACTER

Porta do serviço fornecido pelo Web Service.

l-conexao

LOGICAL

Retorna a yes/no para o teste de conexão com o Web Service

Retorno

O retorno da variável lógica indica se foi possível ou não conectar com o Web Service.

pi-executa-integracao-taf

Requisito

Permite realizar a integração do extrator Datasul com o TAF através do Web Service.

Sintaxe

RUN pi-executa-integracao-taf in h-handle (input table tt-tafst2,
output i-cod-retorno,
output c-desc-retorno).                                                                       

Descrição

É enviado a temp-table tt-tafst2 com as informações a serem integradas no TAF e o retorno com o código e descrição de erro ou integração realizada com sucesso.

Parâmetros

Tipo

Descrição

i-cod-retornoINTEGERCódigo do retorno da integração com o Web Service
c-desc-retornoCHARACTERDescrição do retorno da integração com o Web Service
Retorno

i-cod-retorno/c-desc-retorno:
"200/201: Integração realizada com sucesso! Número do Ticket: *TAF+DATA+HORAS+SEGUNDOS*" (Ticket de integração no TAF, formado pelos campos tt-tafst2.TAFDATA + tt-tafst2.tafhora)
"401: Nome de usuário ou senha incorretos"
"404: Erro de Conexão, por favor, verifique as parametrizações"
"405: Erro. Conteúdo inválido no campo Resource, por favor, verifique as parametrizações."

Caso a integração retorne um código diferente dos citados acima, o retorno será o seguinte:
"Ocorreu um erro. Gentileza entrar em contato com o canal de atendimento."




Nota
titleNota:

A pi-executa-integração-taf chama a procedure privada setupConnectionTAF, onde realiza as devidas configurações e validação do usuário e senha (se a autenticação estiver ativa) no serviço e demais informações cadastradas no programa CD0101, pasta integração II.




tt-tafst2

Envio

Temp-table com dados para envio das informações para a integração.
No banco MOVIFIS (EMS2) existe a tabela TAFST1 que atende as informações necessárias para a integração, então, a temp-table tt-tafst2 pode ser like TAFST1.

Envio

Atributo

Tipo

Formato

Descrição

Obrigatório

taffil

CHARACTER

X(10)

Código Identificador da filial do ERP emissor.

Sim

tafseqCHARACTERX(03)Sequência do arquivo; A Mensagem em TAFMSG pode ser enviada em mais de 1 registro, para isso deve-se repetir as informações dos demais campos e alterar a sequencia de acordo com a ordem das informações enviadas.Sim
taftpregCHARACTERX(10)Chave do Registro.Sim
tafkeyCHARACTERX(100)Array contendo os TAFKEY requisitados.Sim
tafcodmsgCHARACTERX(1)Determina se o arquivo enviado em TAFMSG é .txt  (1)ou .Xml(2)Sim
tafstatusCHARACTERX(1)Fixo "1"Não
tafticketCHARACTERX(1)Fixo ""Não
tafdataCHARACTERString - AAAAMM01Data da Integração.Sim
tafhoraCHARACTERString - HH:MM:SSHora da Integração.Sim
r_e_c_n_oINTEGER9999 Numero do RecNo do ultimo registro retornado na requisição.Sim
tafmsgMemo - Base64X(15000) Arquivo/Evento a ser integrado, a mensagem deve ser enviada com criptografia BASE64.Sim

...