Árvore de páginas

Documento de API

Produto:

Datasul

Ocorrência:

Documentação de API

Nome Físicocpp/cpapi014.p 

 

Considerações Gerais

 

Objetivo

Efetuar a transferência dos materiais dos depósitos de armazenagem para o depósito de processo. Permite também realizar a devolução total ou parcial dessas transferências. O programa atua exclusivamente com as requisições sumarizadas, geradas pelo programa CP0304, o qual agrupa as necessidades de um item para várias ordens em uma única requisição. As alocações também são tratadas por esse programa, realizando a transferência dos saldos alocados.

 

Funcionamento

A API pode ser chamada de duas formas: A padrão (batch) e a persistente.

Na forma padrão, realiza-se a chamada através de um comando RUN normal, passando-se as temp-tables carregadas com as informações necessárias ao processamento de uma ou mais transferências.

A sintaxe para a chamada é:

run cpp/cpapi014.p  (input table tt-transf,

                                 input-output table tt-erro,

                                 input l-deleta-erros)

 

A execução na forma persistente, permite apenas o “carregamento” na memória do código da API, sem a execução de nenhuma transferência, devendo a temp-table ser passada sem nenhum registro. Uma vez carregada, a API permite a execução de diversos “métodos”, que poderão ser chamados de forma interativa, englobando todo o processo de transferência. Esses “métodos” são procedures que são acessadas através de um “handle” que é retornado quando o programa é executado de forma persistente.

A sintaxe para executar a API em modo persistente é:

run cpp/cpapi014.p persistent set h-handle (input        table tt-transf,

                                                                      input-output table tt-erro,

                                                                      input        l-deleta-erros)

 

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

 

Parâmetros: Os parâmetros utilizados pela API são:

- tt-rep-transf – Temp-table contendo as informações principais da transferência, tais como o percentual a ser transferido, o depósito de destino e o número da requisição sumarizada.

- tt-erro – Temp-table que retorna os erros e “avisos” retornados pela API durante o processamento das transferências.

- l-deleta-erros – Informa à API que o conteúdo anterior, eventualmente existente na temp-table de erros será eliminado logo após o início do processamento da API. Normalmente utiliza-se YES, sendo parametrizado como NO apenas se a chamada para a API fizer parte de uma transação maior, que eventualmente já tenha gerado registros na temp-table de erros e que devam permanecer após a chamada da API.

 

Além das temp-tables acima, se a API for executada em modo persistente, são utilizadas outras temp-tables a fim de passar os parâmetros para os “métodos” da API. Essas temp-tables são:

- tt-aloca – Contém as informações relativas à alocação das reservas das ordens de produção englobadas pela requisição sumarizada.

- tt-req-sum – Contém as informações relativas às requisições sumarizadas de cada item, as quais irão gerar a movimentação de transferência

 

Retorno: A API irá setar o return-value de forma a informar ao programa “chamador” se a execução foi realizada com sucesso ou não. Os valores possíveis para o return-value são: OK (execução correta) e NOK (execução com problemas). Os motivos para a rejeição do movimento são especificados na temp-table tt-erro.

 

Principais Campos: Os principais campos, utilizados pela API são:

 

- TT-TRANSF:

Tipo-trans – Determina o tipo de transação a ser realizada pela API (1 – transferência, 2 – devolução).

Nr-req-sum – Contém o número da requisição sumarizada que será processada.

Percentual – Contém o percentual a ser transferido/devolvido.

Data – Data da transação de transferência.

Cod-estabel – Código do estabelecimento (opcional).

Cod-depos-dest – Código de depósito de destino da transferência ou origem da devolução (opcional).

Cod-localiz-dest – Código de localização de destino da transferência ou origem da devolução.

Conta-contabil – Conta utilizada para a transferência (opcional).

Ct-codigo – Conta utilizada para transferência

Sc-codigo – Sub-Conta utilizada para transferência

Item-ini, Item-fim, Deposito-ini, Deposito-fim – Seleção de itens e depósitos que farão parte da transferência.

Loc-ent-única – Determina se o código de localização única de destino será utilizado.

Carrega-req-sum – Informa se a API irá carregar automaticamente uma temp-table interna com as requisições a serem processadas, ou se irá recebe-la através do método pi-recebe-tt-req-sum. Esse parâmetro deve ser YES para execução batch (padrão) e NO para execução persistente.

