Documento de API

Produto:

Datasul

Ocorrência:

Documentação de API

Nome Físicocpp/cpapi009.p

 

Considerações Gerais

 

Objetivo

Realizar o reporte da produção por item, selecionando/gerando as ordens de produção necessárias.

 

Funcionamento

A API funciona da seguinte forma: Recebe como parâmetros as temp-tables, faz as críticas das mesmas, caso não tenha ocorrido nenhum problema realiza o reporte dos itens informados;

Se o programa chamador executa a API várias vezes para vários reportes, as temp-tables devem ser deletadas para que não gerarem duplicidade.

Devem ser passadas 5 (cinco) temp-tables de entrada/saída.

Todas as temp-tables são passadas como parâmetro por meio do comando INPUT-OUTPUT PARAMETER TABLE.

                Exemplo:

run cpp/cpapi009.p (input-output table tt-rep-prod,

                                Input table tt-serie,                               

                                Input table tt-ref-ordem,

                                input-output table tt-erro,

                                output       table tt-relatorio,             

                                input l-deleta-erros)

Tabelas Temporárias

 

Nos atributos das tabelas temporárias de entrada e saída:

 

Observação: Para a definição das temp-tables deve-se utilizar as includes: cpapi009.i.

 

tt-red-prod

Entrada/Saída

Nesta temp-table deverão ser armazenadas todas as informações com relação aos reportes a serem realizados.

Entrada

Atributo

Tipo

Formato

Valor Inicial

Obrigatório

Evolução

Nr-reporte

Integer

>>>>>>>>9

0

Sim

 

Data

Date

99/99/9999

 

Sim

 

Qt-reporte

Decimal

“>>>,>>>,>>9.9999

0

Sim

 

Qt-refugo

Decimal

“>>>,>>>,>>9.9999

0

Não

 

Qt-estorno

Decimal

“>>>,>>>,>>9.9999

0

Não

 

Usuário

Character

x(12)

?

Não

 

Hora

Character

x(8)

?

Não

 

It-codigo

Character

x(16)

?

Sim

 

Ct-refugo

Character

x(8)

?

Não

 

Sc-refugo

Character

x(8)

?

Não

 

Qt-Apr-Cond

Decimal

“>>>>>,>>9.9999

0

Não

 

Nro-docto

Character

x(16)

?

Sim

 

Serie-docto

Character

x(5)

?

Não

 

Cod-depos

Character

x(3)

?

Sim

 

Lote-serie

Character

x(10)

?

Não

 

Cod-refer

Character

x(8)

?

Não

 

Dt-vali-lote

Date

99/99/9999

?

Não

 

Cod-localiz

Char

x(10)

?

Não

 

Conta-Refugo

Char

X(17)

?

Não

 

Cod-Estabel

Char

x(3)

?

Sim

 

Conta-Aplicacao

Char

X(17)

?

Não

 

Qt-Est-Aprov

Decimal

>>>,>>>,>>9.9999

0

Não

 

Qt-Est_refugo

Decimal

>>>,>>>,>>9.9999

0

Não

 

Cod-Local-Sai

Char

x(10)

?

Não

 

Cod-Depos-Sai

Char

X(3)

?

Não

 

Loc-Sai-Única

Logical

Sim/Não

No

Não

 

l-emite-rel

Logical

Sim/Não

No

Não

 

rw-rep-prod

Rowid

 

?

Não

 

Prog-seg

Char

x(8)

?

Não

 

Time-out

Integer

>>>>>>>>9

30

Não

 

tentativas

Integer

>>>>>>>>9

10

Não

 

Cod-Versão-Integracao

Integer

999

0

Sim

 

Observação: Quando for informado um valor 0 (zero) para o campo nr-reporte, a API automaticamente irá localizar o último reporte realizado e irá utilizar esse número acrescido de 1. Além disso, será preenchido automaticamente o campo nro-docto com o número gerado.

 

tt-serie

Entrada/Saída

Deverão ser armazenadas nesta temp-table as informações referentes aos números de série dos itens que possuírem tipo-con-est = 2 (Número de Série).

