Scripts de automação em telas no IBM Maximo – Aula completa!

Objetivo

 

O objetivo deste treinamento é capacitar o desenvolvedor a criar novos campos, alterar telas e criar scripts de automação (Automation Scripts) no IBM Maximo. O nível deste treinamento é apenas introdutório, ou seja, poderá capacitar o desenvolvedor a iniciar as atividades de customizações no sistema.

A MaximoCon fornece diversos treinamentos para sua equipe, tanto técnicos quanto funcionais. Consulte-nos para maiores informações!

Video completo!

Regras de Negócio

 

O cliente solicitou uma forma de distinguir as Ordens de Serviço em internas e externas. As Ordens internas são tarefas realizadas para a própria empresa, enquanto as Ordens externas são serviços executados para terceiros. Como a empresa não utiliza um industry solution como o Service Provider, uma customização inicial foi solicitada para facilitar o trabalho da manutenção. Com base na solicitação do cliente, a seguinte regra foi escrita:


Inserir um campo do tipo ‘check box’ na Ordem de Serviço denominado “Interno”. Este campo, se marcado pelo usuário, deve realizar as seguintes ações:

  1. Colocar os campos a seguir vazios e somente leitura:
    1. Ativo;
    2. Conta Contábil;
  2. Preencher o campo prioridade com 5;
  3. Preencher o campo Tipo de Serviço com “INT”;

Definir o campo Local como obrigatório.

 

Atribuições do desenvolvedor

 

Com a regra detalhada, precisaremos executar as tarefas a seguir:

Screenshot_1.png

  • Criar um novo campo no Configurador de Banco de Dados;
  • Inserir este campo na tela de Rastreamento de Ordem de Serviço;
  • Criar um script de automação para o novo campo;

Desenvolvimento

 

A partir deste ponto detalharemos os aspectos técnicos da solução, como criação do campo, alteração em tela e regras de negócio (com a utilização de Script de Automação). O desenvolvimento deve ser executado na sequência para que não ocorra falha de dependências.

 

Criando novo campo

Screenshot_2
O campo a seguir deve ser criado acessando a aplicação “Configuração do Banco de Dados” no caminho a seguir:

Acessando a aplicação “Configuração do Banco de Dados”, busque o objeto WORKORDER (=WORKORDER):

 Screenshot_3

Acesse a aba “atributos” e clique em “nova linha” para definirmos o novo campo:

Screenshot_4

Preencha os campos conforme a tabela a seguir:

OBJETO: WORKORDER
Atributo Título / Descrição Tipo Tamanho Domínio Mesmo do… Tipo de Busca
CUST_INT Interno / Identifica se a Ordem de Serviço é interna YORN (PADRÃO) EXACT (PADRÃO)

Screenshot_5

O atributo do tipo YORN cria um campo BOOLEAN no banco de dados, que aceita apenas valores binários (0 ou 1). O tipo de busca “EXACT”, informa que o usuário pode pesquisar pelo campo apenas inserindo valores equivalentes ao inserido no banco de dados. O tipo “WILDCARD” permite a busca parcial, especialmente utilizado para campos de texto, onde é possível buscar os campos inserindo trechos do valor total, compreendidos entre o símbolo “%”.

Agora, salve o registro ( Screenshot_6) e retorne para a guia lista. Isto pode demorar um pouco, já que alterando o objeto WORKORDER, o Maximo também altera suas views.

Screenshot_7

O campo ainda não foi criado. Para isso, precisamos rodar o configurador do banco de dados que basicamente transforma os metadados (informações sobre os dados) em dados (alteração física no banco). No momento, temos o objeto MAXATTRIBUTECFG (entre alguns outros) com a alteração, conforme mostra a imagem a seguir:

Screenshot_8

O campo ‘changed’ <> ‘N’ busca todos as alterações ainda não efetivadas. Agora precisamos dessa alteração persistida no objeto MAXATTRIBUTE. Veja que os registros ainda não foram criados nesta tabela:

Screenshot_9

Observe que o CFG significa ConFiGuração, ou seja, o campo está na configuração, mas ainda não foi efetivado.

Para que nosso objetivo seja alcançado, precisamos rodar o configdb, que efetivará as alterações fisicamente no banco de dados e as incluirá na MAXATTRIBUTE.

