Árvore de páginas


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.