Á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ísicocpp/cpapi301.p

 


Considerações Gerais

 

Objetivo

Baseado na temp-table tt-ord-prod, serão criadas ordens de produção, ou então alteradas ou eliminadas ordens já existentes. 


Funcionamento

Devem ser passadas 3 temp-tables com informações e parâmetros para a criação de transações.

...

Exemplo de chamada da API.

Run cpp/cpapi301.p (input-output table tt-ord-prod,

                                  Input-output table tt-reapro,

                                  Input-output table tt-erro,

                                  Input l-deleta-erros

...


Os três primeiros parâmetros são as temp-tables passadas para o programa. O quarto parâmetro informa se a api irá eliminar os erros já existentes na temp-table tt-erro ou se irá acrescentar aos registros que já fazem parte da temp-table, os seus próprios registros de erros. 


Tabelas Temporárias

 


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


tt-ord-prod

Entrada/Saída

Temp-table que possui todos os dados das novas ordens de produção que serão criadas. Também é utilizada para passar as informações de ordens já existentes que serão modificadas ou eliminadas.

Entrada

Atributo

Tipo

Formato

Valor Inicial

Obrigatório

Evolução

nr-ord-produ

Integer

>>>,>>>,>>9

0

 

 



it-codigo

Char

x(16)

 

 

 




qt-ordem

Deci-4

>>>>>,>>9.9999

0

 

 



qt-produzida

Deci-4

>>>>>,>>9.9999

0

 

 



qt-refugada

Deci-4

>>>>>,>>9.9999

0

 

 



un

Char

xx

 

 

 




dt-inicio

Date

99/99/9999

Today

 

 



dt-termino

Date

99/99/9999

Today

 

 



cd-planejado

Char

x(12)

 

 

 emite-




estado

Integer

>9

1

 

 



emite-requis

Logi

Sim/Não

Sim

 

 



emite-ordem

Logi

Sim/Não

Sim

 

 



cod-depos

Char

x(3)

 

 

 




nr-req-sum

Integer

>>>,>>>,>>9

0

 

 



dt-emissao

Date

99/99/9999

Today

 

 



ct-codigo

Char

x(8)

 

 

 




sc-codigo

Char

x(8)

 

 

 




qt-reportada

Deci-4

>>>>>,>>9.9999

0

 

 



qt-requisita

Deci-4

>>>>>,>>9.9999

0

 

 



lote-serie

Char

x(10)

 

 

 

nr-linha




narrativa

Char

x(2000)

 

 

 




nr-linha

Integer

>>9

0

 

 



tipo

Integer

>9

1

 

 



usuario-alt

Char

x(12)

?

 

 



data-alt

Date

99/99/9999

Today

 

 



cod-estabel

Char

x(3)

 

 

 




nome-abrev

Char

x(12)

 

 

 




nr-pedido

Char

x(12)

 

 

 




dt-orig

Date

99/99/9999

?

 

 



valorizada

Logi

Sim/Não

no

 

 



calc-cs-mat

Integer

>9

1

 

 req-



reporte-mob

Integer

>9

1

 

 



req-emitida

Logi

Sim/Não

Não

 

 



prioridade

Integer

999

0

 

 



val-per

Logi

Sim/Não

Não

 

 



cod-refer

Char

x(8)

 

 

 




cod-gr-cli

Integer

>9

0

 

 



nr-ult-seq

Integer

>>>9

0

 

 



rep-prod

Integer

>9

1

 

 



qt-apr-cond

Deci-4

>>>>>,>>9.9999

0

 

 



qt-perda

Deci-5

>>>>,>>9.99999

0

 

 



custeio-prop-mob

Integer

>9

1

 

 



qt-inicial

Deci-4

>>>>>,>>9.9999

0

 

 



custeio-prop-mat

Integer

>9

1

 

 

nr



prod-repet

Logi

Sim/Não

no

 

 



nr-ord-aber

Integer

>>>,>>>,>>9

0

 

 



nr-sequencia

Integer

>>,>>9

0

 

 



cons-mrp

Logi

Sim/Não

Sim

 

 



cons-pmp

Logi

Sim/Não

Sim

 

 



ct-desp

Char

x(8)

 

 

 




sc-desp

Char

x(8)

 

 

 




origem

Char

x(2)

 

 

 




sit-aloc

Integer

>9

1

 

 



nr-ficha

Integer

>>>>,>>9

0

 

 



enc-mensal

Logi

Sim/Não

Não

 

 



it-inspec

Char

x(16)

 

 

 

sc




ct-imob

Char

x(8)

 

 

 




sc-imob

Char

x(8)

 

 

 




prototipo

Logi

Sim/Não

Não

 

 



num-ord-inv

Integer

>>>,>>>,>>9

0

 

 



dest-manut

Integer

>9

1

 

 



nr-entrega

Integer

>>>>9

0

 

 



nr-ord-refer

Integer

>>>,>>>,>>9

0

 

 



conta-ordem

Char

x(17)

 

 

 




conta-despesa

Char

x(17)

 

 

 




conta-imob

Char

x(17)

 

 

 




custeio-prop-ggf

Integer

>9

1

 

 

calc



calc-cs-mob

Integer

>9

1

 

 



calc-cs-ggf

Integer

>9

1

 

 



reporte-ggf

Integer

>9

1

 

 



nr-estrut

Integer

>>>>>>9

1

 

 



item-cotacao

char

x(16)

 

 

 




sequencia

Integer

>>>>9

0

 

 



es-codigo

Char

x(16)

 

 

 




nr-estrut-filha

Integer

>>>>>>9

0

 

 



cod-unid-negoc[1]

Char

X(3)

 

 

 




dt-disponibilidade

Date

 


?

 

 



ind-tipo-movto

Integer

 


0

 

 



faixa-numeracao

Integer

 

verifica


1

 

 



verifica-compras

Logical

 


No

 

 



aloca-reserva

Logical

 


?

 

 



aloca-lote

Logical

 


?

 

 



rw-ord-prod

Rowid

 


?

 

 



gera-relacionamentos

Logical

 


Yes

 

 



gera-reservas

Logical

 


Yes

 

 



prog-Seg

Char

 

 

 

 





seg-usuario

Char

 

 

 

 





ep-codigo-usuario

Integer

 


0

 

 



cod-versao-integracao

Integer

999

0

 

 



Considera-dias-desl

Logical

 

Não

 


Não

 



Observação: Quando o campo nr-ord-prod é igual a 0 (zero), a api irá automaticamente gerar um número para a ordem de produção. A faixa de numeração utilizada (manual ou automática) é informada através do campo faixa-numeracao (1-manual, 2-automática).

Para efeitos de validação do número, quando este é informado, também é utilizado o campo faixa-numeração, podendo ser informado, além de 1 e 2, também o valor 3, o qual irá ignorar essa validação. 


O campo ind-tipo-movto indica o tipo de movimento que será gerado pela API:

...

2 – Modificação

3 – Eliminação

4 – Cópia 


O campo verifica-compras serve apenas para a eliminação de ordens de produção. Quando setado com o valor yes, a rotina de eliminação irá verificar os relacionamentos da ordem com o módulo de compras, antes de realizar a exclusão.

...

São eles: un, tipo, estado, nr-linha, cod-refer, conta-ordem, rep-prod, sit-aloc, cod-estabel, cod-depos, cd-planejado, dt-orig, dt-emissao, calc-cs-mat, calc-cs-mob, calc-cs-ggf, reporte-mob, reporte-ggf, nr-ult-seq, origem, nome-abrev, cod-gr-cli, nr-pedido, nr-sequencia, lote-serie, prioridade, emite-ordem, emite-requis, narrativa.

 


O campo gera-reservas será utilizado para release 204 ou superior. 


tt-reapro

Entrada/Saída

Nesta temp-table são informadas as reservas de reaproveitamento que serão passadas para a API.

Entrada

Atributo

Tipo

Formato

Valor Inicial

Obrigatório

Evolução

It-codigo

Char

“x(16)”

 

 

 




Cod-refer

Char

“x(8)”

 

 

 




Descricao

Char

“x(36)”

 

 

 




Un

Char

“x(2)”

 

 

 




Quant-Orig

Decimal

“->>>>>,>>9.9999”

0

 

 



tt-erro

Entrada/Saída

Nesta temp-table são armazenados os possíveis erros que ocorreram durante a criação/alteração/eliminação das ordens.

Entrada

Atributo

Tipo

Formato

Valor Inicial

Obrigatório

Evolução

i-sequen

Inteiro

999

 

 

 




cd-erro

Inteiro

>>>>9

 

 

 




Mensagem

Character

X(

255)

 

 

 

255)




