Documento de API
Produto: | Datasul |
Ocorrência: | Documentação de API |
Nome Físico | docapi/miapi004.p |
Objetivo: Baseado na temp-table tt-ord-manut-api serão criadas novas ordens de manutenção, ou então alteradas ou eliminadas ordens já existentes.
Considerações Gerais:
- Devem ser passadas 3 temp-tables com informações e parâmetros para a criação de transações.
- Todas as temp-tables são passadas como parâmetro através do comando INPUT-OUTPUT, pois além de passar parâmetros, elas retornam informações para o programa chamador.
- Exemplo de chamada da API:
Run mip/miapi004.p (input-output table tt-ord-manut-api,
input-output table tt-msg-ord-man,
input-output table tt-erro,
input yes)
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.
Parâmetros de Entrada/Saída
Temp-table tt-ord-manut-api : Temp-table que possui todos os dados das novas ordens de manutenção que serão criadas. Também é utilizada para passar as informações de ordens já existentes que serão modificadas ou eliminadas;
TEMP-TABLE TTt-ORD-MANUT-API | |||
Atributo | Tipo | Formato | Valor Inicial |
Nr-ord-produ | Integer | >>>,>>>,>>9 | 0 |
Cd-planejado | Char | x(12) |
|
Prioridade | Int | 999 | 0 |
Tipo | Int | >9 | 1 |
Cd-manut | Char | X(8) |
|
Comentarios | Char | X(2000) |
|
Dt-manut | Date | 99/99/9999 | Today |
Vl-contador | Deci-4 | >>>,>>>,>>>,>>9.9999 | 0 |
Tempo-para | Deci-2 | >>>9.99 | 0 |
Det-causa | Char | X(76) |
|
Dt-fecham | Date | 99/99/9999 | ? |
Dt-prev | Date | 99/99/9999 | 01/01/0001 |
Om-encerrada | Log | Sim/Não | No |
Estado-om | Integer | >9 | 1 |
Motivo | Char | X(2000) |
|
Des-man-corr | Char | X(40) |
|
Cd-equip-res | Char | x(8) |
|
Cd-tecnico | Char | 99999-9 |
|
Sit-aloc | Integer | 9 | 1 |
Dt-ini-cedo | Date | 99/99/9999 | 01/01/0001 |
Dt-ini-tarde | Date | 99/99/9999 | 01/01/0001 |
Dt-ini-orig | Date | 99/99/9999 | 01/01/0001 |
Estado | Integer | >9 | 1 |
Cd-projeto | Char | X(8) |
|
Urgencia | Integer | 9 | 3 |
Cd-tipo | Integer | >>,>>9 | 0 |
Sequencia | Integer | >>>>9 | 0 |
Cd-parada | Char | X(8) |
|
Cd-tag | Char | X(16) |
|
Num-ord-inv | Integer | >>>,>>9 | 0 |
Origem | Char | X(1) |
|
Ep-codigo | Integer | >>9 | 0 |
Cd-causa-padr | Char | X(8) |
|
Cd-sint-padr | Char | X(8) |
|
Cd-interv-padr | Char | X(8) |
|
Cd-pend-padr | Char | X(8) |
|
Liber-tarefa | Integer | 9 | 0 |
Tp-esp-prin | Char | X(8) |
|
Vl-leitura | Deci-4 | ->>>,>>>,>>9.9999 | 0 |
Dt-leitura | Date | 99/99/9999 | Today |
Al-codigo | Char | X(2) |
|
Nr-rot-insp | Integer | >>>,>>>,>>9 | 0 |
Nr-rot-lubr | Integer | >>>,>>>,>>9 | 0 |
Cd-equipto | Char | X(16) |
|
Dur-man | Int | >>>9 | 0 |
Cd-inspecao | Char | X(8) |
|
Forma-aloc-esp | Integer | >9 | 2 |
Apont-leit | Log | Sim/Não | Não |
Dt-reabre | Date | 99/99/9999 | ? |
Char-1 | Char | X(100) |
|
Char-2 | Char | X(100) |
|
Dec-1 | Dec-2 | ->>>>>>>>>>>9.99 | 0 |
Dec-2 | Dec-2 | ->>>>>>>>>>>9.99 | 0 |
Int-1 | Integer | ->>>>>>>>>9 | 0 |
Int-2 | Integer | ->>>>>>>>>9 | 0 |
Log-1 | Log | Sim/Não | Não |
Log-2 | Log | Sim/Não | Não |
Data-1 | Date | 99/99/9999 | ? |
Data-2 | Date | 99/99/9999 | ? |
Dt-realoc | Date | 99/99/9999 | ? |
Cod-versao-integracao | Integer | 999 |
|
Ind-tipo-movto | Integer |
|
|
Rw-ord-manut | Rowid |
|
|
Cod-estabel | Char | X(3) |
|
Urgente | Logical |
|
|
Criticidade | Integer |
|
|
Ct-ordem | Char | X(17) |
|
Ct-despesa | Char | X(17) |
|
Ct-ord | Char | X(8) |
|
Sc-ord | Char | X(8) |
|
Ct-desp | Char | X(8) |
|
Sc-desp | Char | X(8) |
|
Cons-parada | Log |
|
|
Da-ini-parada | Date |
|
|
Gera-relacionamento | Log |
|
|
i-ordem-manut | Integer |
|
|
Nr-ord-planej | Integer | >>>,>>>,>>9 | 0 |
Ordem-automat | Logical |
|
|
Cod-unid-negoc ¹ | Char | X(3) |
|
¹ Este campo só é utilizado quando utilizado Unidades de Negócio, a partir da versão 2.07. Na versão 206b, utilizar substring(tt-ord-manut-api.char-1,19,3)
- O campo ind-tipo-movto indica o tipo de movimento que será gerado pela API:
1 – Inclusão
2 – Modificação
3 – Eliminação
4 – Cópia
Temp-table tt-msg-ord-man : Temp-table que possui a narrativa de todas as ordens de manutenção que serão criadas.
TEMP-TABLE TT-MSG-ORD-MAN | ||||
Atributo | Tipo | Formato | Inicial | Obrigatório |
Nr-ord-produ | Integer | >>>,>>>,>>9 | 0 | Sim |
Msg-exp | Char | X(15000) |
|
|
Char-1 | Char | X(100) |
|
|
Char-2 | Char | X(100) |
|
|
Dec-1 | Deci-2 | ->>>>>>>>>>>9.99 | 0 |
|
Dec-2 | Deci-2 | ->>>>>>>>>>>9.99 | 0 |
|
Int-1 | Integer | ->>>>>>>>>9 | 0 |
|
Int-2 | Integer | ->>>>>>>>>9 | 0 |
|
Log-1 | Log | Sim/Não | Não |
|
Log-2 | Log | Sim/Não | Não |
|
Data-1 | Date | 99/99/9999 | ? |
|
Data-2 | Date | 99/99/9999 | ? |
|
Temp-table tt-erro: Tem a finalidade de retornar os erros encontrados durante a criação/alteração/eliminação das ordens de manutenção.
TEMP-TABLE TT-ERRO | |||
Atributo | Tipo | Formato | Valor Inicial |
i-sequen | Integer | “999” |
|
cd-erro | Integer | “>>>>9” |
|
Mensagem | Character | “x(256)” |
|
Execução
Execução: O programa mip/miapi004.p irá executar estas validações básicas:
Validação: Parâmetros Globais
O programa irá verificar a existência dos registros de parametrização destas tabelas. Caso algum destes registros não exista, a API abortará a execução retornando através da temp-table tt-erro o código de erro 16 e retornará ao programa sem haver atualizado o registro.
Número do Erro | Mensagem | Ajuda |
16 | Parâmetros Globais não cadastrados | Cadastre os parâmetros globais antes de executar este programa |
|
|
|
Validação: Versão de Integração
O programa irá verificar a versão de integração. Caso a versão esteja incompatível, a API abortará a execução retornando através da temp-table tt-erro o código de erro 3941 e retornará ao programa sem haver atualizado o registro.
Número do Erro | Mensagem | Ajuda |
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. |
|
|
|
Mas, se não ocorrer erros na validação acima, ele irá verificar as ordens e fará as devidas validações. Caso seja detectado algum erro será então, criado um registro na tabela temporária tt-erro o qual poderá ser consultado ao executar o programa cd0666.
Outras Validações:
- Disponibilidade de ordens
- Número da ordem de produção
- Equipamento
- Estado da Ordem
- Código de Manutenção
- Tipo de Manutenção
- Planejador
- Equipe
- Projeto
- Causa Padrão
- Sintoma Padrão
- Intervenção Padrão
- Inspeção
- Ordem de investimentos
- Plano de Parada
- Período de Parada
- Conta Contábil
- TAG
- Data da Manutenção, Data Prevísta de Término, Data de Início mais cedo, Data de Início mais Tarde
- Unidade de Negócio (A partir da versão 2.06b, se a empresa utilizar Unidade de Negócio)
Número do Erro | Mensagem | Ajuda |
1358 | Não possui ordens automáticas vagas |
|
8 | Ordem de Produção já cadastrado(a) | Já existe um registro com a chave informada. |
8 | Ordem de Manutenção já cadastrado(a) | Já existe um registro com a chave informada. |
47 | Ordem de Manutenção não cadastrado(a) | Ordem de Manutenção não cadastrado(a). |
15902 | Ordem de Produção já existente em Bancos Históricos | Já existe uma ocorrência de Ordem de Produção em Bancos Históricos |
56 | Ordem de Produção inexistente | Verifique se existe uma ocorrência para o(a) Ordem de Produção informado(a) em seu cadastro. |
56 | Equipamento inexistente | Verifique se existe uma ocorrência para o(a) Equipamento informado(a) em seu cadastro. |
7176 | Equipamento não está Ativo | Equipamento não está ativo. Se não conseguir cadastrar a Ordem, é necessário alterar o parâmetro do Equipamento para “permite equipamento” ou rever a situação do Equipamento. |
7139 | Existe Ordem suspensa com mesmo equipamento e plano | Existe ordem suspensa com mesmo equipamento e plano. |
2 | Não encontrado(a) Manutenção para a chave informada | Não foi encontrada ocorrência em Manutenção com a chave informada. |
56 | Tipo de Manutenção inexistente | Verifique se existe uma ocorrência para o(a) Tipo de Manutenção informado(a) em seu cadastro. |
56 | Planejador inexistente | Verifique se existe uma ocorrência para o(a) Planejador informado(a) em seu cadastro. |
56 | Equipe inexistente | Verifique se existe uma ocorrência para o(a) Equipe informado(a) em seu cadastro. |
56 | Projeto inexistente | Verifique se existe uma ocorrência para o(a) Projeto informado(a) em seu cadastro. |
2 | Não encontrado(a) Equipamento para a chave informada | Não foi encontrada ocorrência em Equipamento com a chave informada. |
2 | Não encontrado(a) Causa Padrão para a chave informada | Não foi encontrada ocorrência em Causa Padrão com a chave informada. |
2 | Não encontrado(a) Sintoma Padrão para a chave informada | Não foi encontrada ocorrência em Sintoma Padrão com a chave informada. |
2 | Não encontrado(a) Intervenção Padrão para a chave informada | Não foi encontrada ocorrência em Intervenção Padrão com a chave informada. |
2 | Não encontrado(a) Inspeção para a chave informada | Não foi encontrada ocorrência em Inspeção com a chave informada. |
2082 | Módulo Investimento não implantado | O módulo Investimento não foi implantado no sistema. |
8645 | A conta da ordem será alterada para Investimento | A conta da ordem será alterada para XX...XXX por ser a conta da ordem de investimento. |
2 | Não encontrado(a) Projeto de Investimento para a chave informada | Não foi encontrada ocorrência em Projeto de Investimento com a chave informada. |
2 | Não encontrado(a) Ordem de Investimento para a chave informada | Não foi encontrada ocorrência em Ordem de Investimento com a chave informada. |
2 | Não encontrado(a) Sub-divisão da ordem de investimento para a chave informada | Não foi encontrada ocorrência em Sub-divisão da ordem de investimento com a chave informada. |
25109 | Conta Ordem inválida | Verifique se a Conta Ordem está cadastrada para empresa, conforme parametrização. Esta parametrização poderá ser feita nos parâmetros globais ou no cadastro de Estabelecimento. |
4187 | Conta Contábil deve ser de Ativo ou de Despesa |
|
56 | Conta Ordem inexistente | Verifique se existe uma ocorrência para o(a) Conta Ordem informado(a) em seu cadastro. |
912 | Conta Contábil deve ser de sistema | Verifique o cadastro de Contas Contábeis. |
617 | Conta Contábil deve ser do Ativo | A Conta Contábil deve ser do Tipo – 5 ou Ativo |
620 | Conta Contábil deve ser de Ordem de Serviço | A Conta Contábil de Estoque deve ser do tipo Ordem de Serviço! |
19061 | Conta contábil deve ser do Tipo de Despesa ou Ativo. | Você deve informar na Conta de Despesa da Ordem uma Conta do tipo de Despesa (tipo 1) ou de Ativo (tipo 5), pois trata-se de uma Ordem vinculada com uma Ordem de Investimento. |
25886 | Conta de despesa inválida. | A conta contábil deve ser de Consumo, Não consumo, Ordem de Serviço ou Mão de Obra. |
32772 | Conta Contábil inválida. | A conta contábil informada deve ser do tipo Ativo. |
56 | Conta Despesa inexistente | Verifique se existe uma ocorrência para o(a) Conta Ordem informado(a) em seu cadastro. |
621 | Conta Contábeil deve ser de Despesa | A Conta Contábil deve ser do Tipo – 1 de Despesa |
622 | Conta Contábil deve ser de Consumo | A Conta Contábil de Estoque dever ser 1 de Consumo! |
7702 | Período de Parada Inexistente! | Não existe período de parada que atenda a esta manutenção! |
2192 | Parada não possui períodos cadastrados | Deve ser informado um período já existente para o código da parada |
7017 | Previsão Término deve ser maior ou igual a Data Manutenção | Previsão Término deve ser maior ou igual a Data Manutenção |
508 | Início mais cedo deve ser menor ou igual a Data Manutenção | Início mais cedo deve ser menor ou igual a Data Manutenção. Informe os valores a fim de satisfazer a condição. |
7017 | Início mais tarde deve ser maior ou igual a Data Manutenção | Início mais tarde deve ser maior ou igual a Data Manutenção |
508 | Início mais tarde deve ser menor ou igual a Previsão Término | Início mais tarde deve ser menor ou igual a Data Manutenção. Informe os valores a fim de satisfazer a condição. |
56 | TAG inexistente | Verifique se existe uma ocorrência para o(a) TAG informado(a) em seu cadastro. |
6810 | Esta da ordem não permite eliminação |
|
17 | Ordem de Manutenção possui relacionamentos ativos. | Ordem de Manutenção informado possui relacionamentos ativos com a(s) seguinte(s) entidade(s): Movimento de Estoque |
1553 | Ordem não valorizada não pode ser eliminada. |
|
17 | Ordem de Manutenção possui relacionamentos ativos. | Ordem de Manutenção possui relacionamentos ativos com a(s) seguinte(s) entidade(s): Movimento de Material |
17 | Ordem de Manutenção possui relacionamentos ativos. | Ordem de Manutenção possui relacionamentos ativos com a(s) seguinte(s) entidade(s): Movimento de GGF |
17 | Ordem de Manutenção possui relacionamentos ativos. | Ordem de Manutenção possui relacionamentos ativos com a(s) seguinte(s) entidade(s): Movimento mão-de-obra direta |
31330 | O Estabelecimento não tem acesso à Unidade de Negócio | O Estabelecimento não tem acesso à utilizar Unidade de Negócio. |
33372 | Não é permitido alterar a Unidade de Negócio | O Estado da Ordem de Manutenção é Iniciada, Finalizada ou Terminada. |
Parâmetros de Saída
No retorno da execução da miapi004.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:
{MIP/MIAPI004.I1} – Validações
Esta Include possui a declaração de uma procedure interna que permite realizar a validação da ordem de manutençã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-manut, conforme o exemplo abaixo:
Run pi-valida-ord-manut (input 1,
input yes,
input 0,
input yes,
output c-erro,
ouput c-texto).
Antes da chamada dessa procedure, é necessária a criação do registro na temp-table tt-ord-manut-api, além dos respectivos assigns a fim de preencher a temp-table com os dados que serão validados.
O primeiro input parameter indica o tipo de movimento que se deseja validar (1-inclusão, 2-modificação e 3-Eliminação).
O segundo 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 terceiro input parameter indica o número da ordem de manutenção.
O retorno da procedure é feito através 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-ord-manut (input 1,
input yes,
input 0,
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.
{MIP/MIAPI004.I3} - F-gera-nr-ordem e F-gera-nr-ordem-aut
Possui a declaração de 2 functions que não utilizam parâmetros e tem por objetivo retornar um número de ordem de produção válido. Utilizadas quando da inclusão de novas ordens de manutenção. A function F-GERA-NR-ORDEM tem por objetivo encontrar o número de uma ordem manual, já a function F-GERA-NR-ORDEM-AUT tem por objetivo encontrar o número de uma ordem automática.
{MIP/MIAPI004.I6} - pi-elimina-ord-manut
Este include possui a declaração de uma procedure interna que permite eliminar uma ordem de manutençã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-elimina-ord-manut, conforme o exemplo abaixo:
Run pi-elimina-ord-manut.