Sempre que for efetivar qualquer alteração no banco de dados do Maximo, siga os passos abaixo:

  1. Clique em “Gerenciar modo administrativo”:
    Screenshot_10

 

  1. Clique em “Ligar modo admin”:

Screenshot_11

(Esta ação é necessária, pois como realiza alterações estruturais no banco de dados, os usuários precisam ser deslogados).

Screenshot_12

 

É preciso aguardar até que todos os processos do Maximo sejam liberados para a execução do modo administrativo:

Agora é necessário aplicar as alterações para que o campo seja criado:

Screenshot_14

 

Marque a opção informando que você possui um backup (recomendado caso aconteça algum problema):

Screenshot_15
Informe os dados de autenticação e motivo da alteração:

Screenshot_16

Fique atento às mensagens exibidas no processo. Caso o configurador seja executado com sucesso, a mensagem “ConfigDB completed without erros”.

Screenshot_17

Jamais se esqueça de desativar o modo administrativo, ou alguns recursos do IBM Maximo não funcionarão:

Screenshot_18

Após alguns segundos…

 

Alteração de tela

 

Para incluir o novo campo na tela de “Rastreamento de Ordem de Serviço” acesse o aplicativo no caminho a seguir:

Screenshot_21

Acessando a aplicação “Editor de Telas”, busque o objeto WOTRACK (=WOTRACK):

Screenshot_22

WOTRACK é um arquivo XML que contém todos os componentes do IBM Maximo para o carregamento do aplicativo de OS.

Screenshot_23

Acesse a guia “Ordem de Serviço” para que possamos inserir o novo campo. Clique na paleta de controle:

Screenshot_24

Arraste a “Caixa de Seleção” para a tela, conforme as imagens a seguir:

Screenshot_25

 

Clique no botão de propriedades de controle:

Screenshot_26
Na próxima janela, informe o nome do atributo que criamos no capítulo anterior:

Screenshot_27

Agora temos o campo que criamos no banco de dados disponível na tela de “Rastreamento de Ordem de Serviço”:

Salve o registro (Screenshot_6 ) e acesse o aplicativo “Rastreamento de Ordem de Serviço” para conferir:

Screenshot_29

Screenshot_30

Script de Automação

 

A regras abaixo deve ser executada através de um script de automação de atributo:


Criar um script para o campo “Interno” (WORKORDER.CUST_INT). Este campo, se marcado pelo usuário, deve realizar as seguintes ações:

  1. Colocar os campos a seguir vazios e somente leitura:
    1. Ativo;
    2. Conta Contábil;
  2. Preencher o campo prioridade com 5;
  3. Preencher o campo Tipo de Serviço com “INT”*;

Definir o campo Local como obrigatório.

Caso o tipo de serviço “INT” não esteja cadastrado, acesse a aplicação de “Organizações” no módulo “Administração”, vá em selecionar ação, Opções de Ordens de Serviço -> Tipo de Serviço e adicione o valor “INT”:

Screenshot_31

 

 

Acesse a aplicação no caminho a seguir:

Screenshot_32

 

Crie um script de automação com ponto de ativação de atributo:

Screenshot_33
Na primeira tela de criação do novo script, vale destacar algumas informações:

Screenshot_34

  1. Insira o nome do ponto de ativação. Procure utilizar um nome que facilite a busca em ambientes com muitos scripts, como LP_WO_CUST_INT (Tipo do objeto, tabela, campo).
  2. Selecione o objeto e o atributo para os quais este ponto de ativação será acionado. No caso estamos trabalhando com WORKORDER.CUST_INT (Interno de “Rastreamento de Ordem de Serviço”).
  3. O evento de seleção para o qual você deseja definir o ponto de ativação é “Executar Ação”. No caso, quando o usuário marcar ou desmarcar o campo “Interno”, o script será acionado”.

 

 

No próximo passo, preencha as informações a seguir:

Screenshot_35

No primeiro quadro, insira o nome do script e a linguagem. Trabalhamos com Java Script por ter uma sintaxe mais amigável. Outra linguagem muito utilizada é python.

No segundo quadro, precisamos atribuir as variáveis que serão manipuladas no script:

  • ASSETNUM (Ativo)
  • LOCATION (Local)
  • GLACCOUNT (Conta Contábil)
  • WOPRIORITY (Prioridade da OS)
  • WORKTYPE (Tipo de Serviço)
  • CUST_INT (Interno)

