O objetivo deste artigo é apresentar algumas das funcionalidades do Maximo que habilitam o usuário a criar customizações usando as aplicações Database Configuration e Application Designer.
Desta maneira, novas entidades de bancos de dados podem ser expostas como objetos Maximo, permitindo assim o uso da infraestrutura existente em relação à segurança, integridade de dados e suporte para a customização pelo usuário.
Utilizando a aplicação Database Configuration, é possível criar um novo Objeto Maximo baseado em uma tabela de banco de dados ou view de tabela de banco de dados. Se a entidade não existir no banco de dados o Database Configuration irá criar uma nova tabela representando o objeto.
Ao usar o Application Designer, é possível expor os atributos de Objetos Maximo em qualquer posição dentro dos aplicativos Maximo utilizando componentes de arrastar e soltar e configuração sem a necessidade de quaisquer mudanças externas e sem a necessidade de desenvolvimento de código.
Na última parte deste artigo, é apresentado o conceito chamado de Conditional UI, que habilita o usuário a alterar os formulários de aplicativos Maximo, atributos de objetos e comportamentos baseados em outros componentes, elementos ou dados de objetos Maximo. Este artigo foi criando com base em funcionalidades do Maximo versão 7.1.1.6.
Esta seção apresenta a criação de um Objeto Maximo. Isto pode ser feito com base em uma tabela ou view de banco de dados já existente. Se a tabela de banco de dados já existir, então, o Maximo importará as colunas existentes na tabela, na forma de atributos do objeto sendo criado.Se a tabela de banco de dados não existir, então Maximo criará a tabela no banco de dados.
Siga os seguintes passos para a criação do objeto:
- Acessar o aplicativo Database Configuration.
(Go To ➔ System Configuration ➔ Platform Configuration ➔ Database Configuration)
- Alternar para o Modo Administrativo (Select Action ➔ Manager Admin Mode). Utilizando o Admin Mode você consegue configurar o banco de dados sem precisar reiniciar o servidor de aplicações. Verifique se as propriedades mail.smtp.host e mxe.adminEmail estão configuradas corretamente no aplicativo System Properties, pois esses atributos são obrigatórios para alterar o Modo Administrativo.
- Clicar no botão “novo” para criar um novo objeto, preencher ao menos o nome e a descrição para o novo objeto. Se não houver uma tabela existente, esse mome de objeto será usado para o nome da tabela durante a sua criação.
- Clicar na aba Attributes e verificar se todos os tipos e tamanhos de atributos estão corretos. Incluir quaisquer novos atributos necessários, alterar as propriedades relevantes e clicar em salvar.
Até então, ainda não há um objeto Maximo disponível para uso nos formulários Maximo. Este novo objeto estará com o status “ToBeAdded”.
- Selecionar a aba List e aplicar as mudanças de configuração (Select Action ➔ Apply Configuration Changes). Verificar no log apresentado se há ocorrência de erros. Após executar esta etapa, há um novo objeto Maximo disponível e é possível usar o aplicativo Application Designer para expor seus atributos a qualquer aplicativo Maximo.
- Se não desejar criar qualquer outro Objeto Maximo, deve-se sair do Modo Administrativo (Select Action ➔ Manage Admin Mode) clicando em “Turn Admin Mode OFF”.
2. Criação de relacionamento entre Objetos Maximo
Esta seção descreve o processo para criar um relacionamento entre o novo objeto, criado na seção anterior, e um Objeto Maximo existente.
- Acessar o aplicativo de Configuração do Banco de Dados
(Go To ➔ System Configuration ➔ Platform Configuration ➔ Database Configuration).
Na aba List, filtrar a lista para localizar o Objeto Maximo que agirá como o pai do relacionamento. Selecionar um objeto Maximo existente, como pai significa que um registro específico deste objeto pode ter 0 ou mais registros filhos relacionados ao Objeto filho, o Objeto Maximo criado na seção anterior. Neste exemplo, escolheremos Asset como objeto pai.
- Clicar na aba Relationships e, em seguida, clicar no botão New Row. Escolher um nome para o relacionamento e incluir o Objeto criado na seção anterior no campo child.
- Existem alguns detalhes importantes sobre o campo “where clause”. Este campo contém uma expressão que relaciona o objeto-pai ao objeto-filho, como por exemplo:
“childassetnum=:assetnum and childsiteid=:siteid”
Em que os atributos pai são sempre os atributos com o prefixo “:”
- Em seguida, clique no botão save. A partir deste ponto o Objeto Maximo criado na seção anterior pode ser usado para customizar aplicações Maximo que utilizam o objeto definido como parent. E mais, esta customização pode ser feita de dentro do Maximo, usando o aplicativo Application Designer.
Esta seção apresenta o processo necessário para personalizar um aplicativo Maximo existente para expor atributos a partir do Objeto Maximo criado nas seções anteriores. Nas etapas abaixo, usaremos o aplicativo Asset como exemplo de personalização, justamente porque, na seção anterior, o Asset foi escolhido como o pai do relacionamento com o novo Objeto criado.
O Objeto Maximo criado anteriormente será chamado de “HYDRANT” nesta seção e, conforme esperado, o objeto Hydrant possui alguns atributos que gostaríamos de expor ao formulário de aplicativo Asset.
Etapas:
- Acessar o aplicativo Application Designer
(Go To ➔ System Configuration ➔ Platform Configuration ➔ Application Designer).
Na aba Applications, selecionar o aplicativo Asset. O formulário de aplicativo Asset será exibido na aba Workspace.
- Para iniciar a personalização, clique na aba Asset, dentro do aplicativo Asset, e, em seguida, clique no botão Control Palette.
- Clique na última seção (Downtime), e em seguida, clique com o botão direito no título e selecione Copy. Então, clique com o botão direito no final da página de Asset e clique em Paste. Remova todos os componentes de dentro desta nova seção. Arraste e solte 2 caixas de texto do painel Controls e configure os campos Label e Attribute usando o nome do atributo do objeto HYDRANT.
- Arraste e solte um Data Source do painel Controls no final da página. Selecione este item Data Source e configure o campo relationship com o nome do relationship criado na seção anterior. Copie o campo Control ID.
- Agora clique na seção que contém os 2 atributos do objeto HYDRANT e configure o campo Data Source ID com o valor do control ID configurado na etapa anterior.
- Agora, no aplicativo Asset, se o ativo atual possuir um Hydrant relacionado baseado no relacionamento ele será apresentado conforme esta imagem abaixo. Observe que agora também é possível editar os atributos Hydrant a partir do Aplicativo Asset. Além disso utilizando o Application Designer é possível criar uma aplicação para editar o novo objeto Hydrant isoladamente.
4. Uso de Condicional UI para ocultar campos de formulários baseados em expressões
Esta última seção descreve as etapas necessárias para configurar expressões condicionais a serem usadas para alterar quaisquer atributos de componente da interface de usuário.
- 1-Abrir o Gerenciador de Expressão Condicional
(Go To ➔ Administration ➔ Conditional Expression Manager).
Clicar em New Row e preencher o nome, configurar o tipo para expressão, configurar o campo de expressão com a expressão que deseja usar no aplicativo Asset.
( Exemplo: :status = ‘OPERATING’ ou :objectid is not null)
Ao usar essa expressão, diferentes ações podem ser realizadas dependendo do status do atributo Asset.
- Configurar a caixa de opção Always Evaluate para "true".
- A próxima etapa é criar um Signature Option que possa ser usado para expressões condicionais de múltiplos grupos. Neste exemplo, temos apenas uma expressão. Acessar o aplicativo Application Designer (Go To ➔ System Configuration ➔ Platform Configuration ➔ Application Designer) e selecionar o aplicativo Asset. Em seguida, clicar em (Select Action ➔ Add/Modify Signature Options). Criar um novo Signature Option, configurar o nome e clicar em OK.
- Agora, esta Signature Option precisa ser associada à seção Hydrant criada. Selecionar a seção criada para os campos Hydrant, abrir o painel Control Properties e preencher o campo Signature Option.
- Clicar agora no botão Configure Conditional Properties. Neste novo painel, é possível associar o Signature Option criado com um grupo de expressões condicionais e para cada expressão, é possível descrever o que acontece quando a expressão é avaliada para "true" e o que acontece quando é avaliada para “false”.
- Selecionar um grupo de usuários, por exemplo EVERYONE e, em seguida, selecionar a expressão criada anteriormente para este grupo.
- Quando a condição é verdadeira, configurar a propriedade “display” para "true" e quando a condição é falsa, configurar a propriedade “display” para "false". Deste modo, a seção Hydrant aparecerá ou não dependendo da alteração de status do Asset. Isto ocorre baseado na expressão criada no Conditional Expression Manager.
Após estas simples etapas de configuração, você está pronto para testar o conceito de Conditional UI no aplicativo Asset. Primeiro finalize a sessão atual e faça o login novamente para que o Maximo atualize o sistema com a nova configuração.
Para fazer o teste, selecione assets que tenham o atributo de status configurado para OPERATIONAL e veja se a seção Hydrant está lá e, em seguida, mova-os para um ativo cujo status é diferente de OPERATIONAL e veja se a seção Hydrant é ocultada.
Este artigo não cobre todas as diferentes possibilidades e cenários de configuração possíveis usando o aplicativo Application Designer em conjunto com o conceito de Conditional UI. Para obter informações adicionais sobre esses aplicativos Maximo, consulte o Guia Administrador do Sistema Maximo.
Rodrigo Dombrowski é Engenheiro de Software do IBM Brazil Software Laboratory, onde desenvolve produtos da linha Tivoli Maximo, em especial o Maximo Spatial Asset Management. É formado em Ciência da Computação pela Universidade de São Paulo, possui MBA em gestão estratégica e econômica de projetos pela FGV e é certificado PMP. Possui mais de 10 anos de experiência em desenvolvimento de software.
João Souto Maior trabalha na IBM como Staff software enginner na equipe de desenvolvimento do IBM Brazil Software Laboratory para o produto Maximo Spatial, cujo objetivo é a integração do Maximo com GIS. Ele trabalha com desenvolvimento de software utilizando diferentes linguagens há 10 anos e com GIS a 4 anos. No seu tempo livre gosta de pedalar e assistir filmes.