quinta-feira, 28 de novembro de 2013

API de Efetivação de Requisições e Itens das Requisições ( Datasul )


Objetivo: Efetivar as tabelas de Requisição e Itens da Requisição.

Funcionamento: Realiza-se a chamada através de um comando RUN normal, passando-se as temp-tables carregadas com as informações necessárias à efetivação das tabelas requisicao e it-requisicao. A sintaxe para a chamada é:

run cdp/cdapi354.p  (input  table tt-versao-integr,                    
                     output table tt-erros-geral,
                     input  table tt-requisicao,
                     input  table tt-it-requisicao).
  
Parâmetros: Os parâmetros utilizados pela API são:
-          tt-versão-integr – Temp-table que contém a versão de integração da API (atualmente 001), e a origem do registro (Ex Multiplanta, EDI...).

-          tt-requisicao       –   Temp table que contém as requisições a serem efetivadas.

-          tt-it-requisicao  – Temp-table que contém os itens das requisições a serem efetivadas.



Retorno:  Temp-table tt-erros-geral - tem a finalidade de retornar os erros da api de efetivação da tabela tt-requisicao e tt-it-requisicao para a pré-api, esta tt-erros-geral é padronizada para o multiplanta e EDI, pois as api's de efetivação podem ser usadas também pelo EDI.


def temp-table tt-versao-integr no-undo
    field cod-versao-integracao as integer format "999"
    field ind-origem-msg        as integer format "99".

def temp-table tt-erros-geral no-undo
    field identif-msg           as char    format "x(60)"
    field num-sequencia-erro    as integer format "999"
    field cod-erro              as integer format "99999"   
    field des-erro              as char    format "x(60)"
    field cod-maq-origem        as integer format "999"
    field num-processo          as integer format "999999999".

def temp-table tt-requisicao like requisicao
    field cod-maq-origem-mp as   integer format "999"       initial 0
    field num-processo      as   integer format ">>>>>>>>9" initial 0
    field num-sequencia     as   integer format ">>>>>9"    initial 0
    field ind-tipo-movto    as   integer format "99"        initial 1
    index ch-codigo is primary  cod-maq-origem-mp
                                num-processo
                                num-sequencia.

def temp-table tt-it-requisicao like it-requisicao
    field cod-maq-origem   as   integer format "999"       initial 0
    field num-processo     as   integer format ">>>>>>>>9" initial 0
    field num-sequencia    as   integer format ">>>>>9"    initial 0
    field ind-tipo-movto   as   integer format "99"        initial 1
    index ch-codigo is primary  cod-maq-origem
                                num-processo
                                num-sequencia.

for each requisicao no-lock where
    requisicao.nr-requisicao = 470070,
    each it-requisicao of requisicao no-lock:
    disp it-requisicao.nr-requisicao 
         it-requisicao.sequencia     
         it-requisicao.it-codigo     
         it-requisicao.qt-requisitada
         it-requisicao.qt-atendida   
         it-requisicao.qt-a-atender  
         it-requisicao.ct-codigo     
         it-requisicao.sc-codigo     
         it-requisicao.conta-contabil
         it-requisicao.un            
         it-requisicao.narrativa     
         it-requisicao.dt-entrega    
         it-requisicao.situacao      
         it-requisicao.cod-estabel   
         it-requisicao.nome-abrev    
         it-requisicao.cod-refer     
         it-requisicao.ep-codigo     
         it-requisicao.char-2        
         it-requisicao.estado        
         it-requisicao.prioridade-aprov
         it-requisicao.val-item  
         it-requisicao.preco-unit
         it-requisicao.preco-unit
         with 1 column width 300.

    create tt-it-requisicao.
    buffer-copy it-requisicao to tt-it-requisicao.
    assign tt-it-requisicao.sequencia = it-requisicao.sequencia + 10.

    create tt-versao-integr.
    assign tt-versao-integr.cod-versao-integracao = 001
           tt-versao-integr.ind-origem-msg        = 01.

    run cdp/cdapi354.p (input  table tt-versao-integr,
                        output table tt-erros-geral,
                        input  table tt-requisicao,
                        input  table tt-it-requisicao).

    if can-find(first tt-erros-geral) then do:
        for each tt-erros-geral no-lock:
            message tt-erros-geral.cod-erro skip tt-erros-geral.des-erro view-as alert-box.
        end.
    end.
end.

Nenhum comentário:

Postar um comentário