Essas variáveis são inseridas neste ponto para que estejam disponíveis diretamente no script.

Na etapa 3, definimos o script com a regra de negócio:

Screenshot_36

Salve o script para finalizar.

Certifique-se de que as variáveis sejam definidas da seguinte forma (é possível acessá-las) depois da finalização do script na aba “Pontos de Ativação”:

Screenshot_37
Caso queira copiar o código do script:

 

if (CUST_INT) {

ASSETNUM_readonly = false;

ASSETNUM = “”;

ASSETNUM_readonly = true;

GLACCOUNT = null;

GLACCOUNT_readonly = true;

WOPRIORITY = 5;

WORKTYPE = “INT”;

 

LOCATION_required = true;

 

} else {

ASSETNUM_readonly = false;

GLACCOUNT_readonly = false;

LOCATION_required = false;

}

 

 

Há algumas outras opções de scripts de automação, como ações em cima de objetos que podem executar regras de inicializar, validar e ou salvar. Também podemos utilizar scripts para regras de integrações e outros eventos no sistema. Cobriremos essas e outras opções em um outro documento.

Testes

 

Por último e tão importante quanto o desenvolvimento, chegou o momento de testar. Acesse novamente a aplicação “Rastreamento de Ordem de Serviço”:

Screenshot_38

 

Criando uma nova Ordem de Serviço, insira um Local e um Ativo:

Screenshot_39

 

Agora marque o campo “Interno”:

Screenshot_40

Conforme o esperado:

  • Campo Ativo (WORKORDER.ASSETNUM) somente leitura e vazio;
  • Campo Local (WORKORDER.LOCATION) obrigatório;
  • Campo Tipo de Serviço (WORKORDER.WORKTYPE) com valor “INT”;
  • Campo Conta Contábil (WORKORDER.GLACCOUNT) somente leitura e vazio;
  • Campo Prioridade (WORKORDER.WOPRIORITY) com valor 5;

 

Agora precisamos verificar o que ocorre quando o campo “Interno” é desmarcado:

Screenshot_41

Não vimos na especificação, mas nos parece óbvio que o campo Local não deve permanecer obrigatório e os campos Ativo e Conta Contábil não devem permanecer somente leitura.

Realize quantos testes julgar necessário e faça ajustes para aprimorar o código. Não deixe de tentar cobrir todos os cenários viáveis para o desenvolvimento.

 

Caso queira acessar o conteúdo completo desta aula em VIDEO, acesse o LINK a seguir:

Video completo!

 

Anúncios

Não chegou ainda no MAXIMO 7.6.0.6? Talvez eu tenha um motivo convincente para você!

A melhor novidade do Maximo 7.6.0.6 para os mais técnicos, ou pelo menos a novidade que traz o maior alívio é o abandono do JAVA APPLET pela IBM, pelo menos no “Workflow Designer”:

NOAPPLET.png

Não tenho o Scheduler instalado, mas espero que a IBM tenha abandonado o applet também no add-on. Atenção: apenas para o MAXIMO 7.6.0.6 em diante!

É possível configurar o MAXIMO para rodar applets novamente, mas a pergunta que fica é: quem vai querer fazer isso?!

Fim da linha para o suporte do Maximo 7.5 chegando!

A partir do dia 30 de abril de 2018, correções, novos patches e suporte serão finalizados para o MAXIMO 7.5 e seus componentes, como add-ons e soluções industriais, de acordo com a IBM (mais informações aqui). Isso quer dizer que para continuar acompanhando as evolutivas do sistema, as empresas precisarão realizar o upgrade pelo menos para a versão 7.6.

Devido ao volume e constância das mudanças, as empresas terão 12 meses para realização do upgrade a fim de evitar maiores transtornos. A MaximoCon tem larga experiência em upgrade e é plenamenta capacitada para realizar a atividade para a sua empresa em tarifa promocional até o final de 2017. Em parceria com a SRO Solutions, podemos oferecer a solução de upgrade sem paradas.