Procura-saldos – Informa se a API irá realizar a busca dos saldos (FIFO) automaticamente no depósito de saída informado (o default para execução batch é YES).

Prog-seg – Recebe nome do programa de origem, ou seja, do programa que está “chamando” a API de transferência

 

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

 

f-adiciona-lista     (input c-lista as char

                             input c-item  as char)

 

Retorna uma lista separada por vírgulas, contendo a lista original passada como parâmetro mais o ítem informado (c-item).

 

pi-recebe-tt-transf       (input table tt-transf)

pi-recebe-tt-req-sum   (input table tt-req-sum)

pi-recebe-tt-aloca        (input table tt-aloca)

Recebem um input parameter table contendo a temp-table correspondente. Tem por objetivo enviar para a API uma temp-table, que vai ser utilizada na execução de outros métodos.

 

pi-retorna-tt-transf       (output table tt-transf)

pi-retorna-tt-req-sum   (output table tt-req-sum)

pi-retorna-tt-aloca       (output table tt-aloca)

Retornam (por meio de um output parameter table) da API a temp-table correspondente.

               

pi-processa-transf              (input-output table tt-transf,

                                                input-output table tt-erro,

                                                input l-deleta-erros)         

Procedure principal da API de transferência, responsável pelo processamento e geração de todos os movimentos relativos à transferência. Recebe os mesmos parâmetros que a API de transferência quando executada em modo batch, processando os movimentos de estoque relativos à transferência. Através do return-value verifica-se a execução da procedure. Se for “OK”, o processo foi realizado com sucesso. Se for “NOK”, os movimentos não foram realizados.

 

pi-valida-transf    (input  l-imediato,

input  i-nr-req-sum,

output c-erro,

output c-texto)

Realiza todas as validações relativas ao movimento de transferência. O retorno da procedure ocorre através dos output parameters c-erro (que contém uma lista dos códigos de erros encontrados) e c-texto (que contém uma lista de textos eventualmente associados a cada erro). Também é utilizado o return-value (“OK” ou “NOK”). Para executar essa procedure, é necessário que a API tenha recebido a temp-table de transferência (pi-recebe-tt-transf).

 

pi-valida-req-sum (input  i-nr-ord-prod,

 input  i-seq,

 input  i-tipo-trans,

 input  l-imediato,

 output c-erro,

 output c-texto)

Valida um registro da temp-table de req-sum, localizado através dos parâmetros i-nr-req-sum e i-seq, que contém respectivamente o número da requisição sumarizada e a sequência do registro, sendo que esses campos constituem a chave primária e única da temp-table tt-req-sum. Os parâmetros l-imediato, c-erro, c-texto e também o return-value funcionam como nas procedures anteriores. É necessário que a temp-table de req-sum já esteja carregada na instância da API. O parâmetro i-tipo-trans informa se a transação é uma transferência (1) ou devolução (2).

 

pi-valida-alocacao (input  i-nr-req-sum,

  input  i-seq,

  input  i-tipo-trans

  input  l-imediato,

  output c-erro,

  output c-texto)

Realiza a validação de um registro da temp-table de alocações. Os demais parâmetros e o return-value seguem o funcionamento das procedures anteriores.

 

pi-finalizar

Finaliza a execução persistente da API, eliminando o código da memória e tornando o handle inválido. Deve ser executada após o término de todos os movimentos, de preferência na saída do programa “chamador”.

 

pi-verifica-saldo   (input i-transf-dev,

input c-cod-estabel,

input c-cod-depos-dest)

Verifica se as requisições existentes na temp-table tt-req-sum possuem ou não saldo disponível para serem atendidas. O campo c-cod-estabel indica o estabelecimento onde será realizada a busca de saldos. O campo i-transf-dev deve conter o valor 1 (transferência) ou 2 (devolução). O parâmetro c-cod-depos-dest contém o depósito de destino da transferência ou de origem da devolução. Para que essa procedure seja executada, é necessário que a temp-table tt-req-sum tenha sido previamente carregada.

 

pi-carrega-tt-req-sum

Cria internamente as temp-tables de requisições (tt-req-sum) e de alocações (tt-aloca), podendo as mesmas serem obtidas através da execução dos métodos pi-retorna-tt-req-sum e pi-retorna-tt-aloca. Para que a execução dessa procedure tenha êxito, a temp-table de transferência (tt-transf) deve ter sido previamente carregada.