Entrada

Atributo

Tipo

Formato

Valor Inicial

Obrigatório

Evolução

Nr-serie

Char

x(10)

?

Sim

 

Sequencia

Integer

 

0

Sim

 

Refugo

Logical

 

No

Não

 

Índice

Atributos

Primário

Único

 

 

sequencia

sequencia

 

 

 

 

tt-ref-ordem

Entrada/Saída

Deverão ser armazenadas nesta temp-table as informações referentes às razões para o refugo dos itens, quando o reporte for de refugo ou aprovado condicionalmente.

Entrada

Atributo

Tipo

Formato

Valor Inicial

Obrigatório

Evolução

Op-seq

Integer

>>>9

0

Não

 

Nr-ord-prod

Integer

>>>,>>>,>>9

0

Não

 

Qt-refugo

Decimal

>>>>,>>9.9999

0

Sim

 

Tipo-rejeicao

Integer

“>9

0

Sim

 

Dt-refugo

Data

99/99/9999

Today

Não

 

Codigo-rejei

Integer

>>9

0

Sim

 

Observação

Char

x(40)

?

Não

 

descricao

Char

X(30)

?

Não

 

tt-erro

Entrada/Saída

Para cada reporte serão executadas validações para ver se os documentos a serem contabilizados estão corretos. Os erros encontrados na contabilização serão gravados na temp-table tt-erro.

Saída

Atributo

Tipo

Formato

Valor Inicial

Obrigatório

Evolução

i-sequen

Integer

 

0

 

 

cd-erro

Integer

 

0

 

 

Mensagem

Character

x(255)

?

 

 


Observação:

                O atributo cd-erro possui o número do erro do cadastro de mensagem;

                O atributo mensagem possui a descrição da mensagem do cadastro de mensagem;

                O atributo i-sequen possui o número sequencial do erro.

 

tt-relatorio

Entrada/Saída

Quando o parâmetro l-emite-rel da tt-rep-prod estiver setado como yes, será gerado um relatório com os movimentos de reservas do reporte. Esse relatório fica sintetizado na tt-relatorio.

Saída

Atributo

Tipo

Formato

Valor Inicial

Obrigatório

Evolução

es-codigo

Character

x(16)

 

 

 

qt-item

Decimal

->>>>>,>>9.9999

0

 

 

Qt-estoq

Decimal

->>>>>,>>9.9999

0

 

 

Qt-Saldo

Decimal

->>>>>,>>9.9999

0

 

 

Un

Character

x(2)

 

 

 

Descrição

Character

x(18)

 

 

 

Execução

 

O programa cpp/cpapi009.p irá executar as validações, sendo que estas validações são realizadas na cpapi009.i1:

 

Número do Erro

Mensagem

Ajuda

16

Parâmetros globais não cadastrados

Parâmetros globais não cadastrados.

56

&1 inexistente

Verifique se existe uma ocorrência para o(a) &1 informado(a) em seu cadastro

1059

Parâmetros do Estoque não cadastrados

Os Parâmetros de Estoque devem ser cadastrados.

2075

Parâmetros de custos não cadastrado

Parâmetros do módulo de custos ainda não cadastrados.

200

Parâmetros da produção não cadastrados

 

4497

Parâmetros do módulo &1 não cadastrados

 

3941

Versão de integração incorreta

A versão de integração informada através dos parâmetros internos é incompatível com a versão atual da API.

Favor contatar suporte técnico.

1

&1 já existe

Já existe ocorrência em &1 com a chave informada.

1940

Tipo de reporte do Item deve ser por Item

 

1942

Política do Item deve ser Período Fixo ou Lote Econômico

 

1941

Tipo de Controle do Item deve ser Físico ou Total

 

1568

Item está obsoleto!

O item informado está obsoleto para todas as ordens ou totalmente obsoleto.

1947

Referência não pertence ao item

A referência informada não pertence ao item em questão.

1490

Conta contábil inválida!

Conta contábil não aceita movimento.

13

Estabelecimento &1 não cadastrado

Código do estabelecimento não é válido.