Além da manutenção do benefício do suporte IBM, você também se beneficiará das diversas melhorias oferecidas no MAXIMO 7.6, como novas versões do Scheduler, administração de workflow (esqueça os applets que davam muita dor de cabeça nas versões anteriores), melhor navegabilidade, entre outras facilidades. Além disso, a versão do BIRT para o MAXIMO 7.6 possui suporte para a maioria dos navegadores, enquanto que em versões anteriores há várias restrições.

Realizando o upgrade antes do fim do suporte da IBM você evitará dores de cabeça e terá seu sistema IBM MAXIMO atualizado com o melhor da tecnologia oferecida pela IBM.

Veja abaixo a lista dos produtos que também perderão a assistência e não serão mais continuados pela IBM:

PRODUTO O QUE ACONTECERÁ?
IBM Maximo Mobile Suite
IBM Maximo Mobile Work Manager
IBM Maximo Mobile Asset Manager
IBM Maximo Mobile Inventory Manager
Migrará para o Maximo Anywhere
IBM Maximo Adapter for Microsoft Project Ficará apenas no Maximo Scheduler
IBM Maximo Adapter for Primavera Ficará apenas no Maximo Scheduler
IBM Maximo Asset Management Essentials Ficará apenas no Maximo Asset Management
IBM Maximo for Government Sem substituto – Use o Maximo Asset Management
IBM Maximo Space Management for Facilities Sem substituto
IBM Maximo Data Center Infrastructure Management Sem substituto
Maximo Change and Corrective Action Manager Licenses serão migradas para o Maximo Health Safety Environment Manager

Ficou interessado? Entre em contato para conhecer nossas condições de upgrade.

MAXIMO Conditional UI property

From Maximo 7.1 on it is possible to use conditional UI properties to manipulate screen elements. I will show you how to change some properties of a text field based on a condition.

In this example, the field PERSON.DEPARTMENT will change its label, colors and input mode based on Job Code value (PERSON.JOBCODE) from People application.

The requirement is:

If Job Code is INTERNAL, the PERSON.DEPARTMENT field must be green with white value and required:

ScreenHunter_03 Dec. 15 11.10

 

If the Job Code has any other value, the PERSON.DEPARTMENT field must be blue with white value and label changed to “Company”, also with input mode set as required.

ScreenHunter_06 Dec. 15 11.14

Getting our hands dirty

First thing is to create a new Condition in “Conditional Expression Manager” application. This is self explanatory (if not then ask me).

ScreenHunter_08 Dec. 15 11.18

Now, in application designer, open PERSON app and select the PERSON.DEPARTMENT field.

Go to Advanced tab in the control properties  configuration and choose a Signature Option:

ScreenHunter_09 Dec. 15 11.21

I am using READ as signature option for this example, but you should create your own, because the UI rule is replicated to other elements using the same Signature. To create a new Signature Option, you can easily do it through select action.

After filling the Signature Option field, click on “Configure Conditional Properties” button:

ScreenHunter_10 Dec. 15 11.23

Select the Security group (or groups) that the rule will apply.

Next, select the condition previously created. In our case “1002”.

ScreenHunter_12 Dec. 15 12.56

Now, for the magic trick to work, you must fill the property values for the condition (true and false):

ScreenHunter_12 Dec. 15 13.01

ScreenHunter_12 Dec. 15 13.19

cssclass is used to define the color of the button’s background and its value (use a blank space between the values).
inputmode to set the field as required and label changes the field display title.

 

If you want to know more about some other properties, check this out:

IBM – property values

Check the following link to see more style options for the screen elements:

Ibm – styles for properties

This small piece of knowledge useful might be. If it is not, then my time I wasted, young padawan.

How to set a default value for search fields

Did you know that it is possible to set a default value for search fields in Maximo?

There are two ways of doing it. The first way is through a Java Class, but the easiest way is by using the application designer application.

For this example, I will set a filter for “Labor Reporting” application.

In Application Designer, open LABREP.XML and click

Select Action -> Toggle show Conditional UI Controls

defaultValue001

Now you will be able to see UI Controls.

Next, drag the Default Value control and drop it over the field you need to add the filter value.

defaultValue002

Click on defaultvalue text and bring the control options window.

Fill in the values as needed.

defaultValue003

You need the ATTRIBUTE, the VALUE and the DEFAULT TYPE set to “Query”.

Save the record and test it:

defaultValue004

Check that the craft id field has “ELECT” as default value.