Execução

...


Execução: O programa cpapi301.p irá executar estas validações básicas: 


1ª Validação: Versão de Integração

 


O programa irá verificar se o programa chamador está íntegro com a API, e isto ocorre por meio da verificação da versão de integração passada como parâmetro (campo cod-versao-integracao). Caso a versão esteja incompatível, a API abortará a execução retornando o código de erro 3941. A versão atual que deve ser utilizada é a 003.

 


Outras Validações: 


- Número da ordem de produção;

...

- Cliente, Pedido.

Parâmetros de Saída

 


No retorno da execução da cpapi301.p, será retornado um dos valores abaixo (via RETURN-VALUE): 


NOK: houveram problemas nas validações ou na execução da API.

OK: execução com sucesso. 


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/CPAPI301.I21} – Validações

Esta Include possui a declaração de uma procedure interna que permite realizar a validação da ordem de produção 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-ord-prod, conforme o exemplo abaixo: 


Run pi-valida-ord-prod (input 1,

...

                                      ouput c-texto). 


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

...

   return "adm-error".

end.

 


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


{cdp/cdcfgman.i}

{cdp/cdunif001.i}

...

{cpp/cpapi301.i}

{cdp/cd9203.i} 


DEFINE VARIABLE l-unid-neg AS LOGICAL NO-UNDO.

 


{cpp/cpapi301.i4}

{cpp/cpapi301.i23}

...



[1] O campo <cod-unid-negoc> existe apenas a partir da release 2.06B do EMS2. Sendo que ele será utilizado apenas quando utilizada a função de Unidade de Negócio no EMS5. Caso não seja informado o valor neste campo, e a função estiver ativa, então buscará a Unidade de Negócio padrão do ItemxEstabelecimentoxDepósito ou no caso de falta da primeira no ItemxEstabelecimento.