Histórico da Página
Documento de API
Produto: | Datasul |
Ocorrência: | Documentação de API |
Nome Físico | cpp/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) |
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) |
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 |
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 |
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) |
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-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 |
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 |
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) |
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 . Caso a (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.
dos valores abaixo (via RETURN-VALUE):
NOK: houveram problemas nas validações ou na execução da API.
OK: execução com sucesso.
Execução Persistente:
Para a execução persistente da CPAPI301, as variáveis e tabelas temporárias devem ser definidas corretamente, conforme especificação.
define variable h-cpapi301 as handle no-undo.
run cpp/cpapi301.p persistent set h-cpapi301 (input-output table tt-ord-prod,
input-output table tt-reapro,
input-output table tt-erro,
input true).
run ativaExecPersistente in h-cpapi301.
run pi-processa-ordens in h-cpapi301 (input-output table tt-ord-prod,
input-output table tt-reapro,
input-output table tt-erro,
input true).
if return-value = "nok":U then do:
for each tt-erro:
end.
end.
run finalizaAPI in h-cpapi301.
if valid-handle(h-cpapi301) then
delete procedure h-cpapi301.
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.