1586

Data deve ser maior que último médio calculado

Data deve ser maior que último médio calculado

3172

Data de fabricação não se enquadra em um período de Produção

 

3178

Depósito de saída dos componentes deve ser de &1

 

530

Depósito não cadastrado

 

2388

Conta Contábil de Refugo deve ser de Sistema.

 

3166

Depósito de destino não pode ser o de &1

 

2409

Data de validade do lote deve ser maior que a de fabricação.

Data de validade do lote inválida.

2372

Quantidade reportada deve ser maior que 0

 

2170

Soma das quantidades é maior que a quantidade reportada

Quantidade refugada e aprovada condicionalmente, supera a quantidade reportada do item.

3175

Documento já cadastrado!

 

2741

Somatório das Causas difere da quantidade de refugo

A somatória das causas informadas difere da quantidade reportada de refugo.

2739

Somatório das Causas difere da quantidade aprovada cond.

A somatória das causas informadas difere da quantidade aprovada condicionalmente.

4122

Números de série informados difere da quantidade reportada!

 

4123

Números de série refugados difere da quantidade de refugo!

 

5480

Reporte não pode ser efetuado!

Conforme parametrizado no programa "Parâmetros de Controle da Produção", não é permitida criação de ordens de produção automáticas através do "Reporte Produção Repetitiva" em casos onde o saldo das ordens em aberto não atende a quantidade que se deseja reportar.

 

A quantidade máxima a reportar, conforme as ordens em aberto, deste item é &1.

 

Cabe ao programa de origem, verificar os registros que estão com erro.

 

Funções/Includes/Procedures Externas

 

Algumas includes da API podem ser acrescentadas a um programa e utilizadas, sem a necessidade de chamadas à API. São elas:

 

{CPP/CPAPI009.I1} – Validações

Esta Include possui a declaração de uma procedure interna que permite realizar a validação dos reportes sem a necessidade de chamar a api. Para que isso aconteça, basta acrescentar essa include ao programa e colocar no local pertinente a chamada para a pi-valida-rep-prod, conforme o exemplo abaixo:

    Run pi-valida-rep-prod (input yes,

                                          output c-erro,

                                          ouput c-texto)

 

Antes da chamada dessa procedure, é necessária a criação do registro na temp-table tt-rep-prod, além dos respectivos assigns a fim de preencher a temp-table com os dados que serão validados.

O input parameter utilizado pela procedure indica se ela irá retornar logo após a ocorrência do primeiro erro, ou se irá acumulando todos os erros apontados, retornando apenas quando terminar todas as validações.

O retorno da procedure é feito por meio do “Return-Value”, o qual será “OK” para uma validação perfeita ou “NOK” para uma validação interrompida por qualquer tipo de erro. Os códigos de erros são retornados em forma de lista (separados por vírgulas), no output parâmetro c-erro. O Output parâmetro c-texto retorna um texto acessório que é necessário para a impressão de algumas mensagens. Quando não for necessário, é retornado em branco.

Para a exibição das mensagens, pode ser utilizado o UT-MSGS.P, na forma abaixo:

 

Run pi-valida-rep-prod (input yes,

                                      output c-erro,

                                      ouput c-texto)

if return-value = “nok” then do:

   do i-cont = 1 to num-entries (c-erro):

      run utp/ut-msgs.p (input "show",

                                    input int (entry (i-cont, c-erro)),

                                    input entry (i-cont, c-texto)).

   end.

   return "adm-error".

end.

 

Para utilização desta Include, é necessário a declaração das seguintes includes ao programa:

 

{cdp/cdcfgman.i}     

{cdp/cdcfgmat.i}      

{include/i-epc200.i}

{cpp/cpapi009.i}   

{cpp/cpapi009.i6}

{cdp/cd9203.i}

{cpp/cpapi001.i30}

{cpp/cpapi009.i1}

 

{CPP/CPAPI009.I16}  - F-Gera-Numero-Reporte

Possui a declaração de uma function que não utiliza parâmetros e tem por objetivo retornar um número de reporte válido.