integrando dados a aplicativos externos - ibm...suporte ao idioma bidirecional .....215 formatos de...

388
IBM Maximo Asset Management Versão 7 Release 6 Integrando Dados a Aplicativos Externos

Upload: others

Post on 08-May-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

IBM Maximo Asset ManagementVersão 7 Release 6

Integrando Dados a AplicativosExternos

���

Page 2: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

NotaAntes de usar essas informações e o produto suportado, leia as informações em “Avisos” na página 377.

Esta edição aplica-se à versão 7, release 5, modificação 0 do IBM Maximo Integration Framework e a todas asliberações e modificações subsequentes, até que seja indicado de outra forma em novas edições.

© Copyright IBM Corporation 2008, 2014.

Page 3: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Índice

Integrando Dados a AplicativosExternos . . . . . . . . . . . . . . 1Visão Geral da Estrutura de Integração . . . . . 1

Arquitetura . . . . . . . . . . . . . . 2Estrutura para Troca de Dados . . . . . . 2Estrutura para Integração de Produto deGerenciamento Operacional . . . . . . . 3Estrutura para Integração de Interface com oUsuário . . . . . . . . . . . . . . 4

Ativando Exportação e Importação de Dados . . . 4Preparando o Sistema . . . . . . . . . . 4

Configurando Filas JMS . . . . . . . . 4Configurando Propriedades de Integração . . 5Ativando a Tarefa Cron para Filas JMS . . . 5Exportando Dados para um Arquivo de Teste . 5Importando Dados de um Arquivo de Teste . . 6

Componentes de Integração . . . . . . . . . 6Estruturas de objeto . . . . . . . . . . . 7

Identificação do objeto . . . . . . . . . 7Chaves alternativas . . . . . . . . . . 7Campos do objeto . . . . . . . . . . 8Considerações sobre a Tabela de Interface e oArquivo Simples . . . . . . . . . . . 9Modificação de uma estrutura de objetopredefinida . . . . . . . . . . . . . 9Configurando uma estrutura de objeto. . . . 9

Canais e Serviços . . . . . . . . . . . 14Canais de publicação . . . . . . . . . 14Canais de chamada . . . . . . . . . . 16Serviços de Estrutura de Objeto . . . . . 19Serviços corporativos . . . . . . . . . 19Serviços Padrão . . . . . . . . . . . 22

Terminais e Manipuladores . . . . . . . . 23Configurando um Terminal . . . . . . . 23Manipuladores de Terminais Predefinidos . . 25

Serviços da Web de Integração . . . . . . . 39Origens de Serviços da Web . . . . . . . 39Opções de Implementação de Serviço da Web 40Ações de Implementação de Serviço da Web 41Geração do esquema . . . . . . . . . 41Geração de um Arquivo Web ServicesDescription Language . . . . . . . . . 42Registro UDDI . . . . . . . . . . . 42Criando e Implementando Serviços da Web . 43Visão Geral de Interações de Serviços da Web 45

Sistemas externos . . . . . . . . . . . 47Configurando um Sistema Externo . . . . 47

Conteúdo de Integração Predefinido . . . . . 61Objetos de Dados Principais . . . . . . . 61Objetos de Item e de Inventário . . . . . 71Objetos de Documentos . . . . . . . . 77Objetos da Interface da Transação . . . . . 86Objetos do Sistema . . . . . . . . . . 95Ordem de Carregamento de Dados . . . . 108

Processamento de Dados de Integração. . . . . 109

Planejando o processamento de dados paraintegração . . . . . . . . . . . . . 109Processamento de Dados de Entrada . . . . 110

Processamento Assíncrono de Mensagens deEntrada . . . . . . . . . . . . . 110Processamento Síncrono de Mensagens deEntrada . . . . . . . . . . . . . 111Inicialização de Processamento Assíncrono deDados de Entrada . . . . . . . . . . 111Inicialização de Processamento Síncrono deDados de Entrada . . . . . . . . . . 113Sequências de processamento . . . . . . 114

Processamento de Dados de Saída . . . . . 116Integração Assíncrona com um Canal dePublicação . . . . . . . . . . . . 116Integração Síncrona com um Canal deChamada . . . . . . . . . . . . . 118

Configurando de processamento de integração 119Configurando o processamento assíncrono demensagens de entrada usando serviçoscorporativos . . . . . . . . . . . . 119Configurando o processamento assíncrono demensagens de saída usando canais depublicação . . . . . . . . . . . . 120

Customização baseada em regra . . . . . . 121Definições de Regras para Objetos e Registros 122Definições de Regras de Processamento . . 122Condições e Avaliações . . . . . . . . 126Controles de integração . . . . . . . . 129Configurando Regras de Processamento . . 132

Customização baseada em código . . . . . 146As classes e os métodos Java decustomização . . . . . . . . . . . 146Customização com scripts de automação . . 153Mapeamento de XSL . . . . . . . . . 170Classe da Saída de Usuário de Tabela deInterface . . . . . . . . . . . . . 170

Configurando a Estrutura de Integração . . . . 171Propriedades de Sistema de Integração . . . . 171Configuração de Fila JMS . . . . . . . . 176

Criando e Configurando uma Fila . . . . 177Filas Sequenciais . . . . . . . . . . 178Filas Contínuas . . . . . . . . . . . 179Formato da Mensagem de Fila . . . . . 183Seletores de Fila . . . . . . . . . . 184Visualizando e Excluindo Mensagens de umaFila JMS . . . . . . . . . . . . . 185Configurando Filas com o WebSphere MQ 186

Gerenciamento de Erro . . . . . . . . . 187Gerenciamento de Erro Não de Fila . . . . 187Gerenciamento de Erro Baseado em Fila . . 187Configurando Gerenciamento de Erro . . . 188Notificação de Erro . . . . . . . . . 189Reprocessamento de Mensagens . . . . . 190Gerenciamento de erro com a importação dedados baseada em arquivo . . . . . . . 193

© Copyright IBM Corp. 2008, 2014 iii

Page 4: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Gerenciamento de Erro da Tabela de Interface 196Causas Comuns de Erros . . . . . . . 197Pesquisa de Erro . . . . . . . . . . 197Rastreamento de Mensagem . . . . . . 198

Configuração de Cluster. . . . . . . . . 202Filas JMS em um Cluster de Servidores. . . 202Configurando a Tarefa Cron . . . . . . 205Configurando um Servidor de Processamentode Mensagens . . . . . . . . . . . 205Configuração do Diretório Global . . . . 205Acesso a Serviços por Mensagens de Entrada 206

Segurança de Integração. . . . . . . . . 207Segurança de Autenticação . . . . . . . 207Segurança de Autorização . . . . . . . 212

Suporte ao Idioma. . . . . . . . . . . 213Processamento Padrão de Diversos Idiomas 214Atributos de Diversos Idiomas . . . . . 214Suporte ao Idioma Bidirecional . . . . . 215Formatos de Idiomas Bidirecionais . . . . 215Configurando Suporte ao Idioma Bidirecionalpara Sistemas Externos . . . . . . . . 215

Exportando e importando dados baseados emarquivo . . . . . . . . . . . . . . . 216

Exportando e Importando Dados no AplicativoSistemas Externos . . . . . . . . . . . 216

Exportando dados baseados em arquivo . . 216Importando dados baseados em arquivo . . 217

Tarefas Cron para Processar Dados de Entrada 219Tarefa Cron XMLFILECONSUMER . . . . 219Tarefa Cron FLATFILECONSUMER . . . . 219

Configurando um Aplicativo para Exportação eImportação de Dados. . . . . . . . . . 220

Definindo o Conteúdo da Estrutura deObjeto . . . . . . . . . . . . . . 221Ativando Importação e Exportação de Dadosem um Aplicativo . . . . . . . . . . 222Iniciando Exportação e Importação de Dadosem um Aplicativo . . . . . . . . . . 222

API REST . . . . . . . . . . . . . . 224Estrutura da API REST . . . . . . . . . 224Representações Suportadas . . . . . . . . 225Manipuladores de Recursos e URIs . . . . . 226Método GET . . . . . . . . . . . . 226

Parâmetros de Consulta e Operadores . . . 229Parâmetro _opmodeor . . . . . . . . 230Parâmetros _rsStart e _maxItems . . . . . 231Parâmetro _orderbyasc . . . . . . . . 232Parâmetros _includecols e _excludecols . . . 233Parâmetro _dropnulls . . . . . . . . 233Parâmetros _format e _compact . . . . . 234Negociação de Conteúdo de Representações 235Rolagem na Sessão . . . . . . . . . 236Armazenamento em Cache de SolicitaçõesGET . . . . . . . . . . . . . . 236

Métodos PUT, POST e DELETE . . . . . . 238Método PUT . . . . . . . . . . . 239Método POST . . . . . . . . . . . 239Método DELETE . . . . . . . . . . 240Atualizações Simultâneas de Recursos . . . 241

Consultas e Atualizações do Método de Serviço 241

Métodos de Serviço que Usam HTTP POSTpara Atualizar Recursos . . . . . . . . 241Métodos de Serviço que Usam HTTP GETpara Consultar Recursos. . . . . . . . 242Métodos de Serviço que Usam HTTP GETpara Consultar Dados do Sistema . . . . 244

Propriedades do Cabeçalho HTTP . . . . . 244Códigos de Resposta . . . . . . . . . . 246Segurança na API REST . . . . . . . . . 246Customização da API REST . . . . . . . 248Parâmetros de Consulta REST . . . . . . . 249Propriedades de Sistema REST . . . . . . 253Chamadas de Serviço Externas . . . . . . 257

integração do OSLC . . . . . . . . . . . 257Implementação do OSLC no Maximo AssetManagement . . . . . . . . . . . . 257Configuração do OSLC . . . . . . . . . 259

Especificação de Recursos do OSLC . . . . 259Provedores de serviços de domínio . . . . 260Consultas Salvas . . . . . . . . . . 262Segurança OSLC . . . . . . . . . . 263Criação de Log OSLC . . . . . . . . 264

Transações HTTP . . . . . . . . . . . 265Consultas de Recurso do OSLC . . . . . 265Criação de uma Instância de Recurso . . . 269Modificação de Recursos . . . . . . . 270Cabeçalhos de HTTP . . . . . . . . . 273Códigos de Resposta HTTP. . . . . . . 275

Integrando como um Consumidor do OSLC . . 276Criação de Registros do Provedor OSLC . . 276Projetando uma Interação do OSLC . . . . 280Criando Grupos de Interação . . . . . . 288Exemplo: Executando uma Interação doOSLC . . . . . . . . . . . . . . 289Mudanças da URI Pública . . . . . . . 291Migração de Integrações do OSLC . . . . 291Modificação Manual de UI . . . . . . . 292Propriedades do OSLC . . . . . . . . 293

Consultas de Integração . . . . . . . . . . 294Serviços de Consulta . . . . . . . . . . 294Criando uma Consulta de Serviço Corporativo 294Consultas de Serviço da Web . . . . . . . 295Estrutura XML de Consulta . . . . . . . 295Critérios de Seleção de Consulta . . . . . . 298

Seleção de Campo . . . . . . . . . . 298Avaliação de Campo . . . . . . . . . 299Seleção de Faixa . . . . . . . . . . 300Seleção da Cláusula Where . . . . . . . 300

Tabelas de Interface . . . . . . . . . . . 302Criação de Tabelas de Interface . . . . . . 303Nova Geração de Tabelas de Interface . . . . 304Exclusão de Tabelas de Interface e Registros . . 304Formato de Tabelas de Interface . . . . . . 304Pesquisa da Tabela de Interface . . . . . . 308

Tarefa Cron de Pesquisa de Tabela deInterface . . . . . . . . . . . . . 308Pesquisa da Tabela de Interface Avançada 308

Processando tabelas de interface em um sistemaexterno . . . . . . . . . . . . . . 309

Ativando o processamento de entrada . . . 310Ativando o processamento de saída . . . . 310

iv Integrando Dados a Aplicativos Externos

Page 5: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Módulos de integração . . . . . . . . . . 311Componentes do Módulo de Integração . . . 311

Definições do Módulo de Integração. . . . 311Produtos de Gerenciamento Operacional . . 312Operações de gerenciamento lógico . . . . 312

Pré-requisitos da Implementação . . . . . . 313Propriedades da Implementação . . . . . . 314

Parâmetros do Módulo de Integração . . . 314Fluxo de Processo do Módulo de Integração 314Terminais. . . . . . . . . . . . . 315

Implementação do Canal de Chamada ou daClasse Java . . . . . . . . . . . . . 316

Comparação do Canal de Chamada e daClasse Java . . . . . . . . . . . . 316Implementação do Canal de Chamada . . . 317Implementação da Classe Java. . . . . . 318

Processamento do Módulo de Integração . . . 319Identificação de Componentes de Integração 319Chamada do Módulo de Integração . . . . 320Processamento de Resposta do Módulo deIntegração . . . . . . . . . . . . 323

Configurando Módulos de Integração . . . . 323Criando Módulos de Integração . . . . . 323Selecionando Operações de GerenciamentoLógico para Módulos de Integração . . . . 324Associando uma Operação de GerenciamentoLógico a um Módulo de Integração . . . . 325

Configurando Operações de GerenciamentoLógico. . . . . . . . . . . . . . . 328

Criando Operações de Gerenciamento Lógico 328Incluindo Atributos em Operações deGerenciamento Lógico . . . . . . . . 328

Recurso Ativar no Contexto . . . . . . . . 329Preparação do Aplicativo Externo . . . . . 329Ativar a URL de Entrada em um AplicativoExterno . . . . . . . . . . . . . . 330Ativar a URL de Entrada em um Aplicativo deProduto . . . . . . . . . . . . . . 330Ativando Ativação em Contexto . . . . . . 331

Criando uma Entrada de Ativação . . . . 331Configurando uma Opção de Assinatura paraum Ponto de Ativação . . . . . . . . 333Incluindo um Ponto de Ativação em umMenu de Aplicativo . . . . . . . . . 333Incluindo um Botão como um Ponto deAtivação . . . . . . . . . . . . . 334Incluindo uma Condição em um Ponto deAtivação . . . . . . . . . . . . . 334

Informações de Referência de Integração . . . . 335Propriedades de Sistema de Integração . . . . 335XML de Integração . . . . . . . . . . 340

Visão geral . . . . . . . . . . . . 340Estrutura XML . . . . . . . . . . . 342Esquemas XML de Integração . . . . . . 352

Comutadores de Colaboração . . . . . . . 363Formato de Comutadores de Colaboração 363Recuperando um Comutador de Colaboração 364Configurando Comutadores de Colaboração 365Comutadores de Colaboração Predefinidos 367

Avisos . . . . . . . . . . . . . . 377Marcas comerciais . . . . . . . . . . . . 379

Índice v

Page 6: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

vi Integrando Dados a Aplicativos Externos

Page 7: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Integrando Dados a Aplicativos Externos

A estrutura de integração ajuda a integrar dados do aplicativo a outros aplicativos,com seu empreendimento ou com sistemas externos. A estrutura inclui conteúdopredefinido que ativa a integração com diversos objetos de negócios e um kit deferramentas que é possível usar para estender conteúdo de integração predefinidoe para desenvolver novos pontos de integração.

Visão Geral da Estrutura de IntegraçãoA estrutura de integração ajuda a integrar dados do aplicativo a outros aplicativos,com seu empreendimento ou com sistemas externos. A estrutura inclui conteúdopredefinido que ativa a integração com diversos objetos de negócios e um kit deferramentas que é possível usar para estender conteúdo de integração predefinidoe para desenvolver novos pontos de integração.

A estrutura de integração inclui os seguintes componentes e recursos:v Conteúdo de Integração Predefinidov Aplicativos para criar e configurar componentes de integraçãov Suporte para diversos modos de comunicação, incluindo serviços da Web,

protocolo de transporte de hipertexto (HTTP) e Serviço de Mensagens Java (JMS)v Suporte para formatos de dados diferentes, incluindo tabelas de interface com o

banco de dados, mensagens XML e JavaScript Object Notation (JSON) e arquivossimples tais como arquivos de texto separados por vírgula

v Processamento baseado em eventos, em lote, iniciado pelo programa e iniciadopelo usuário e ativação baseada em contexto de aplicativos externo

v Suporte para integração a produtos de gerenciamento operacional (OMPs)v Suporte para ambientes em clusterv Suporte para interação com aplicativos que suportam especificação de integração

do Open Services for Lifecycle Collaboration (OSLC). A estrutura de integraçãopermite que um aplicativo seja um aplicativo consumidor OSLC para que possaser integrado com um aplicativo externo e que tenha recursos do provedorOSLC implementados.

A estrutura de integração fornece diversas opções para enviar e receber dados.Avalie qual abordagem é a mais eficiente para seus requisitos quando estiverplanejando uma integração. Alguns cenários de integração típicos incluem:v Carregar arquivos com dados de legado durante uma implementação.v Sincronizar dados principais entre um aplicativo de produto e um aplicativo

ERP externo.v Usar serviços da Web para ativar consulta em tempo real de dados do aplicativo

de produto por um aplicativo externo.v Chamar um aplicativo externo para validar dados inseridos em um aplicativo de

produto.

Se quiser importar um grande número de registros de um sistema externo, importeos dados em arquivos em lote ou use as tabelas de interface. Esta abordagemsepara os dados de forma que diversas mensagens sejam processadas comotransações separadas. Com uma única transação que é processada de formasíncrona, como uma chamada de serviço da Web, limite o número de mensagens

© Copyright IBM Corp. 2008, 2014 1

Page 8: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

em uma única transação para assegurar que a transação seja processada em umaduração de tempo aceitável. Quando você estiver planejando uma integração,avalie qual opção de integração é mais apropriada para seus requisitos.

O conteúdo de integração predefinido inclui suporte para diversos objetos denegócios e as funções inserir, atualizar e excluir são ativadas nesses objetos denegócios. Ao usar conteúdo predefinido, há determinadas limitações que podemafetar sua implementação. Se existirem regras de negócios dentro do objeto denegócios que não permitam uma função, por exemplo, a função excluir, a funçãonão estará disponível para integração. Além de suporte às operações inserir,atualizar e excluir, os aplicativos de produto suportam outras funções que estãodisponíveis como ações. O conteúdo de integração predefinido não suporta todasas ações que estão disponíveis. Na maioria dos casos, a ação Status da Mudança ésuportada por meio de integração.Conceitos relacionados:“Conteúdo de Integração Predefinido” na página 61A estrutura de integração fornece conteúdo de integração predefinido, incluindo asestruturas de objeto, canais de publicação e serviços corporativos que suportam aimportação de dados do sistema externo ou a exportação de dados para eles.

ArquiteturaA arquitetura da estrutura de integração inclui os componentes de dados,transporte, comunicação e segurança necessários para trocar informações entreaplicativos e sistemas separados.

Estrutura para Troca de DadosA estrutura para troca de dados inclui componentes e ferramentas que podem serusados para implementar diferentes tipos de cenários de integração.

Componentes

A estrutura inclui componentes e aplicativos de integração predefinidos quepodem ser usados para configurar componentes. Os componentes principais sãodescritos na tabela a seguir.

Tabela 1. Componentes de Troca de Dados da Estrutura de IntegraçãoComponente Descrição

Estruturas de objeto Uma estrutura de objeto é a camada de dados comum que os componentes da estrutura deintegração usam para processamento de mensagem do aplicativo de saída e de entrada. Umaestrutura de objeto consiste em um ou mais objetos de negócios relacionados que definem oconteúdo de uma mensagem XML (esquema).

Objetos de Negócios Os objetos de negócios do aplicativo estão disponíveis como recursos Representational State Transfer(REST) para consultas e atualizações usando o componente API REST da estrutura de integração.

Canais de publicação Um canal de publicação é usado para enviar mensagens assíncronas por meio de uma fila JMS a umsistema externo. Mensagens do canal de publicação podem ser iniciadas por meio de um evento oupor meio do recurso Exportação de Dados.

Canais de chamada Os canais de chamada são usados para enviar mensagens síncronas a um sistema externo e processaro conteúdo da resposta. O canal suporta a implementação de lógica de processamento e mapeamentoda solicitação e da resposta. Um canal de chamada também permite que dados de resposta sejamusados para atualizar objetos de negócios e que sejam exibidos a usuários do aplicativo.

Serviços corporativos Um serviço corporativo é um pipeline para consultar e importar dados de um sistema externo. Umserviço corporativo pode processar dados de forma síncrona (sem uma fila) ou de forma assíncrona(com uma fila). Os serviços corporativos podem usar diversos protocolos, como serviços da Web eHTTP.

Sistemas externos Um sistema externo é definido para o aplicativo externo ao qual você deseja integrar. O sistemaexterno identifica o protocolo de comunicação a ser usado e quais serviços corporativos, canais depublicação e filas JMS implementar para esse sistema externo.

Terminais e Manipuladores Um terminal e seus manipuladores associados roteiam mensagens de saída para um sistema externo.A combinação de um terminal e manipulador especifica o protocolo de transporte, como HTTP ouserviço da Web, e fornece os dados de comunicação necessários para atingir o destino, como umaURL.

Serviços da Web É possível implementar serviços de estrutura de integração, como serviços corporativos ou deestrutura de objeto, como serviços da Web que sistemas externos podem chamar.

2 Integrando Dados a Aplicativos Externos

Page 9: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tabela 1. Componentes de Troca de Dados da Estrutura de Integração (continuação)Componente Descrição

Importação e Exportação deDados

É possível carregar dados de arquivos XML ou de arquivos simples, como um arquivo de textoseparado por vírgula. É possível iniciar importação e exportação de dados de um aplicativo deproduto e é possível planejar um processo em lote para executar uma importação como um processoem segundo plano. É possível exportar um ou mais registros para um arquivo usando um Canal dePublicação, em que condições de filtro podem ser aplicadas para controlar o conteúdo dos dadosexportados.

Conteúdo A estrutura de integração fornece conteúdo predefinido que inclui estruturas de objeto, serviçoscorporativos e canais de publicação correspondentes, um sistema externo e manipuladorespredefinidos que suportam diferentes protocolos de comunicação.

Processando

À medida que mensagens de integração fluem para dentro e para fora, a estruturafornece opções, como classes Java, mapeamento XSL e regras de processamento,para fornecer lógica de transformação de mensagem e regras de negócios paraatender seus requisitos de integração.

Comunicação

A estrutura de integração pode facilitar troca de dados assíncronos ou síncronos.As mensagens assíncronas são processadas por meio das filas do Serviço deMensagens Java (JMS). As filas JMS podem processar mensagens em ordem deprioridade (sequencial) ou de maneira multiencadeada (contínua). As mensagenssíncronas que requerem uma resposta para o remetente não são processadas pormeio de filas JMS e requerem uma conexão direta entre a estrutura de integração eo aplicativo externo.

É possível configurar diversos protocolos de comunicação, incluindo HTTP,serviços da Web e sistema de mensagens JMS.

Ao integrar a diversos aplicativos externos, é possível configurar diferentes canaise serviços para usar diferentes protocolos de comunicação, incluindo HTTP,serviços da Web e sistema de mensagens JMS, com base nos recursos de cadaaplicativo externo individual.

Segurança

A estrutura de integração usa o suporte do produto para segurança de autenticaçãoJ2EE de forma que seja possível configurar para Enterprise Java Beans (EJBs),HTTP e serviços da Web. É possível configurar segurança de autorização paraaplicativos, objetos e métodos de serviço padrão.Conceitos relacionados:“API REST” na página 224A interface de programação de aplicativos (API) Representational State Transfer(REST) fornece uma maneira de aplicativos externos consultarem e atualizaremdados do aplicativo no mecanismo de automação de processo da Tivoli.

Estrutura para Integração de Produto de GerenciamentoOperacionalProdutos de gerenciamento de processo podem ser integrados a produtos degerenciamento operacional em um modo automatizado usando módulos deintegração. Os produtos de gerenciamento de processo podem usar a ativação norecurso de contexto para integração com produtos de gerenciamento operacionalem um modo assistido.

Integrando Dados a Aplicativos Externos 3

Page 10: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

O produto de gerenciamento de processo fornece uma classe de ação Java queinicia a chamada a um módulo de integração e, subsequentemente, o produto degerenciamento operacional. O produto de gerenciamento de processo processaentão a resposta do produto de gerenciamento operacional.

Uma operação de gerenciamento lógico define a ação que o produto degerenciamento de processo executa no produto de gerenciamento operacional. Aoperação de gerenciamento lógico identifica as seguintes propriedades:v O nome e descrição da ação que ele suportav Se o processamento é síncrono ou assíncronov Os objetos e campos de entrada (origem) e de saída (destino) da transação

O módulo de integração fornece um mecanismo para um produto degerenciamento de processo para chamar um produto de gerenciamento operacionalexterno. Quando iniciado por um produto de gerenciamento de processo, omódulo de integração usa dados fornecidos pelo produto de gerenciamento deprocesso para ajudar a chamar o serviço do produto de gerenciamento operacional.O módulo de integração também pode retornar quaisquer dados de resposta aoproduto de gerenciamento de processo.

Os produtos de gerenciamento operacional fornecem serviços que os módulos deintegração podem chamar para iniciar ações do produto de gerenciamentooperacional.

Estrutura para Integração de Interface com o UsuárioÉ possível configurar a estrutura de integração para abrir uma janela em umaplicativo externo e fornecer dados para incluir no contexto dessa janela.

É possível configurar uma URL de console para qualquer aplicativo com umconsole baseado na Web e é possível configurar URLs para consoles que usam JavaWeb Start. Não é possível usar uma entrada de ativação para abrir aplicativos quenão estão ativados para a Web. É possível configurar um ponto de ativação dequalquer aplicativo de produto. É possível fornecer acesso a pontos de ativaçãocomo ações, como hyperlinks e em botões de aplicativo.

É possível usar a mesma abordagem para abrir uma janela de aplicativo doproduto a partir de um aplicativo externo.

Ativando Exportação e Importação de DadosAntes de usar a estrutura de integração para trocar dados com um aplicativoexterno, você deve configurar os componentes necessários para comunicação deentrada e saída. Esses procedimentos descrevem as etapas mínimas deconfiguração necessárias para validar que é possível exportar dados para umarquivo e importar dados de um arquivo.

Preparando o SistemaPara ativar integração, você deve executar algumas tarefas de configuraçãorelacionadas a propriedades de sistema, filas JMS e tarefas Cron.

Configurando Filas JMSFilas JMS são configuradas no servidor de aplicativos. A configuração da fila JMSpode ser automática ou manual no WebSphere Application Server. A configuraçãoda fila JMS sempre é um procedimento manual no WebLogic Server.

4 Integrando Dados a Aplicativos Externos

Page 11: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Procedimento1. Confirme se as filas JMS estão configuradas.2. Confirme se os beans acionados por mensagens estão ativados para a fila

contínua.

Configurando Propriedades de IntegraçãoAntes de ativar a estrutura de integração, modifique as configurações padrão depropriedades de integração para as definições apropriadas ao ambiente.

Procedimento1. No aplicativo Propriedades de Sistema, filtre as propriedades que deseja

configurar. Se você filtrar por mxe.int no campo Propriedade, todas aspropriedades de integração são listadas.

2. Selecione a propriedade mxe.int.dfltuser e verifique se a conta do usuárioespecificada é uma conta de usuário do sistema válida. Modifique o valor dapropriedade se necessário. A propriedade especifica o ID de login padrão usadopara todas as transações de integração processadas por uma fila JMS deentrada.

3. Opcional: É possível configurar um diretório global no qual um local dearquivo único possa conter arquivos relacionados à integração no sistema dearquivos. Os servidores Maximo Asset Management devem ter acesso aodiretório global no sistema de arquivos. Por exemplo, ao usar um terminalbaseado em arquivo que não possua um local de arquivo configurado, oarquivo gerado pelo terminal será colocado em um diretório padrão nodiretório global. É possível configurar o nome do diretório global napropriedade de sistema mxe.int.globaldir.

Ativando a Tarefa Cron para Filas JMSPara processamento assíncrono, as mensagens de integração são colocadas nas filasJMS. As tarefas Cron pesquisam as filas JMS em intervalos frequentes e, emseguida, processam as mensagens localizadas nas filas.

Procedimento1. No aplicativo Configuração da Tarefa Cron, procure a tarefa Cron

JMSQSEQCONSUMER.2. Verifique se a tarefa Cron está configurada para pesquisar as filas SEQQIN e

SEQQOUT.3. Configure a caixa de seleção Ativo para cada fila.4. Clique em Salvar.5. Clique na ação Recarregar a Solicitação

Exportando Dados para um Arquivo de TestePara validar se o processamento de saída está configurado e ativado corretamente,execute uma exportação de teste.

Sobre Esta Tarefa

Para testar processamento de saída, essa tarefa usa o recurso de exportação dedados para exportar um registro de pessoa para um arquivo. A tarefa usa oscomponentes de integração predefinidos a seguir:v Sistema externo: EXTSYS1v Canal de publicação: MXPERSONInterface, que usa a estrutura de objeto

MXPERSON

Integrando Dados a Aplicativos Externos 5

Page 12: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

v Terminal: MXXMLFILE

Procedimento1. Na guia Sistemas, assegure que a caixa de seleção Ativado esteja selecionada

para o sistema externo EXTSYS1.2. Na guia Canais de Publicação, filtre pelo canal de publicação

MXPERSONInterface.3. Na seção Detalhes do canal de publicação MXPERSONInterface, especifique

MXXMLFILE no campo Terminal.4. Clique em Exportação de Dados.5. Na janela Exportação de Dados, especifique 1 no campo Contagem para limitar

a exportação para apenas um registro.

Resultados

Se houver um local não especificado na propriedade FILEDIR, o arquivo XML seráexportado para o local especificado na propriedade mxe.int.globaldir.

Importando Dados de um Arquivo de TestePara validar se o processamento de entrada está configurado e ativadocorretamente, execute uma importação de teste.

Procedimento1. Abra o arquivo de teste exportado em um editor de texto e execute as

seguintes modificações:a. Altere a tag <PublishMXPERSON> para <SyncMXPERSON> para alterar a

operação para processamento de entrada.b. Inclua um sufixo no valor LASTNAME, como LASTNAME_TEST, para

facilitar a verificação da mudança ao importar o arquivo de teste.c. Salve o arquivo.

2. Na guia Sistema do aplicativo Sistemas Externos, assegure que a caixa deseleção Ativado esteja selecionada para o sistema externo EXTSYS1.

3. Na guia Serviços Corporativos, filtre o serviço corporativoMXPERSONInterface.

4. Selecione a linha MXPERSONInterface e limpe Usar Fila Contínua.5. Clique em Salvar.6. Selecione a linha MXPERSONInterface e clique em Importação de Dados.7. Na janela Importação de Dados, especifique os seguintes valores:

a. Selecione a opção Arquivo XML.b. No campo Especificar Arquivo de Importação, navegue até o arquivo de

teste modificado e selecione-o.8. Clique em OK.9. No aplicativo Pessoas, filtre pelo registro de teste e verifique se o valor do

campo Sobrenome inclui o sufixo incluído.10. Exclua o sufixo para restaurar o registro para seu valor original e clique em

Salvar.

Componentes de IntegraçãoDependendo do escopo e dos requisitos de sua implementação, é possível criarnovos componentes ou copiar, modificar ou estender os componentes predefinidos.

6 Integrando Dados a Aplicativos Externos

Page 13: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

A duplicação de um componente de integração e a modificação da cópia têmvárias vantagens. A cópia de um componente de integração torna-se uma entidadedefinida pelo usuário e restrições de modificação que se aplicam ao componentepredefinido não se aplicam à cópia. A versão original do componente é inalterada.Para evitar modificar um componente enquanto está sendo usado paraprocessamento de transações, execute todas as modificações no modo deadministrador.

Estruturas de objetoUma estrutura de objeto é a camada de dados comum que os componentes daestrutura de integração usam para enviar e receber dados no Maximo AssetManagement. Uma estrutura de objeto consiste em um ou mais objetos de negóciosrelacionados que definem o conteúdo de uma mensagem de integração.

Uma estrutura de objeto fornece o conteúdo da mensagem para canais e serviços eativa a importação e a exportação baseadas no aplicativo. Além disso, umaestrutura de objeto, por si só, pode ser chamada como um serviço, suportando asoperações Criar, Atualizar, Excluir, Sincronizar e Consultar.

Identificação do objetoA identificação de quais dados incluir em uma estrutura de objeto requer algumconhecimento de aplicativos e seus objetos associados. Revise o modelo de dadosde um aplicativo para determinar quais objetos, tabelas de banco de dados evisualizações contêm os dados que você deve transferir para/de um sistemaexterno.

Você deve descobrir quais objetos preenchem as tabelas de banco de dados. Emgeral, existe um relacionamento de um para um entre um objeto e uma tabela debanco de dados. No entanto, em alguns casos, diversos objetos gravam dados emuma única tabela.

Uma estrutura de objeto predefinida é fornecida para troca de dados no objetopessoal com um sistema externo. Se não existir nenhuma estrutura de objetopredefinida, para criar uma, determine que os dados necessários residam nastabelas PERSON, PHONE, EMAIL e SMS. As tabelas de banco de dados têm omesmo nome que os objetos correspondentes. Inclua esses objetos na estrutura deobjeto criada. O nome da estrutura de objeto deve iniciar com um caracterealfabético.

Quando uma estrutura de objeto contiver diversos objetos, a estrutura de objetoserá organizada como uma hierarquia, com um objeto raiz (o objeto superior ouprincipal) e objetos-filhos. Uma estrutura de objeto pode suportar qualquer númerode níveis de objetos em sua hierarquia. Você deve especificar um relacionamentopai-filho válido para todos os objetos no nível superior da hierarquia e não épossível fazer referência ao mesmo objeto mais de uma vez na mesma ramificaçãoda hierarquia. Ao criar uma estrutura de objeto, inicie incluindo o objeto principal(de nível superior). Em seguida, é possível incluir mais objetos como objetos-filhosdo objeto-pai.

Chaves alternativasO processamento de mensagem de entrada no(s) campo(s)-chave de um objetopara localizar um registro existente no sistema para suportar atualizações eexclusões. O processamento padrão depende da chave primária para recuperarregistros existentes. Às vezes, uma chave primária é desconhecida para umaplicativo externo, e uma chave alternativa (conhecida pelo sistema externo) édefinida para suportar a atualização e a exclusão de registros pelo sistema externo.

Integrando Dados a Aplicativos Externos 7

Page 14: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Uma mensagem de entrada normalmente usa a chave primária de um objeto paraconsultar e processar registros já existentes no sistema. No entanto, às vezes umachave primária é um valor gerado internamente que não está disponível para osistema externo. Nesses casos, é possível definir uma chave alternativa para umobjeto, e o sistema externo passa o(s) campo(s)-chave alternativo(s), que a estruturade integração usa, em vez de os campos-chave primários, para recuperar os dadospara esse objeto.

É possível especificar uma chave alternativa para um objeto, no nível do objeto ouno nível da estrutura de objeto. Se você especificar uma chave alternativa no níveldo objeto, todas as estruturas do objeto que incluem o objeto usarão a mesmachave alternativa. Se uma chave alternativa for especificada no nível de estruturade objeto, é possível usar diferentes estruturas de objeto para especificar umachave alternativa diferente para cada origem de dados externa que o objeto usa.Defina o índice que compõem uma chave alternativa para um objeto no aplicativoConfiguração do Banco de Dados. Após criar o índice, é possível selecioná-lo comouma chave alternativa para o objeto.

Durante o processamento de entrada, a estrutura de integração processa a chavealternativa e a chave primária na ordem a seguir:v Processa a chave alternativa da estrutura de objeto, se uma estiver configurada.v Processa a chave alternativa do objeto, se uma estiver configurada e uma chave

alternativa não estiver configurada para a estrutura de objeto.v Usa a chave primária do objeto, se uma chave alternativa não estiver

configurada para a estrutura de objeto ou para o objeto.

Após especificar uma chave alternativa, as mensagens de entrada poderão falhar,se você alterar ou eliminar o índice da chave alternativa.

Campos do objetoA estrutura de integração e o sistema externo trocam um subconjunto das colunasde dados nos objetos dentro da estrutura de objeto. Sujeito a determinadasrestrições, é possível controlar o conteúdo dos campos do objeto dentro damensagem incluindo colunas persistentes e não persistentes de objetos individuais.

Um objeto de negócios pode ter muitos campos, muitos dos quais podem não sernecessários para um cenário de integração. Ao configurar uma estrutura de objeto,é possível selecionar quais campos incluir nas mensagens de integração e melhoraro desempenho da transferência de mensagens entre aplicativos. Por padrão, osobjetos de uma estrutura de objeto incluem todas as colunas persistentes dosobjetos. Uma coluna persistente é um campo de dados que um objeto usa paragravar dados em uma tabela de banco de dados como parte de seu processamento.Para controlar o tamanho do conteúdo, é possível excluir colunas persistentes quevocê não está trocando com aplicativos externos. Somente as colunas persistentesincluídas fazem parte da mensagem XML para mensagens de saída. Paramensagens de entrada, somente as colunas de objetos incluídas na estrutura deobjeto são atualizadas. Não exclua nenhuma coluna que faça parte de uma chaveprimária ou alternativa.

Por padrão, uma estrutura de objeto exclui a maioria das colunas não persistentesnos objetos do componente. Uma coluna não persistente é um campo de dadostemporários que um objeto usa para cálculos ou armazenamento temporário. Épossível incluir colunas não persistentes adicionais na estrutura de objeto. Porexemplo, objetos que contêm a coluna persistente DESCRIPTION também contêma coluna não persistente DESCRIPTION_LONGDESCRIPTION. A maioria das

8 Integrando Dados a Aplicativos Externos

Page 15: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

estruturas de objetos predefinidas incluem essa coluna não persistente, pois muitoscenários de integração requerem campos de descrição detalhada. Se esse camponão for incluído, ele não fará parte das mensagens de integração.

Se você alterar o conteúdo da mensagem de uma estrutura de objeto que estásendo usada para uma tabela de interface, a tabela de interface deverá ser geradanovamente para refletir o conteúdo atualizado da estrutura de objeto.

Considerações sobre a Tabela de Interface e o Arquivo SimplesSe você usar uma estrutura de objeto para trocar dados com tabelas de interface ouarquivos simples, você deve assegurar que a estrutura de objeto não contenhanomes de colunas duplicados.

Você deve selecionar a caixa de seleção Simples Suportado para qualquerestrutura de objeto que pretenda usar para cenários de integração de tabela deinterface ou arquivo simples. Quando essa opção for configurada, as mensagenssão verificadas para assegurar que cada coluna de cada objeto na estrutura deobjeto tenha um nome exclusivo. Se nomes de colunas duplicados existirem, épossível criar um nome de campo de alias para um dos nomes duplicados. Amodificação do alias assegura que todos os nomes de colunas sejam exclusivos eque o sistema possa gerar a tabela de interfaces ou o arquivo simples sem erros.Tabelas de interface requerem que todas as colunas incluídas no objetocorrespondente tenham um nome de alias igual a 18 ou menos caracteres.

Modificação de uma estrutura de objeto predefinidaHaverá determinadas restrições se você modificar uma estrutura de objetopredefinida.

É possível incluir objetos em uma estrutura de objeto predefinida, mas não épossível excluir objetos predefinidos da estrutura de objeto. Para evitar essarestrição, faça uma duplicata da estrutura de objeto predefinida para criar umaestrutura de objeto definida pelo usuário e exclua objetos da versão duplicada.

É possível incluir e excluir colunas persistentes e não persistentes, sujeitas avalidações padrão que se aplicam durante o processamento de integração. Asmensagens de saída incluem as colunas para objetos incluídos em uma estruturade objeto. Teste mensagens de entrada para assegurar que as colunas incluídassejam processadas com sucesso. Se colunas de objetos adicionais não foremprocessadas com sucesso, inclua uma classe de processamento de estrutura deobjeto para tratar do processamento de entrada.

Se você utilizar a estrutura de objeto em tabelas de interfaces ou arquivos simples,verifique se há conflitos de alias. Um conflito de alias poderá ocorrer, se doisobjetos em uma estrutura de objeto que suporta arquivos simples tiverem colunascom o mesmo nome. Ao verificar conflitos de alias, os nomes duplicados serãoidentificados e será possível designar nomes de alias a serem utilizados como umsubstituto para substituir o conflito. Se você utilizar tabelas de interfaces, gerenovamente a tabela para cada serviço corporativo ou canal de publicação queutiliza a estrutura de objeto modificada.

Configurando uma estrutura de objetoÉ possível criar novas estruturas de objetos, e durante esse processo é possívelgerar arquivos de esquema, incluir ou excluir campos e resolver conflitos de alias.Também é possível especificar restrições de configuração de entrada, configurarpropriedades de configuração avançada e configurar autorização do aplicativo.

Integrando Dados a Aplicativos Externos 9

Page 16: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Criando Estruturas de Objeto:

Ao criar uma estrutura de objeto, você define um grupo de objetos relacionadospara que faça parte de uma mensagem de integração trocada com aplicativosexternos. É possível identificar campos de dados para cada objeto de negócios quedetermina o conteúdo das mensagens de integração.

Sobre Esta Tarefa

Durante a configuração, é possível definir as classes Java, se necessário, queprocessam mensagens de entrada e saída. Também é possível definir um aplicativoque fornece regras de autorização para as mensagens de integração processadaspela estrutura de objeto. Se a estrutura de objeto for destinada somente a consultae você não deseja usá-la para atualização, selecione a opção Somente paraConsulta. Se o objeto principal na estrutura de objeto tiver um relacionamento comele mesmo como um objeto-filho, configure a opção Autorreferência.

Procedimento

1. No aplicativo Estruturas de Objeto, clique em Nova Estrutura de Objeto.2. No campo Estrutura de Objeto, especifique um identificador de estrutura de

objeto.3. Opcional: Se a estrutura de objeto estiver sendo usada para operações de

consulta, selecione a caixa de seleção Somente Consulta.4. Opcional: Se tabelas de interface e arquivos simples estiverem sendo usados

para trocar dados entre a estrutura de integração e um sistema externo,selecione a caixa de seleção Suportar Estrutura de Arquivo Simples.

5. No campo Consumido por, especifique o módulo que usa a estrutura deobjeto.

Opção Descrição

INTEGRATION Estrutura de Integração

MIGRATIONMGR Gerenciador de migração

REPORTING Relatórios

OSLC OSLC

6. Na janela da tabela Objetos de Origem, clique em Nova Linha.7. Insira valores nos campos a seguir para criar uma hierarquia de objeto de

negócios:v Objeto

v Objeto Pai

v Descrição de Relatórios

v Relacionamento

v Pedido do Objeto

8. Clique em Salvar Estrutura de Objeto.

O que Fazer Depois

Se a caixa de seleção Conflito de Alias estiver selecionada no registro de estruturade objeto, é possível incluir ou modificar um alias para corrigir os nomes decampo duplicados em seus objetos de origem. Também é possível especificar oscampos persistentes e não persistentes que deseja excluir e incluir na estrutura deobjeto.

10 Integrando Dados a Aplicativos Externos

Page 17: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Configurando uma chave alternativa:

Para configurar uma chave alternativa, crie um índice exclusivo no aplicativoConfiguração de Banco de Dados e faça referência a esse índice como a chavealternativa para uma estrutura de objeto ou para um objeto específico.

Sobre Esta Tarefa

Se a chave alternativa for configurada no nível do objeto, a chave será aplicada atodos os usos do objeto em qualquer estrutura de objeto. Se a chave alternativa forconfigurada dentro da estrutura de objeto, a chave será aplicada ao objeto somentequando ele for acessado por meio da estrutura de objeto selecionada.

Procedimento

1. Identifique o(s) campo(s) de um objeto a ser(em) usado(s) como a chavealternativa.

2. Selecione o objeto no aplicativo Configuração do Banco de Dados.3. Crie um índice exclusivo para o(s) campo(s) na guia Índices.4. Especifique esse índice no campo Chave Alternativa em uma das guias a

seguir:a. Na guia Objeto do aplicativo Configuração do Banco de Dados, se desejar

aplicar a chave alternativa ao objeto para todas as origens de dadosexternas.

b. Na guia Estruturas de Objeto do aplicativo Configuração do Banco deDados, se desejar aplicar a chave alternativa a esse uso específico do objeto.

Incluindo campos não persistentes na estrutura de objeto:

Os objetos de negócios usam campos não persistentes para cálculos ou paraarmazenamento temporário de dados. Por padrão, os campos não persistentes emum objeto de negócios são excluídos da definição de estrutura de objeto. É possívelincluir dados de campos não persistentes em mensagens de integração.

Antes de Iniciar

Se desejar alterar uma estrutura de objeto predefinida, faça uma duplicata dessaestrutura de objeto para criar uma versão definida pelo usuário que seja adequadapara modificação.

Procedimento

1. No aplicativo Estruturas de Objeto, selecione a estrutura de objeto que desejaatualizar.

2. Selecione o objeto de negócios que contém o campo não persistente que desejaincluir.

3. Selecione a ação Excluir/Incluir Campos.4. Clique na guia Campos Não Persistentes para exibir os campos não

persistentes no objeto de negócios.5. Especifique se deseja que o campo não persistente seja incluído ou excluído.

Opção Incluído

Incluir o campo Selecionado

Excluir o campo Desmarcado

Integrando Dados a Aplicativos Externos 11

Page 18: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

6. Clique em OK.

Excluindo campos persistentes da estrutura de objeto:

Os objetos de negócios usam campos persistentes para gravar dados doprocessamento em um banco de dados. Por padrão, os campos persistentes sãoincluídos na definição de estrutura de objeto. É possível excluir dados do campopersistente que você não deseja mapear para uma mensagem de integração.

Antes de Iniciar

Se desejar alterar uma estrutura de objeto predefinida, faça uma duplicata dessaestrutura de objeto para criar uma versão definida pelo usuário que seja adequadapara modificação.

Sobre Esta Tarefa

Não é possível excluir um campo que faça parte de uma chave primária. Se vocêexcluir um campo persistente de uma estrutura de objeto predefinida, o objetoassociado poderá não funcionar corretamente durante o processamento demensagens de entrada. Teste suas mensagens de entrada para assegurar que umcampo persistente excluído não impacte o processamento de objetos.

Procedimento

1. No aplicativo Estruturas de Objeto, selecione a estrutura de objeto que desejaatualizar.

2. Selecione o objeto de negócios que contém o campo persistente que você desejaexcluir.

3. Selecione a ação Excluir/Incluir Campos.4. Clique na guia Campos Persistentes para exibir os campos persistentes no

objeto de negócios.5. Especifique se deseja que o campo persistente seja excluído ou incluído.

Opção Excluído

Excluir o campo Selecionado

Incluir o campo Desmarcado

6. Clique em OK.

Resolvendo Conflitos de Alias:

Uma estrutura de objeto que contém diversos objetos e suporta arquivos simplesou tabelas de interface não pode ter nomes de campos duplicados para nenhumdos campos em seus objetos. Você deve resolver quaisquer conflitos de nomes(alias) de campos antes de ser possível gerar tabelas de interface e registros dearquivos simples.

Sobre Esta Tarefa

Se existir um conflito de alias, a caixa de seleção Conflito de Alias é selecionadano registro de estrutura de objeto. Somente será possível alterar um alias se a caixade seleção Suportar estrutura de arquivo simples estiver selecionada no registro,indicando que os dados são processados usando tabelas de interface ou arquivossimples.

12 Integrando Dados a Aplicativos Externos

Page 19: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Procedimento

1. Quando existir um conflito de alias, selecione um objeto de negócios na tabelaObjetos de Origem.

2. Selecione a ação Incluir/Modificar Alias. Se existir um alias duplicado para umcampo, a caixa de seleção Duplicar correspondente é selecionada.

3. Para atualizar um alias duplicado.a. Clique em Visualizar Detalhes para o alias duplicado.b. Especifique um novo valor no campo ALIASNAME.c. Clique em OK.

O que Fazer Depois

Após resolver todos os conflitos de alias, é possível gerar tabelas de interfaces eregistros de arquivo simples. Se tabelas de interfaces forem usadas, você devegerar novamente todas as tabelas que usam a estrutura de objeto atualizada. Paragerar novamente tabelas de interfaces, selecione a ação Criar Tabelas de Interfacesno aplicativo Sistemas Externos.

Configurando restrições nos campos em mensagens de entrada:

O processamento de integração padrão configura os valores em campos de objetoscom valores correspondentes de uma mensagem de entrada. Será possívelconfigurar um campo como restrito, se você não desejar que o valor seja atualizadopor mensagens de entrada, por exemplo, para um campo com um ID interno ouonde uma classe de processamento fornecer a lógica para configurar o campo.

Procedimento

1. Selecione a ação Restrições de Configuração de Entrada.2. Na janela Restrições de Configuração de Entrada, selecione o objeto ao qual

deseja aplicar restrições de configuração. A tabela Restrições de Configuraçãode Entrada é atualizada com uma lista dos campos configurados para o objetoselecionado.

3. Marque a caixa de seleção Restrito para qualquer campo que não deseja queseja atualizado com valores de mensagens de entrada.

4. É possível marcar a caixa de seleção Substituir para remover as restriçõesconfiguradas para um campo. Não é possível substituir a restrição configuradaem alguns campos, por exemplo, para um campo com um ID gerado pelosistema.

5. Clique em OK.

Definindo configurações avançadas para uma estrutura de objeto:

É possível definir configurações avançadas para uma estrutura de objeto paraalterar algum comportamento de processamento padrão para mensagens deintegração. As configurações avançadas incluem configurar o modo como oscampos-chave são processados para objetos-filhos, se um evento de um objeto-filhoativar um evento correspondente no objeto-pai e se os dados geradosautomaticamente são excluídos.

Procedimento

1. Selecione a ação Configuração Avançada.2. Cancele a seleção da caixa de seleção Excluir Atributos da Chave-pai para

qualquer objeto em que você deseja que esses atributos sejam incluídos para

Integrando Dados a Aplicativos Externos 13

Page 20: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

objetos-filhos. Quando marcados (o padrão), os campos-chave existentes em umobjeto-filho não são incluídos na seção da mensagem para o objeto-filho, se omesmo campo fizer parte da chave do objeto-pai. Se você cancelar a seleçãodessa opção, os campos-chave para um objeto-filho serão sempre incluídos e ocampo será incluído na seção do objeto-filho da mensagem e na seção doobjeto-pai.

3. Cancele a seleção da caixa de seleção Excluir Dados Gerados Automaticamentepara qualquer objeto em que você deseja reter esses dados. Quando marcado (opadrão), o processamento de integração sempre exclui os dados no nível dofilho criados automaticamente pela lógica do objeto de negócios quando oobjeto-pai for criado. Se você cancelar a seleção dessa opção, os dadosadicionais gerados automaticamente serão retidos.

4. Selecione a opção Propagar Evento para qualquer objeto onde deseja que umevento em um objeto filho acione um evento no objeto principal. Ao configurarum canal de publicação para enviar mensagens com base em um evento deobjeto, o listener de eventos será configurado para o objeto principal daestrutura de objeto. Em alguns casos, uma atualização em um objeto-filho nãoaciona um evento no objeto principal e nenhuma mensagem é iniciada.Selecione essa opção se desejar que uma atualização no objeto-filho acione umevento no objeto principal sem atualizar o objeto principal. Se um objeto-filhoincluir a lógica que aciona um evento para seu objeto-pai, não será possívelativá-lo ou desativá-lo com essa configuração.

Canais e ServiçosCanais e serviços fazem referência a uma estrutura de objeto para seu conteúdo damensagem e ativam a troca síncrona e assíncrona de dados com sistemas externos.Dois tipos de canais processam mensagens de saída: canais de publicação e canaisde chamada. Três tipos de serviços processam mensagens de entrada: serviços deestrutura de objeto, serviços corporativos e serviços padrão.

Canais de publicaçãoUm canal de publicação é usado para enviar mensagens assíncronas por meio deuma fila JMS para um sistema externo. Mensagens do canal de publicação podemser iniciadas por meio de um evento ou por meio do recurso Exportação de Dados.

A estrutura de integração inclui canais de publicação predefinidos ou é possívelconfigurar novos canais de publicação. Ao configurar um canal de publicação, vocêdeve associá-lo a uma estrutura de objeto e, como opção, ativar um listener deeventos. Você também deve configurar o canal de publicação com um sistemaexterno para determinar onde a mensagem é entregue.

Também é possível configurar regras de processamento, Classes de processamentoJava ou mapeamento XSL para customizar o processamento de transação do canalde publicação.

Configurando um Canal de Publicação:

Para usar um canal de publicação, você deve criar o canal de publicação, associá-loa uma estrutura de objeto e ativar um listener de eventos. Também é possívelconfigurar um terminal que roteie a transação para um sistema externoespecificado. Também é possível configurar regras de publicação, as classes deprocessamento Java ou o mapeamento XSL para customizar o processamento detransações.

14 Integrando Dados a Aplicativos Externos

Page 21: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Criando Canais de Publicação:

É possível criar um registro de canal de publicação para enviar mensagens deintegração a um sistema externo.

Antes de Iniciar

Antes de criar e configurar um canal de publicação, use o aplicativo Estruturas deObjetos para configurar a estrutura de objeto que deseja associar ao canal depublicação.

Procedimento

1. No aplicativo Canais de Publicação, clique em Novo Canal de Publicação.2. No campo Canal de Publicação, especifique um nome para o canal de

publicação.3. No campo Estrutura de Objeto, especifique a estrutura de objeto a ser usada

com o canal de publicação. A seção Sub-registros da Estrutura de Objeto éatualizada com detalhes dos objetos contidos nessa estrutura de objeto.

4. Opcional: Se desejar usar uma tabela de interface como a origem de dados,especifique seu nome no campo Tabela de Interface. A estrutura de objeto deveser configurada para suportar arquivos simples a serem usados com tabelas deinterface

5. Opcional: Se tiver a intenção de customizar a lógica de processamento de saída,especifique os caminhos para as Classes Java e para a folha de estilo XSL noscampos a seguir:a. Classe de Processamento

b. Classe de Saída de Usuário

c. Mapa XSL

d. Classe de Filtro de Eventos

Quaisquer classes Java especificadas devem fazer parte do arquivo EAR doaplicativo. Um arquivo XSL pode estar dentro do arquivo EAR ou localizadoem um sistema de arquivos acessível.

6. Opcional: É possível configurar regras de processamento para o canal depublicação.

7. Opcional: Se necessário, limpe a caixa de seleção Reter Objetos para evitar queo canal de publicação processe regras baseadas em objetos de negócios.

8. Clique em Salvar Canal de Publicação.

O que Fazer Depois

É possível ativar um listener de canal de publicação para direcionar a estrutura deintegração para construir e processar o canal de publicação selecionado. Também épossível usar o aplicativo Sistemas Externos para associar o canal de publicação aum sistema externo e identificar um terminal para entrega de mensagens do canalde publicação.

Ativando Listeners de Canal de Publicação:

Você ativa um listener de eventos em um canal de publicação para monitorar aatividade de processamento nos objetos do canal de publicação associados. Oprocessamento do canal de publicação é iniciado quando ocorre um item no objetoprincipal da estrutura de objeto associada.

Integrando Dados a Aplicativos Externos 15

Page 22: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Procedimento

1. No aplicativo Canais de Publicação, selecione o canal de publicação que desejaconfigurar com um listener de eventos.

2. Selecione a ação Ativar Listener de Eventos.3. Clique em OK para ativar o listener do canal de publicação. Os detalhes do

canal de publicação são atualizados e a caixa de seleção Listener de Eventosagora está selecionada.

O que Fazer Depois

Selecione a ação Desativar Listener de Eventos se quiser desativar o listener deeventos a qualquer momento.

Canais de chamadaOs canais de chamada definem a lógica de processamento e o mapeamento dedados de entrada e de saída, o que permite que a estrutura de integração chameaplicativos externos e processe respostas. Nenhum canal de chamada predefinido éfornecido.

Criando Canais de Chamada:

É possível criar um registro do canal de chamada para enviar dados de saída deuma estrutura de objeto para um sistema externo e para processar respostas dosistema externo.

Antes de Iniciar

Você deve incluir a classe de processamento definida, a classe de saída de usuárioe os arquivos de mapeamento XSL no arquivo EAR do aplicativo. Você tambémdeve definir um caminho de nome do arquivo de mapeamento XSL que estejaacessível para o servidor de aplicativos.

Procedimento

1. No aplicativo Canais de Chamada, clique em Novo Canal de Chamada.2. No campo Canal de Chamada, especifique um identificador do canal de

chamada.3. Insira valores nos campos a seguir:

v Adaptador

v Ponto de Extremidade

4. Opcional: Se esse canal de chamada processar respostas de um aplicativoexterno, selecione a caixa de seleção Processar Resposta.

5. Na janela da tabela Configuração da Solicitação de Serviço, insira valores noscampos a seguir:

Opção Descrição

Estrutura de Objeto de Solicitação A estrutura de objeto usada para definir oconteúdo para o processamento de dadosde saída.

Classe de Processamento de Solicitação O arquivo de classe Java usado quando ocanal de chamada requer a lógica deprocessamento de saída predefinida.

16 Integrando Dados a Aplicativos Externos

Page 23: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Opção Descrição

Saída de Usuário de Solicitação O arquivo de classe que o canal dechamada usa para customizar a lógica deprocessamento de saída predefinida.

Arquivo XSL de Solicitação O arquivo XSL que é usado paracustomizar o mapeamento do canal dechamada de saída predefinido.

6. Opcional: Se a caixa de seleção Processar Resposta tiver sido selecionada, insiravalores nos campos a seguir na janela da tabela Configuração da Resposta deServiço:

Opção Descrição

Estrutura de Objeto de Resposta A estrutura de objeto usada para definir oconteúdo para a resposta.

Classe de Processamento de Resposta O arquivo de classe Java usado quando ocanal de chamada requer a lógica deprocessamento de entrada predefinida paraa resposta.

Classe de Saída de Usuário de Resposta Um arquivo de classe que o canal dechamada usa para customizar a lógica deprocessamento de entrada predefinida paraa resposta.

Arquivo XSL de Resposta O arquivo XSL que é usado para customizaro mapeamento do canal de chamada deentrada predefinido para a resposta.

7. Clique em Salvar Módulo de Chamada.

O que Fazer Depois

É possível visualizar o esquema XML da estrutura de objeto usando uma URL como seguinte formato:

http://localhost:port/meaweb/schema/service/object_structure_name

Configurando uma Ação para Chamar um Canal de Chamada:

A estrutura de integração fornece uma classe de ação padrão que pode serconfigurada como uma ação do sistema. Fornecendo essa classe de ação, é possívelconfigurar um controle de interface com o usuário, uma escalação ou um fluxo deserviço para chamar um serviço externo usando um canal de chamada.

Procedimento

1. Crie um canal de chamada no aplicativo Canais de Chamada.2. Crie uma ação no aplicativo Ações.3. Especifique um objeto para a ação. Esse objeto deve ser o mesmo que o objeto

principal da estrutura de objeto da solicitação do canal de chamada e que oobjeto principal do aplicativo, fluxo de serviço ou escalação que chama a ação.

4. Especifique Classe Customizada no campo Tipo.5. Especifique o nome da classe customizada no campo Variável. É possível usar

o nome da classe padrão fornecida para esse propósito,psdi.iface.action.InvokeCustomClass, ou um nome de classe alternativa setiver criado sua própria classe customizada para chamar um sistema externo.

Integrando Dados a Aplicativos Externos 17

Page 24: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

6. Especifique valores no campo Parâmetros/Atributos. Especifique os valores naseguinte ordem e separe cada valor por uma vírgula:a. Necessário: O nome do canal de chamada a ser usado. O valor deve ser

precisamente o mesmo que o nome do canal de chamada.b. Opcional: O nome do relacionamento a ser usado se o objeto principal da

estrutura de objeto de resposta for diferente do objeto principal da estruturade objeto de solicitação no canal de chamada. Se o objeto de resposta for omesmo que o objeto de solicitação, nenhum relacionamento é necessário.

c. Opcional: Se tiver especificado um relacionamento, especifique a ação aaplicar. A ação padrão é Incluir, que cria registros. Para atualizar registrosexistentes, especifique Alterar como a ação. Se as estruturas de objetos desolicitação e resposta forem as mesmas, os objetos são atualizados secampos atualizados estiverem mapeados para a estrutura de objeto deresposta.

7. Especifique se a ação deve ser aplicada a todos os aplicativos, a fluxos deserviço ou a aplicativos.

8. Salve a ação.

O que Fazer Depois

Associe um aplicativo, fluxo de serviço ou escalação à ação. O objeto principal épassado à classe de ação e, em seguida, à estrutura de objeto do canal de chamadapara formar o XML de solicitação.

Chamando um Sistema Externo de um Aplicativo:

Após configurar uma classe de ação para chamar um sistema externo (por meio deum canal de chamada), é possível configurar um botão em um aplicativo paraacionar a ação de chamada. Também é possível estender a classe de ação paraexibir os resultados da transação em uma caixa de diálogo de aplicativo.

Antes de Iniciar

Você deve criar um canal de chamada e uma classe de ação antes de incluir a açãode chamada em um aplicativo. Se tiver a intenção de mostrar os resultados dachamada, crie uma janela (diálogo) Resultados com antecedência.

Procedimento

1. Abra o aplicativo no aplicativo Editor de Telas. O objeto principal desseaplicativo deve ser o mesmo que o objeto principal do canal de chamada e aação que você pretende chamar do aplicativo.

2. Inclua um controle Grupo de Botões na área de trabalho a partir da Paleta deControle. O controle Grupo de Botões inclui automaticamente um controleBotão de Comando na área de trabalho.

3. Clique em Propriedades para abrir a janela Propriedades do Botão deComando.

4. Especifique um nome para o botão no campo Valor, por exemplo, ChamarSistema Externo.

5. Especifique o ID de Controle para a janela Resultados no campo ID deDestino.

6. Especifique um métodos no campo Valor que chama o canal de chamada eredireciona os resultados para a janela Resultados. Por exemplo:InvokeChannelCache.getInstance().getInvokeChannel(channelName).invoke(metaData, mbo, mbo.getMboSet(rel), action, null);

18 Integrando Dados a Aplicativos Externos

Page 25: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Em que:v O valor channelName é o nome do canal de chamada.v O valor mbo é o nome do objeto.v O valor rel é o nome do relacionamento (se aplicável).v O valor action é Incluir.

Serviços de Estrutura de ObjetoQuando uma estrutura de objeto é configurada, nenhuma configuração adicional énecessária para torná-la disponível como um serviço ou um recurso REST.Conceitos relacionados:“API REST” na página 224A interface de programação de aplicativos (API) Representational State Transfer(REST) fornece uma maneira de aplicativos externos consultarem e atualizaremdados do aplicativo no mecanismo de automação de processo da Tivoli.

Serviços corporativosUm serviço corporativo é um pipeline para consultar dados externos e importardados de um sistema externo. Um serviço corporativo pode processar dados deforma síncrona (sem uma fila) ou de forma assíncrona (com uma fila). Os serviçoscorporativos podem usar diversos protocolos, como serviços da Web e HTTP.

Um serviço corporativo tem camadas de processamento de dados que transformamdados e aplicam regras de processamento de negócios a dados antes de atingir osobjetivos de destino. Quando a mensagem de entrada atinge a camada de estruturade objeto, a mensagem XML deve estar no formato do esquema de estrutura deobjeto. A estrutura de integração pode então processar a mensagem com sucesso.

É possível configurar um serviço corporativo para implementar o processamentode transações a seguir:v Regras de processamentov Classe de processamento Java de saída de usuáriov Classe de processamento de serviço corporativov Mapeamento de XSL

O gateway é o ponto de entrada para as mensagens do serviço corporativo,excluindo aquelas entregues diretamente de uma fila externa à fila de integração.Para alguns cenários de integração, pode ser útil configurar propriedades dogateway, por exemplo, se propriedades, como IDs de sistemas, forem fornecidasdentro da mensagem XML em vez de nas informações de cabeçalho. É possívelconfigurar uma classe Java do interpretador para alterar o ID do sistema externo, oID do serviço corporativo ou outras propriedades de cabeçalho da mensagem JMSfornecidas em uma mensagem de entrada. Como alternativa, é possível configurarpropriedades no aplicativo Serviços Corporativos.

Configurando um Serviço Corporativo:

Ao criar um serviço corporativo, ele é associado a uma estrutura de objeto.Também é possível configurar as propriedades de gateway que são incluídas nasinformações do cabeçalho das mensagens de entrada.

Criando um Serviço Corporativo:

É possível criar um registro de serviço corporativo para receber dados de entradade um sistema externo. No serviço corporativo, é possível identificar as regras de

Integrando Dados a Aplicativos Externos 19

Page 26: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

transformação e processamento de dados que a estrutura de integração usa parareceber dados de entrada de um sistema externo.

Antes de Iniciar

Antes de criar e configurar um serviço corporativo, use o aplicativo Estruturas deObjeto para configurar a estrutura de objeto associada ao serviço corporativo.

Sobre Esta Tarefa

Quando a caixa de seleção Usar Esquema Externo está selecionada, os camposDividir Tag, Arquivo de Esquema Externo e Elemento de Esquema Externo sãoeditáveis. Os valores do esquema externo identificam o local do esquema e o nomedo elemento-raiz externo.

Procedimento

1. No aplicativo Serviços Corporativos, clique em Novo Serviço Corporativo.2. No campo Serviço Corporativo, especifique um identificador de serviço

corporativo.3. Insira um valor nos seguintes campos:

v Estrutura de Objeto

v Adaptador

4. Opcional: Insira valores nos campos a seguir:

Opção Descrição

Operação Determina como o Serviços Corporativoprocessa dados. Por exemplo, é possívelsincronizar objetos ou criar novos objetos.

Também é possível atualizar, excluir ouconsultar objetos existentes.

Controle de Multiplicação Determina o controle de referência cruzadaque o serviço corporativo usa paramultiplicar uma mensagem de entradapara diversas organizações ou sites.

Tabela de Interface Reflete o conteúdo das estruturas de objetodo serviço corporativo.

Etiqueta de Divisão Identifica se a mensagem recebida contémdiversas instâncias de um documento.

Por exemplo, uma única mensagem podeconter dez ordens de compra. O processode divisão manipula cada uma destasinstâncias individualmente. O aplicativograva diversos arquivos para a fila deentrada.

A sintaxe usada para identificar essesvalores de nós deve ter uma expressãoXPATH completa.

5. Opcional: Para usar um esquema externo, selecione a caixa de seleção UsarEsquema Externo.

6. Opcional: É possível customizar a lógica de processamento de serviçocorporativo de entrada executando as seguintes etapas:

20 Integrando Dados a Aplicativos Externos

Page 27: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

a. No campo Classe de Processamento, insira um valor de classe se o serviçocorporativo precisar de lógica de processamento de entrada predefinida.

b. No campo Classe de Saída de Usuário, insira um valor de classe que oserviço corporativo usa para customizar a lógica de processamento deentrada predefinida.

c. No campo Mapa de XSL, insira um valor para customizar o mapeamentode serviço corporativo de entrada predefinido.

7. Clique em Salvar Serviço Corporativo.

O que Fazer Depois

É possível usar o aplicativo Sistemas Externos para associar o serviço corporativo aum sistema externo.

Configurando estruturas de objeto adicionais para um serviço corporativo:

Um serviço corporativo deverá ser associado a uma estrutura de objeto primária. Épossível incluir estruturas de objeto adicionais em um serviço corporativo parasuportar a atualização os dados adicionais que não estão incluídos na estrutura deobjeto primária do serviço corporativo. Com base na ordem de processamentodefinida, o serviço corporativo processa estruturas de objeto adicionais antes deprocessar sua estrutura de objeto principal.

Procedimento

1. No aplicativo Serviços Corporativos, exiba o serviço para o qual deseja incluiruma estrutura de objeto.

2. Selecione a ação Incluir/Modificar estrutura de objeto adicional e clique emNova linha.

3. Insira valores nos campos a seguir:v Estrutura de Objeto

v Ordem de Processamento

4. Opcional: É possível customizar a lógica de processamento de serviçocorporativo de entrada executando as seguintes etapas:a. No campo Classe de Processamento, insira um valor de classe se o serviço

corporativo precisar de lógica de processamento de entrada predefinida.b. No campo Classe de Saída de Usuário, insira um valor de classe que o

serviço corporativo usa para customizar a lógica de processamento deentrada predefinida.

c. No campo Mapa de XSL, insira um valor para customizar o mapeamentode serviço corporativo de entrada predefinido.

d. No campo Controle de Multiplicação, insira um valor para definir ocontrole de referência cruzada que o serviço corporativo usa paramultiplicar uma mensagem de entrada para diversas organizações ou sites.

5. Clique em OK.

Incluindo Propriedades do Gateway em um Serviço Corporativo:

O gateway é o ponto de entrada para as mensagens do serviço corporativo,excluindo aquelas entregues diretamente de uma fila externa à fila de integração.Uma classe Java de interpretador pode ser implementada, pode alterar o sistemaexterno (SENDER) ou o serviço corporativo (INTERFACE) e pode configurar outraspropriedades do cabeçalho JMS, conforme necessário. No aplicativo Serviços

Integrando Dados a Aplicativos Externos 21

Page 28: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Corporativos, é possível configurar propriedades do gateway como valorescodificados permanentemente ou especificando tags XML.

Antes de Iniciar

Revise os seguintes pontos sobre as definições nas Propriedades do Gateway antesde configurar as propriedades do gateway:v Se tiver selecionado a caixa de seleção Tag XML e deixar o campo Valor nulo, o

gateway usa o nome do elemento-raiz na mensagem XML como o valor para apropriedade correspondente.

v Se a caixa de seleção Tag XML for selecionada e um nome de tag for inserido nocampo Valor, o gateway usa o valor para essa tag como o valor para apropriedade correspondente.

v Se a marcação aparecer diversas vezes na mensagem XML, o adaptador utilizaráo valor da primeira ocorrência da marcação. Se a caixa de seleção Tag XML fordesmarcada e um valor de dados for inserido no campo Valor, o gateway usaesses dados como o valor para a propriedade correspondente.

Procedimento

1. No aplicativo Serviços Corporativos, exiba o serviço para o qual deseja incluiruma propriedade do gateway.

2. Selecione a ação Propriedades de Gateway.3. Na janela da tabela Propriedades do Gateway para Serviço Corporativo, clique

em Nova Linha.4. No campo Propriedade, especifique o nome da propriedade que deseja incluir

na mensagem.5. No campo Valor, digite os dados que deseja utilizar como o valor da

propriedade.6. Opcional: Especifique se deseja usar o elemento-raiz XML como o valor da

propriedade correspondente.

Opção Etiqueta XML

Usar Elemento-raiz XML Selecionado

Não Usar Elemento-raiz XML Desmarcado

7. Clique em OK.

Serviços PadrãoUm serviço padrão é baseado em um método anotado em um aplicativo. Umserviço padrão é específico do método anotado para um objeto e não é reutilizávelpara outros objetos. É possível implementar um serviço padrão como um serviçoda Web. É possível acessar um serviço padrão usando a API REST.

Um serviço padrão é um serviço que um aplicativo fornece para executar umaoperação específica em um objeto. Serviços-padrão estão disponíveis somente paramétodos anotados de forma apropriada dentro do serviço. Os esquemas de serviçogerados para serviços padrão são usados somente pelas ações correspondentes.Conceitos relacionados:“API REST” na página 224A interface de programação de aplicativos (API) Representational State Transfer(REST) fornece uma maneira de aplicativos externos consultarem e atualizaremdados do aplicativo no mecanismo de automação de processo da Tivoli.

22 Integrando Dados a Aplicativos Externos

Page 29: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Terminais e ManipuladoresUm terminal e seus manipuladores associados roteiam mensagens de saída paraum sistema externo. A combinação de um terminal e manipulador especifica oprotocolo de transporte a ser usado, como HTTP ou serviço da Web, e fornece osdados de comunicação necessários para atingir o destino, como uma URL.

Para uma exportação de dados usando um canal de publicação, a tarefa Cron paraa fila de saída chama o manipulador. Para uma exportação de dados usando umcanal de chamada, o canal de chamada chama o manipulador diretamente. Omanipulador usa as propriedades de metadados da mensagem para determinar osistema externo (para uma transação do canal de publicação) e quaisquer valoresde substituição configurados para as propriedades de terminal. O manipuladorenvia então os dados ao destino especificado pelo terminal ao qual o manipuladorestá associado. Um único manipulador pode ter diversos terminais, sendo que cadaterminal contém diferentes parâmetros.

Terminais e manipuladores são usados somente para integração de saída. Noentanto, o terminal e o manipulador da tabela de interface também suportam acriação de tabelas de interface, que são necessárias para integração de entrada.

Terminais fornecem valores de parâmetros de execução que o manipulador usapara executar sua função. Os metadados incluídos com a definição de terminal,juntamente com a mensagem de integração de saída, são usados pelo manipuladorno momento da execução. Alguns manipuladores, não todos, têm terminaispredefinidos. Eles podem ser modificados ou novos terminais podem serconfigurados usando o aplicativo de terminal. A tabela a seguir lista terminaispredefinidos.

Terminal Manipulador Descrição

ARQUIVO SIMPLES MX FLATFILE Grava mensagens de integração de saída em um formato dearquivo simples em um local de diretório especificado.

TABELA IFACE MX IFACETABLE Grava mensagens de integração de saída em tabelas de interface.

ARQUIVO MXXML XMLFILE Grava mensagens de integração de saída em um formato dearquivo XML em um local de diretório especificado.

MXCMDLINE CMDLINE Implementa o manipulador CMDLINE. Aceita um comando e umterminal como entrada e usa o protocolo SSH para chamar ocomando no sistema de destino e retornar os resultados.

Diversos manipuladores predefinidos são fornecidos. Para diversos dessesmanipuladores, definições de terminais correspondentes foram configuradas. Adefinição de terminal fornece os valores de metadados para os parâmetros demanipulador, como um nome de diretório para o manipulador FLATFILE.

Configurando um TerminalNo aplicativo Terminais, é possível criar um terminal que especifica comotransações de saída são entregues e o manipulador que roteia as mesmas.

Criando Terminais:

Um terminal é criado para identificar um local de destino e o mecanismo detransporte que a estrutura de integração ou o gerenciador de implementação usapara publicar dados ou para chamar um serviço.

Procedimento

1. No aplicativo Terminais, clique em Novo Terminal.2. No campo Terminal, especifique um identificador para o terminal.

Integrando Dados a Aplicativos Externos 23

Page 30: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

3. No campo Manipulador, especifique um valor. O campo Consumido por exibeas informações que estão associadas ao manipulador do terminal especificado.

4. Na janela Propriedades para Terminal, clique em Visualizar Detalhes docampo de propriedade do terminal e execute as ações a seguir:a. Inclua um valor exclusivo no campo Valor para identificar a propriedade do

terminal.b. Inclua um valor no Valor Criptografado para identificar se a propriedade

do terminal precisa de segurança adicional para armazenamento e exibição.É possível atualizar um valor criptografado somente em um terminal comuma propriedade de senha.

c. Selecione a caixa de seleção Permitir Substituição para identificar se épossível sobrescrever o código da propriedade do terminal. Selecione essacaixa de seleção ao usar uma classe de processamento do canal de chamada.

5. Clique em Salvar Terminal.

O que Fazer Depois

É possível incluir um manipulador para especificar como rotear dados de saídapara um local do terminal específico em um formato específico. É possível usar oterminal nos aplicativos da estrutura de integração a seguir:v Sistemas Externosv Publicar Canaisv Canais de Chamadav Módulos de Integraçãov Operações de Gerenciamento Lógicas

Incluindo um Manipulador em um Terminal:

É possível incluir um manipulador em um registro de terminal para especificarcomo rotear dados de saída para um local de terminal específico. Também épossível incluir um manipulador para definir o formato de dados que é usado nastransferências de dados. Ao criar um manipulador, você deve identificar o arquivode classe Java™ específico que contém a lógica de processamento necessária paratransferências de dados.

Sobre Esta Tarefa

Não é possível modificar nem excluir um manipulador predefinido.

Procedimento

1. No aplicativo Terminais, selecione o terminal que deseja atualizar cominformações de manipulador.

2. Selecione a ação Incluir/Modificar Manipuladores.3. Clique em Nova Linha.4. Insira valores nos campos a seguir:

v Rotina de Tratamento

v Nome da Classe da Rotina de Tratamento

v Consumido por

5. Clique em OK.

24 Integrando Dados a Aplicativos Externos

Page 31: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Composição de Manipuladores Customizados:

É possível escrever um manipulador customizado e associá-lo a um terminal, porexemplo, para suportar comunicação com um servidor FTP.

Sobre Esta Tarefa

A classe manipuladora exibe as propriedades para as quais você deve especificarvalores. O arquivo FTPHandler.java no diretório psdi.iface.samples contém umexemplo de um manipulador de FTP.

Procedimento

1. Para escrever uma manipulador customizado, implemente a interfaceRouterHandler.

2. Especifique o método a seguir para retornar uma lista de propriedades que omanipulador usa para enviar dados ao terminal:getParameter()

O método retorna uma lista de objetos RouterPropsInfo. O atributo isCrypto noobjeto RouterPropsInfo indica se o valor da propriedade deve ser criptografadodurante o armazenamento de dados. Para propriedades de senha, o valor desseatributo é Verdadeiro.

3. Especifique o método a seguir para enviar dados ao terminal especificado:sendData(Map metaData, byte[] data, Map destinationMap)

O método retorna as seguintes informações:v Metadata fornecem informações sobre o sistema externo e a interface.v Data são os dados XML.v DestinationMap especifica o terminal.

Manipuladores de Terminais PredefinidosSão fornecidos manipuladores predefinidos que é possível associar a um terminal.Além disso, é possível criar e registrar manipuladores customizados quandonecessário.

Manipulador de Enterprise Bean:

O manipulador de Enterprise Java Bean (EJB) é um componente Java que consisteem clientes enterprise bean. O manipulador publica um conjunto de propriedadesque um cliente usa para se comunicar e entregar uma mensagem de integração aum cliente de destino. O cliente de destino pode ser executado no servidor deaplicativos local ou em um servidor de aplicativos remoto.

Para estabelecer uma conexão, a classe Java remota e a classe Java de início devemestar disponíveis no caminho da classe do manipulador. Se o cliente estiver em umservidor de aplicativos remoto que seja diferente do servidor de aplicativos domanipulador, a referência do arquivo jar do cliente deve estar no caminho daclasse do manipulador. O manipulador seleciona o nome da classe do factory decontexto no servidor de aplicativos local quando o cliente enterprise bean está emum servidor de aplicativos remoto que é o mesmo que o servidor de aplicativos domanipulador.

Integrando Dados a Aplicativos Externos 25

Page 32: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Propriedade CONTEXTFACTORY

Essa propriedade obrigatória especifica um nome de classe de factory de contextoJ2EE. A documentação para seu servidor de aplicativos contém o nome do factoryde contexto padrão a ser usado.

CONTEXTFACTORY usa a propriedade a seguir quando o cliente de destino éexecutado em um IBM WebSphere Application Server:com.ibm.websphere.naming.WsnInitialContextFactory

Propriedade EJBEXIT

Essa propriedade opcional é usada para customização e especifica o nomecompleto de uma classe Java customizada que implementa a interface EJBExit.

Se um valor não for especificado para essa propriedade, a interface DefaultEJBExité executada e tenta resolver a assinatura e os parâmetros do método do enterprisebean.

Se o cliente enterprise bean tiver sua própria assinatura e parâmetros do método,crie uma classe Java que contenha sua versão da interface EJBExit eimplementações dos seguintes métodos:public Class[] getClassParams()

O método getClassParams() retorna a assinatura de método no formato de umamatriz de classes Java.

public Object[] getObjectParams(byte[] data, String interfaceName, MapString,? metaData)throws MXException

O método getObjectParams() retorna os parâmetros do método de negócios doenterprise bean na forma de uma matriz de objetos Java.public void responseOk(Object response)throws MXException

O método responseOk() é chamado após uma chamada bem-sucedida doenterprise bean.public void responseError(Exception e) throws MXException

O método responseError() é chamado com a exceção de origem como umparâmetro se um erro for encontrado durante a chamada do enterprise bean.

O código a seguir ilustra a aparência de sua implementação de getClassParams()quando o cliente enterprise bean tem um método de negócios com uma matriz debytes e uma sequência:Class[] classParams = {byte[].class, String.class};return classParams;

O código a seguir ilustra a aparência de sua implementação de getObjectParams()quando o cliente enterprise bean tem um método de negócios com uma matriz debytes e uma sequência:byte[] data = ...;String ifaceType = ...;

Object[] objParams = {data,ifaceType};return objParams;

Execute uma das ações a seguir para identificar o local da estrutura de pacote parao arquivo de classe EJBExit:

26 Integrando Dados a Aplicativos Externos

Page 33: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

v Coloque a classe na estrutura do pacote Java no diretório applications/maximo/businessobjects/classes.

v Modifique o caminho da classe mboweb\webmodule\META-INF\MANIFEST.MF paraincluir a estrutura do pacote.

v Reconstrua o arquivo EAR do aplicativo e inclua o arquivo de classe EJBExit.

Propriedade JNDINAME

Essa propriedade obrigatória especifica o nome pelo qual o cliente enterprise beané registrado na árvore de Java Naming and Directory Interface (JNDI) noWebSphere Application Server. O nome do arquivo é ibm-ejb-jar-bnd.xml e apropriedade é configurada para<ejbBindings xmi:id="Session_enterpriseservice_Bnd"

jndiName="ejb/maximo/remote/enterpriseservice"><enterpriseBean xmi:type="ejb:Session"

href="META-INF/ejb-jar.xml#Session_enterpriseservice"/></ejbBindings>

Propriedade METHODNAME

Essa propriedade obrigatória especifica o método de negócios público exposto pelocliente enterprise bean que é chamado por esse manipulador.

Propriedade PROVIDERURL

Essa propriedade obrigatória especifica a URL do servidor de aplicativos dedestino no qual o enterprise bean está em execução. O sistema mapeia então apropriedade java.naming.provider.url e cria o objeto InitialContext.

O exemplo a seguir é uma URL do provedor do IBM WebSphere ApplicationServer.corbaloc:iiop:hostname:iiopport

Se o manipulador e o enterprise bean de destino estiverem em execução na mesmainstância do servidor de aplicativos, não especifique essa propriedade, pois ela usacomo padrão a URL do servidor local.

Propriedades USERNAME e PASSWORD

As propriedades de nome de usuário e senha correspondem às propriedadesjava.naming.security.principal (USERNAME) ejava.naming.security.credentials (PASSWORD) que são usadas para criar oobjeto InitialContext.

Manipulador de Arquivo Simples:

O manipulador FLATFILE converte uma mensagem de integração de saída comoum arquivo simples e grava a mesma em um diretório que tem um localconfigurável. Os arquivos simples contêm dados ASCII no formato de linhas ecolunas. Cada linha de texto constitui uma linha e um caractere separador separacada coluna da linha. O manipulador FLATFILE codifica os arquivos simples desaída no formato UTF-8 padrão.

O manipulador FLATFILE pode ser usado somente com canais de publicação, nãocom canais de chamada. A estrutura de objeto associada ao canal de publicaçãodeve ser configurada para suportar arquivos simples. Você deve resolver todos os

Integrando Dados a Aplicativos Externos 27

Page 34: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

conflitos de alias para a estrutura de objeto e formatar a mensagem XML de acordocom o esquema de estrutura de objeto antes de gravar a mensagem em um arquivosimples.

Convenções de Nomenclatura

Os nomes de arquivos requerem o formato a seguir.

externalsystemname_publishchannelname_uniqueidentifier.dat

v externalsystemname é o identificador do sistema (o valor deMAXVARS.MXSYSID).

v publishchannelname é o nome do canal de publicação.v uniqueidentifier é um número baseado na hora do sistema atual.

O nome do arquivo de exemplo a seguir indica que o arquivo vai para o sistemaexterno EXTSYS1 e foi publicado por meio do canal de publicaçãoMXASSETInterface:

EXTSYS1_MXASSETInterface_10971102668641498.dat

As duas primeiras linhas do arquivo contêm informações do cabeçalho. A primeiralinha possui o seguinte formato:

externalsystemname <separator> publish channel name <separator> [action]<separator> langcode

A segunda linha do arquivo contém os nomes das colunas, separados pelocaractere separador. Os nomes de colunas são os mesmos que os nomes na tabelade interface correspondente.

Formato de Arquivo Simples

Se os dados do arquivo simples contiverem o caractere delimitador do arquivosimples, os dados incluem o qualificador de texto, que é " (aspas). Se os dadoscontiverem aspas, o manipulador escapa as aspas. Não é possível usar aspas comoo caractere delimitador.

Os dados de exemplo a seguir usam uma vírgula (,) como um delimitador. O valorINVOICEDESC (Rotating Custom Item, No 71) contém uma vírgula. Quando oarquivo simples for gravado, o valor INVOICEDESC é colocado entre aspas.EXTSYS1,MXINVOICEInterface,AddINVOICENUM,INVOICEDESC,PONUM,VENDOR,CONTACT,PAYMENTTERMS1071,"Rotating Custom Item, No 71",1000,A0001,,

Os dados de exemplo a seguir usam uma vírgula (,) como um delimitador. O valorINVOICEDESC (Rotating "Custom" Item No 71) contém aspas duplas. Quando oarquivo simples for gravado, as aspas duplas nos dados de INVOICEDESCterminam com aspas e toda a sequência é colocada entre aspas.EXTSYS1,MXINVOICEInterface,AddINVOICENUM,INVOICEDESC,PONUM,VENDOR,CONTACT,PAYMENTTERMS1071,"Rotating ""Custom"" Item No 71",1000,A0001,,

Os dados de exemplo a seguir usam uma vírgula (,) como um delimitador. Osdados de INVOICEDESC (Rotating "Custom" Item, No. 71) contêm o caracteredelimitador e aspas duplas. Quando o arquivo simples for gravado, o valorINVOICEDESC aparece no código.

28 Integrando Dados a Aplicativos Externos

Page 35: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

EXTSYS1,MXINVOICEInterface,AddINVOICENUM,INVOICEDESC,PONUM,VENDOR,CONTACT,PAYMENTTERMS1071,"Rotating ""Custom"" Item, No. 71",1000,A0001,,

Propriedades do Arquivo Simples

A propriedade FLATFILEDIR é uma propriedade opcional que especifica o local doarquivo simples. O local deve existir no servidor local onde a tarefa CRON JMSpara a fila de saída está em execução, ou em uma unidade de rede compartilhadaacessível. O valor padrão aponta para o diretório global directory/flatfiles. Paraespecificar um local para o diretório global, configure a propriedademxe.int.globaldir no aplicativo Propriedades de Sistema.

A propriedade FLATFILESEP é uma propriedade obrigatória que especifica ocaractere que separa as colunas em cada linha.

Manipulador HTTP:

O manipulador HTTP é um componente Java que consiste em propriedades. Omanipulador entrega uma mensagem de integração de saída como um documentoXML a uma URL usando os protocolos HTTP ou HTTPS. O manipulador HTTPtambém avalia o código de resposta recebido do sistema externo.

Propriedade HTTPEXIT

Essa propriedade opcional é usada para customização e especifica o nomecompleto de uma classe Java que interpreta a resposta HTTP. Essa propriedadetambém ajuda a implementar o código obrigatório para que um sistema externointerprete a resposta HTTP.

A classe Java deve estar disponível no arquivo EAR do aplicativo e deve estar nocaminho da classe do manipulador.

Propriedade Valor

Classe Java DefaultHTTPExit.java

Pacote psdi.iface.router

Propriedade HTTPEXIT psdi.iface.router.DefaultHTTPExit

Se um valor não for especificado para essa propriedade, a classe de saídaDefaultHTTPExit é executada e implementa a interfacepsdi.iface.router.HTTPExit. A classe Java tem os seguintes métodos chave:v processResponseData()

Esse método tem a seguinte assinatura:public void processResponseData(int responseCode, String responseMsg,byte[] msgBodyData) throws MXException

A implementação padrão compara o código de resposta do sistema externo comuma faixa de códigos válidos (valores 200 a 299). Se o código de resposta ficarfora dessa faixa, o sistema supõe que a mensagem não foi entregue ao sistemaexterno. Uma exceção ocorre e a mensagem permanece na fila.Se processamento adicional for necessário para uma implementação específica,estenda a implementação padrão e substitua o método processResponseData ().Como alternativa, é possível implementar a interfacepsdi.iface.router.HTTPExit. Se a resposta recebida do sistema externo nãopassar pela validação nessa classe, o método de substituição deve emitir umaexceção.

Integrando Dados a Aplicativos Externos 29

Page 36: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Se um valor não for definido para essa propriedade, a implementação padrão deHTTPExit é executada.

v getURLProperties()Esse método tem a seguinte assinatura:public Map String, String getURLProperties(Map String,? metaData, byte[]data, Map String,MaxEndPointPropInfo httpInfo)

Esse método retorna o mapa de propriedades da URL que são incluídas na URLno formato url?prop1=value1&... A implementação padrão retorna um valornulo.

v getHeaderProperties()Esse método tem a seguinte assinatura:public Map String, String getHeaderProperties(Map String,? metaData,byte[] data, Map String,MaxEndPointPropInfo httpInfo)

Esse método retorna um mapa das propriedades do cabeçalho HTTP para asolicitação. A implementação padrão retorna um valor nulo a menos que ummapa de propriedade de cabeçalho esteja associado ao mapa de metadados quetem a chave HEADERPROPS.

v transformPayloadToFormData()Esse método tem a seguinte assinatura:public Map String, String transformPayloadToFormData(Map String,?metaData, byte[] data,Map String,MaxEndPointPropInfo destinationMap)

Esse método converte a carga útil de XML em dados. A implementação padrãoretorna um valor nulo.

Propriedade CONNECTTIMEOUT

Essa propriedade opcional especifica o valor de tempo limite de conexão emmilissegundos.

Propriedade READTIMEOUT

Essa propriedade opcional especifica o valor de tempo limite de leitura emmilissegundos.

Propriedade HTTPMETHOD

Essa propriedade obrigatória especifica um método de HTTP válido que éexecutado pelo terminal. Os métodos de HTTP válidos são GET, POST, PUT eDELETE.

Propriedade HTTPHEADER

Esta propriedade opcional pode incluir uma lista separada por vírgulas de nomes evalores para a seção do cabeçalho de mensagens HTTP. A lista inclui informaçõesde nome e valor no formato de Headername1:Headervalue1,Headername2:Headervalue2. Se nenhum valor for fornecido na propriedade, umcódigo customizado poderá injetar os valores no contexto de transação durante oprocessamento do canal de chamada.

Propriedade URL

Essa propriedade opcional especifica uma URL válida na qual dados XML podemser postados ou na qual uma operação HTTP GET pode ser executada.

30 Integrando Dados a Aplicativos Externos

Page 37: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Propriedades USERNAME e PASSWORD

Se a URL solicitar autenticação básica, essas propriedades especificam os valoresobrigatórios. Ambos os valores são codificados por MIME e são passados à URL.

Manipulador IFACETABLE:

O manipulador IFACETABLE consiste em diversas propriedades. Esse manipuladorgrava uma mensagem de integração de saída em uma tabela de interface em umbanco de dados local ou remoto. Não há nenhuma classe de saída Java para essemanipulador.

Somente canais de publicação podem usar o manipulador IFACETABLE. Os canaisde chamada não podem usar esse manipulador.

Propriedade ISREMOTE

Essa propriedade obrigatória é um valor booleano que especifica se as tabelas deinterface estão disponíveis no banco de dados local ou em um banco de dadosremoto. Um valor igual a 0 (falso) indica que as tabelas de interface estãodisponíveis no banco de dados local no esquema do sistema. Não é necessárioinserir outras propriedades do manipulador. No manipulador MAXIFACETABLEpredefinido, o valor dessa propriedade é 0. O valor 1 (true) indica que as tabelasde interface estão em um banco de dados remoto. Se necessário, especifiquevalores para todas as propriedades do manipulador.

Propriedade DRIVER

Essa propriedade especifica o driver JDBC para conectar a um banco de dadosremoto que contém as tabelas de interface. Essa propriedade se aplica somentequando o valor da propriedade ISREMOTE for 1.

Propriedade URL

Essa propriedade especifica a URL de JDBC e aplica-se somente quando o valor dapropriedade ISREMOTE é 1. O exemplo a seguir contém o local, o número daporta e o nome do banco de dados:

jdbc:db2://hostname:port/maximodb

Propriedades USERNAME e PASSWORD

Se o acesso ao banco de dados remoto requer um nome de usuário e senha, essaspropriedades especificam esses valores. Essas propriedades se aplicam somentequando o valor da propriedade ISREMOTE for 1.

Manipulador JMS:

O manipulador JMS entrega mensagens de integração de saída a um sistema demensagens compatível com JMS que suporta uma fila ou tópico JMS.

Os modelos do sistema de mensagens têm as seguintes características:v Sistema de mensagens ponto a ponto (um para um): Um remetente gera

mensagens e coloca as mesmas em uma fila. Apenas um receptor pode obter amensagem da fila.

Integrando Dados a Aplicativos Externos 31

Page 38: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

v Publicar/assinar (um para muitos): Um publicador gera mensagens e coloca asmesmas em um tópico. Diversos assinantes podem recuperar mensagens dotópico.

O sistema de mensagens representa uma fila ou um tópico que está disponível noservidor de aplicativos local, em um servidor de aplicativos remoto ou em umsistema de enfileiramento dedicado remoto tal como o IBM® WebSphere MQ. Parausar esse manipulador, ative os sistemas de mensagens usando JMS. O sistema demensagens é distinto das filas internas padrão que residem no servidor deaplicativos local.

Propriedade CONFACTORYJNDINAME

Esta propriedade necessária especifica um objeto Java que é usado para criarconexões com um provedor JMS. Antes de o sistema poder conectar a uma fila outópico, ele deve obter uma referência a um connection factory.

Propriedade DESTINATIONTYPE

Essa propriedade opcional especifica o tipo de destino JMS: fila ou tópico. A tabelaa seguir lista as opções de DESTINATIONTYPE e seus valores associados.

Destino Valor

Tópico javax.jms.Topic

Fila javax.jms.Queue

Propriedade DESTJNDINAME

Esta propriedade necessária especifica o nome pelo qual a fila JMS ou o tópico éregistrado na árvore Java Naming and Directory Interface (JNDI) do servidor deaplicativos.

Propriedade CONTEXTFACTORY

Essa propriedade especifica o nome de classe de factory de contexto inicial. Apropriedade não é obrigatória quando o manipulador JMS está se comunicandocom um provedor JMS que compartilha o mesmo factory de contexto inicial que oservidor de aplicativos do manipulador. Quando o manipulador e o provedor JMScompartilham um WebSphere Application Server, eles compartilham a classe dofactory de contexto inicial. O valor da propriedade de contexto é obrigatórioquando o manipulador e o provedor JMS não compartilham um WebSphereApplication Server.

Propriedade ISCOMPRESS

Essa propriedade obrigatória especifica se a mensagem é compactada antes de sercolocada em uma fila ou tópico. A compactação é uma técnica de otimização queentrega mensagens menores a uma fila ou tópico. A tabela a seguir lista as opçõesde ISCOMPRESS e seus valores associados.

Opção Valor

Não compactar dados 0

Compactar dados 1

As mensagens compactadas devem ser extraídas após serem recebidas. Extraia asmensagens criando o componente receptor ou assinante de JMS apropriado e

32 Integrando Dados a Aplicativos Externos

Page 39: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

colocando a lógica de descompactação Java dentro do receptor ou assinante. Use aclasse Java Inflater() padrão que faz parte do pacote java.util.zip. A compactaçãopadrão usa a classe Java Deflator() padrão.

Propriedade ISTEXT

Esta propriedade opcional especifica se o manipulador de JMS entregarámensagens para outra fila no formato de texto.

Opção Valor

Entregar mensagens no formato (bytes) padrão 0

Entregar mensagens no formato de texto 1

Propriedade JMSEXIT

Em um ambiente de ocupação variada, a customização utilizando as classes Javapode ser implementada apenas pelo provedor do sistema e pode não ser suportadaem seu ambiente.

Esta propriedade opcional é usada para customização e especifica o nomecompleto de uma classe Java que executa a interface JMSExit. A classe Java deveimplementar o método getMessageProperties() que está definido na interfaceJMSExit. A classe Java deve estar no caminho da classe para o servidor deaplicativos ou no arquivo EAR do aplicativo.

É possível usar essa opção para alterar ou incluir propriedades na mensagem JMS.Se esta propriedade não contiver um valor, os atributos do cabeçalho para amensagem não serão alterados quando a mensagem for entregue na fila ou tópicoexterno.

Propriedade PROVIDERURL

Essa propriedade obrigatória especifica uma URL local ou remota na qual oprovedor JMS pode ser acessado. Se o provedor JMS de destino for local comrelação ao servidor de aplicativos do manipulador, a propriedade não é obrigatória.A propriedade a seguir é um exemplo de um valor PROVIDERURL e umWebSphere Application Server:corbaloc:iiop:hostname:iiopport

Propriedades PROVIDERUSER e PROVIDERPASWORD

Essas propriedades são usadas para a autenticação do provedor JMS. Aspropriedades são mapeadas para a APIconnectionFactory.createConnection(provideruser,providerpassword) em JMS.

Propriedades USERNAME e PASSWORD

Essas propriedades correspondem às propriedades java.naming.security.principal(USERNAME) e java.naming.security.credentials (PASSWORD) usadas para criar oobjeto InitialContext.

Rotina de Tratamento de Serviço da Web:

O manipulador de serviço da Web é um cliente Java que pode chamar qualquerserviço da Web literal de documento que seja compatível com WS-I BP 1.1. A

Integrando Dados a Aplicativos Externos 33

Page 40: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

mensagem de integração de saída forma a carga útil (corpo SOAP) e omanipulador fornece os cabeçalhos e envelope SOAP. Esse manipulador opera deforma independente do contêiner.

Esse manipulador do serviço da Web suporta uma implementação inicial deserviços da Web e é fornecido para manter compatibilidade com versões anteriorescom serviços da Web existentes. Se você estiver implementando novos serviços daWeb, configure-os para utilizar esse manipulador do serviço da Web para JAX-WS.

Propriedade MEP

Essa propriedade opcional especifica o padrão de troca de mensagens para oserviço da Web. A propriedade suporta os seguintes valores. Se um valor não forfornecido, o valor padrão, sendreceive, é usado.

Valor Tipo de Operação de Serviço da Web

sendreceive Solicitação e resposta

sendrobust Solicitação com resposta inválida ou de falha

fireandforget Apenas solicitação, sem resposta ou falha

Propriedade ENDPOINTURL

Essa propriedade obrigatória especifica uma URL de serviço da Web válida na qualum serviço da Web é chamado. É possível usar a classe WSEXIT para substituir ovalor especificado por meio da interface com o usuário exatamente antes dechamar o serviço da Web.

Propriedade SERVICENAME

Essa propriedade obrigatória especifica o nome do serviço da Web implementadona URL.

Propriedade SOAPACTION

Essa propriedade opcional especifica o valor do cabeçalho SOAPAction HTTP a serusado ao chamar o serviço da Web. O valor padrão é uma sequência de caracteresvazia. Para configurar um valor para a propriedade, visualize o arquivo WSDLpara um serviço da Web para determinar a ação e especificar este valor. É possívelusar a classe WSEXIT para substituir o valor especificado na interface com ousuário antes de chamar o serviço da Web.

Propriedade SOAPVERSION

Essa propriedade opcional especifica a versão da especificação SOAP usadadurante a chamada de serviço da Web. Os valores válidos são SOAP11 e SOAP12.

Propriedade HTTPVERSION

Essa propriedade opcional especifica a versão do protocolo HTTP para chamadasde serviço da Web. Os valores válidos são HTTP/1.0 e HTTP/1.1. Se um valor nãofor fornecido, o sistema usa o valor padrão, HTTP/1.1.

Propriedade HTTPCONNTIMEOUT

Essa propriedade opcional especifica o valor de tempo limite de conexão emmilissegundos. O valor padrão para essa propriedade é 60000 milissegundos.

34 Integrando Dados a Aplicativos Externos

Page 41: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Propriedade HTTPREADTIMEOUT

Essa propriedade opcional especifica o valor de tempo limite de leitura emmilissegundos. O valor padrão para essa propriedade é 60000 milissegundos.

Propriedades USERNAME e PASSWORD

Se o serviço da Web especificado estiver assegurado (se a autenticação básicaHTTP estiver ativada), especifique um nome de usuário e senha.

Propriedade WSEXIT

Em um ambiente de ocupação variada, a customização utilizando as classes Javapode ser implementada apenas pelo provedor do sistema e pode não ser suportadaem seu ambiente.

Esta propriedade opcional é utilizada para customização. Especifica o nomecompleto de uma classe Java customizada que implementa a interfacepsdi.iface.router.WSExit. A propriedade define os seguintes métodos:

O método responseOk() é chamado após uma chamada bem-sucedida do serviçoda web externo.public void responseError(Exception e) throws MXException

Se ocorrer um erro quando o serviço da Web é chamado, o método responseError()é chamado com a exceção de origem como um parâmetro.

A implementação padrão da interface WSExit é psdi.iface.router.DefaultWSExit.

Manipulador de Serviço da Web (JAX-WS):

O manipulador WEBSERVICE-JAX-WS é um cliente Java que pode chamarqualquer serviço da Web literal de documento que seja compatível com WS-I BP1.1. A mensagem de integração de saída forma a carga útil (corpo SOAP) e omanipulador fornece os cabeçalhos e envelope SOAP.

Esse manipulador de serviço da web suporta a implementação atual de serviços daweb. Se você estiver implementando novos serviços da web, configure-os parautilizar esse manipulador de serviço da web.

Propriedade MEP

Essa propriedade opcional especifica o padrão de troca de mensagens para oserviço da Web. A propriedade suporta os seguintes valores. Se um valor não forfornecido, o valor padrão, sendreceive, é usado.

Valor Tipo de Operação de Serviço da Web

sendreceive Solicitação e resposta

sendrobust Solicitação com resposta inválida ou de falha

fireandforget Apenas solicitação, sem resposta ou falha

Propriedade ENABLEAPPCONTEXT

Configure essa propriedade para 1 (true) ao implementar suporte para as políticasWS-*.

Integrando Dados a Aplicativos Externos 35

Page 42: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Propriedade ENDPOINTURL

Essa propriedade obrigatória especifica uma URL de serviço da Web válida na qualum serviço da Web é chamado. É possível usar a classe WSEXIT para substituir ovalor especificado por meio da interface com o usuário exatamente antes dechamar o serviço da Web.

Propriedade SERVICENAME

Essa propriedade obrigatória especifica o nome do serviço da Web de destino queo manipulador chama.

Propriedade SOAPACTION

Essa propriedade opcional especifica o valor do cabeçalho SOAPAction HTTP a serusado ao chamar o serviço da Web. O valor padrão é uma sequência de caracteresvazia. Para configurar um valor para a propriedade, visualize o arquivo WSDLpara um serviço da Web para determinar a ação e especificar este valor. É possívelusar a classe WSEXIT para substituir o valor especificado na interface com ousuário antes de chamar o serviço da Web.

Propriedade SOAPVERSION

Essa propriedade opcional especifica a versão da especificação SOAP usadadurante a chamada de serviço da Web. Os valores válidos são SOAP11 e SOAP12.

Propriedade HTTPCONNTIMEOUT

Essa propriedade opcional especifica o valor de tempo limite de conexão emmilissegundos. O valor padrão para essa propriedade é 60000 milissegundos.

Propriedade HTTPREADTIMEOUT

Essa propriedade opcional especifica o valor de tempo limite de leitura emmilissegundos. O valor padrão para essa propriedade é 60000 milissegundos.

Propriedade HTTPHEADER

Esta propriedade opcional pode incluir uma lista separada por vírgulas de nomes evalores para a seção do cabeçalho de mensagens HTTP. A lista inclui informaçõesde nome e valor no formato de Headername1:Headervalue1,Headername2:Headervalue2. Se nenhum valor for fornecido na propriedade, umcódigo customizado poderá injetar os valores no contexto de transação durante oprocessamento do canal de chamada.

Propriedades USERNAME e PASSWORD

Se o serviço da Web especificado estiver assegurado (se a autenticação básicaHTTP estiver ativada), especifique um nome de usuário e senha.

Propriedade WSEXIT

Em um ambiente de ocupação variada, a customização utilizando as classes Javapode ser implementada apenas pelo provedor do sistema e pode não ser suportadaem seu ambiente.

36 Integrando Dados a Aplicativos Externos

Page 43: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Esta propriedade opcional é utilizada para customização. Especifica o nomecompleto de uma classe Java customizada que implementa a interfacepsdi.iface.router.WSExit. A propriedade define os seguintes métodos:

O método responseOk() é chamado após uma chamada bem-sucedida do serviçoda web externo.public void responseError(Exception e) throws MXException

Se ocorrer um erro quando o serviço da Web é chamado, o método responseError()é chamado com a exceção de origem como um parâmetro.

A implementação padrão da interface WSExit é psdi.iface.router.DefaultWSExit.

Propriedade CFGXMLPATH

Esta propriedade é obsoleta. Não o utilize.

Manipulador de Arquivo XML:

O manipulador de arquivo XML é um componente Java que grava uma mensagemde integração de saída em um arquivo no formato XML.

Propriedade FILEDIR

Essa propriedade opcional especifica onde o manipulador cria os arquivos XML. Ovalor padrão é mxe.int.globaldir/xmlfiles. O local do arquivo deve ser acessível àtarefa Cron JMS para a fila de saída das mensagens do canal de publicação. Para asmensagens do Canal de Chamada, o local do arquivo deve ser acessível a qualquerservidor do Maximo Asset Management onde um canal de chamada pode seriniciado.

Propriedade PRETTYPRINT

Essa propriedade obrigatória especifica se o manipulador formata o arquivo XML.Os valores válidos são 0 e 1. Um valor igual a 1 solicita que o manipuladorformate a impressão do arquivo xml de forma apropriada. Os nomes de canais depublicação, canais de chamada e arquivos de API de chamada têm os seguintesformatos:externalsystemname_publishchannelname_uniqueidentifier.xml

invocationchannelname_uniqueidentifier.xml

v externalsystemname é o identificador do sistema (o valor deMAXEXTSYSTEM.EXTSYSNAME).

v publishchannelname é o nome do canal de publicação.v uniqueidentifier é um número baseado na hora do sistema atual.

Por exemplo, o nome do arquivo MX_MXASSETInterface_10971102668641398.xmlindica que o arquivo foi gerado para enviar dados ao sistema externo EXTSYS1. Onome do arquivo indica que o arquivo contém o canal de publicaçãoMXASSETInterface.

Manipulador da Linha de Comandos:

O manipulador CMDLINE aceita um comando e um terminal como entrada. Omanipulador CMDLINE usa o protocolo SSH para executar o comando no sistemade destino e retornar os resultados.

Integrando Dados a Aplicativos Externos 37

Page 44: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Um parâmetro de metadados é passado durante a chamada do sistema quando omanipulador é chamado. O parâmetro é um mapa que contém o nome do terminalque representa o sistema de destino. O responsável pela chamada pode ter comoalvo qualquer sistema no tempo de execução e passar o terminal ao manipuladordo comando. O responsável pela chamada usa a configuração que o terminal tiverno momento da chamada.

Propriedades do Manipulador CMDLINE

O manipulador CMDLINE tem as seguintes propriedades:v CMDTIMEOUT – O valor de tempo limite para a execução do comandov CONNTIMEOUT – O valor de tempo limite para a conexãov USERNAME – O nome de usuário para a conexãov PASSWORD – A senha para o nome de usuário correspondentev HOST – O nome do host de destino onde o comando é executadov PORTNO – O número da porta de destino onde o comando é executadov IGNORESETUPERR – Um valor booleano que indica se um erro deve ser

ignorado na execução do comando de configuraçãov RETRYINTERVAL – O tempo a esperar entre nova tentativa de um comandov MAXRETRY – O número de tentativas para executar um comando antes de

retornar uma exceçãov SSHEXIT – A classe de saída Java que pode ser implementada para customizar o

processamento do manipulador

Parâmetros de Dados do Comando

O parâmetro de dados é uma representação da matriz de bytes de um documentoXML. O parâmetro de dados contém as seguintes informações:v As tags que correspondem ao comando de configuraçãov O diretório ativov O comando a ser executadov Quaisquer parâmetros de substituição

Tags Disponíveis

As tags a seguir estão disponíveis:v CLWORKINGDIR – Um diretório para o qual alterar (cd) no sistema remoto

antes de o comando ser executado.v CLSSETUPCMD – Um comando de configuração a ser executado antes do

comando principal. Use essa tag para qualquer configuração ambiental que devaocorrer no sistema remoto antes do comando principal ser emitido.

v CLCMDPATTERN - Uma sequência que define o padrão do comando a serexecutado. O formato desse padrão é semelhante ao da classejava.text.MessageFormat. Um exemplo é ls -l {0}, em que {0} representa umparâmetro substituído.

v CLSUB0 - O valor a substituir nas posições marcadas por {0} emCLCMDPATTERN.

v CLSUB1 - O valor a substituir nas posições marcadas por {1} emCLCMDPATTERN.

38 Integrando Dados a Aplicativos Externos

Page 45: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

v CLSUBn - O valor a substituir nas posições marcadas por {n} emCLCMDPATTERN. Uma tag CLSUBn deve corresponder a cada posição desubstituição na tag CLCMDPATTERN.

Resultados do Comando

A representação da matriz de bytes de retorno de um documento XML contém osresultados do comando. O documento XML contém tags que correspondem aovalor de retorno, STDOUT e STDERR.

As tags a seguir estão disponíveis:v CLRETURNCODE – O código de retorno do comando remoto.v CLRESPONSEOUT – Os dados retornados pelo comando remoto na tag

STDOUT.v CLRESPONSEERR – Os dados retornados pelo comando remoto na tag STDERR.

Serviços da Web de IntegraçãoOs sistemas externos podem usar os serviços da Web de estrutura de integraçãopara enviar mensagens ou consultas ao banco de dados do Maximo. É possívelusar um serviço de estrutura de integração como a origem de um serviço da Webe, em seguida, implementar esse serviço para se comunicar com sistemas externos.

Origens de Serviços da WebA origem de um serviço da Web pode ser um serviço de estrutura de objeto, umserviço padrão ou um serviço corporativo.

Serviços de Estrutura de Objeto

É possível criar um serviço da Web de estrutura de objeto a partir de um serviçode estrutura de objeto predefinido ou definido pelo usuário. Os serviços da Web deestrutura de objeto suportam operações de criação, atualização, exclusão,sincronização e consulta. As operações de criação e consulta também suportamrespostas. A resposta para a operação de criação pode ser baseada na chaveprimária ou alternativa do objeto principal definido na estrutura de objeto. Aresposta da operação de consulta é fornecida no formato de esquema XML daestrutura de objeto.

Serviços Padrão

É possível criar um serviço da Web padrão a partir de métodos anotados nosserviços de aplicativos. Para usar métodos como serviços da Web, métodosanotados, como o método ChangeStatus, devem existir em um aplicativo. Umúnico serviço da Web padrão é criado para cada serviço de aplicativo e todos osmétodos anotados dentro do serviço são as operações de serviço da Web. Osparâmetros de entrada e saída dos métodos estão associados aos parâmetros deentrada e saída para o serviço da Web padrão.

Serviços corporativos

É possível criar um serviço da Web corporativo a partir de um serviço corporativopredefinido ou definido pelo usuário. Serviços da Web corporativos suportamprocessamento de saída, regras de negócios e transformações adicionais. Existe umserviço para cada operação que está contida em um registro de serviço corporativo(um serviço por operação). Com a camada de processamento de saída, é possívelmapear um esquema XML externo para o XML da estrutura de objeto para a

Integrando Dados a Aplicativos Externos 39

Page 46: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

chamada e a resposta. Serviços da Web corporativos fornecem conteúdo deresposta para criar e consultar operações processadas na fila. A definição de serviçocorporativo tem um sinalizador ProcessResponse que indica se o serviço suportauma resposta.

Configurações de Fila JMS para Serviços da Web Corporativos:

Serviços da Web corporativos podem usar a fila de Serviço de Mensagens Java(JMS) para processar mensagens XML ou é possível especificar que o serviçoignore a fila JMS.

O processamento baseado em fila JMS fornece processamento de mensagensassíncronas. Para serviços corporativos que suportam processos síncronos, vocêdeve especificar processamento de mensagem não baseado em fila. A estrutura deintegração processa mensagens XML a partir de aplicativos externos com base nasconfigurações de fila definidas para o serviço da Web corporativo:

Processamento de mensagem baseado em filaUm serviço da Web corporativo baseado em fila processa mensagens XMLe grava essas mensagens na fila JMS de entrada configurada. Quando amensagem é movida para a fila JMS, o aplicativo externo é liberado dachamada. A estrutura de integração processa as mensagens e salva asmesmas no banco de dados do Maximo.

Um serviço da Web corporativo não pode usar a fila JMS se o serviçoincluir operações de criação ou consulta que requerem uma resposta aoaplicativo externo.

Processamento de mensagem não baseado em filaUm serviço da Web corporativo não baseado em fila processa mensagensda estrutura de integração para a camada de processamento de objeto esalva informações, quando aplicável, no banco de dados do Maximo. Apóso serviço da Web corporativo concluir o processamento de mensagens, aestrutura de integração envia uma resposta ao aplicativo externo. Vocêdeve especificar processamento não baseado em fila se o serviço da Webcorporativo suportar consulta ou criar operações que requerem umaresposta ao aplicativo externo.

Opções de Implementação de Serviço da WebApós criar um serviço da Web, há uma escolha de opções de implementação. Seum serviço da Web for implementado no contêiner de serviço da Web do produto,a implementação é automática. Se você implementar um serviço da web para umcontêiner de serviço da web de servidor de aplicativos, a implementação serámanual.

É possível implementar serviços da web somente para um tipo de contêiner. Não épossível implementar serviços da web para um contêiner de serviço da web deproduto e implementar outros serviços da web para um contêiner de serviço daweb de servidor de aplicativos. A implementação no contêiner de serviço da Webdo produto é a opção rápida, pois a implementação é automática. Esse tipo deimplementação não requer reimplementação dos arquivos EAR do Maximo nemuma reinicialização do servidor de aplicativos.

Para chamar um serviço da web no servidor de aplicativos, deve-se implementar oserviço ao contêiner de serviço da web de servidor de aplicativos. A integração aum servidor de aplicativos pode fornecer a um serviço da Web acesso a serviçosadicionais, como políticas de segurança aprimoradas. Se escolher este tipo deimplementação, as informações serão incluídas no arquivo deplmodule.dar. Você

40 Integrando Dados a Aplicativos Externos

Page 47: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

deve incluir então esse arquivo no diretório de implementação do servidor deaplicativos, reconstruir os arquivos EAR e reiniciar o servidor de aplicativos.

É possível converter serviços da Web existentes implementados no contêiner deserviço da Web do produto para reimplementá-los no contêiner de serviço da Webdo servidor de aplicativos.

Ações de Implementação de Serviço da WebAo implementar um serviço da web, vários eventos ocorrem, incluindo a geraçãodo esquema XML e do arquivo Web Services Description Language (WSDL) para oserviço da web.

Ao implementar um serviço da Web, os eventos a seguir ocorrem:v O esquema XML é disponibilizado para um novo serviço da web ou o esquema

é regenerado para um serviço da web existente.v O arquivo WSDL é disponibilizado para a interface de serviço.v O serviço da web é implementado para o serviço selecionado.v Se as propriedades do registro Universal Description Discovery and Integration

(UDDI) estiverem configuradas, o serviço da Web é registrado no registro UDDI.

O serviço da Web implementado está disponível no seguinte URL:http://hostname:port/meaweb/services/web service name

v host:port/meaweb é o valor da propriedade de URL do aplicativo da Web deintegração.

v web service nameé o nome do serviço para o qual o serviço da Web éimplementado.

A lista de serviços da Web implementados está disponível no aplicativo Bibliotecade Serviços da Web.

Geração do esquemaTambém é possível gerar o esquema e visualizar o XML de qualquer serviço daweb no aplicativo Biblioteca de Serviços da Web. Também é possível gerar oesquema novamente para garantir que o esquema seja atualizado para refletirquaisquer mudanças feitas para o serviço.

Uma estrutura de dados de serviço da web é baseada em sua estrutura de objetoassociado (para serviços de estrutura de objeto e serviços corporativos) ouassinatura de método (para serviços da web padrão). A estrutura de dados deserviço da web é fornecida em uma representação XML padrão, como umesquema. Este esquema é usado para criar o arquivo WSDL para o serviço.

Se você alterar a estrutura de dados que é associada a um serviço da web, gere oesquema novamente para atualizar seu esquema e o arquivo WSDL. As mudançasa seguir para o dicionário de dados alteram a estrutura de objeto:v Incluindo novos campos a uma tabelav Alterando o tipo de um campov Descartando campos de uma tabelav Alterando um vampo de opcional para obrigatório

O XML não contém campos que são marcados para exclusão na estrutura deobjeto.

Integrando Dados a Aplicativos Externos 41

Page 48: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Antes de implementar um serviço da web, deve-se gerar o esquema para fornecerinformações de esquema atualizadas para o arquivo WSDL. Ao gerar um esquema,os elementos de entrada são exibidos na janela Dados XML e os elementos desaída são exibidos na janela XML de Resposta.

É possível visualizar o esquema gerado nas URLs a seguir:v Para os esquemas de serviço corporativo e estrutura de objeto, use a URL

http://localhost:port/meaweb/schema/service/MXSRService.xsd, em que MXSRé o nome da estrutura de objeto que é associada ao serviço.

v Para os esquemas de serviço padrão, use a URL http://localhost:port/meaweb/schema/service/ss/ITEMService.xsd, em que ITEM é o nome do serviço.

Se a propriedade global mxe.int.resolveschema for configurada como verdadeirano aplicativo Propriedades do Sistema, todos os arquivos incluídos serãoresolvidos. Todo o conteúdo do esquema reside em um único arquivo.

Geração de um Arquivo Web Services Description LanguageUm arquivo WSDL é gerado durante a implementação de um serviço da Web. Oarquivo WSDL descreve o serviço da Web, fornece seu local e especifica asoperações que o serviço disponibiliza.

O arquivo WSDL especifica a estrutura XML das mensagens de entrada e saídapara a operação, com base no esquema XML. O arquivo também especifica a URLpara o serviço da Web e as operações que o serviço da Web disponibiliza.

Um programa cliente precisa das definições de esquemas e do arquivo WSDL paragerar stubs de clientes. O programa cliente usa uma linguagem de programação,como Java ou C#, para chamar o serviço da Web.

É possível visualizar um arquivo WSDL gerado em um navegador emhttp://localhost:port/meaweb/wsdl/service_name?wsdl, em que service_name é onome do serviço, como MXASSET.

Registro UDDIÉ possível registrar serviços da Web implementados em um registro UDDI. UDDI éum registro baseado em XML para publicar e localizar arquivos WSDL quedescrevem aplicativos de serviços da Web.

É possível registrar serviços da Web implementados em um registro UDDIconfigurando as propriedades globais a seguir no aplicativo Propriedades deSistema.

Propriedade de sistema Descrição

mxe.int.uddipuburl URL de publicação do registro UDDI

mxe.int.uddiinqurl URL de consulta do registro UDDI

mxe.int.uddiname ID do usuário do registro UDDI

mxe.int.uddipassword Senha do registro UDDI

Se você especificar valores para a propriedade de URL de publicação e para apropriedade de URL de consulta, o serviço da Web é registrado no registro UDDI.Para ignorar o registro UDDI, não especifique nenhum valor para essaspropriedades. Somente o modelo para o arquivo WSDL é registrado no registroUDDI. Os valores businessEntity, businessService e bindingTemplate não sãoregistrados. A entrada de registro UDDI contém a URL para o arquivo WSDL.

42 Integrando Dados a Aplicativos Externos

Page 49: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Criando e Implementando Serviços da WebÉ possível criar um serviço da Web com base em qualquer serviço de estrutura deobjeto, serviços padrão ou serviço corporativo que seja definido para o sistema. Épossível, então, implementar o serviço da Web no contêiner de serviço da Web doproduto ou no contêiner de serviço da Web do aplicativo.

Criando um Serviço da Web:

Ao criar um serviço da Web, um sistema externo pode enviar mensagens econsultas baseadas na Web ao serviço associado sem configurar protocolos ouserviços de comunicação adicionais.

Antes de Iniciar

Execute as seguintes verificações para assegurar que o serviço que deseja usaresteja disponível para criar um serviço da Web:v Para um serviço de estrutura de objeto, verifique se o campo Consumido por

está configurado para INTEGRATION no aplicativo Estruturas de Objetos.v Para um serviço padrão, assegure que um método esteja anotado no serviço de

aplicativo para cada operação que você deseja usar no serviço da Web. Apenasos métodos que estiverem corretamente anotados são acessíveis no aplicativoBiblioteca de Serviços da Web

v Para um serviço corporativo, assegure que o serviço esteja associado a umaplicativo externo no aplicativo Sistemas Externos.

Procedimento

1. No aplicativo Biblioteca de Serviços da Web, selecione a ação Criar Serviço daWeb apropriada.

2. Escolha o serviço a ser usado selecionando a caixa de seleção Nome de Origemcorrespondente.

3. Opcional: No campo Nome, especifique um identificador para o serviço.4. Para um serviço da Web baseado em um serviço corporativo, especifique se

deseja que o serviço da Web seja baseado em fila ou ignore a fila JMS.5. Clique em Criar.

O que Fazer Depois

Você deve implementar o serviço da Web antes de poder usá-lo para processarmensagens e consultas de entrada. Também é possível gerar o esquema evisualizar as estruturas XML de qualquer serviço da Web selecionado.

Implementando um Serviço da Web para o Contêiner de Serviço da Web doProduto:

Após criar um serviço da Web, você deve implementá-lo antes que ele possa iniciaro processamento de mensagens XML. Ao implementar um serviço da Web para ocontêiner de serviço da Web do produto, o processo de implementação ocorreautomaticamente e não requer uma reinicialização do servidor.

Procedimento

1. No aplicativo Biblioteca de Serviços da Web, selecione o serviço da Web quedeseja implementar.

Integrando Dados a Aplicativos Externos 43

Page 50: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

2. Selecione a ação Implementar em Contêiner de Serviço da Web do Produto >Implementar Serviço da Web.

3. Clique em OK.

Implementando um Serviço da Web para o Contêiner de Serviço da Web doServidor de Aplicativos:

Um arquivo de implementação é gerado quando um serviço da Web éimplementado no contêiner de serviço da Web do servidor de aplicativos. Vocêdeve reconstruir o arquivo EAR do Maximo para incluir o arquivo deimplementação e reiniciar o servidor de aplicativos para ativar o serviço da Web.

Sobre Esta Tarefa

O arquivo de implementação deplmodule.dar está no diretório que é especificadopela propriedade de sistema mxe.int.globaldir.

Procedimento

1. No aplicativo Biblioteca de Serviços da Web, selecione o serviço da Web quedeseja implementar.

2. Selecione a ação Implementar no Contêiner de Serviço da Web do Servidor deAplicativos > Gerar Entradas de Arquivo de Implementação. Esta ação gerauma entrada no arquivo de implementação, deplmodule.dar.

3. Clique em OK.4. Copie o arquivo deplmodule.dar do diretório global da estrutura de integração

para o diretório de implementação do produto.5. No diretório de implementação, execute o arquivo buildmaximoear.cmd.6. No console administrativo para o servidor de aplicativos, implemente todos os

serviços da Web no arquivo deplmodule.dar:a. Pare o servidor de aplicativos.b. Reimplemente o arquivo maximo.ear.c. Reinicie o servidor de aplicativos.

Atualizando Informações do Esquema:

Se a estrutura de dados de um serviço de integração for alterada, atualize asinformações do esquema no arquivo WSDL para atualizar o serviço da Web. Se oesquema não for gerado novamente, o esquema usado pelo serviço da Web podeser diferente da estrutura definida para o serviço de integração associado.

Procedimento

1. Após modificar a estrutura de dados de um serviço da Web, clique em GerarEsquema, WSDL e Visualizar XML. Se o esquema não for gerado novamente,o serviço da Web não está ciente das mudanças feitas.

2. Para serviços da Web que são implementados no contêiner de serviço da Webdo servidor de aplicativos, é possível automatizar atualizações de esquema noaplicativo Propriedades de Sistema.a. Configure o valor da propriedade mxe.int.containerdeploy para 1 para

implementar serviços da Web no contêiner de serviço da Web do servidorde aplicativos.

b. Configure o valor da propriedade mxe.int.wsdlincludeschema para 1 paraassegurar que as informações de esquema estejam incluídas como parte dosarquivos WSDL.

44 Integrando Dados a Aplicativos Externos

Page 51: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

c. Configure o valor da propriedade mxe.int.resolveschema para 1 paraassegurar que o sistema resolva todos os campos incluídos em um únicoarquivo.

d. Configure o valor da propriedade mxe.int.wsdlcurrentschema para 1 parafornecer conteúdo de esquema atualizado como parte de um arquivoWSDL.

Visão Geral de Interações de Serviços da WebUma interação pode iniciar um serviço da Web e enviar dados para ele a partir deum aplicativo. A interação pode então exibir dados retornados do serviço da Web esalvar esses dados no banco de dados do aplicativo.

A implementação de interações requer conhecimento de:v Esquemas XMLv Serviços da Webv A estrutura de integraçãov Customização de aplicativos e interfaces com o usuário do aplicativo

Uma interação pode gerenciar os seguintes processos:v Preparação de uma solicitação para um serviço da Web.v Chamada de um serviço da Web a partir de um aplicativo.v Recuperação de resultados a partir do serviço da Web na forma de uma

resposta.v Exibição dos resultados em um aplicativo.v Como opção, aplicação de dados de resposta ao banco de dados do sistema.v Relatórios de quaisquer erros que ocorram durante os processos de solicitação

ou resposta.

Dois aplicativos são fornecidos para ajudá-lo a criar e gerenciar interações:v Crie e configure interações no aplicativo Criar Interação.v Revise, modifique e exclua interações no aplicativo Interações.

Após criar uma interação, os usuários podem executar as seguintes tarefas a partirda interface com o usuário do aplicativo:v Iniciar a interação.v Visualizar e, se configurados, alterar os parâmetros da solicitação para o serviço

da Web.v Chamar o serviço da Web enviando a solicitação.v Como opção, visualizar dados recebidos do serviço da Web e confirmar esses

dados no banco de dados.

Criando Interações:

O aplicativo assistente Criar Interações o guia por todas as etapas necessárias paracriar e configurar uma interação. Após concluir o processo do assistente e testar ainteração, os usuários podem começar a trabalhar com ela imediatamente semnecessidade de configuração adicional ou implementação.

Integrando Dados a Aplicativos Externos 45

Page 52: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Antes de Iniciar

Antes de executar o aplicativo Criar Interações, assegure que você tenha todas asinformações necessárias para a configuração. Durante o processo, você deveespecificar o serviço da Web, definir a estrutura de mensagens e mapear os dadosentre o aplicativo e o serviço da Web.

Uma ferramenta de criação de log é fornecida para registrar em log a atividade deconfiguração e manter um arquivo de log dos itens configurados. Para gerar umlog detalhado da configuração, no aplicativo Criação de Log, configure o criadorde logs de interação para o modo DEBUG.

Procedimento

1. Para configurar o serviço da Web para a interação, na etapa 1 do processo:a. Especifique a URL para o arquivo WSDL para o serviço da Web.b. Quando a tela for atualizada com informações do arquivo WSDL,

especifique uma porta para a interação.c. Especifique uma operação para a interação e selecione Resposta do

Processo se você quiser que o serviço da Web retorne dados ao aplicativodurante a interação.

2. Revise o conteúdo da solicitação para o serviço da Web na etapa 2 e modifiquea estrutura de objeto da solicitação removendo quaisquer elementosdesnecessários.

3. Opcional: Revise o conteúdo da resposta a partir do serviço da Web na etapa 3e modifique a estrutura de objeto da resposta removendo quaisquer elementosdesnecessários. Essa etapa é incluída somente se tiver selecionado a opçãoResposta do Processo na etapa 1.

4. Para configurar o aplicativo para as interações, na etapa 4 do processo:a. Especifique o aplicativo que usa a interação.b. Configure a ligação de aplicativos para a interação, incluindo o objeto

principal, opção de assinatura, o modo de interação e os componentes dainterface com o usuário.

c. Especifique os grupos de segurança autorizados a iniciar a interação.5. Configure a guia Solicitação da janela Interações na etapa 5, inclusive

especificando os campos que os usuários podem ver e se podem editá-los.6. Opcional: Configure a guia Resposta da janela Interações na etapa 6, inclusive

especificando os campos que os usuários podem ver e se podem editá-los. Essaetapa é incluída somente se tiver selecionado a opção Resposta do Processo naetapa 1.

7. É possível mapear informações do aplicativo para o serviço da Web na etapa 7.As informações mapeadas são inseridas automaticamente na solicitação quandousuários iniciam a interação.

8. Opcional: É possível mapear informações do serviço da Web para o aplicativona etapa 8. Se a opção Confirmar Resposta for selecionada, as informaçõesmapeadas são salvas automaticamente no banco de dados.

9. Revise as configurações na etapa final do processo.

O que Fazer Depois

Para monitorar o tempo que leva para executar a interação, no aplicativo Criaçãode Log, configure o criador de logs de integração para o modo INFO ou o modoDEBUG.

46 Integrando Dados a Aplicativos Externos

Page 53: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

É possível visualizar a interação e modificar informações de mapeamento noaplicativo Interações. Se tiver a intenção de modificar uma interação, selecione aação Desativar Interação antes de fazer quaisquer mudanças e reative-a após aconclusão da modificação.

Sistemas externosÉ possível configurar o sistema externo com o qual a estrutura de integração secomunica. É possível configurar sistemas externos para aplicativos externos dentroou fora de seu empreendimento. Se você copiar um sistema externo predefinido,ele copia os canais e serviços configurados para ele. É possível configurar um novosistema externo para usar filas JMS existentes.

Configurando um Sistema ExternoPara configurar um sistema externo, identifique o sistema externo e associe-o aocanal ou serviço usado para processar transações. Você também deve configurar asfilas JMS que o sistema externo usa e é possível configurar controles de integraçãopara suportar customização a regras de processamento.

Criando um Sistema Externo:

Um sistema externo é criado para trocar dados com aplicativos externos. Ao criarum sistema externo, o aplicativo copia os controles de integração que são definidospara os canais de publicação e serviços corporativos correspondentes. Você podeentão especificar valores de controle padrão que se aplicam a um sistema externoespecífico.

Antes de Iniciar

Antes de criar um sistema externo, defina as filas e o terminal que o sistemaexterno usa.

Procedimento

1. No aplicativo Sistemas Externos, clique em Novo Sistema Externo.2. No campo Sistema, especifique um identificador do sistema externo.3. Opcional: Se o sistema externo enviar mensagens de saída, conclua as seguintes

etapas:a. Especifique um valor no campo Fila Sequencial de Saída.b. Especifique um valor no campo Terminal.

4. Opcional: Se o sistema externo receber mensagens de entrada, conclua asseguintes etapas:a. Especifique um valor no campo Fila Sequencial de Entrada.b. Especifique um valor no campo Fila Contínua de Entrada.

5. Clique em Salvar Sistema Externo.

O que Fazer Depois

Você deve ativar pelo menos um canal de publicação ou serviço corporativo antesde o processamento de mensagens poder ocorrer.

Ativando um Sistema Externo:

É possível ativar um sistema externo após configurar o registro do sistema externoe quando você estiver pronto para iniciar o processamento de mensagens da

Integrando Dados a Aplicativos Externos 47

Page 54: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

estrutura de integração. Também é possível desativar um sistema externo paraparar todo o processamento de mensagem de entrada e saída.

Antes de Iniciar

Você deve ativar pelo menos um canal de publicação ou serviço corporativo antesde qualquer processamento de mensagens poder ocorrer.

Sobre Esta Tarefa

Ao desativar um sistema externo, a estrutura de integração não aceita mensagensde entrada nem envia mensagens de saída. Além disso, não é possível usar osrecursos de exportação de dados e importação de dados do sistema externo.Somente mensagens que estão nas filas são processadas.

Procedimento

1. No aplicativo Sistemas Externos, selecione o sistema que você deseja atualizar.2. Especifique se deseja que o serviço externo seja ativado ou desativado:

Opção Ativado

Ativado Selecionado

Desabilitada Desmarcado

3. Clique em Salvar Sistema Externo.

Ativando um Canal de Publicação:

Você deve ativar um canal de publicação que está associado a um sistema externoantes que ele possa ser usado para publicar mensagens baseadas em eventos emum sistema externo. Por padrão, os registros de canal de publicação associados aum sistema externo estão desativados. Um canal de publicação desativado evitaque o sistema externo processe mensagens de saída da estrutura de integração.

Procedimento

1. No aplicativo Sistemas Externos, selecione o sistema que você deseja atualizar.2. Na guia Canais de Publicação, especifique se você deseja que o canal de

publicação seja ativado ou desativado.

Opção Ativado

Ativado Selecionado

Desabilitada Desmarcado

3. Clique em Salvar Sistema Externo.

Associando um Canal de Publicação a um Sistema Externo:

É possível associar um canal de publicação a um sistema externo para sincronizaros dados do objeto de gerenciamento de ativos a dados do aplicativo externo. Oscanais criados e associados ao sistema externo contêm a lógica de processamentode mensagens de saída.

48 Integrando Dados a Aplicativos Externos

Page 55: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Sobre Esta Tarefa

É possível definir o terminal que o canal usa. Se um terminal não for definido nonível do canal de publicação, dados são movidos para o local do terminal definidono nível do sistema externo. Também é possível ativar o canal de publicaçãoassociado quando você estiver pronto para executar o processamento demensagens da estrutura de integração da saída.

Procedimento

1. No aplicativo Sistemas Externos, selecione o sistema externo que você desejaatualizar.

2. Na guia Canais de Publicação, clique em Nova Linha.3. No campo Canal de Publicação, insira um valor.4. Opcional: No campo Terminal, especifique um valor.5. Opcional: Especifique se deseja que o canal de publicação seja ativado ou

desativado:

Opção Ativado

Ativado Selecionado

Desabilitada Desmarcado

6. Clique em Salvar Sistema Externo.

Selecionando Canais de Publicação para o Sistema Externo:

É possível associar diversos canais de publicação a um sistema externo parasincronizar os dados do objeto de gerenciamento de ativos a dados do aplicativoexterno. Os canais criados e associados ao sistema externo contêm a lógica deprocessamento de mensagens de saída.

Procedimento

1. No aplicativo Sistemas Externos, selecione o sistema que você deseja atualizar.2. Na guia Canais de Publicação, clique em Selecionar Canal.3. Escolha um ou mais canais de publicação selecionando as caixas de seleção

Canal de Publicação correspondentes.4. Clique em OK.5. Clique em Salvar Sistema Externo.

O que Fazer Depois

É possível definir os terminais que os canais usam. Se um terminal não fordefinido no nível do canal de publicação, dados são movidos para o local doterminal definido no nível do sistema externo. Você deve ativar os canais depublicação associados antes de ser possível executar processamento de mensagemde estrutura de integração.

Incluindo um Terminal em um Canal de Publicação:

É possível definir o terminal que um canal de publicação usa para determinaronde os dados de saída são publicados. Terminais identificam um local de destinoe o mecanismo de transporte para a publicação de dados de saída. Se um terminalnão for definido no nível do canal de publicação, dados são movidos para o localdo terminal definido no nível do sistema externo.

Integrando Dados a Aplicativos Externos 49

Page 56: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Antes de Iniciar

Você deve associar um canal de publicação a um sistema externo.

Procedimento

1. No aplicativo Sistemas Externos, selecione o sistema externo que você desejaatualizar.

2. Na guia Canais de Publicação, selecione o canal de publicação para o qual vocêdeseja incluir um terminal.

3. No campo Terminal, especifique um valor.4. Clique em Salvar Sistema Externo.

O que Fazer Depois

É possível ativar o canal de publicação associado quando você estiver pronto paraexecutar o processamento de mensagens da estrutura de integração da saída.

Importando dados baseados em arquivo:

É possível usar o recurso de importação de dados para carregar dados de arquivosXML ou simples delimitados para atualizar o banco de dados do Maximo. Épossível visualizar e validar os dados antes de carregá-los e confirmá-los no bancode dados. É possível optar por gerenciar erros com o aplicativo Reprocessamentode Mensagem ou extraindo erros para um formato de arquivo que seja o mesmoque o formato de arquivo importado.

Antes de Iniciar

Antes de dados poderem ser importados, se você planeja importar os dados de umarquivo simples, como um arquivo .csv, a estrutura de objeto de serviçocorporativo deve suportar estruturas de arquivo simples. Assegure que a caixa deseleção Suportar Estrutura de Arquivo Simples esteja selecionada no registro deestrutura de objeto associado no aplicativo Estruturas de Objeto. Você tambémdeve ativar o sistema externo e o serviço corporativo antes de poder importardados.

Sobre Esta Tarefa

Os dados importados devem estar em um arquivo simples delimitado, comoseparado por vírgula, ou em formato de arquivo XML. O processo de importaçãode dados pode utilizar um serviço corporativo predefinido ou definido pelousuário.

Procedimento

1. No aplicativo Sistemas Externos, exiba o sistema externo que contém o serviçocorporativo a partir do qual deseja importar dados.

2. Na guia Serviços Corporativos, selecione o serviço corporativo do qual desejaimportar dados.

3. Clique em Importação de Dados.4. Opcional: Selecione a caixa de seleção Visualização da Importação para

examinar os dados antes de importar e confirmar os dados no banco de dados.Use a opção de visualização para obter amostra de registros de dados. Esserecurso não tem a intenção de suportar um arquivo grande que contenhacentenas de registros. Processar de forma síncrona processa o arquivo para os

50 Integrando Dados a Aplicativos Externos

Page 57: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

objetos de negócios e retorna quaisquer mensagens de erro encontradas, semconfirmar quaisquer atualizações no banco de dados.

5. Especifique o tipo de arquivo que você deseja usar para a importação dearquivo.

Opção Descrição

Arquivo XML Dados importados estão no formato XML.

Arquivo Simples Dados importados estão em um arquivosimples delimitado. Se necessário,modifique os valores Delimitador eQualificador de Texto.

6. No campo Especificar Arquivo de Importação, insira o caminho do nome doarquivo que o arquivo importado usa para identificação e armazenamento.

7. Selecione a caixa de seleção Gerenciamento de Erro Baseado em Arquivo sequiser gerenciar quaisquer erros encontrados por meio de um arquivo nomesmo formato que o arquivo que está sendo importado. Essa opção é umaalternativa para gerenciar erros com o aplicativo Reprocessamento deMensagem

8. Clique em OK para iniciar o processo de importação de dados.

O que Fazer Depois

Quando a importação de dados for executada, o arquivo selecionado paraimportação é formado em diversas mensagens e colocado na fila de entradaconfigurada para o serviço corporativo e seu sistema externo correspondente. Asmensagens são então processadas da fila de entrada para os objetos de aplicativopara atualização. O processamento de mensagens de uma fila de entrada requer aativação da tarefa Cron JMS quando a fila sequencial for usada ou a ativação deMessage Driven Beans para a fila contínua. Se ocorrerem erros ao processar umarquivo, é possível gerenciar e visualizar as mensagens de importação de dadossinalizadas com um erro no aplicativo Reprocessamento de Mensagem.

Ativando um Serviço Corporativo:

Você deve ativar um serviço corporativo que está associado a um sistema externoantes que ele possa ser usado para receber dados do aplicativo externo de entrada.Por padrão, os registros de serviço corporativo associados a um sistema externoestão desativados. Um serviço corporativo desativado evita que o sistema externoprocesse mensagens do aplicativo externo de entrada.

Procedimento

1. No aplicativo Sistemas Externos, exiba o sistema que deseja atualizar.2. Na guia Serviços Corporativos, especifique se você deseja que o serviço

corporativo seja ativado ou desativado.

Opção Ativado

Ativado Selecionado

Desabilitada Desmarcado

3. Clique em Salvar Sistema Externo.

Integrando Dados a Aplicativos Externos 51

Page 58: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Associando um Serviço Corporativo a um Sistema Externo:

É possível associar um serviço corporativo a um sistema externo para sincronizardados do aplicativo externo de entrada a objetos de gerenciamento de ativos. Osserviços criados e associados ao sistema externo contêm a lógica de processamentode mensagens de entrada.

Sobre Esta Tarefa

É possível especificar se os serviços corporativos associados recebem dados da filasequencial ou contínua. Também é possível ativar o serviço corporativo associadoquando você estiver pronto para executar processamento de mensagens daestrutura de integração de entrada.

Procedimento

1. No aplicativo Sistemas Corporativos, exiba o sistema que deseja atualizar.2. Na guia Serviços Corporativos, clique em Nova Linha.3. No campo Serviço Corporativo, insira um valor.4. Opcional: Especifique se deseja que o serviço corporativo seja ativado ou

desativado:

Opção Ativado

Ativado Selecionado

Desabilitada Desmarcado

5. Especifique se deseja que as mensagens de serviço recebam dados da filacontínua ou sequencial.

Opção Utilizar Fila Contínua

Fila Contínua Selecionado

Fila Sequencial Desmarcado

6. Clique em Salvar Sistema Externo.

Selecionando Serviços Corporativos para o Sistema Externo:

É possível associar diversos serviços corporativos a um sistema externo parasincronizar dados do aplicativo externo de entrada a objetos de gerenciamento deativos. Os serviços criados e associados ao sistema externo contêm a lógica deprocessamento de mensagens de entrada.

Procedimento

1. No aplicativo Sistemas Externos, exiba o sistema que deseja atualizar.2. Na guia Serviços Corporativos, clique em Selecionar Serviço.3. Escolha um ou mais serviços corporativos selecionando as caixas de seleção

Serviço Corporativo correspondentes.4. Clique em OK.5. Clique em Salvar Sistema Externo.

O que Fazer Depois

Você deve ativar os serviços corporativos associados antes de ser possível executarprocessamento de mensagem de estrutura de integração. Também é possível

52 Integrando Dados a Aplicativos Externos

Page 59: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

especificar se os serviços corporativos associados recebem dados de filassequenciais ou contínuas.

Selecionando um Tipo de Fila de Serviço Corporativo:

É possível especificar se o serviço corporativo associado ao sistema externo recebedados da fila contínua ou sequencial. A seleção de fila feita para serviçocorporativo determina como a fila do Serviço de Mensagens Java (JMS) processamensagens de entrada.

Antes de Iniciar

Você deve associar um serviço corporativo a um sistema externo.

Sobre Esta Tarefa

A fila contínua continua a processar mensagens que estão na fila mesmo quando oprocessamento de mensagens resulta em um erro. Por outro lado, a fila sequencialpara mensagens de processamento que estão na fila até o erro de processamentoser limpo. Uma fila sequencial também processa mensagens de forma rígida combase em primeira a entrar, primeira a sair.

Procedimento

1. No aplicativo Sistemas Externos, selecione o sistema externo que você desejaatualizar.

2. Na guia Serviços Corporativos, selecione o serviço corporativo para o qualdeseja selecionar uma fila.

3. Especifique se deseja que as mensagens de serviço recebam dados da filacontínua ou sequencial.

Opção Utilizar Fila Contínua

Fila Contínua Selecionado

Fila Sequencial Desmarcado

4. Clique em Salvar Sistema Externo.

O que Fazer Depois

É possível ativar o serviço corporativo associado quando você estiver pronto paraexecutar processamento de mensagens da estrutura de integração de entrada.

Exportando dados baseados em arquivo:

Com o recurso de exportação de dados, é possível executar uma exportação emmassa de dados de mensagem a partir de um arquivo para um sistema externo. Épossível iniciar o processo de exportação para cada canal de publicação associado aum sistema externo.

Antes de Iniciar

Em um ambiente de ocupação variada, somente será possível usar o recurso deexportação de dados se o provedor de sistema fornecer a você o acesso a umservidor de arquivos que possa ser acessado pelo servidor de aplicativos. Emseguida, você deverá configurar um terminal baseado em arquivo para apontarpara o local deste servidor de arquivos.

Integrando Dados a Aplicativos Externos 53

Page 60: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Você também deverá ativar o sistema externo e o canal de publicação para que sejapossível exportar dados. Os dados para exportação também devem estar em umformato de arquivo XML que segue o esquema de estrutura de objeto ou em umarquivo simples delimitado, como separado por vírgula, que é uma versãosimplificada do formato de esquema de estrutura de objeto.

Sobre Esta Tarefa

A consulta SQL opcional inserida no campo Condição de Exportação pode afetar otamanho da mensagem XML exportada. É possível filtrar o conteúdo para limitar aquantidade de dados que estão sendo exportados. O processo de exportaçãoexecuta o processamento de saída padrão no conjunto de resultados da consultapara o canal de publicação selecionado.

Procedimento

1. No aplicativo Sistemas Externos, clique na guia Canais de Publicação eselecione o canal de publicação que deseja exportar.

2. No campo Ponto de extremidade, especifique um manipulador de terminalbaseado arquivo para o formato de arquivo XML ou de arquivo simples.

3. Clique em Exportação de Dados.4. Opcional: Insira uma consulta SQL no campo Condição de Exportação. A

consulta deve ser com relação ao objeto principal ou de nível superior naestrutura de objeto do canal de publicação.

5. Opcional: Especifique um valor de número inteiro no campo ExportarContagem para limitar o número de registros contidos no arquivo exportado.Se o resultado da consulta contiver mais registros do que o númeroespecificado, esses registros não são incluídos no arquivo exportado.

6. Clique em OK para iniciar o processo de exportação de dados.

O que Fazer Depois

Quando a exportação de dados for executada, os dados selecionados são formadosem uma mensagem e colocados na fila de saída configurada para o canal depublicação e seu sistema externo correspondente. A mensagem é então processadada fila de saída para o terminal configurado. Caso ocorra algum erro ao entregaruma mensagem ao terminal, será possível gerenciar e visualizar as mensagens deexportação de dados sinalizadas com erro no aplicativo Reprocessamento demensagem.

Incluindo Filas em um Sistema Externo:

É possível usar as filas do Serviço de Mensagens Java (JMS) para trocar dados deserviço corporativo e do canal de publicação com um aplicativo externo. Quandomensagens são recebidas ou enviadas, elas são gravadas na fila JMS. Essasmensagens permanecem nas filas até serem processadas ou excluídas com sucesso.

Antes de Iniciar

Antes de ser possível incluir uma fila em um sistema externo, você deve criar a filano servidor de aplicativos. Se você incluir uma fila sequencial, você deveconfigurar uma tarefa Cron para pesquisar periodicamente mensagens na fila.

54 Integrando Dados a Aplicativos Externos

Page 61: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Sobre Esta Tarefa

Cada sistema externo pode ter suas próprias filas de entrada e saída ou é possívelconfigurar vários sistemas para compartilhar filas. É possível incluir suas própriasfilas de mensagens definidas pelo usuário ou modificar as filas existentes quandoas filas de mensagens de entrada e saída predefinidas não atenderem às suasnecessidades.

Procedimento

1. No aplicativo Sistemas Externos, selecione o sistema para o qual você desejaincluir uma fila JMS.

2. Selecione a ação Incluir/Modificar filas.3. Clique em Nova Linha.4. Insira valores nos campos a seguir:

Opção Descrição

Nome JNDI da Fila Nome The da fila JMS.

Connection Factory de Fila O connection factory que é usado paraacessar a fila. O valor padrão éjms/mro/int/queues/sqin.

Contagem de Tentativas Máximas O número de vezes que uma mensagem éprocessada antes de ser gravada no log deerro e uma notificação de email ser enviadaao administrador do sistema.

5. Opcional: Insira valores nos campos a seguir:

Opção Descrição

Fábrica em Contexto Inicial A classe usada para conectar ao servidorJMS.

URL do Fornecedor A URL do servidor JMS.

ID do Usuário O ID do usuário que é usado para acessar anova fila.

Senha A senha que é usada para acessar a fila.

Endereço de Email O endereço de email de um usuário querecebe avisos quando erros de transaçãoocorrem na fila. Esse valor geralmente é oendereço de email de um administrador dosistema.

6. Opcional: Se a fila entregar mensagens de entrada e funcionar como uma filacontínua, limpe a caixa de seleção Sequencial.

7. Opcional: Se a fila entregar mensagens de saída, limpe a caixa de seleçãoEntrada.

8. Clique em OK.9. Na guia Sistema, insira valores nos seguintes campos:

v Fila Sequencial de Saída

v Fila Sequencial de Entrada

v Fila Contínua de Entrada

10. Clique em Salvar Sistema Externo.

Integrando Dados a Aplicativos Externos 55

Page 62: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Criando Tabelas de Interface:

É possível criar uma tabela de interface para integrar a sistemas externos que usamtabelas de banco de dados para troca de dados. As tabelas de interfaces refletem oconteúdo de estruturas de objeto do canal de publicação ou do serviço corporativo.Você deve recriar tabelas existentes ao alterar a definição da estrutura de objetocorrespondente.

Antes de Iniciar

Não é possível recriar uma tabela de interface quando mensagens não processadaspara essa tabela de interface existe na tabela de fila MXIN_INTER_TRANS. Se vocênão fizer backup dos dados antes de recriar uma tabela de interfaces, o sistemaperderá os dados. Assegure que conflitos de alias sejam resolvidos e que as caixasde seleção Suportar Estrutura de Arquivo Simples estejam selecionadas nosregistros de estrutura de objeto associados no aplicativo Estruturas de Objetos.

Sobre Esta Tarefa

A caixa de diálogo Criar Tabela de Interface exibe as tabelas de interface associadasa canais de publicação e serviços corporativos que têm as seguintes características:v Registrados no sistema externo selecionado.v O nome da tabela de interface não é nulo.v A estrutura de objeto correspondente suporta uma arquivo de arquivo simples.

Procedimento

1. No aplicativo Sistemas Externos, selecione a ação Criar Tabelas de Interface.2. Na caixa de diálogo Criar Tabelas de Interface, selecione a tabela de interface

que deseja atualizar e criar.3. Insira um valor no campo Terminal.4. Opcional: Selecione a caixa de seleção Renomear Existente para criar uma

cópia da tabela de interface selecionada. O sistema de gerenciamento de ativosarmazena cópia da tabela de interface e inclui um sufixo BAK em seu nome.

5. Clique em Criar.6. Clique em OK para criar a tabela ou em Cancelar para parar o processo.

Dependendo do número de tabelas de interface que estão sendo criadas, esseprocesso pode levar algum tempo.

7. Clique em OK para fechar a caixa de diálogo Criar Tabelas de Interface.

Trabalhando com Controles de Integração:

Se canais ou serviços de integração contiverem regras de processamento ou classesde saída que são baseadas em controles de integração, os valores dos controles deintegração podem ser configurados para o sistema externo. É possível configurarcontroles de integração booleana, de lista e de valores que é possível incorporar aregras de processamento.

Configurando um Controle Booleano:

É possível configurar um controle booleano em um sistema externo ao precisar deum controle que especifica um valor igual a verdadeiro ou falso. Também épossível incluir valores no nível da organização e no nível do site para um controlebooleano. Um serviço corporativo ou um canal de publicação pode usar essecontrole booleano em suas avaliações de regra de processamento. O valor

56 Integrando Dados a Aplicativos Externos

Page 63: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

verdadeiro ou falso designado ao controle no sistema externo determina se umserviço corporativo ou canal de publicação aplica uma regra de processamento.

Antes de Iniciar

O valor booleano designado a um controle já deve existir na definição de controlenos aplicativos Canais de Publicação ou Serviços Corporativos. Se essa definiçãoapontar para um domínio, quaisquer valores do nível da organização ou do níveldo site designados devem existir nesse domínio.

Procedimento

1. No aplicativo Sistemas Externos, exiba o sistema que deseja atualizar.2. Selecione a ação Configurar Controles de Integração.3. Selecione o controle booleano que deseja atualizar.4. Clique em Nova Linha.5. Execute uma das seguintes ações:

v Insira um valor no campo Organização.v Insira um valor no campo Site.

6. Especifique se deseja que o controle booleano tenha um valor padrãoverdadeiro ou falso.

Opção Padrão Verdadeiro

Valor verdadeiro Selecionado

Valor falso Desmarcado

7. Clique em OK para fechar a caixa de diálogo Controle Booleano.8. Clique em OK para fechar a caixa de diálogo Configurar Controles de

Integração.

Configurando um Controle de Referência Cruzada:

Você pode configurar um controle de referência cruzada quando precisar de umcontrole que substitua um valor por outro. Um controle de referência cruzada podemapear um valor no sistema de gerenciamento de ativos para um valor no sistemaexterno.

Antes de Iniciar

O valor designado para conversão deve existir primeiramente na definição decontrole no aplicativo Canais de Publicação ou Serviços Corporativos. Se essadefinição apontar para um domínio, os valores em nível da organização ou emnível do site designados deverão existir nesse domínio.

Procedimento

1. No aplicativo Sistemas Externos, exiba o sistema que deseja atualizar.2. Selecione a ação Configurar Controles de Integração.3. Selecione o controle de referência cruzada que deseja atualizar.4. Clique em Nova Linha.5. No campo Valor do Maximo, insira o valor do aplicativo que o sistema de

gerenciamento de ativos converte para ou a partir de um valor do sistemaexterno.

Integrando Dados a Aplicativos Externos 57

Page 64: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

6. No campo Valor Externo, insira o valor do sistema externo que o sistema degerenciamento de ativos converte para ou a partir do Valor do Maximo.

7. Clique em OK para fechar a caixa de diálogo Controle de Referência Cruzada.8. Clique em OK para fechar a caixa de diálogo Configurar Controles de

Integração.

Configurando um Controle de Lista:

Crie um controle de integração do tipo lista quando precisar de um controle quecontenha uma lista de valores. Também é possível incluir valores específicos emnível da organização e em nível do site a um controle de lista. Um serviçocorporativo ou canal de publicação pode usar esse controle de lista em suasavaliações de regra de processamento. O valor designado ao controle no sistemaexterno determina se um serviço corporativo ou canal de publicação se aplica auma regra de processamento.

Antes de Iniciar

Os valores incluídos em um controle de lista já deve existir na definição decontrole nos aplicativos Canais de Publicação ou Serviços Corporativos. Se essadefinição apontar para um domínio, os valores em nível da organização ou emnível do site designados deverão existir nesse domínio.

Procedimento

1. No aplicativo Sistemas Externos, exiba o sistema que deseja atualizar.2. Selecione a ação Configurar Controles de Integração.3. Selecione o controle de lista que deseja atualizar.4. Clique em Nova Linha.5. No campo Valor, insira um valor existente no domínio.6. Clique em OK para fechar a caixa de diálogo Controle de Lista.7. Clique em OK para fechar a caixa de diálogo Configurar Controles de

Integração.

Configurando um Controle de Valor:

É possível configurar um controle de integração de tipo de valor em um sistemaexterno quando for necessário um controle que contenha um único valor. Vocêtambém pode incluir valores específicos em nível da organização e em nível do sitea um controle de valor. Um serviço corporativo ou um canal de publicação podeusar esse controle de valor em suas avaliações de regra de processamento. O valordesignado ao controle no sistema externo determina se um serviço corporativo oucanal de publicação se aplica a uma regra de processamento.

Antes de Iniciar

O valor designado primeiro deve existir na definição de controle no aplicativoCanais de Publicação ou Serviços Corporativos. Se essa definição apontar para umdomínio, os valores em nível da organização ou em nível do site designadosdeverão existir nesse domínio.

Procedimento

1. No aplicativo Sistemas Externos, exiba o sistema que deseja atualizar.2. Selecione a ação Configurar Controles de Integração.

58 Integrando Dados a Aplicativos Externos

Page 65: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

3. Selecione o controle de valor que deseja atualizar.4. Clique em Nova Linha.5. Execute uma das seguintes ações:

v Insira um valor no campo Organização.v Insira um valor no campo Site.

6. No campo Valor, insira um valor existente no domínio.7. Clique em OK para fechar a caixa de diálogo Controle de Valor.8. Clique em OK para fechar a caixa de diálogo Configurar Controles de

Integração.

Substituindo Valores para um Controle de Referência Cruzada:

Você pode configurar um controle de referência cruzada para anular valores parasites e organizações. É possível optar por substituir os valores de referênciacruzada que foram anteriormente definidos no nível do serviço corporativo ou docanal de publicação. A substituição de valor pode ser configurada de acordo comcada sistema externo para manter mapeamentos válidos do sistema degerenciamento de ativos e do sistema externo.

Antes de Iniciar

O valor usado para conversão deve existir primeiramente na definição de controlede referência cruzada no aplicativo Canais de Publicação ou Serviços Corporativos.Se essa definição apontar para um domínio, os valores em nível da organização ouem nível do site designados deverão existir nesse domínio.

Sobre Esta Tarefa

Se você usar sinônimos, insira o valor externo como o valor de controle, não ovalor de aplicativo interno.

Procedimento

1. No aplicativo Sistemas Externos, exiba o sistema que deseja atualizar.2. Selecione a ação Configurar Controles de Integração.3. Selecione o controle de referência cruzada que deseja atualizar.4. Clique em Substituir. A caixa de diálogo Substituir Valores de Controle de

Referência Cruzada exibe quaisquer valores do nível da organização e donível do site existentes para o controle.

5. Clique em Nova Linha.6. Execute uma das seguintes ações:

v Insira um valor no campo Organização.v Insira um valor no campo Site.

7. Na janela de tabela Valores para Organização/Site, clique em Nova Linha.8. Insira os valores nos campos Valor Padrão e Valor Externo. Para utilizar o

controle como um controle de multiplicação, insira diversos registros quepossuem o mesmo valor externo e diferentes valores de organização ou desite.

9. Clique em OK para fechar a caixa de diálogo Substituir Valores de Controlede Referência Cruzada.

10. Clique em OK para fechar a caixa de diálogo Controle de Referência Cruzada.

Integrando Dados a Aplicativos Externos 59

Page 66: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

11. Clique em OK para fechar a caixa de diálogo Configurar Controles deIntegração.

Exemplo

Cinco sistemas externos são configurados para trocar dados com a estrutura deintegração. Quatro desses sistemas externos usam os mesmos valores do site, masum valor do site difere. Um controle de referência cruzada que executa aconversão entre os quatro valores incompatíveis e o valor do sistema degerenciamento de ativos pode ser sobrescrito no nível de um sistema externo. Asubstituição do valor pode ser configurada para converter o valor incompatívelrestante do site do sistema externo para um valor do almoxarifado do sistema degerenciamento de ativos.

Um controle de referência cruzada em um serviço corporativo pode converter ovalor do site do sistema externo EX001 para um site do sistema de gerenciamentode ativos MX001. Um controle de referência cruzada de substituição no sistemaexterno pode substituir o valor predefinido EX001 e usar um valor EX002 em suaconversão de valor.

Substituindo Valores para um Controle de Lista:

É possível configurar um controle de lista para anular valores para sites eorganizações. É possível optar por substituir os valores de controle de lista queforam anteriormente definidos no nível do serviço corporativo ou do canal depublicação. A regra poderia ignorar o processamento da transação quando o valordo campo de dados não corresponder a nenhum dos valores de controle de listasobrescritos.

Antes de Iniciar

O valor designado primeiro deve existir na definição de controle no aplicativoCanais de Publicação ou Serviços Corporativos. Se essa definição apontar para umdomínio, os valores em nível da organização ou em nível do site designadosdeverão existir nesse domínio.

Sobre Esta Tarefa

Deve-se utilizar um ponto (.) como o marcador decimal ao inserir decimais comoum valor de controle, independentemente das configurações do código de idiomado servidor de aplicativos ou do banco de dados. Números à esquerda domarcador não são formatados. Este formato aplica-se a dados de entrada e saída.Por exemplo, $1.738.593,64 deve ser 1738593.64.

Procedimento

1. No aplicativo Sistemas Externos, exiba o sistema que deseja atualizar.2. Selecione a ação Configurar Controles de Integração.3. Selecione o controle de lista que deseja atualizar.4. Clique em Substituir. A caixa de diálogo Substituir valores de controle de lista

exibe todos os valores no nível da organização e no nível do site que existempara o controle.

5. Clique em Nova Linha.6. Execute uma das seguintes ações:

v Insira um valor no campo Organização.

60 Integrando Dados a Aplicativos Externos

Page 67: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

v Insira um valor no campo Site.7. Na janela de tabela Valores para Organização/Site, clique em Nova Linha.8. Insira um valor no campo Valor. Se você usar sinônimos, insira um valor

externo, não o valor do aplicativo interno.9. Clique em OK para fechar a caixa de diálogo Substituir Valores de Controle

de Lista.10. Clique em OK para fechar a caixa de diálogo Controle de Referência Cruzada.11. Clique em OK para fechar a caixa de diálogo Configurar Controles de

Integração.

Exemplo

Ordens de serviço são enviadas a um sistema externo com base em seus status. Aregra de processamento definida em um serviço corporativo ou canal depublicação pode verificar o status de uma ordem de serviço com relação a umcontrole de lista que contém dos valores de status: APPR (aprovado) ou COMPLETE. Asubstituição da lista pode ser configurada para avaliar dos valores de status deordem de serviço diferentes: WAPPR (esperando aprovação) ou WSCH (esperandopara ser planejado). Se o status de uma ordem de serviço não corresponder aosvalores de controle de lista sobrescritos, a transação da ordem de serviço não éenviada ao sistema externo.

Conteúdo de Integração PredefinidoA estrutura de integração fornece conteúdo de integração predefinido, incluindo asestruturas de objeto, canais de publicação e serviços corporativos que suportam aimportação de dados do sistema externo ou a exportação de dados para eles.

Em alguns casos, somente a estrutura de objeto é fornecida sem um canal depublicação ou serviço corporativo relacionado. A estrutura de integração, pordesign, fornece suporte para inserir, atualizar, excluir e consultar dados de acordocom as regras de negócios definidas nos objetos de negócios dentro da estrutura deobjeto. Ele não fornece toda a funcionalidade que está disponível por meio dosaplicativos, incluindo aqueles que estão disponíveis a partir de ações ou no botãode processamento na tela. Algumas estruturas de objetos podem fornecer suportepara algumas ações ou o botão de processamento na tela.

Objetos de Dados PrincipaisA estrutura de integração fornece uma seleção de conteúdo de integraçãopredefinido para dados principais, que geralmente consistem em dados contábeis,de pessoas, de almoxarifado, de mão de obra, de classificação e de fornecedor.

Objeto de ativo:

A estrutura de objeto MXASSET permite sincronização bidirecional de informaçõesde ativos, incluindo atributos que definem medidores.

Objetivo

A estrutura de objeto MXASSET sincroniza ativos individuais, mas não ahierarquia de ativo como um todo. Suporta a inclusão e atualização de medidoresligados a um ativo, mas não a atualização de valores de leituras do medidor. Oprocessamento interno de ASSETMETER é restrito a atributos que definem omedidor, não valores de leituras do medidor ou outras informações referentes aleituras do medidor.

Integrando Dados a Aplicativos Externos 61

Page 68: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Pré-requisito

Você deve sincronizar locais operacionais, almoxarifados, medidores e itensaplicáveis antes de carregar ativos.

O relacionamento MBO usado para recuperar o MBO ASSETMETER é diferente dorelacionamento do MBO usado no aplicativo Ativos. Portanto, o atributo alteradono XML (processamento de saída) não é configurado para nenhum valor desseMBO.

Essa estrutura de objeto não suporta mudanças de status ou movimentação deativos. Um serviço padrão para ativos é fornecido para suportar movimentação deativos que residem em locais operacionais. O serviço padrão, Asset, fornece umaoperação, assetmoveSingleAsset, para suportar essa funcionalidade.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

MoutAssetProcess - Preenche o campoCaminho de Hierarquia se uma classificaçãofor associada ao ativo.

Canal de Publicação MXASSETInterface

Regras de Processamento Nenhum

Controle de Integração Nenhum

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

MaxAssetProcess - Se o Caminho deHierarquia for fornecido, a classe deprocessamento preenche o campoclassstructureid correspondente do ativo,que cria a associação da classificação com oativo.

Serviço Corporativo MXASSETInterface

Regras de Processamento Nenhum

Controle de Integração Nenhum

Objeto de Plano de Contas:

A estrutura de objeto MXCOA permite sincronização de entrada de dados do planode contas.

Pré-requisito

Você deve carregar componentes contábeis antes do carregamento do plano decontas. Não há nenhum canal de publicação para essa estrutura de objeto.

62 Integrando Dados a Aplicativos Externos

Page 69: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

Nenhum

Canal de Publicação Nenhum

Regras de Processamento Nenhum

Controle de Integração Nenhum

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

MaxCOAProcess - Pode processar como umacombinação de segmentos delimitados oucomo componentes individuais que fazemparte da definição de tipo de dadoGLACCOUNT.

Serviço Corporativo MXCOAInterface

Regras de Processamento Nenhum

Controle de Integração Nenhum

Exemplos de Processamento de Entrada

O processamento como uma combinação de segmento delimitado está disponívelpara tabelas XML e de interface. É possível especificar a conta contábil destamaneira em todas as estruturas de objeto.<GLACCOUNT>

<VALUE>6400-2-10</VALUE></GLACCOUNT>

A estrutura de objeto valida cada segmento, em seguida, cria o registro de planode contas no banco de dados com os seguintes valores:v GLACCOUNT=6400-2-10v GLCOMP01-6400v GLCOMP02=2v GLCOMP03=10

Também é possível processar o objeto como componentes individuais que fazemparte da definição de tipo de dado GLACCOUNT.<GLACCOUNT><GLCOMP glorder="0">6400</GLCOMP><GLCOMP glorder="1">2</GLCOMP><GLCOMP glorder="2">10</GLCOMP></GLACCOUNT>

A estrutura de objeto valida os componentes e cria a conta usando o delimitadordefinido na tabela GLCONFIGURE para cada segmento. Essa opção está disponívelsomente para XML.

Integrando Dados a Aplicativos Externos 63

Page 70: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Objeto de Item de Classificação:

A estrutura de objeto MXCLASSIFICATION permite sincronização bidirecional declassificações, incluindo Class Use With, Class Specs e Class Spec Use With.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

Nenhum

Canal de Publicação MXCLASSInterface

Regras de Processamento Nenhum

Controle de Integração Nenhum

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

MaxClassificationProcess - Lógica deprocessamento para localizar classificação epai usando Caminho de Hierarquia. Como osistema permite classificações duplicadas(caminhos de hierarquia),uma exceção égerada ao tentar atualizar uma classificaçãose existirem duplicatas.

Serviço Corporativo MXCLASSInterface

Regras de Processamento Nenhum

Controle de Integração Nenhum

Objeto de Categoria:

A estrutura de objeto MXCRAFT permite sincronização bidirecional de informaçõesde categoria. As informações de categoria incluem categorias, qualificações decategoria e taxas de categoria.

Pré-requisito

Se a categoria fizer referência a uma qualificação ou contratos, essas informaçõesdevem existir antes de carregar categorias.

Uma categoria pode ter uma taxa padrão, uma taxa para cada nível de qualificaçãopara a categoria ou diferentes taxas para cada contrato que fornece a categoria,com uma taxa de nível de qualificação opcional para cada contrato.

Os registros CRAFT e CRAFTSKILL têm um campo STANDARDRATE para a taxahorária para cada categoria ou qualificação associada à categoria.

64 Integrando Dados a Aplicativos Externos

Page 71: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

O registro CRAFTRATE especifica taxas para fornecedores que fornecem acategoria e, como opção, diferentes taxas para cada combinação de qualificação,categoria e fornecedor.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

Nenhum

Canal de Publicação MXCRAFTInterface

Regras de Processamento Nenhum

Controle de Integração Nenhum

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

Nenhum

Serviço Corporativo MXCRAFTInterface

Regras de Processamento Nenhum

Controle de Integração Nenhum

Objeto de Projeto Financeiro:

A estrutura de objeto MXPROJ permite sincronização bidirecional de informaçõessobre o projeto financeiro. Essa estrutura de objeto sincroniza tarefas e projetosindividuais como mensagens separadas. Não sincroniza um projeto e todas astarefas-filhas em uma única mensagem.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

Nenhum

Canal de Publicação MXPROJInterface

Regras de Processamento Nenhum

Controle de Integração Nenhum

Integrando Dados a Aplicativos Externos 65

Page 72: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

Nenhum

Serviço Corporativo MXPROJInterface

Regras de Processamento Nenhum

Controle de Integração Nenhum

Objeto de Componente Contábil:

A estrutura de objeto MXGLCOMP permite sincronização de entrada decomponentes contábeis.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

Nenhum

Canal de Publicação Nenhum

Regras de Processamento Nenhum

Controle de Integração Nenhum

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

Nenhum

Serviço Corporativo MXGLCOMPInterface

Regras de Processamento Nenhum

Controle de Integração Nenhum

Objeto de Mão de Obra:

A estrutura de objeto MXLABOR permite sincronização bidirecional deinformações de mão de obra, incluindo taxas de categoria de pessoa e de mão deobra.

66 Integrando Dados a Aplicativos Externos

Page 73: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Pré-requisito

Você deve sincronizar qualquer categoria associada, local de serviço ou local dealmoxarifado antes de carregar a mão de obra. Cada registro de pessoa pode tersomente um registro de mão de obra.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

MoutLaborProcess - Lógica deprocessamento desativado.

Canal de Publicação MXLABORInterface

Regras de Processamento Nenhum

Controle de Integração Nenhum

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

MaxLaborProcess - Suporta mudanças destatus. Configura ORGID para o MBOLaborCraftRate a partir do MBO pai.Também configura PERSONID no registroPERSON, com base no PERSONID noregistro LABOR

Serviço Corporativo MXLABORInterface

Regras de Processamento Nenhum

Controle de Integração Nenhum

Objeto Pessoal:

A estrutura de objeto MXPERSON permite sincronização bidirecional deinformações pessoais, incluindo telefone, email e dados SMS.

Objetivo

Essa estrutura de objeto suporta sincronizar dados pessoais individuais. Nãosuporta a atualização de informações de disponibilidade para um registro depessoa. A estrutura de objeto também suporta mudanças de status.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Integrando Dados a Aplicativos Externos 67

Page 74: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

Nenhum

Canal de Publicação MXPERSONInterface

Regras de Processamento Nenhum

Controle de Integração Nenhum

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

MaxPersonProcess - Requer que dados paratodos os objetos-filhos (PHONE, EMAIL,SMS) devem ser fornecidos com cadaatualização de pessoa. Devido à falta deuma chave exclusiva nesses objetos, a lógicasempre exclui todos os objetos filhos e incluios mesmos novamente. Se uma pessoa tivertrês registros de email no sistema e umamensagem de pessoa for recebida com doisregistros de email, o registro de email nãoincluído na mensagem de pessoa seráexcluído. A estrutura de objeto suportamudanças de status.

Serviço Corporativo MXPERSONInterface

Regras de Processamento Nenhum

Controle de Integração Nenhum

Objeto de Pessoa/Usuário:

A estrutura de objeto MXPERUSER permite sincronização bidirecional deinformações depessoa/usuário. Essa estrutura de objeto suporta mudanças destatus.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

Nenhum

Canal de Publicação MXPERUSERInterface

Regras de Processamento Nenhum

Controle de Integração Nenhum

68 Integrando Dados a Aplicativos Externos

Page 75: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

MaxPersonUserProcess - O processamento énecessário para salvar os dados da pessoaantes do salvamento dos dados do usuário.Essa estrutura de objeto suporta mudançasde status.

Serviço Corporativo MXPERSUSERnterface

Regras de Processamento Nenhum

Controle de Integração Nenhum

Objeto de Local de Almoxarifado:

A estrutura de objeto MXSTORELOC permite sincronização bidirecional de locaisde almoxarifado, de mão de obra e de courier.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

MoutLocProcess - Fornece filtragem paraenviar somente locais de almoxarifado, decourier ou de mão de obra.

Canal de Publicação MXSTORELOCInterface

Regras de Processamento Nenhum

Controle de Integração Nenhum

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

MaxLocProcess - Fornece filtragem paraaceitar somente locais de almoxarifado, decourier ou de mão de obra.

Serviço Corporativo MXSTORELOCInterface

Regras de Processamento Nenhum

Controle de Integração Nenhum

Objeto de Estrutura do Objeto Principal de Fornecedor (Empresas):

A estrutura de objeto MXVENDORMSTR permite sincronização bidirecional dedados principais de fornecedor.

Integrando Dados a Aplicativos Externos 69

Page 76: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

Nenhum

Canal de Publicação MXVENDORMSTRInterface

Regras de Processamento Nenhum

Controle de Integração Nenhum

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

Nenhum

Serviço Corporativo MXVENDORMSTRInterface

Regras de Processamento Nenhum

Controle de Integração Nenhum

Objeto de Fornecedor (Empresas):

A estrutura de objeto MXVENDOR permite sincronização bidirecional de dados defornecedor de nível de organização, incluindo contratos.

Pré-requisito

Para ativar essa estrutura de objeto para criar o registro de empresa mestre,selecione a opção Incluir Empresas Automaticamente na Empresa Mestre para oconjunto associado à organização na qual o registro de fornecedor está sendoincluído. A estrutura de objeto MXVENDOR suporta mudanças de status.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

Nenhum

Canal de Publicação MXVENDORInterface

Regras de Processamento Nenhum

Controle de Integração Nenhum

70 Integrando Dados a Aplicativos Externos

Page 77: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

MaxComProcess - Fornece lógica parasuportar a criação do registro de empresamestre.

Serviço Corporativo MXVENDORInterface

Regras de Processamento Nenhum

Controle de Integração Nenhum

Objetos de Item e de InventárioA estrutura de integração fornece uma seleção de conteúdo de integraçãopredefinida para objetos de item e inventário, como itens de serviço, itens deferramenta, fornecedores de inventário e problemas.

Objeto de Item:

A estrutura de objeto MXITEM permite sincronização bidirecional de dados deitens, incluindo conversões, especificações de itens e condições. Essa estrutura deobjeto suporta mudanças de status.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

MoutItemProcess - Filtro para nãoconfigurar ferramenta ou itens de serviço.Suporta recuperação do caminho dehierarquia para o classstructureid do item.

Canal de Publicação MXITEMInterface

Regras de Processamento Nenhum

Controle de Integração Nenhum

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

MaxItemProcess - Se a transação de entradafor uma atualização de item e o sinalizadorcapitalizado do item tiver sido alterado, ummétodo é chamado para alterar o statuscapitalizado do item. Se o tipo de item nãofor ITEM ou um sinônimo válido. Suportamudanças de status.

Serviço Corporativo MXITEMInterface

Integrando Dados a Aplicativos Externos 71

Page 78: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Componentes de integração predefinidos Valor e descrição

Regras de Processamento Nenhum

Controle de Integração Nenhum

Objeto de Item de Serviço:

A estrutura de objeto MXSERVITEM permite sincronização bidirecional de dadosdo item de serviço. O objeto principal da estrutura de objeto, SERVICEITEMS, éum objeto não persistente.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

Nenhum

Canal de Publicação MXSERVITEMInterface

Regras de Processamento Nenhum

Controle de Integração Nenhum

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

Nenhum

Serviço Corporativo MXSERVITEMInterface

Regras de Processamento Nenhum

Controle de Integração Nenhum

Objeto de Item de Ferramenta:

A estrutura de objeto MXTOOLITEM permite sincronização bidirecional de dadosde itens de ferramenta, incluindo especificações de itens de ferramentas.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

MoutToolItemProcess - Suporta recuperaçãodo caminho de hierarquia para oclassstructureid do item.

Canal de Publicação MXTOOLITEMInterface

72 Integrando Dados a Aplicativos Externos

Page 79: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Componentes de integração predefinidos Valor e descrição

Regras de Processamento Nenhum

Controle de Integração Nenhum

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

MaxToolItemProcess - Se a transação deentrada for uma atualização de item e osinalizador capitalizado do item tiver sidoalterado, um método é chamado para alteraro status capitalizado do item.

Serviço Corporativo MXTOOLITEMInterface

Regras de Processamento Nenhum

Controle de Integração Nenhum

Objeto de Inventário:

A estrutura de objeto MXINVENTORY permite sincronização bidirecional de dadosde inventário (almoxarifado de itens), incluindo custos de inventário.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

MoutInvProcess - Configura o valor docampo ITEMTYPE a partir do objeto ITEM.

Canal de Publicação MXINVENTORYInterface

Regras de Processamento SKIPINVENTORY - Ignora o registro se seuITEMTYPE estiver no controle de integraçãoSKIPITEMTYPE.

Controle de Integração SKIPITEMTYPE

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

MaxInvProcess - Suporta mudanças destatus.

Serviço Corporativo MXINVENTORYInterface

Regras de Processamento Nenhum

Controle de Integração Nenhum

Integrando Dados a Aplicativos Externos 73

Page 80: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Objeto de Saldo de Inventário:

A estrutura de objeto MXINVBAL permite sincronização bidirecional de dados dosaldo de inventário. As informações de mudança de saldo nessa estrutura de objetoé para o nível mais baixo (BIN ou LOT) dentro do aplicativo.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

MoutInvBalancesProcess - Configura o valordo campo ITEMTYPE a partir do objetoITEM.

Canal de Publicação MXINVBALInterface

Regras de Processamento SKIPINVBALITM - Ignora o registro se seuITEMTYPE estiver no controle de integraçãoSKIPITEMTYPE.

Controle de Integração SKIPITEMTYPE

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

MaxInvBalancesProcess - A estrutura deobjeto de saldo de inventário de entradachama internamente o método de ajuste desaldo atual e isso cria uma transaçãofinanceira CURBALADJ em INVTRANS.

Serviço Corporativo MXINVBALInterface MXINVBALQInterface- Um segundo serviço corporativoconfigurado para consulta de operação.

Regras de Processamento Nenhum

Controle de Integração Nenhum

Objeto de Fornecedor de Itens:

A estrutura de objeto MXINVVENDOR permite sincronização bidirecional dedados de itens de fornecedores.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

74 Integrando Dados a Aplicativos Externos

Page 81: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

MoutInvVendorProcess - Configura o valordo campo ITEMTYPE a partir do objetoITEM e configura o valor deCURRENCYCODE a partir do objeto defornecedor (empresas).

Canal de Publicação MXINVVENDORInterface

Regras de Processamento INVVITEMTYPE - Ignora o registro se seuITEMTYPE estiver no controle de integraçãoITEMTYPEFORINV.

Controle de Integração ITEMTYPEFORINV

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

MaxInvVendorProcess - Se a mensagem deentrada contiver um código de unidademonetária e esse código for diferente docódigo de unidade monetária do fornecedor,um erro é relatado.

Serviço Corporativo MXINVENDORInterface

Regras de Processamento Nenhum

Controle de Integração Nenhum

Objeto de Reservas de Inventário:

A estrutura de objeto MXINVRES fornece sincronização bidirecional de reservas deinventário (almoxarifado). Essa estrutura de objeto não processa registros dereservas de problemas diretos criados pelo sistema.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

MoutRSVProcess - Ignora reservas que nãosão problemas diretos.

Canal de Publicação MXINVRESInterface

Regras de Processamento Nenhum

Controle de Integração Nenhum

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Integrando Dados a Aplicativos Externos 75

Page 82: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

Nenhum

Serviço Corporativo MXINVRESInterface

Regras de Processamento Nenhum

Controle de Integração Nenhum

Objeto de Problemas de Inventário:

A estrutura de objeto MXINVISSUE fornece sincronização bidirecional deproblemas e devoluções de inventário (almoxarifado).

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

MoutISUProcess - Ignora reservas que sãopara problemas diretos.

Canal de Publicação MXINVISSUEInterface - Remove por filtroproblemas de MATUSETRANS (PONUMnão é nulo e ISSUETYPE é ISSUE ouRETURN), pois são tratados pela estruturade objeto de recebimentos(MXRECEIPTInterface). Remove por filtro astransações de variação que são gravadas emMATUSETRANS pelo processo de aprovaçãode fatura.

Regras de Processamento Nenhum

Controle de Integração Nenhum

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

MaxISUProcess - Se a ação fornecida não foruma ação Incluir, então uma exceção égerada. Valida ISSUETYPE para assegurarque seja ISSUE, RETURN ou nulo. Se forqualquer outro valor, um erro é relatado. Sefor nulo, o valor é configurado para ISSUEpor padrão.

Serviço Corporativo MXINVISSUEInterface

Regras de Processamento Nenhum

Controle de Integração Nenhum

76 Integrando Dados a Aplicativos Externos

Page 83: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Objetos de DocumentosA estrutura de integração fornece uma seleção de conteúdo de integraçãopredefinido para documentos, como registros de compra, faturas e registros deordem de serviço.

O Campo STATUSIFACE e Processamento:

Todos os documentos de compra e de ordem de serviço têm um status. O campoSTATUSIFACE identifica se transações relacionadas contêm registros novos ouatualizados ou somente mudanças de status.

Em geral, o campo STATUSIFACE se aplica a todos os sub-registros da estruturade objeto que são criados a partir de MBOs stateful, que são MBOs que possuemum campo de STATUS e suportam ações de mudança de status. O campoSTATUSIFACE é fornecido como um campo não persistente para os objetos nosquais a integração suporta uma mudança de status.

O Campo STATUSIFACE e Processamento de Saída

Ao processar um sub-registro da estrutura de objeto que foi criado a partir de umMBO stateful, o processamento da integração de saída procura um campo STATUSno MBO e um campo STATUSIFACE no sub-registro da estrutura de objetocorrespondente. Se ambos os campos existirem, o processamento configura o valordo campo STATUSIFACE para o valor do atributo alterado para o campo STATUScorrespondente. Um valor igual a 0 indica que o status não foi alterado. Um valorigual a 1 indica que o status foi alterado.

Esse processamento se aplica somente a mensagens de saída geradas por eventos,não a mensagens exportadas por meio do recurso de exportação de dados ou meiode uma chamada programática.

O Campo STATUSIFACE e Processamento de Entrada

Ao processar uma estrutura de objeto em que o MBO principal (superior) éstateful, o processamento de entrada procura um campo STATUSIFACE nosub-registro da estrutura de objeto correspondente para determinar se a mensagemde entrada deve ser processada como uma atualização de documento e umamudança de status ou somente como uma mudança de status.

A tabela a seguir descreve o processamento de entrada usando estruturas deobjetos com um MBO principal (superior) stateful. Não se aplica a nenhum MBOstateful incluído como um objeto-filho em uma estrutura de objeto.

Tabela 2. Ações Executadas Durante Processamento de Entrada do Campo STATUSIFACE

Valor de STATUSIFACE Documento existe no banco dedados

Documento não existe no banco dedados

Não fornecido ou 0 v Atualiza o documento no banco dedados

v Se o status do documento deentrada for diferente do status nobanco de dados, atualiza o statusno banco de dados

v Inclui o documento no banco dedados

v Configura o status no banco dedados para o status da mensagemde entrada

1 Atualiza o status no banco de dados Error

Integrando Dados a Aplicativos Externos 77

Page 84: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Objeto de Contratos de Compra:

A estrutura de objeto MXPC permite sincronização bidirecional de informações decontrato de compra. Essa estrutura de objeto atualmente suporta somente os tiposde contratos de compra geral e de preço.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Tabela 3. Componentes Predefinidos do Objeto de Contratos de Compra paraProcessamento de Integração de SaídaComponentes de integração predefinidos Valor e descrição

Funcionalidade da classe deprocessamento de estrutura de objeto

MoutPCProcess - Ignora reservas que não são problemas diretos.

Canal de publicação MXPCInterface - Usa regras de processamento de forma que o documento de contrato decompra completo seja enviado somente para uma mudança de status.

Regras de processamento 1. SKIPPC - Ignora o envio do documento se ambas as condições a seguir foremverdadeiras:

v O documento não foi enviado anteriormente.

v O novo status não está listado no controle PCSEND.

2. SKIPPCUPDATE - Ignora o envio do documento quando atualizado, mas nenhumamudança de status.

3. SETSTATUSIFACE - Configura o valor do campo STATUSIFACE para 0 (falso) paratodos os valores de status, exceto os listados no controle PCSEND.

4. CHECKSTATUS - Envia somente os dados do cabeçalho do contrato de compra se asmudanças de status e o novo status não estiverem no controle PCSEND. (Nesse caso, odocumento completo foi enviado anteriormente e isso está enviando somente anotificação de mudança de status).

Controles de integração PCSEND

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Tabela 4. Componentes Predefinidos do Objeto de Contratos de Compra paraProcessamento de Integração de EntradaComponentes de integração predefinidos Valor e descrição

Funcionalidade da classe deprocessamento de estrutura de objeto

MaxPCProcess - Suporta mudanças de status. Cria uma nova revisão quando o contrato decompra já existe e a revisão não. Suporta somente tipos de contrato geral e de preço.

Canal de publicação MXPCInterface

Regras de processamento Nenhum

Controles de integração Nenhum

Objeto de Requisições de Compra:

A estrutura de objeto MXPR permite sincronização bidirecional de informações derequisição de compra e suporta mudanças de status.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

78 Integrando Dados a Aplicativos Externos

Page 85: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tabela 5. Componentes Predefinidos do Objeto de Requisições de Compra paraProcessamento de Integração de SaídaComponentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deestrutura de objeto

Nenhum

Canal de publicação MXPRInterface – Usa regras de processamento. O documento de solicitação de compracompleto é enviado somente para mudanças de status.

Processando regras 1. SKIPPR - Ignora o envio do documento se ambas as condições a seguir foremverdadeiras:

v O documento não foi enviado anteriormente.

v O novo status não está listado no controle PRSEND.

2. SKIPPRUPDATE - Ignora o envio do documento quando atualizado, mas o status não éalterado.

3. SETSTATUSIFACE - Configura o valor do campo STATUSIFACE para 0 (falso) paratodos os valores de status, exceto os listados no controle PRSEND.

4. CHECKSTATUS - Envia somente os dados do cabeçalho da requisição de compra se asmudanças de status e o novo status não estiverem no controle PRSEND. (Nesse caso, odocumento completo foi enviado anteriormente e isso está enviando somente anotificação de mudança de status).

Controles de integração PRSEND

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Tabela 6. Componentes Predefinidos do Objeto de Requisições de Compra paraProcessamento de Integração de EntradaComponentes de integração predefinidos Valor e descrição

Funcionalidade da classe deprocessamento de estrutura de objeto

MaxPRProcess - Suporta mudanças de status. Se o status atual da requisição de compra foraprovado, para suportar atualizações, a classe de processamento alterará o status de voltapara esperando aprovação, executará atualizações e, em seguida, retornará o status para oque está identificado na mensagem XML.

Canal de publicação MXPRInterface

Regras de processamento Nenhum

Controles de integração Nenhum

Objeto de Ordem de Compra:

A estrutura de objeto MXPO permite sincronização bidirecional de informações deordem de compra e suporta mudanças de status.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Tabela 7. Componentes Predefinidos do Objeto de Ordem de Compra para Processamentode Integração de SaídaComponentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deestrutura de objeto

Nenhum

Canal de publicação MXPOInterface - Usa as regras de processamento, o documento de ordem de compracompleto é enviado somente para mudanças de status.

Integrando Dados a Aplicativos Externos 79

Page 86: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tabela 7. Componentes Predefinidos do Objeto de Ordem de Compra para Processamentode Integração de Saída (continuação)Componentes de integração predefinidos Valor e descrição

Regras de processamento 1. SKIPPO - Ignora o envio do documento se ambas as condições a seguir foremverdadeiras:

v O documento não foi enviado anteriormente.

v O novo status não está listado no controle POSEND.

2. SKIPPOUPDATE - Ignora o envio do documento quando atualizado, mas o status não éalterado.

3. SETSTATUSIFACE - Configura o valor do campo STATUSIFACE para 0 (falso) paratodos os valores de status, exceto os listados no controle POSEND.

4. CHECKSTATUS - Envia somente os dados do cabeçalho da ordem de compra se asmudanças de status e o novo status não estiverem no controle POSEND. (Nesse caso, odocumento completo foi enviado anteriormente e isso está enviando somente anotificação de mudança de status).

Controles de integração POSEND

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Tabela 8. Componentes Predefinidos do Objeto de Ordem de Compra para Processamentode Integração de EntradaComponentes de integração predefinidos Valor e descrição

Funcionalidade da classe deprocessamento de estrutura de objeto

MaxPOProcess - Suporta mudanças de status.

Se o status atual da ordem de compra for aprovado, para suportar atualizações, a classe deprocessamento altera o status de volta para esperando aprovação, executa as atualizações e,em seguida, retorna o status para o que foi identificado na mensagem XML.

Canal de publicação MXPOInterface

Regras de processamento Nenhum

Controles de integração Nenhum

Objeto de Fatura:

A estrutura de objeto MXINVOICE permite sincronização bidirecional deinformações de faturas e suporta mudanças de status.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Tabela 9. Componentes Predefinidos do Objeto de Fatura para Processamento de Integração de Saída

Componentes de integraçãopredefinidos Valor e descrição

Funcionalidade da classe dedefinição de estrutura de objeto

Nenhum

Canal de publicação MXINVOICEInterface - Usa regras de processamento, o documento de faturacompleto é enviado somente para mudanças de status.

80 Integrando Dados a Aplicativos Externos

Page 87: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tabela 9. Componentes Predefinidos do Objeto de Fatura para Processamento de Integração deSaída (continuação)

Componentes de integraçãopredefinidos Valor e descrição

Regras de processamento 1. SKIPINVOICE - Ignora o envio do documento se ambas as condições aseguir forem verdadeiras:

v O documento não foi enviado anteriormente.

v O novo status não está listado no controle IVSEND.

2. SKIPINVIOCEUPDATE - Ignora o envio do documento quandoatualizado, mas o status não é alterado.

3. SETSTATUSIFACE - Configura o valor do campo STATUSIFACE para 0(falso) para todos os valores de status, exceto os listados no controleIVSEND.

4. CHECKSTATUS – Envia somente os dados do cabeçalho de fatura se asmudanças de status e o novo status não estiverem no controle IVSEND.(Nesse caso, o documento completo foi enviado anteriormente e isso estáenviando somente a notificação de mudança de status).

Controles de integração IVSEND

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Integrando Dados a Aplicativos Externos 81

Page 88: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tabela 10. Componentes Predefinidos do Objeto de Fatura para Processamento de Integração de Entrada

Componentes de integraçãopredefinidos Valor e descrição

Funcionalidade da classe deprocessamento de estrutura deobjeto

O processamento de entrada cria e atualiza linhas de INVOICECOST somentese uma das condições a seguir for atendida:

v A linha da fatura não faz referência a uma linha a ordem de compra.

v A linha correspondente da ordem de compra não tem uma distribuição.

v A linha da ordem de compra não faz referência a um almoxarifado.

Em todos os outros casos, o processamento de entrada ignora as informaçõesde INVOICECOST ao criar ou atualizar a fatura.

Se a mensagem de entrada fornecer INVOICETERMS, o processamento deentrada exclui os termos antigos e inclui os novos.

Os usuários podem especificar, como opção, uma variação de preço no campoPRICEVAR em cada linha da fatura, se a correspondência da fatura for feita nosistema externo e variações de preço determinadas no sistema externo foremenviadas para criar transações de variação para atualizar ordens de serviço ealmoxarifados. Para processar essas variações, um valor deve existir paraOWNERSYSID na fatura de entrada e não pode ser o mesmo que o valor deMAXVARS.MXSYSID.

Os usuários podem especificar, como opção, uma variação de preço no campoPRICEVAR em cada linha da fatura, se a correspondência da fatura for feita nosistema externo e variações de preço determinadas no sistema externo foremenviadas para criar transações de variação para atualizar ordens de serviço ealmoxarifados. Para processar essas variações, um valor deve existir paraOWNERSYSID na fatura de entrada e não pode ser o mesmo que o valor deMAXVARS.MXSYSID.

O comutador de colaboração IVMATCH requer os seguintes valores:

v O valor de OWNER1SYSID sempre é “THISMX”.

v O valor de OWNER2SYSID é o valor de INVOICE.OWNERSYSID.

Se a avaliação for falsa, as variações da fatura no nível da linha são ignoradasno processamento de fatura.

Os seguintes são os cenários típicos para usar a interface da fatura:

v Correspondência da Fatura no sistema (Saída AP): Faturas recebidas deterceiros, eletrônica ou manualmente, são processadas pelo sistema; ou seja,são correspondidas com relação a recebimentos, se aplicável, e, em seguida,aprovadas. Como alternativa, programações de pagamento criadas nosistema resultarão na criação de faturas aprovadas com base noplanejamento. Essas faturas aprovadas resultam no envio de um aviso depagamento para um sistema API externo. O processo de correspondênciatambém resulta na postagem de entradas contábeis na contabilidade.

v Correspondência de Fatura em sistema externo (Entrada de Variações): Osistema não realiza o faturamento, mas aceita faturas correspondentes desistemas externos e aplica quaisquer variações nas respectivas ordens deserviço, almoxarifados, etc. As entradas contábeis relacionadas às contas apagar e/ou variações devem ser registradas no sistema externo; não serãoenviadas.

A principal intenção dessa interface é fornecer ao sistema quaisquerinformações de variação necessárias para atualizar os custos de ordem deserviço.

Canal de publicação MXINVOICEInterface

82 Integrando Dados a Aplicativos Externos

Page 89: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tabela 10. Componentes Predefinidos do Objeto de Fatura para Processamento de Integração deEntrada (continuação)

Componentes de integraçãopredefinidos Valor e descrição

Regras de processamento Nenhum

Controles de integração Nenhum

A tabela a seguir mostra um exemplo de possíveis valoresINVOICE.OWNERSYSID, a avaliação gerada e o resultado padrão da avaliação.

Tabela 11. Exemplo de Avaliação

Valor deINVOICE.OWNERSYSID Avaliação

Resultado(padrão)

Nulo OWNER1SYSID=”THISMX” e OWNER2SYSID=”THISMX” Falso

MXSYSID OWNER1SYSID=”THISMX” e OWNER2SYSID=”THISMX” Falso

EXTSYSID OWNER1SYSID=”THISMX” e OWNER2SYSID=”EXT” Verdadeiro

Qualquer outro valor OWNER1SYSID=”THISMX” e OWNER2SYSID=”EXT” Verdadeiro

Regras de Processamento de Saída para Interfaces de Ordem de Serviço:

Diferentemente das interfaces de documentos de compra, as interfaces dedocumentos de ordem de serviço não têm um campo STATUSIFACE e não enviamnotificações de mudança de status. Uma interface de documento de ordem deserviço é enviada primeiramente quando o status de uma ordem de serviço mudapara WOSTART e em cada atualização subsequente, independentemente do statusda ordem de serviço.

Usuários podem configurar o valor inicial no controle WOSTART. Qualquer statusespecificado no controle é o valor, não o MAXVALUE. Se existirem diversosvalores sinônimos para um status, liste todos os sinônimos aplicáveis.

Objeto de Ordem de Serviço:

A estrutura de objeto MXWO permite sincronização bidirecional de informações deordem de serviço e suporta mudanças de status.

Objetivo

O sistema primeiro envia uma ordem de serviço quando atinge o status nocontrole WOSTART, em seguida, em todas as atualizações após isso. O documentode ordem de serviço inteiro sempre é enviado.

A interface de ordem de serviço contém todas as informações definidas pelosistema na ordem de serviço, mas não fornece informações adicionais sobreprojetos ou dados de controle financeiros, equipamento e locais que não fazemparte da ordem de serviço padrão. Se necessário, é possível incluir as informaçõesadicionais por meio de campos de usuários.

O sistema trata de tarefas de ordem de serviço como ordens de serviço. Ambas têmpropriedades semelhantes e elas são armazenadas na mesma tabela. Se um usuáriocriar uma ordem de serviço, incluir tarefas/ordens de serviço filhas em ordens deserviço e, em seguida, aprovar a ordem de serviço, o sinalizador Herdar Mudanças

Integrando Dados a Aplicativos Externos 83

Page 90: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

de Status na ordem de serviço indica se a aprovação da ordem de serviço tambémresulta na aprovação de todas as tarefas/ordens de serviço filhas dessa ordem deserviço específica. O padrão é S, portanto, quando uma ordem de serviço foraprovada, quaisquer tarefas filhas ou ordens de serviço que herdam a aprovaçãopai com base nesse sinalizador também são aprovadas.

O listener de eventos de saída no MBO da ordem de serviço recebe diversoseventos independentes, um para cada ordem de serviço, e eles são processados eenviados de forma independente. Portanto, uma ordem de serviço com três tarefase duas ordens de serviço filhas resulta em seis ordens de serviço de saídaindependentes.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Tabela 12. Componentes Predefinidos do Objeto de Ordem de Serviço para Processamentode Integração de SaídaComponentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deestrutura de objeto

Nenhum

Canal de publicação MXWOInterface - Usa regras de processamento, o documento de ordem de serviço completoé enviado somente para mudanças de status.

Regras de processamento SKIPWO – Ignora o envio do documento se ambas as condições a seguir forem verdadeiras:

v O documento não foi enviado anteriormente.

v O novo status não está listado no controle WOSTART.

Controles de integração WOSTART

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Tabela 13. Componentes Predefinidos do Objeto de Ordem de Serviço para Processamentode Integração de EntradaComponentes de integração predefinidos Valor e descrição

Funcionalidade da classe deprocessamento de estrutura de objeto

StatefulMicSetIn - Classe genérica que suporta mudanças de status.

Canal de publicação MXWOInterface

Regras de processamento Nenhum

Controles de integração Nenhum

Objeto de Detalhe de Ordem de Serviço:

A estrutura de objeto MXWODETAIL permite sincronização bidirecional deinformações de ordem de serviço, incluindo material, mão de obra, serviço eferramentas planejados.

Objetivo

O sistema primeiro envia uma ordem de serviço quando atinge o status nocontrole WOSTART, em seguida, em todas as atualizações após isso. O documentode ordem de serviço inteiro sempre é enviado.

O relacionamento de MBO que é usado para recuperar o MBO de reserva(INVRESERVE) é diferente do relacionamento que é usado no aplicativoRastreamento de Ordem de Serviço. Portanto, o atributo alterado no XML não é

84 Integrando Dados a Aplicativos Externos

Page 91: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

configurado para nenhum valor desse MBO

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Tabela 14. Componentes Predefinidos do Objeto de Detalhe de Ordem de Serviço paraProcessamento de Integração de SaídaComponentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deestrutura de objeto

MoutWORsvProcess - Fornece o código necessário para atualizar a coluna sendersysid noMBO invreserve.

Canal de publicação MXWODETAILInterface - Usa regras de processamento, o documento de ordem de serviçocompleto com informações de plano é enviado somente para mudanças de status.

Regras de processamento SKIPWO - Ignora o envio do documento se ambas as condições a seguir forem verdadeiras:

v O documento não foi enviado anteriormente.

v O novo status não está listado no controle WOSTART.

Controles de integração WOSTART

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Tabela 15. Componentes Predefinidos do Objeto de Detalhe de Ordem de Serviço paraProcessamento de Integração de EntradaComponentes de integração predefinidos Valor e descrição

Funcionalidade da classe deprocessamento de estrutura de objeto

Nenhum

Canal de publicação Nenhum

Regras de processamento Nenhum

Controles de integração Nenhum

Objeto de Hierarquia de Ordem de Serviço:

A estrutura de objeto MXWOHIER permite sincronização bidirecional deinformações de ordem de serviço, incluindo ordens de serviço filhas, e tambémsuporta mudanças de status. O sistema primeiro envia uma ordem de serviçoquando atinge o status no controle WOSTART, em seguida, em todas asatualizações após isso. O documento de ordem de serviço inteiro sempre éenviado.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Tabela 16. Componentes Predefinidos do Objeto de Hierarquia de Ordem de Serviço paraProcessamento de Integração de SaídaComponentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deestrutura de objeto

Nenhum

Canal de publicação MXWOHierInterface - Contém uma classe de filtro de eventos, WOHierarchyEventFilter, queevita que os MBOs filhos sejam enviandos quando estiverem sendo enviados por meio deum MBO pai (quando ambos os MBOs pai e filho forem iniciados pela mesma ação deeventos).

Regras de processamento SKIPWO - Ignora o envio do documento se ambas as condições a seguir forem verdadeiras:

v O documento não foi enviado anteriormente.

v O novo status não está listado no controle WOSTART.

Controles de integração WOSTART

Integrando Dados a Aplicativos Externos 85

Page 92: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Tabela 17. Componentes Predefinidos do Objeto de Hierarquia de Ordem de Serviço paraProcessamento de Integração de EntradaComponentes de integração predefinidos Valor e descrição

Funcionalidade da classe deprocessamento de estrutura de objeto

MaxWOHierarchyProcess - Suporta mudanças de status e processamento de confirmaçãopara suportar o carregamento de diversas ordens de compra relacionadas em uma únicamensagem.

Canal de publicação MXWOHierInterface

Regras de processamento Nenhum

Controles de integração Nenhum

Objetos da Interface da TransaçãoA estrutura de integração fornece uma seleção de conteúdo de integraçãopredefinido para objetos da interface da transação, como recebimentos, transaçõescontábeis, relatórios de tempo de mão de obra e leituras do medidor.

Objeto de Recebimentos para Materiais e Serviços:

A estrutura de objeto MXRECEIPT permite sincronização bidirecional deinformações de recebimento de ordem de compra para recebimentos de materiais eserviços e também suporta mudanças de status. A estrutura de objeto usa umobjeto não persistente para suportar recebimentos de materiais (MATRECTRANS) ede serviços (SERVRECTRANS).

Objetivo

Na direção de saída, essa estrutura de objeto processa recebimentos de ordem decompra, transferências (movimentações com relação a recebimentos ourecebimentos com relação a OCs internas) e devoluções (devoluções a fornecedoresapós a inspeção de recebimento ou devoluções a fornecedor após aceitação emovimentação de mercadorias do local de retenção de inspeção).

Para recebimentos que requerem inspeção, o campo definido pelo usuárioINSPECTED indica se a linha de recebimento foi inspecionada no sistema externo.A interface não processa transferência de forma independente; cada transferência éassociada a um recebimento.

Não é necessário especificar se um recebimento de entrada é um recebimento dematerial ou um recebimento de serviço. O processamento de integração usaPOLINE para fazer a determinação.

Todas as quantidades, incluindo as quantidades de devolução, devem ser positivas.

Os dois tipos de registros de transferência são identificáveis pelos seguintes valoresno campo RECEIPTREFID:v Nulo: um recebimento com relação a uma ordem de compra internav Não nulo: movimentação com relação a um recebimento

Não especifique um valor RECEIPTFREF para devoluções. Devoluções sãoprocessadas de forma independente do recebimento correspondente.

86 Integrando Dados a Aplicativos Externos

Page 93: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Tabela 18. Componentes Predefinidos do Objeto de Recebimentos para Processamento de Integração de Saída

Componentes deintegraçãopredefinidos Valor e descrição

Funcionalidade daclasse de definição deestrutura de objeto

MoutProcess - Recebimentos de processos com tipo de emissão RECEIPT ou RETURN. Senenhum tipo de emissão for especificado, ele será tratado como RECEIPT.

Processamento para tipo de emissão RECEIPT e Inspeção Necessária = N:

Recebimentos de materiais e serviços:

v Usa RECEIPTQUANTITY (para recebimentos de materiais) ou QTYTORECEIVE (pararecebimentos de serviços) de entrada para criar o recebimento.

v Mapeia REJECTEDQTY de entrada para o campo REJECTEDQTY no recebimento.

v Ignora quaisquer outras quantidades.

v Não verifica o campo de entrada INSPECTED.

Recebimentos de materiais (registros MATRECTRANS):

v Envia somente registros do tipo RECEIPT e RETURN e registros do tipo TRANSFER quecontêm um PONUM (não uma retorno de almoxarifado). Envia somente novosrecebimentos, não atualizações a recebimentos existentes.

Recebimentos de serviços (registros SERVRECTRANS):

v Envia registros do tipo RECEIPT e RETURN. Envia novos recebimentos e atualizações arecebimentos existentes.

Canal de publicação MXRECEIPTInterface

Regras deprocessamento

Recebimentos de serviços:

Envia registros quando o status for igual a um valor no controle SERVRECSTAT (COMPpadrão). Isso ocorre sob as seguintes condições:

v Um registro que não requer inspeção é inserido.

v Um registro existente é atualizado no banco de dados e o campo de status é alteradopara COMP.

Controles deintegração

O controle SERVRECSTAT identifica todos os status nos quais o sistema enviará transaçõesde recebimento de serviço. Pode ter diversos valores. Por padrão, o valor é COMP.

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Integrando Dados a Aplicativos Externos 87

Page 94: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tabela 19. Componentes Predefinidos do Objeto de Recebimentos para Processamento de Integração de Entrada

Componentes de integraçãopredefinidos Valor e descrição

Funcionalidade da classe deprocessamento de estrutura deobjeto

MaxRCVProcess -

Processamento para tipo de emissão RECEIPT e Inspeção Necessária = S:

Recebimentos de materiais:

INSPECTED = N:

v Usa somente o campo RECEIPTQUANTITY de entrada para criar orecebimento; ignora valores de quantidades aceitas e rejeitadas.

v Cria um recebimento com STATUS = WINSP (esperando inspeção) equantidade derivada de RECEIPTQUANTITY.

INSPECTED = Y:

v Usa os campos RECEIPTQUANTITY, ACCEPTEDQTY e REJECTEDQTY deentrada para criar o recebimento.

v Não permite inspeções ou aceitações parciais. RECEIPTQUANTITY deve serigual a ACCEPTEDQTY + REJECTEDQTY.

v Cria um recebimento com STATUS = WASSET (se item rotativo) ou COMP(todos os outros itens).

v Dependendo das quantidades especificadas, é possível criar até trêstransações - uma RECEIPT, uma TRANSFER e uma RETURN.

Recebimentos de serviços:

INSPECTED = N:

v Usa AMTTORECEIVE (se a quantidade da ordem POLINE for nula) ouQTYTORECEIVE (em outros casos) de entrada para criar um recebimento;ignora todos os outros valores de quantidades.

v Cria um recebimento com STATUS = WINSP (esperando inspeção) equantidade derivada de QTYTORECEIVE.

INSPECTED = Y:

v Usa os campos QTYTORECEIVE, ACCEPTEDQTY e REJECTEDQTY deentrada para criar um recebimento.

v Não permite inspeções ou aceitações parciais. QTYTORECEIVE deve serigual a ACCEPTEDQTY + REJECTEDQTY.

v Cria uma única transação do tipo RECEIPT, com STATUS = COMP.

Processamento para tipo de emissão RETURN:

Recebimentos de materiais e serviços:

v Aceita transações de devolução para uma POLINE somente se houver umrecebimento anterior para a mesma linha; se Inspeção Necessária = S para aPOLINE, o recebimento deve ter sido aprovado. Caso contrário, relata umerro.

v Usa somente o campo RECEIPTQUANTITY (para recebimentos demateriais) ou QTYTORECEIVE (para recebimentos de serviços) de entradapara criar o recebimento; ignora todos os outros valores de quantidades.

v Cria uma transação única com tipo de emissão RETURN e a conta contábilde crédito como a conta RBNI.

Canal de publicação MXRECEIPTInterface

Regras de processamento Nenhum

Controles de integração Nenhum

88 Integrando Dados a Aplicativos Externos

Page 95: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Objeto de Recebimento de Material e de Item Rotativo:

A estrutura de objeto MXRCVROTITM permite sincronização de entrada deinformações de recebimento para itens, incluindo itens rotativos.

Objetivo

Essa estrutura de objeto suporta somente processamento de entrada.

Essa interface não permite especificar um status para o recebimento; supõe-sesempre que o status seja COMP.

Essa interface difere de MXRECEIPTInterface, pois processa recebimentos demateriais exclusivamente e permite a identificação de ativos rotativos serializados aserem criados no caso de recebimentos de itens rotativos.

É possível receber itens rotativos com ou sem números de ativos. Se foremrecebidos sem números de ativos, você deve especificar manualmente os númerosde ativos usando a caixa de diálogo Receber Itens Rotativos no aplicativoRecebimento de Compra.

Para itens rotativos, o número de transações de entrada é um a mais do que onúmero de itens rotativos. Existe uma transação para a quantidade total derecebimento e existe uma transação para cada item rotativo associado aorecebimento. Por exemplo, para um recebimento de dez itens rotativos, onzetransações são produzidas.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Tabela 20. Componentes Predefinidos do Objeto de Recebimento de Material e de Item Rotativo paraProcessamento de Integração de Saída

Componentes de integraçãopredefinidos Valor e descrição

Funcionalidade da classe dedefinição de estrutura de objeto

Nenhum

Canal de publicação Nenhum

Regras de processamento Nenhum

Controles de integração Nenhum

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Integrando Dados a Aplicativos Externos 89

Page 96: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tabela 21. Componentes Predefinidos do Objeto de Recebimento de Material e de Item Rotativo paraProcessamento de Integração de Entrada

Componentes de integraçãopredefinidos Valor e descrição

Funcionalidade da classe deprocessamento de estrutura deobjeto

MaxRcvRotItmMProcess - Relata um erro se a linha da ordem de compra queestá sendo processada tiver LINETYPE = SERVICE ou STDSERVICE.

O processamento é o mesmo que da funcionalidade da classe deprocessamento do ponto de integração de entrada para recebimentos emateriais usando MXRECEIPTInterface, com o seguinte processamentoadicional:

v Recebimentos: Se o item de linha for um item rotativo e Inspeção Necessária= N ou INSPECTED = Y, o processamento verifica informações de ativosque correspondem ao item fornecido na interface. Se as informaçõesestiverem disponíveis, o processamento valida o número de registros deativos para assegurar que seja igual a RECEIPTQTY ou ACCETPTEDQTY (oque se aplicar). Se for, chama a funcionalidade de recebimento e cria o ativoconforme necessário.

v Devoluções: Se o item que está sendo devolvido for um item rotativo,ignora quaisquer informações de ativos.

No sistema, a devolução de um item de tipo rotativo não afeta os ativoscriados pelo recebimento original. Os registros de ativos permaneceminalterados; somente os saldos de itens são atualizados (se aplicável).

Canal de publicação MXRCVROTITMInterface

Regras de processamento Nenhum

Controles de integração Nenhum

Objeto Contábil (GL):

A estrutura de objeto MXGLTXN permite sincronização de saída de transaçõescontábeis. Essa interface permite a postagem de transações no nível do site em umaplicativo contábil externo para reconciliação contábil.

Objetivo

Essa interface usa um MBO não persistente com dados dos seguintes sub-registros:v SERVRECTRANSv MATRECTRANSv INVTRANSv TRANSFATURAv MATUSETRANSv TRANSMÃOv TOOLSTRANS

A classe do filtro de eventos, GLEventFilter, é usada para configurar os eventospara os objetos persistentes aplicáveis listados.

O campo SOURECEMBO identifica a tabela de banco de dados na qual a transaçãose originou. Seu valor é derivado do domínio de sinônimo GLSOURCEMBO.

90 Integrando Dados a Aplicativos Externos

Page 97: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Tabela 22. Componentes Predefinidos do Objeto Contábil para Processamento de Integração de SaídaComponentes deintegração predefinidos Valor Descrição

Funcionalidade daclasse de definição deestrutura de objeto

MoutGLProcess -Recebimentos de serviço

Os recebimentos de serviço incluem as seguintes entradas:

v Entradas contábeis para recebimentos de serviço não distribuídos criados pelo aplicativo de recebimento paraserviços solicitados nas ordens de compra (ISSUETYPE = RECEIPT, COSTINFO=1)

v Entradas contábeis para recebimentos de serviço distribuído criados pelo aplicativo de recebimento para serviçossolicitados em ordens de compra (ISSUETYPE = POCOST)

v Entradas contábeis para serviços de ordem de compra com Recebimento Necessário = N diretamente faturados emvez de serem recebidos (ISSUETYPE = INVOICE)

v Entradas contábeis para serviços não com relação a ordens de compra e que são faturados diretamente(ISSUETYPE = INVOICE)

v Transações de variação de fatura registradas com relação a recebimentos de serviços (ISSUETYPE = INVOICE)

Processamento de recebimentos de serviços (SERVRECTRANS):

v Configura SOURCEMBO para SERVRECTRANS e ISSUETYPE para o valor listado.

v Transações do tipo INVOICE: envia na inserção.

v Transações do tipo POCOST e RECEIPT: se Inspeção Necessária = N para POLINE correspondente, envia nainserção. Se inspeção necessária = S, envia quando status for alterado para COMP.

MoutGLProcess -Recebimentos de materiais

Recebimentos de materiais incluem o seguinte:

v Entradas contábeis para recebimentos de materiais não distribuídos criados pelo aplicativo de recebimento paraitens/ferramentas solicitados em ordens de compra (ISSUETYPE = RECEIPT, COSTINFO = 1)

v Entradas contábeis para recebimentos de materiais distribuídos criados pelo aplicativo de recebimento paraitens/ferramentas solicitados em ordens de compra (ISSUETYPE = POCOST)

v Entradas contábeis para transferências de Item entre almoxarifados (ISSUETYPE = TRANSFER e PONUM=NULL)

v Entradas contábeis para transferências de itens de inspeção de recebimento entre o almoxarifado de inspeção derecebimento e o almoxarifado da linha de ordem de compra (ISSUETYPE = TRANSFER e RECEIPTREF!=NULL ePONUM!=NULL)

v Entradas contábeis para recebimentos com relação a ordens de compra internas (ISSUETYPE = TRANSFER eRECEIPTREF=NULL e PONUM!=NULL)

v Entradas contábeis para devolução de mercadorias de itens e materiais da inspeção de recebimento (ISSUETYPE =RETURN)

v Entradas contábeis para devolução ao fornecedor de um almoxarifado ou de linhas de ordem de compra deemissão direta (ISSUETYPE = RETURN)

v Transações de variação de fatura registradas com relação a recebimentos de materiais (ISSUETYPE = INVOICE)

v Transação contábil para aumentar o valor da conta de controle INVENTORY do item do kit quando kits são feitos(ISSUETYPE = KITMAKE). Transações para aumentar a conta de controle INVENTORY para cada item constituintede um kit quando um kit é desmontado (ISSUETYPE = KITBREAK)

Processamento de recebimentos de materiais (MATRECTRANS):

v Configura SOURCEMBO para MATRECTRANS e ISSUETYPE para o valor listado.

v Envia transações do tipo INVOICE, RECEIPT, TRANSFER, RETURN, KITMAKE e KITBREAK na inserção.

v Para transações do tipo POCOST na inserção se o status for COMP (ou seja, na inserção se Inspeção Necessária =N e quando o status for alterado para COMP se Inspeção Necessária = S).

MoutGLProcess -Transações de ajuste deinventário

Transações de ajuste de inventário incluem o seguinte:

v Ajustes de saldo atual de inventário (ITTYPE = CURBALADJ)

v Ajustes de custo padrão/médio do inventário (ITTYPE = STDCOSTADJ/ AVGCOSTADJ)

v Diferença de custo quando um kit é desmontado e há uma diferença entre o valor do kit e a soma dos valores doscomponentes do kit (ITTTYPE = KITCOSTVAR)

v Reconciliação de contagem física (ITTYPE = RECBALADJ)

v Ajuste de custo capitalizado (ITTYPE = CAPCSTADJ)

v Ajuste de recebimento de custo padrão (ITTYPE = STDRECADJ)

Processamento de ajuste de inventário (INVTRANS):

v Configura SOURCEMBO para INVTRANS e ITTYPE para o valor listado.

v Não envia transações com ITTTYPE = INSERTITEM, CREATEASSET e PHYSCNT, já que são consideradosregistros de auditoria em vez de transações contábeis.

v Envia todas as outras transações na inserção.

Integrando Dados a Aplicativos Externos 91

Page 98: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tabela 22. Componentes Predefinidos do Objeto Contábil para Processamento de Integração deSaída (continuação)Componentes deintegração predefinidos Valor Descrição

MoutGLProcess -Transações de fatura

As transações de fatura incluem as seguintes transações criadas por aprovação de fatura:

v Transação TOTAL da fatura (valor a pagar ao fornecedor da fatura, TRANSTYPE = TOTAL)

v Transações fiscais da linha da fatura (contabilidade fiscal para cada código TAX para uma linha de fatura,TRANSTYPE = TAX1:TAX5)

v Transação de variação da moeda da fatura (TRANSTYPE = CURVAR)

v Transações de variação de preço de fatura (TRANSTYPE = INVCEVAR)

Processamento de transação de fatura (INVTRANS):

v Configura SOURCEMBO para INVOICETRANS e TRANSTYPE para o valor listado.

v Envia todas as transações quando forem criadas.

MoutGLProcess -Transações de emissão eretorno de material

Transações de emissão e devolução de materiais incluem o seguinte:

v Entradas contábeis para itens emitidos de um almoxarifado no sistema (ISSUETYPE = ISSUE)

v Entradas contábeis para itens devolvidos a um almoxarifado (ISSUETYPE = RETURN)

Processamento de emissão e devolução de materiais(MATUSETRANS):

v Configura SOURCEMBO para MATUSETRANS e ISSUETYPE para o valor listado.

v Não envia transações de emissão direta criadas por variações de recebimento de OC/fatura em MATUSETRANS,já que são consideradas em MATRECTRANS. Identifica tais transações por seu PONUM, de forma que todas astransações MATUSETRANS que têm uma referência de OC não sejam enviadas por essa interface.

v Envia todas as outras transações no momento de criação.

MoutGLProcess -Transações de mão de obra

Processamento de Transação de Mão de Obra (LABRTRANS):

v Configura SOURCEMBO para LABTRANS.

v Se a aprovação não for necessária, envia Recursos Utilizados de mão de obra com relação a ordens de serviço nainserção.

v Se a aprovação for necessária, envia a transação após ser aprovada (quando GENAPPSERVRECEIPT for Y).

MoutGLProcess -Transações de ferramenta

Processamento de Transação de Ferramenta (TOOLTRANS):

v Configura SOURCEMBO para TOOLTRANS.

v Envia uso de ferramentas em ordens de serviço na criação de TOOLTRANS

Canal de publicação MXGLTXNInterface

Regras deprocessamento

SKIPGL Ignora o envio da transação do livro razão com base no valor no SOURCEMBO existente no controle GLSOURCE.

Controles de integração ORIGEM DA RG

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Tabela 23. Componentes Predefinidos do Objeto Contábil para Processamento de Integração de Entrada

Componentes de integraçãopredefinidos Valor e descrição

Funcionalidade da classe deprocessamento de estrutura deobjeto

Nenhum

Canal de publicação Nenhum

Regras de processamento Nenhum

Controles de integração Nenhum

Objeto de Relatório de Tempo de Mão de Obra:

A estrutura de objeto MXEMPACT permite postagem do tempo real no nível dosite relatado no sistema para aplicativos externos. Os Recursos Utilizados de mãode obra aprovados são enviados e todos os Recursos Utilizados de mão de obra deentrada são aceitos independentemente do status. O status de registros existentesnão são atualizados no processamento de transações de entrada.

92 Integrando Dados a Aplicativos Externos

Page 99: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Tabela 24. Componentes Predefinidos do Objeto de Relatório de Tempo de Mão de Obra para Processamento deIntegração de Saída

Componentes deintegraçãopredefinidos Valor e descrição

Funcionalidade daclasse de definição deestrutura de objeto

Nenhum

Canal de publicação MXEMPACTInterface

Regras deprocessamento

SKIPEMPACT - Ignora o envio do pagamento de mão de obra (LABTRANS) se a transaçãonão for aprovada (GENAPPRSERVRECEIPT = 0).

Controles deintegração

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Tabela 25. Componentes Predefinidos do Objeto de Relatório de Tempo de Mão de Obra para Processamento deIntegração de Entrada

Componentes de integraçãopredefinidos Valor e descrição

Funcionalidade da classe deprocessamento de estrutura deobjeto

MaxEmpactProcess - Permite somente ações de inclusão. Uma ação nula éprocessada como uma ação de inclusão. LABTRANSID não pode ser passadocom um valor, pois o LABTRANSID é gerado pelo programa durante a açãode inclusão.

Canal de publicação MXEMPACTInterface

Regras de processamento Nenhum

Controles de integração Nenhum

Objeto de Leitura do Medidor:

A estrutura de objeto MXMETERDATA permite sincronização de entrada de dadosde leitura do medidor. Essa estrutura de objeto suporta somente processamento deentrada. Essa interface não suporta o processamento de leituras do medidor paratarefas da ordem de serviço.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Integrando Dados a Aplicativos Externos 93

Page 100: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tabela 26. Componentes Predefinidos do Objeto de Leitura do Medidor para Processamento de Integração de Saída

Componentes deintegraçãopredefinidos Valor e descrição

Funcionalidade daclasse de definição deestrutura de objeto

Nenhum

Canal de publicação Nenhum

Regras deprocessamento

Nenhum

Controles deintegração

Nenhum

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Tabela 27. Componentes Predefinidos do Objeto de Leitura do Medidor para Processamento de Integração deEntrada

Componentes de integraçãopredefinidos Valor e descrição

Funcionalidade da classe deprocessamento de estrutura deobjeto

MaxMeterDataProcess - A classe de processamento verifica se os atributos aseguir são fornecidos:

v ID de Site

v Ativo ou local

v ID do medidor ou ponto de monitoramento de condição

v Valor de leitura do medidor, data/hora da leitura, inspetor

Quando uma ordem de serviço é especificada, o seguinte processamentoocorre:

v Se um ponto de medição for especificado, a classe de processamentoidentifica o medidor de ativo ou de local correspondente ao site e ao pontode medição e cria uma leitura do medidor para esse medidor de ativo ou delocal.

v Se um medidor for especificado, então o ativo ou o local deve serespecificado. Se ambos forem especificados, a classe de processamentosupõe que o medidor pertence ao ativo e processa o medidor conformenecessário. Se somente o ativo ou local for especificado, então o medidor naentidade correspondente será atualizado.

Se nenhuma ordem de serviço for especificada, o seguinte processamentoocorre:

v Se um ponto de medição for especificado, a leitura é registrada para o pontode medição.

v Se um medidor for especificado, então o ativo ou o local deve serespecificado. Se ambos forem especificados, a classe de processamentosupõe que o medidor pertence ao ativo e processa o medidor conformenecessário. Se somente o ativo ou local for especificado, então o medidor naentidade correspondente será atualizado.

Canal de publicação MXMETERInterface

Regras de processamento Nenhum

Controles de integração Nenhum

94 Integrando Dados a Aplicativos Externos

Page 101: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Objetos do SistemaObjetos do sistema são MBOs que são geralmente usados para configuração deaplicativo ou de metadados. Atualizar dados usando objetos do sistema poderequerer atividades específicas de pós-processamento, por exemplo, reconfigurar obanco de dados.

As restrições a seguir se aplicam ao uso de serviços corporativos, canais depublicação e estruturas de objetos:v Não é possível ativar listeners para canais de publicação.v Não é possível processar interfaces do sistema por meio de tabelas de interface

ou arquivos simples.v Você deve especificar um código de ação em interfaces do sistema de entrada.

Objeto de Estruturas de Objeto:

A estrutura de objeto MXINTOBJECT permite sincronização de entrada dadefinição de estruturas de objeto, incluindo aliases de colunas. Validações dosistema que se aplicam a usuários que estão incluindo, excluindo e modificandoestruturas de objetos predefinidas se aplicam à modificação de estruturas de objetopor meio do serviço de estrutura de objeto Estrutura de Objeto.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

N/A

Canal de Publicação N/A

Regras de Processamento Nenhum

Controle de Integração Nenhum

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

N/A

Serviço Corporativo N/A

Regras de Processamento Nenhum

Controle de Integração Nenhum

Objeto de Serviço Corporativo:

A estrutura de objeto MXENTSRV permite sincronização de entrada da definiçãode serviços corporativos e suas regras de processamento e valores de controlecorrespondentes.

Integrando Dados a Aplicativos Externos 95

Page 102: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Pré-requisito

Antes da criação do serviço corporativo, certifique-se de que todos os controlesusados pelo serviço corporativo existam.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

N/A

Canal de Publicação N/A

Regras de Processamento Nenhum

Controle de Integração Nenhum

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

N/A

Serviço Corporativo N/A

Regras de Processamento Nenhum

Controle de Integração Nenhum

Objeto de Canal de Publicação:

A estrutura de objeto MXIFACEOUT permite sincronização de entrada da definiçãode canais de publicação, suas regras de processamento correspondentes e valoresde controle. Antes da criação do canal de publicação, certifique-se de que todos oscontroles usados pelo canal de publicação existam.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

N/A

Canal de Publicação N/A

Regras de Processamento Nenhum

Controle de Integração Nenhum

96 Integrando Dados a Aplicativos Externos

Page 103: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

N/A

Serviço Corporativo N/A

Regras de Processamento Nenhum

Controle de Integração Nenhum

Objeto de Terminal:

A estrutura de objeto MXENDPOINT permite sincronização de entrada dadefinição de terminais.

Pré-requisito

Antes da criação de terminal, certifique-se de que manipuladores usados pelosterminais existam.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

N/A

Canal de Publicação N/A

Regras de Processamento Nenhum

Controle de Integração Nenhum

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

N/A

Serviço Corporativo N/A

Regras de Processamento Nenhum

Controle de Integração Nenhum

Integrando Dados a Aplicativos Externos 97

Page 104: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Objeto de Sistema Externo:

A estrutura de objeto MXEXTSYSTEM permite a sincronização de entrada dadefinição de um sistema externo, os serviços corporativos e canais de publicaçãousados pelo sistema externo e seus valores de controle correspondentes.

Pré-requisito

Antes da criação do sistema externo, certifique-se de que todos os serviçoscorporativos, canais de publicação, terminais e controles usados pelo sistemaexterno existam.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

N/A

Canal de Publicação N/A

Regras de Processamento Nenhum

Controle de Integração Nenhum

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

N/A

Serviço Corporativo N/A

Regras de Processamento Nenhum

Controle de Integração Nenhum

Objeto de Controle de Integração:

A estrutura de objeto MXIFACECONTROL permite sincronização de entrada deControles de Integração e seus valores padrão de nível de sistema.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

N/A

Canal de Publicação N/A

Regras de Processamento Nenhum

98 Integrando Dados a Aplicativos Externos

Page 105: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Componentes de integração predefinidos Valor e descrição

Controle de Integração Nenhum

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

N/A

Serviço Corporativo N/A

Regras de Processamento Nenhum

Controle de Integração Nenhum

Objeto de Canal de Chamada:

A estrutura de objeto MXIFACEINVOKE permite sincronização de entrada de umadefinição de canal de chamada.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

N/A

Canal de Publicação N/A

Regras de Processamento Nenhum

Controle de Integração Nenhum

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

N/A

Serviço Corporativo N/A

Regras de Processamento Nenhum

Controle de Integração Nenhum

Objeto de Fila de Integração:

A estrutura de objeto MXQUEUE permite sincronização de entrada de definiçõesde fila de integração.

Integrando Dados a Aplicativos Externos 99

Page 106: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

N/A

Canal de Publicação N/A

Regras de Processamento Nenhum

Controle de Integração Nenhum

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

N/A

Serviço Corporativo N/A

Regras de Processamento Nenhum

Controle de Integração Nenhum

Objeto de Definição de Mensagem:

A estrutura de objeto MXMESSAGE permite sincronização de entrada demensagens de erro e de aviso do sistema.

Pré-requisito

Além das novas mensagens incluídas por meio dessa estrutura de objeto, o arquivomessages.xml deve ser atualizado com o texto da mensagem correspondente.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

N/A

Canal de Publicação N/A

Regras de Processamento Nenhum

Controle de Integração Nenhum

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

100 Integrando Dados a Aplicativos Externos

Page 107: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

N/A

Serviço Corporativo N/A

Regras de Processamento Nenhum

Controle de Integração Nenhum

Objeto de Configuração de MBO:

A estrutura de objeto MXOBJECTCFG permite sincronização de entrada deinformações de definição de MBO.

Pré-requisito

Use essa estrutura de objeto com cuidado.

Use somente os códigos de ação add, addchange ou change ao sincronizar dadosde entrada por meio dessa estrutura de objeto. Não use a ação replace a menosque você substitua completamente os dados de MAXOBJECTCFG e deMAXATTRIBUTECFG.

A ação delete apresenta o risco de excluir registros predefinidos nas tabelas debanco de dados associados a MBOs MAXOBJECTCFG e MAXATTRIBUTECFG.

Existe uma restrição de configuração de entrada na coluna CHANGED,EAUDITENABLED, EAUDITFILTER, EAUDITTBNAME, IMPORTED,STORAGEPARTITION, MAXOBJECTID, portanto, o valor XML não é configuradopara o MBO.

Após sincronizar dados de entrada com essa interface, para que suas mudançasentrem em vigor, use o aplicativo Configuração do Banco de Dados e selecione aação Aplicar Mudanças de Configuração.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

N/A

Canal de Publicação N/A

Regras de Processamento Nenhum

Controle de Integração Nenhum

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Integrando Dados a Aplicativos Externos 101

Page 108: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

psdi.iface.app.configure.MaxObjcfgProcess -

Se o evento MAXOBJECTCFG estivercriando uma visualização(MAXOBJECTCFG.VIEW=1), a classe deprocessamento ignora quaisquer MBOsMAXATTRIBUTECFG associados aoMAXOBJECTCFG referido.

Essa classe também atrasa a validação SAVEem MAXOBJECTCFG até seus atributosassociados serem incluídos com sucesso nobanco de dados.

Serviço Corporativo N/A

Regras de Processamento Nenhum

Controle de Integração Nenhum

Objeto de Domínio:

A estrutura de objeto MXDOMAIN permite sincronização de entrada deinformações de domínio.

Objetivo

Alguns campos do banco de dados são associados a listas de valores selecionadas.Estas listas de valores definidos são conhecidas como domínios (às vezes referidoscomo listas de valores).

Essa estrutura de objeto sincroniza definições de domínios ALN, numéricas, deintervalo numérico, de tabela e cruzadas.

Pré-requisito

As operações de atualização e exclusão requerem que sistemas externos forneçamvalores DOMAINID válidos.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

N/A

Canal de Publicação N/A

Regras de Processamento Nenhum

Controle de Integração Nenhum

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

102 Integrando Dados a Aplicativos Externos

Page 109: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

N/A

Serviço Corporativo N/A

Regras de Processamento Nenhum

Controle de Integração Nenhum

Objeto de Modelo de Comunicação:

A estrutura de objeto MXCTEMPLATE permite sincronização bidirecional demodelos de comunicação que usuários podem usar com vantagem para padronizarcomunicações e notificações de email frequentemente usadas.

Objetivo

Um modelo de comunicação é uma definição de uma mensagem de correio cominformações de assunto, mensagem e destinatário que é processada quandodeterminados nós se tornam atuais ou ao longo de caminhos de roteamento defluxo de serviço especificado entre nós.

Essa estrutura de objeto sincroniza ações de aplicativo, mudança de status, classecustomizada, linha de comando e valor de conjunto, mas não grupo de ações.

Pré-requisito

As operações de atualização e exclusão requerem que sistemas externos forneçamum valor ACTIONID válido.

Essa estrutura de objeto não suporta a criação de grupos de ações.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

N/A

Canal de Publicação MXCTEMPLATEInterface

Regras de Processamento Nenhum

Controle de Integração Nenhum

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

N/A

Serviço Corporativo N/A

Integrando Dados a Aplicativos Externos 103

Page 110: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Componentes de integração predefinidos Valor e descrição

Regras de Processamento Nenhum

Controle de Integração Nenhum

Objeto de Definição de Ação:

A estrutura de objeto MXACTION permite sincronização de entrada das definiçõesde ações do fluxo de serviço que podem ser usadas com processos de escalação, deacordo de nível de serviço (ANS) e de fluxo de serviço.

Objetivo

Uma ação é um evento que você deseja que o sistema acione quando encontrarregistros que atendam às condições definidas por um ponto de escalação, acordode nível de serviço ou processo de fluxo de serviço.

Essa estrutura de objeto sincroniza ações de aplicativo, mudança de status, classecustomizada, linha de comando e valor de conjunto, mas não grupo de ações.

Pré-requisito

As operações de atualização e exclusão requerem que sistemas externos forneçamum valor ACTIONID válido.

Essa estrutura de objeto não suporta a criação de grupos de ações.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

N/A

Canal de Publicação N/A

Regras de Processamento Nenhum

Controle de Integração Nenhum

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

N/A

Serviço Corporativo N/A

Regras de Processamento Nenhum

Controle de Integração Nenhum

104 Integrando Dados a Aplicativos Externos

Page 111: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Objeto de Propriedades de Sistema:

A estrutura de objeto MXPROP permite sincronização de entrada de propriedadese valores de sistema.

Objetivo

Pré-requisito

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

N/A

Canal de Publicação N/A

Regras de Processamento Nenhum

Controle de Integração Nenhum

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

N/A

Serviço Corporativo N/A

Regras de Processamento Nenhum

Controle de Integração Nenhum

Objeto de Módulo de Integração:

A estrutura de objeto MXIM permite sincronização de entrada de uma definição demódulo de integração incluindo propriedades e relacionamentos LMO.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

N/A

Canal de Publicação N/A

Regras de Processamento Nenhum

Controle de Integração Nenhum

Integrando Dados a Aplicativos Externos 105

Page 112: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

N/A

Serviço Corporativo N/A

Regras de Processamento Nenhum

Controle de Integração Nenhum

Objeto de Operações de Gerenciamento Lógico (LMO):

A estrutura de objeto MXLMO2 permite sincronização de entrada de LMOsincluindo atributos.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

N/A

Canal de Publicação N/A

Regras de Processamento Nenhum

Controle de Integração Nenhum

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

N/A

Serviço Corporativo N/A

Regras de Processamento Nenhum

Controle de Integração Nenhum

Objeto de Produto de Gerenciamento Operacional (OMP):

A estrutura de objeto MXOMP permite sincronização de entrada de OMPs,incluindo relacionamentos de ICs e configurações com IM e LMOs.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

106 Integrando Dados a Aplicativos Externos

Page 113: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

N/A

Canal de Publicação N/A

Regras de Processamento Nenhum

Controle de Integração Nenhum

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

N/A

Serviço Corporativo N/A

Regras de Processamento Nenhum

Controle de Integração Nenhum

Objeto de Entrada de Ativação:

A estrutura de objeto MXLAUNCH permite sincronização de entrada de Entradasde Ativação e informações de contexto.

Processamento de Integração de Saída

A tabela a seguir mostra os valores predefinidos usados em processamento deintegração de saída.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de definição deEstrutura de Objeto

N/A

Canal de Publicação N/A

Regras de Processamento Nenhum

Controle de Integração Nenhum

Processamento de Integração de Entrada

A tabela a seguir mostra os valores pré-configurados usados em processamento deintegração de entrada.

Componentes de integração predefinidos Valor e descrição

Funcionalidade da classe de processamentode Estrutura de Objeto

N/A

Serviço Corporativo N/A

Regras de Processamento Nenhum

Controle de Integração Nenhum

Integrando Dados a Aplicativos Externos 107

Page 114: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Ordem de Carregamento de DadosQuando você usa a estrutura de integração para carregar diversos conjuntos dedados no banco de dados do aplicativo, você deve manter as dependências paraque os dados sejam carregados corretamente. Use a sequência de estruturas deobjeto predefinidas a seguir como um guia para determinar a ordem na qualcarregar os dados.

Estruturas de objetoMXGLCOMPMXCOAMXVENDORMSTRMXVENDORMXPERSONMXPERUSERMXCRAFTMXLABORMXSTORELOCMXCLASSIFICATIONMXITEMMXINVENTORYMXINVBALMXINVVENDORMXSERVITEMMXPROJMXASSETMXWOMXWODETAILMXWOHIERMXINVRESMXEMPACTMXINVISSUEMXGLTXNMXTOOLITEMMXPCMXMETERDATAMXPRMXPOMXRECEIPTMXRCVROTITMMXINVOICE

Estruturas de Objeto do SistemaMXINTOBJECTMXIFACECONTROLMXENTSRVMXIFACEOUTMXENDPOINT

108 Integrando Dados a Aplicativos Externos

Page 115: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

MXQUEUEMXEXTSYSTEMMXIFACEINVOKEMXIMMXLMO2MXOMPMXLAUNCHMXMESSAGEMXOBJECTCFGMXDOMAINMXCTEMPLATEMXACTIONMXPROP

Processamento de Dados de IntegraçãoÉ possível configurar componentes de integração de diferentes maneiras paraatender seus requisitos de integração. É possível integrar a diversos aplicativosexternos, e cada aplicativo requer uma abordagem de integração diferente que sejabaseada no suporte de integração que é fornecido por esse aplicativo.

Planejando o processamento de dados para integraçãoAntes de iniciar uma transação de integração, deve-se decidir quais componentesde integração usar. Também se deve planejar como implementar essescomponentes para que seja possível obter uma integração bem-sucedida com odestino externo da integração.

A escolha dos componentes a serem usados e de como implementá-los geralmenteé determinada pelo aplicativo externo que está sendo integrado. Essas opçõesincluem as considerações a seguir:

Tipo de dadosDefina os dados, por exemplo, ordens de serviço e dados de pessoas.Quando definido, determine se existem estruturas de objetos predefinidospara suportar cada conjunto de dados ou se é preciso criar mais estruturasde objetos.

DireçãoPara cada conjunto de dados, em qual direção o cenário de integração iráimplementar, enviar transações de saída, receber transações de entrada ouambos? A direção da integração pode variar para cada conjunto de dados.

Troca de mensagemEsse fator depende dos recursos do aplicativo externo e as opções podemincluir dados de integração usando arquivos (XML ou simples), chamarserviços da web e postar XML sobre HTTP. O método de trocar dados ecom que frequência isso ocorre pode variar para cada conjunto de dados.

CustomizaçãoÀ medida que dados são trocados, a customização dentro do aplicativo énecessária para transformar o conteúdo da mensagem ou para aplicarregras de negócios de integração? Se a customização for necessária, elautiliza recursos de estrutura de integração como classes de saídaJava,

Integrando Dados a Aplicativos Externos 109

Page 116: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

scripts de automação, mapas XSL ou regras de processamento ou acustomização é implementada no aplicativo externo?

Dependendo das respostas a essas questões, serão necessários diferentes tipos decomponente e configurações de API, que podem incluir:v Estruturas de objetov Canais de publicação e canais de chamadav Serviços corporativosv Serviços de estrutura de objeto, serviços corporativos e serviços padrãov Serviços da Webv APIs REST e OSLCv Sistemas externosv Terminais

Processamento de Dados de EntradaA estrutura de integração suporta processamento assíncrono e síncrono demensagens de integração de entrada com os seguintes tipos de serviço; estruturasde objeto, serviços corporativos ou serviços padrão.

Para processamento assíncrono, o sistema externo estabelece e mantém umaconexão até que a mensagem seja transmitida em uma fila do Serviço deMensagens Java. Para o processamento síncrono, o sistema externo estabelece emantém uma conexão até que o processamento de mensagens seja concluído.

Processamento Assíncrono de Mensagens de EntradaDurante o processamento assíncrono de mensagens de entrada, um aplicativoexterno chama um serviço corporativo e mantém uma conexão até que amensagem seja salva em uma fila do Serviço de Mensagens Java e a conexão sejaencerrada. Se ocorrer um erro durante o salvamento da mensagem na fila, oaplicativo externo será responsável por reprocessar a mensagem.

O processamento assíncrono é gerenciado pelas filas do Serviço de Mensagens Javasequencial ou contínua. O processamento em uma fila sequencial garante a ordemde entrega de mensagens, com base em uma ordem primeiro a entrar, primeiro asair. O processamento em uma fila contínua entrega as mensagens em qualquerordem.

É possível usar os serviços corporativos para suportar as seguintes transações:v Importar dados de um arquivo simples ou de um arquivo XMLv Carregamento de dados de tabelas de interfacev Recebendo uma mensagem XML de uma solicitação HTTP POSTv Chamar um serviço da web configurado para usar uma fila JMSv Chamando um EJBv Usando uma conexão JMS direta

Todas essas opções suportam o uso de um serviço corporativo, quando amensagem de integração é transmitida em uma fila do Serviço de Mensagens Java.Quando a mensagem estiver na fila, um processo separado que usa uma tarefaCron ou um bean acionado por mensagens (MDB) apanha a mensagem da fila. Amensagem é, então, processada por meio da camada de serviço corporativo, acamada de estrutura de objeto relacionado e os objetos de negócios sãoatualizados. Como as mensagens são processadas por meio de uma fila do Serviço

110 Integrando Dados a Aplicativos Externos

Page 117: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

de Mensagens Java, nenhuma resposta é enviada ao aplicativo que chamou oserviço e a operação Consultar não é suportada neste modelo de processamento.

Processamento Síncrono de Mensagens de EntradaÉ possível implementar a integração de entrada síncrona com um serviço deestrutura de objeto, corporativo ou padrão. Essas transações requerem oestabelecimento e manutenção de uma conexão direta do aplicativo externo com aestrutura de integração para a duração da transação.

O aplicativo externo mantém a conexão com o serviço até os objetos de negóciosserem atualizados no banco de dados Maximo ou até os objetos de negócios seremretornados em resposta a uma operação Consultar. A estrutura de integraçãoretorna uma resposta ao aplicativo externo para confirmar o sucesso ou falha doprocessamento de mensagem.

As opções a seguir estão disponíveis para enviar mensagens de integração síncronapara serviços:v Postagem de uma mensagem XML usando HTTPv Iniciando um serviço da web que está configurado para ignorar a fila JMSv Iniciando um EJB

Serviços de estrutura de objeto e corporativos podem usar qualquer uma dessasopções para suportar as operações Criar, Atualizar, Excluir, Sincronizar e Consultar.

Também é possível acessar estruturas do objeto de integração, serviços-padrão eobjetos de negócios do aplicativo usando a API REST ou a API REST OSLC.Conceitos relacionados:“API REST” na página 224A interface de programação de aplicativos (API) Representational State Transfer(REST) fornece uma maneira de aplicativos externos consultarem e atualizaremdados do aplicativo no mecanismo de automação de processo da Tivoli.

Inicialização de Processamento Assíncrono de Dados de EntradaPara iniciar o processamento de integração, o sistema externo usa um dos métodossuportados para estabelecer uma conexão. Depois que o sistema externo e o serviçocorporativo são validados, as mensagens são colocadas na fila do Serviço deMensagens Java que é especificada para o serviço corporativo.

O procedimento para estabelecer a conexão inicial varia dependendo do método deintegração que é usado para a transação. A tabela a seguir descreve os métodosdisponíveis e as conexões que esses métodos utilizam.

Método Procedimento de conexão

Método HTTP ou HTTPS Post Use a URL a seguir:

hostname:port/meaweb/esqueue/extsysname/entservname em que:

v extsysname é o nome do sistema externo

v entservname é o nome do serviço corporativo

Integrando Dados a Aplicativos Externos 111

Page 118: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Método Procedimento de conexão

EJB Inicie um EJB a partir de um cliente Java Platform, Enterprise Edition utilizando o código a seguir:

public byte{} processExternalDataAsync(byte[] extData, String serviceName, String sender)

No cliente, especifique o nome JNDI do Enterprise JavaBean, ejb/maximo/remote/enterpriseservice, para consultar a referência do Enterprise JavaBean e iniciar o método. Asconfigurações a seguir são requeridas no cliente Java Platform, Enterprise Edition:

v Acesso os arquivos de classe Home e Remote

v Acesse os arquivos JAR do Java Platform, Enterprise Edition para obter o servidor

v A URL do servidor que hospeda o Enterprise JavaBeans

v O nome de classe do factory de contexto

O código do cliente deve instanciar o objeto IntialContext padrão. O contexto deriva a URL doprovedor e o factory de contexto do ambiente.

Recurso de importação de dadosque usa XML ou arquivos simples

O usuário clica em Importação de Dados em um aplicativo.

Tarefa Cron de importação dedados

A tarefa Cron XMLFILECONSUMER ou a tarefa Cron FLATFILECONSUMER pesquisa o diretóriode origem que é configurado para importação de dados.

Tabelas de Interface O sistema externo grava dados de mensagens nas tabelas de interface apropriadas e atualiza atabela de fila MXIN_INTER_TRANS com informações sobre a sequência para processar os registrosna tabela de interface.

Uma tarefa Cron pesquisa a tabela de fila MXIN_INTER_TRANS para registros a seremprocessados.

Serviços da Web O sistema externo inicia um serviço corporativo que é implementado como um serviço da web queestá configurado para não ignorar a fila do Serviço de Mensagens Java.

Direto em JMS O sistema externo transmite uma mensagem XML diretamente na fila do Serviço de MensagensJava de outro sistema de enfileiramento, como o WebSphere MQ.

Quando uma conexão é estabelecida ou quando uma tarefa Cron é executada eidentifica que os dados estão prontos para importação, as etapas a seguir ocorrem:1. A estrutura de integração verifica se o sistema externo e o serviço corporativo

são válidos e estão ativados.2. Se as mensagens estiverem no formato de arquivo simples, a estrutura de

integração verifica se a estrutura de objeto suporta estruturas simples.3. Se a verificação falhar, a estrutura de integração notifica o remetente sobre o

erro e não processa os dados.4. Se a verificação for bem-sucedida, a estrutura de integração identificará a fila

do Serviço de Mensagens Java de entrada que é designada ao serviçocorporativo e gravará a mensagem na fila.

5. A estrutura de integração atualiza o cabeçalho da mensagem JMS com osnomes do sistema externo e o serviço corporativo.

Se uma transação que contém várias instâncias de um registro encontra erros, amanipulação de erros varia dependendo do método de troca utilizada. Amanipulação de erros a seguir ocorre, dependendo do tipo de troca:v Para transações somente HTTP ou EJB : Se uma transação contiver diversas

instâncias de um documento, por exemplo, se contiver 10 registros de pessoa,uma única mensagem será gravada na fila do Serviço de Mensagens Java, e não10 mensagens individuais. Se um dos registros tiver um erro de processamento,uma exceção de processamento total de mensagem ocorre e nenhum dosregistros é confirmado para o banco de dados.

v Para transações apenas de importação de dados: Se uma transação contiverdiversas instâncias de um documento, por exemplo, se contiver 10 registros depessoa, o aplicativo grava 10 mensagens individuais para a fila do Serviço deMensagens Java. Se uma das mensagens tiver um erro de processamento, umatransação de erro é registrada para essa mensagem e as 9 mensagens restantescontinuam a processar no aplicativo.

112 Integrando Dados a Aplicativos Externos

Page 119: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Inicialização de Processamento Síncrono de Dados de EntradaPara iniciar o processamento síncrono, o sistema externo usa um dos métodossuportados para estabelecer uma conexão. Durante o processo de conexão, aestrutura de integração verifica se o sistema externo e o serviço corporativoreferido são válidos e se estão ativados.

O procedimento para estabelecer a conexão inicial varia, dependendo do serviçousado para a transação. A tabela a seguir descreve os métodos disponíveis e asconexões que esses métodos utilizam.

Método Procedimento de conexão

Método HTTP ou HTTPS Postv Use a URL a seguir para transações que usam um serviço corporativo:

hostname:port/meaweb/es/extsysname/entservname

Em que:

– extsysname é o nome do sistema externo

– entservname é o nome do serviço corporativo

v Use a URL a seguir para transações que usam um serviço de estrutura de objeto:

hostname:port/meaweb/os/osname

Em que osname é o nome do serviço de estrutura de objeto.

v Use a URL a seguir para transações que usam um serviço padrão:

hostname:port/meaweb/ss/application service name

Em que application service name é o nome do serviço padrão.

EJBv Para transações de serviço corporativo, inicie um EJB a partir de um cliente Java Platform,

Enterprise Edition usando o código a seguir:

public byte{} processExternalDataSync(byte[] extData, String serviceName, String sender)

O cliente pode usar o nome JNDI do Enterprise JavaBean, ejb/maximo/remote/enterpriseservice,para consultar a referência do Enterprise JavaBean e iniciar o método. As configurações a seguirsão requeridas no cliente Java Platform, Enterprise Edition:

v Para transações de serviço de estrutura de objeto, inicie um EJB a partir de um cliente JavaPlatform, Enterprise Edition usando o código a seguir:

public byte{} processMOS(byte[] reqmosData, String mosName)

O cliente pode usar o nome JNDI do Enterprise JavaBean, ejb/maximo/remote/mosservice, paraconsultar a referência do Enterprise JavaBeans e iniciar o método. As configurações a seguir sãorequeridas no cliente Java Platform, Enterprise Edition:

v Para transações de serviço de estrutura de objeto, inicie um EJB a partir de um cliente JavaPlatform, Enterprise Edition usando o código a seguir:

public byte{} action(byte[] actionData, String maxServiceName)

O cliente pode usar o nome JNDI do Enterprise JavaBean, ejb/maximo/remote/actionservice, paraconsultar a referência do Enterprise JavaBean e iniciar o método. As configurações a seguir sãorequeridas no cliente Java Platform, Enterprise Edition:

As configurações a seguir são requeridas no cliente Java Platform, Enterprise Edition:

v Acesso os arquivos de classe Home e Remote

v Acesse os arquivos JAR do Java Platform, Enterprise Edition para obter o servidor

v A URL do servidor que hospeda o Enterprise JavaBeans

v O nome de classe do factory de contexto

O código do cliente deve instanciar o objeto IntialContext padrão. O contexto deriva a URL doprovedor e o factory de contexto do ambiente.

serviço da Web Use a URL a seguir para as transações que iniciam um serviço da web:

http://hostname:port/meaweb/services/web service name

em que web service name é o nome de um serviço da web implementado.

Conceitos relacionados:“API REST” na página 224A interface de programação de aplicativos (API) Representational State Transfer(REST) fornece uma maneira de aplicativos externos consultarem e atualizaremdados do aplicativo no mecanismo de automação de processo da Tivoli.

Integrando Dados a Aplicativos Externos 113

Page 120: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Sequências de processamentoA mesma sequência de processamento é aplicada a mensagens assíncronas esíncronas que usam um serviço corporativo. As sequências de processamento sãodiferentes para mensagens síncronas que usam serviços de estrutura de objeto oupadrão.

Sequência de processamento de serviço corporativo:

Uma mensagem de serviço corporativo é processada por meio de várias camadaspara consultar e atualizar dados do objeto de negócios. É possível usar essascamadas de processamento para customizar e controlar o processamento parasatisfazer os requisitos de integração com o aplicativo externo.

Para o processamento assíncrono, os dados podem originar-se a partir dos métodosde troca a seguir:v Tabelas de Interfacev HTTP Post de uma mensagem XMLv Iniciando um serviço da web que está configurado para usar uma fila do Serviço

de Mensagens Javav Iniciando um EJBv Conexão JMS diretav Importação de dados de um arquivo simples ou um arquivo XML

Para processamento síncrono, os dados podem originar-se dos métodos de troca aseguir:v HTTP Post de uma mensagem XML (HTTP)v Iniciando um serviço da web que está configurado para usar uma fila do Serviço

de Mensagens Javav Iniciando um EJB

A mesma sequência de processamento aplica-se ao processamento assíncrono esíncrono.

O processamento de serviço corporativo ocorre na seguinte sequência:1. O sistema externo chama o serviço corporativo.2. O processamento customizado pode ocorrer em vários pontos durante o

processamento de serviços corporativos. É possível executar classes Javacustomizadas ouscripts de automação para manipular os dados da mensagemou é possível aplicar um mapa XSL. O processamento customizado ocorre naseguinte ordem:a. Se um método de pré-processamento for definido em uma classe de saída

de usuário, esse método é aplicado primeiro.b. Se uma classe de saída externa for especificada, esse processamento será

aplicado.c. Se um método de pós-processamento for definido em uma classe de saída

de usuário, esse método será aplicado.d. Se um mapa XSL for especificado para o serviço corporativo, o mapa é

aplicado para converter o formato de serviço corporativo para o formato deestrutura de objeto.

Nesse ponto no processamento, a mensagem deve corresponder ao formato daestrutura de objeto associada ao serviço corporativo.

3. O processamento de estrutura de objeto ocorre na seguinte ordem:

114 Integrando Dados a Aplicativos Externos

Page 121: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

a. É possível executar classes Java customizadas ouscripts de automação paramanipular os dados durante o processamento de estrutura de objeto.

b. Se as regras de processamento forem configuradas para a estrutura deobjeto, essas regras serão executadas a seguir.

c. Se as regras de processamento resultarem na multiplicação de dados parasites ou organizações, a mensagem de estrutura do objeto é duplicada paraos sites ou organizações adicionais.

d. Os objetos são criados e o processamento de objetos é iniciado.4. O processamento de objeto ocorre na seguinte ordem:

a. Se um método de pré-processamento for definido em uma classe de saídade usuário, esse método será aplicado.

b. Se uma classe de saída externa for especificada, esse processamento seráaplicado.

c. Se um método de pós-processamento for definido em uma classe de saídade usuário, esse método será aplicado.

d. Os objetos de negócios são processados e os dados são salvos no banco dedados.

5. Somente para transações síncronas, para as operações Criar, Atualizar, Excluir eSincronizar, o serviço corporativo fornece uma resposta para o aplicativo inicial,que inclui as informações a seguir:v Indica se a mensagem foi processada com sucesso.v O valor da coluna do ID interno do objeto principal, independentemente da

coluna faz parte da chave primária do objeto principal.v Os valores dos campos de chave primária do objeto principal.v Os valores de quaisquer campos de chave alternativa para o objeto principal,

que está configurado para o objeto ou para a estrutura de objeto.6. Somente para transações síncronas, para operações Consultar, toda a estrutura

de objeto é retornada. É possível executar classes Java customizadas ouscriptsde automação para manipular os dados de resposta, ou é possível aplicar ummapa XSL.

Integração Síncrona com um Serviço de Estrutura de Objeto:

Um serviço de estrutura de objeto é acessível usando o HTTP Post, EJB e osmétodos de chamada de serviço da web para receber as mensagens síncronas deserviço de estrutura de objeto. As operações Criar, Atualizar, Excluir, Sincronizar eConsultar são suportadas.

O processamento de integração que é baseado em um serviço de estrutura deobjeto ocorre na sequência a seguir:1. O sistema externo usa um dos métodos de chamada a seguir para iniciar a

comunicação com a estrutura de integração:v Chamada HTTPv Chamada EJBv Chamada de serviço da Web

2. A estrutura de integração recebe a mensagem de entrada que identifica aestrutura de objeto associada à mensagem

3. A estrutura de integração constrói os objetos com base na estrutura de objeto eno conteúdo da mensagem de entrada.

4. A estrutura de integração aplica qualquer lógica predefinida à estrutura deobjeto.

Integrando Dados a Aplicativos Externos 115

Page 122: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

5. Os objetos são processados e os dados são confirmados no banco de dados se amensagem contiver uma operação de atualização, ou os dados são retornadosao solicitante se a mensagem contiver uma operação de consulta.

6. Se ocorrer um erro de processamento, a resposta com uma mensagem de erro éretornada ao responsável pela chamada do serviço.

Integração Síncrona com um Serviço Padrão:

Um serviço-padrão é acessível usando o HTTP Post, EJB e os métodos de chamadade serviço da web para receber mensagens de serviço padrão síncronas.

O processamento de integração que é baseado em um serviço padrão ocorre nasequência a seguir:1. O sistema externo usa um dos métodos de chamada a seguir para iniciar a

comunicação com a estrutura de integração:v Chamada HTTPv Chamada EJBv Chamada de serviço da Web

2. Os objetos são passados ao sistema e o processamento do sistema padrão éaplicado.

Processamento de Dados de SaídaOs canais de publicação fornecem processamento assíncrono de mensagens nãoenviadas que não requerem uma resposta do sistema externo. Para as mensagensnão enviadas que requerem uma resposta do sistema externo, é possível usar umcanal de chamada para fornecer processamento síncrono.

Integração Assíncrona com um Canal de PublicaçãoA estrutura de integração usa canais de publicação para processar mensagens desaída assíncronas. O envio de uma mensagem do canal de publicação pode seriniciado por um evento de objeto ou é possível usar o recurso de exportação dedados para enviar mensagens do canal de publicação on demand.

Os canais de publicação são configurados para uma estrutura de objeto e podemativar integração baseada em evento quando o objeto principal da estrutura deobjeto for atualizado. Uma atualização ocorre, por exemplo, quando um usuáriosalva um registro em um aplicativo ou conclui um estágio em um processo defluxo de serviço. Quando o objeto principal de uma estrutura de objeto foratualizado, um evento é iniciado para todos os canais de publicação que sãoassociados com a estrutura de objeto e são configurados para atender eventos. Osusuários podem usar o recurso de exportação de dados no aplicativo SistemasExternos para iniciar mensagens do canal de publicação a qualquer momento.

Quando uma mensagem do canal de publicação é iniciada por um evento ou pelaexportação de dados, a estrutura de integração executa uma sequência de tarefas:1. Identifica a estrutura de objeto e os objetos de componentes que estão

associados ao canal de publicação.2. Constrói a estrutura de objeto para a transação e forma uma mensagem XML

que é baseada no conteúdo dos objetos.3. Aplica quaisquer regras de processamento definidas no aplicativo Canais de

Publicação.

116 Integrando Dados a Aplicativos Externos

Page 123: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

4. Se o canal de publicação estiver associado a vários sistemas externos, ele criacópias da estrutura de objeto, um para cada combinação de canal de publicaçãoe sistema externo.

5. Se alguma das classes Java de processamento customizado, scripts deautomação ou um mapa XSL estiverem associados ao canal de publicação,processe-os na seguinte ordem:a. Executa a classe de filtro de eventos, se uma for fornecida.b. Executa o método pré-processamento na classe de processamento de saída

de usuário, se um for fornecido.c. Executa uma classe de processamento de canal de publicação, se uma for

fornecida.d. ,e. Executa o método pós-processamento na classe de saída de usuário, se um

for fornecido.f. Aplica um mapa XSL, se um for fornecido.

6. Grava a mensagem XML na fila de saída especificada para o sistema externo.7. Uma tarefa Cron seleciona a mensagem do canal de publicação e a entrega ao

sistema externo, que é baseado no terminal que está configurado.

Visão Geral do Processamento do Canal de Publicação:

A estrutura de objeto configurada para um canal de publicação fornece o conteúdoda mensagem do canal. O sistema externo determina como e onde a mensagem deintegração é entregue. Na camada do canal de publicação há camadas deprocessamento opcionais que suportam a transformação de conteúdo da mensageme o aplicativo de regras de negócios.

Interação Baseada em Eventos:

Um canal de publicação pode iniciar uma mensagem de integração em resposta aoprocessamento de uma transação do sistema, como a atualização de um objeto.

É possível configurar canais de publicação para atender a eventos que ocorrem noobjeto principal da estrutura de objeto relacionada, marcando a caixa de seleçãoAtivar Listener no aplicativo Canais de Publicação. Quando o objeto principal deuma estrutura de objeto é atualizado, uma mensagem do canal de publicação enviaas informações atualizadas no sistema externo.

Quando uma atualização em um objeto-filho inicia uma atualização para o objetoprincipal, essas informações também são enviadas ao sistema externo. No entanto,algumas atualizações em um objeto-filho não iniciam uma atualização para oobjeto principal e, como resultado, as informações atualizadas não são enviadas aosistema externo. Por exemplo, se uma estrutura de objeto for configurada parasuportar um anexo como um objeto-filho, quando o usuário inclui um anexo, osistema externo não será notificado deste evento.

Para propagar um evento a partir de um objeto-filho para o objeto principal daestrutura de objeto, no aplicativo Estruturas de Objetos, utilize a açãoConfigurações Avançadas para configurar propagação de evento. Ao configuraruma estrutura de objeto para propagar os eventos em objetos-filho para o objetoprincipal, o objeto principal envia, então, as informações atualizadas para o sistemaexterno.

Integrando Dados a Aplicativos Externos 117

Page 124: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Se você configurar a propagação de evento para uma estrutura de objeto, deve-semonitorar a atividade de mensagem cuidadosamente, pois a configuração poderáiniciar mais mensagens do que o sistema externo está designado a processar. Paraobjetos-filhos que têm lógica integrada para atualizar o objeto-pai, essaconfiguração não tem impacto algum em termos de ativação ou desativação dapropagação de eventos do objeto filho para o objeto pai.

Recurso de Exportação de Dados:

O canal de publicação suporta processamento em lote de dados de integraçãousando o recurso de exportação de dados.

Inicie o recurso de exportação de dados executando uma consulta SQL no objetoprimário de uma estrutura de objeto e o número de registros a serem enviados. Sea consulta for bem-sucedida.

O recurso de exportação de dados é iniciado fornecendo uma cláusula SQLWHERE no objeto principal de uma estrutura de objeto na janela Exportação deDados. Também é possível configurar o número de registros a ser enviado. Se aconsulta for bem-sucedida, a exportação é iniciada e entrega os dados com base noterminal configurado para o canal de publicação.

Integração Síncrona com um Canal de ChamadaA estrutura de integração usa canais de chamada para processar mensagens desaída síncrona que requer uma confirmação ou conteúdo de resposta do aplicativoexterno. A exportação é iniciada por uma classe de ação que chama o canal dechamada.

O envio de uma mensagem de canal de chamada é iniciado por uma classe Java deação que é codificada para iniciar o canal. Os canais de chamada são usados, porexemplo, para chamar um aplicativo externo para validar dados, para iniciar umprocesso em um aplicativo externo ou para recuperar dados. Um canal dechamada pode ser acionado por um controle de interface com o usuário que éconfigurado para chamar a classe de ação que inicia o canal.

Quando uma mensagem do canal de chamada é iniciada por uma classe de ação, aestrutura de integração executa uma sequência de tarefas:1. Identifica a estrutura de objeto associada a cada canal de chamada e identifica

os objetos de componentes.2. Constrói a estrutura de objeto para a transação e forma uma mensagem XML

que é baseada no conteúdo dos objetos.3. Se alguma das classes Java de processamento customizado, scripts de

automação ou um mapa XSL estiverem associados à solicitação do canal dechamada, processe-os na seguinte ordem:a. Executa o método pré-processamento na classe de processamento de saída

de usuário de solicitação, se um for fornecido.b. Executa uma classe de processamento de solicitação de canal de chamada,

se uma for fornecida.c. Executa o método pós-processamento na classe de saída de usuário de

solicitação, se um for fornecido.d. Aplica um mapa XSL, se um for fornecido.

4. Grava a mensagem XML no destino especificado pelo terminal.5. O manipulador de terminal especifica o mecanismo de transporte a ser usado.

118 Integrando Dados a Aplicativos Externos

Page 125: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

6. Quando a resposta é recebida no terminal, se qualquer classe Java customizada,scripts de automação ou mapa XSL estiverem associados à resposta, processe-osna seguinte ordem:a. Executa o método pré-processamento na classe de processamento de saída

de usuário de resposta, se um for fornecido.b. Executa uma classe de processamento de resposta de canal de chamada, se

uma for fornecida.c. Executa o método pós-processamento na classe de saída de usuário de

resposta, se um for fornecido.d. Aplica um mapa XSL, se um for fornecido.

7. Objetos são construídos a partir de dados na estrutura de objeto de resposta esão passados para o sistema onde o processamento padrão é aplicado.

8. Se todos os objetos criados da estrutura de objeto de resposta foremprocessados com sucesso, eles são confirmados no banco de dados.

O conteúdo de resposta pode ser gerenciado pelo invocador com base emrequisitos de integração, por exemplo, para atualizar dados do objeto de negóciosou exibir a resposta para um usuário. É fornecida uma classe de ação padrão que épossível usar ou estender para implementar uma integração do canal de chamada.

Customização de Propriedades de Metadados em um Canal de Chamada:

Dentro das classes de saída externa ou das classes de saída de usuário do canal dechamada, é possível atualizar dados adicionais, como os valores de substituiçãopara os parâmetros configurados para um terminal.

É possível utilizar este tipo de customização, por exemplo, para derivar umparâmetro de terminal, como a URL, dos dados na estrutura de objeto do canal dechamada. É possível substituir os valores de diversas propriedades de metadados.

Valor Descrição

TERMINAL É possível substituir esse valor para usar um terminal fornecido nolugar do terminal que é configurado por meio do Sistema Externo.

ENDPOINTPROPS Esse valor aponta para um hashmap que pode conter um ou maisparâmetros de terminal com um valor de substituiçãocorrespondente. Se a configuração do terminal definir que épossível substituir uma propriedade, qualquer valor desubstituição no contexto de integração é ignorado.

TARGETOBJECT Esse valor é a estrutura de objeto de destino do canal de chamada.

SOURCEOBJECT Esse valor é a estrutura de objeto de origem do canal de chamada.

Configurando de processamento de integraçãoO processamento de mensagens de integração ocorre em vários pontos durante omovimento de mensagens de integração para transações de entrada e saída. Aoconfigurar o processamento de integração, deve-se assegurar que os dados deorigem e de destino estejam em estruturas de dados e formatos compatíveis.

Configurando o processamento assíncrono de mensagens deentrada usando serviços corporativosOs serviços corporativos usam o processamento assíncrono para mensagens deentrada que não requerem uma resposta do Maximo Asset Management. Paraativar o processamento do serviço corporativo, configure vários componentes deintegração, incluindo uma estrutura de objeto, um serviço corporativo, um sistemaexterno e uma tarefa Cron JMS.

Integrando Dados a Aplicativos Externos 119

Page 126: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Sobre Esta Tarefa

Um sistema externo inicia uma conexão e envia uma mensagem que inclui osnomes do sistema externo e do serviço corporativo. O sistema externo mantém aconexão enquanto a estrutura de integração verifica se o serviço corporativo estáativado para esta transação. As transações válidas são colocadas na fila do Serviçode Mensagens Java sequencial de entrada, e a conexão com o sistema externo éencerrada. Uma tarefa Cron pesquisa a fila do Serviço de Mensagens Java,encaminha a mensagem do processamento do serviço corporativo e envia amensagem para o processamento de estrutura de objeto antes de ser confirmadapara o banco de dados.

Procedimento1. No aplicativo Estruturas de Objeto, identifique uma estrutura de objeto

predefinida a ser usada ou crie uma.2. No aplicativo Serviços Corporativos, identifique um serviço corporativo

predefinido a ser usado ou crie um.3. Configure o serviço corporativo para usar a estrutura de objeto e especifique

uma operação válida. A operação Consultar não é válida para processamentoassíncrono com serviços corporativos.

4. No aplicativo Sistemas Externos, identifique um sistema externo ser usado oucrie um, configurando-o para o serviço corporativo:a. Configure o sistema externo para usar filas JMS de entrada e ative o sistema

externo.b. Configure o sistema externo para usar o serviço corporativo e ative o

serviço.5. Opcional: Configure a origem para a mensagem de integração.

Origem da mensagem Configurações

Mensagens de arquivos usandouma tarefa Cron

No aplicativo Configuração da Tarefa Cron, configure atarefa Cron de importação de dados para ativar.

Mensagens de uma chamada deserviço da web

No aplicativo Biblioteca de Serviços da Web, crie umserviço da web que seja baseado em seu serviçocorporativo.

Mensagens a partir de tabelas deinterface

No aplicativo Configuração da Tarefa Cron, configure atarefa Cron da tabela de interface para ativar.

6. Configure uma fila para receber as mensagens de integração.

Tipo de fila Descrição

Contínuo No servidor de aplicativos, configure os beansacionados por mensagens para consumir mensagens dafila.

Sequencial No aplicativo Configuração de tarefa Cron, defina atarefa Cron JMS como ativa para que ela possaconsumir mensagens da fila.

Configurando o processamento assíncrono de mensagens desaída usando canais de publicaçãoOs canais de publicação processam as mensagens de integração de saída que nãorequerem uma resposta do destino da mensagem. Para ativar o processamento do

120 Integrando Dados a Aplicativos Externos

Page 127: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

canal de publicação, configure vários componentes de integração, incluindo umaestrutura de objeto, um canal de publicação, um sistema externo e uma tarefaCron.

Sobre Esta Tarefa

Uma estrutura de objeto fornece o conteúdo da mensagem para o canal depublicação. O processamento do canal de publicação transforma a mensagem, e osistema externo, em seguida, encaminha-o para a fila de destino. Uma tarefa Cronpesquisa a fila em um planejamento regular e entrega a mensagem a seu destino.As transações do canal de publicação podem ser iniciadas por um evento, comouma mudança no status de um objeto ou iniciando uma transação de exportaçãode dados no aplicativo Sistemas Externos.

Procedimento1. No aplicativo Estruturas de Objeto, identifique uma estrutura de objeto

predefinida a ser usada ou crie uma.2. No aplicativo Canais de publicação, identifique um canal de publicação

predefinido a ser usado ou crie um.3. Opcional: Para ativar a integração baseada em evento, configure um listener

para o evento:a. No aplicativo Canais de Publicação, selecione a ação Ativar o Ouvinte do

Canal de Publicação. Se o ouvinte estiver ativado, quando objeto primárioda estrutura de objeto for atualizado, as transações de canal de publicaçãoserão iniciadas.

b. Se desejar ter eventos em objetos filho para iniciar as transações do canal depublicação, no aplicativo Estruturas de Objetos, selecione a açãoConfigurações Avançadas e configure a propagação de eventos.

4. Opcional: No aplicativo Canais de Publicação, revise as regras deprocessamento e inclua ou altere as regras conforme necessário. As regras deprocessamento são executadas na ordem indicada no campo Sequência. Sealterar os valores de sequência, as regras serão executadas em uma ordemdiferente, o que pode gerar resultados indesejados.

5. Opcional: Especifique quaisquer scripts de automação, arquivos de classe Javacustomizadas ou mapas XSL para fornecer uma lógica customizada durante oprocesso de transformação.

6. No aplicativo Sistemas externos, inclua o canal de publicação para o sistemaexterno e especifique o caminho de arquivo para a fila JMS sequencial de saída.

7. No aplicativo Configuração da Tarefa Cron, ative a instância SEQOUT da tarefaCron JMSQSEQCONSUMER. A tarefa Cron entrega as mensagens da fila doServiço de Mensagens Java na mesma ordem em que as mensagens sãorecebidas na fila.

Customização baseada em regraÉ possível usar regras de processamento para alterar o comportamento doprocessamento de integração predefinido sem gravar as classes Java, os scripts deautomação ou mapas XSL. É possível implementar regras de processamento apenasem canais de publicação ou serviços corporativos.

As regras de processamento podem acessar e avaliar os valores em campos XML ede objeto, conjuntos de objetos e controles de integração e sistema. As regras deprocessamento também podem alterar os valores em campos XML e de objeto ouparar ou ignorar processamento de toda uma mensagem ou de parte dela.

Integrando Dados a Aplicativos Externos 121

Page 128: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Definições de Regras para Objetos e RegistrosUma estrutura de objeto consiste em um ou mais registros de objetos. Quando umobjeto é criado, os campos do objeto são preenchidos a partir dos campos doregistro correspondente antes do processamento de aplicativo padrão ser aplicado.

Durante o processamento de saída, o objeto original é preenchido com os camposdo registro a partir dos campos correspondentes. Exceto para determinadoscampos de integração genéricos, os objetos do sistema não são atualizados emmensagens de saída.

Use as diretrizes a seguir para aplicar uma regra a um registro de estrutura deobjeto ou a um objeto:v Para processamento de saída, é possível aplicar regras de processamento

somente a registros de estrutura de objeto.v Para processamento de entrada, é possível aplicar regras de processamento a

registros de estrutura de objeto ou a objetos.– Se uma regra de entrada alterar o valor do campo-chave de um objeto,

aplique regras ao registro de estrutura de objeto.– Se uma regra de entrada não avaliar nem manipular um objeto ou conjunto

de objetos, aplique regras ao registro de estrutura de objeto.– Se uma regra de saída avaliar ou manipular um campo definido pelo usuário,

aplique regras ao registro de estrutura de objeto.– Se uma regra de saída avaliar ou manipular um objeto ou campo de objeto,

aplique regras ao objeto.

Aplique todas as regras para serviços corporativos a objetos ou registros deestrutura de objeto. Evite aplicar regras a objetos e registros de estrutura de objeto.Se aplicar regras de processamento a estruturas de objeto e a objetos, o tempo deprocessamento para transações de entrada aumenta.

Definições de Regras de ProcessamentoUma regra de processamento executa uma ação em um campo em um registro ouobjeto, ou no próprio registro ou objeto. Para definir uma regra de processamento,no serviço ou canal utilizado para a transação, será possível especificar o registroou objeto ao qual a regra se aplica.

Inicialização da Regra de Processamento:

Para uma transação de saída, um evento de objeto de negócios no objeto principalde uma estrutura de objeto inicia uma regra de processamento. Para uma transaçãode entrada, o evento que inicia uma regra de processamento é identificado pelovalor do atributo Ação no objeto principal da mensagem XML de entrada.

Ao configurar canais de publicação e serviços corporativos, especifique quaiseventos serão usados para iniciar cada regra de processamento. É possível aplicaruma regra de processamento ao registro principal, a um registro filho ou a umobjeto, porém o evento que inicia a regra deverá ser iniciado no objeto principal.

É possível, por exemplo, aplicar uma ação Parar no objeto PERSON que evita queusuários alterem qualquer atributo no registro de pessoas ao identificar que a regraé aplicada na atualização. Com essa configuração, os usuários podem criar ouexcluir registros de pessoas, porém não podem atualizar registros de pessoas.

122 Integrando Dados a Aplicativos Externos

Page 129: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Para transações de saída, no aplicativo de Canais de Publicação, é possívelconfigurar uma ou mais das seguintes ações no objeto principal para iniciar aregra:v Inserçãov Exclusãov Atualizar

Quando uma mensagem de saída é gerada usando o recurso Exportação de Dadosou por uma chamada programática ao canal de publicação, todas as regras deprocessamento ativadas são executadas, independentemente das configurações doevento.

Para transações de entrada, no aplicativo Serviços Corporativos, é possívelconfigurar uma ou mais das seguintes ações no objeto principal para iniciar aregra:v Incluirv Alterar ou Substituir (equivalente a Atualizar)v Exclusão

É possível configurar um destes valores como o atributo Ação do objeto principalpara a transação de entrada.

Ações de Regra de Processamento:

Uma regra de processamento pode agir em um serviço corporativo ou em umcanal de publicação como um todo. Por exemplo, uma regra pode ignorar umamensagem ou pode manipular o valor em um campo de dados dentro damensagem.

Três ações de regra de processamento agem em uma mensagem de serviço ou decanal: parar, ignorar e ignorar filhos. Quatro ações de regra de processamentotransformam o valor de um campo em uma mensagem de serviço ou de canal:combinar, dividir, configurar e substituir.

Ações de Processamento de Mensagens:

As ações de processamento de mensagens param ou ignoram uma mensageminteira do serviço corporativo inteiro ou canal de publicação ou ignoram registrosinteiros dentro da mensagem.

Ação Ignorar

A ação ignorar ignora uma mensagem que atende os critérios especificados.Quando uma ação ignorar é aplicada a uma mensagem de entrada, a mensagemnão é processada e é limpa da fila de entrada. Quando uma ação ignorar éaplicada a uma mensagem de saída, nada é gravado na fila e a mensagem não éenviada a um sistema externo. Ignorar o processamento não gera um erro, mas oarquivo de log do sistema é atualizado com a regra que causou a ação ignorar.

Uma ação ignorar tem algumas regras predefinidas. Essas regras consultam valoresde controle de integração para assegurar que as mensagens de saída tenham umstatus válido antes de serem enviadas ao sistema externo.

Integrando Dados a Aplicativos Externos 123

Page 130: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Ação Parar

A ação parar para o processamento de uma mensagem que atende os critériosespecificados. Uma mensagem de saída é retrocedida e uma mensagem de erro éexibida. Para transações de entrada, a mensagem permanece na fila JMS deentrada. Se o erro for o resultado de uma chamada síncrona do serviçocorporativo, o programa de chamada é notificado sobre o erro.

Regras predefinidas não são fornecidas com uma ação parar. Esta opção é umutilitário para usuários customizarem o comportamento de um serviço ou canal.

Quando possível, use a ação ignorar em vez de a ação parar para serviçoscorporativos de entrada. A ação parar resulta em um erro de processamento e amensagem permanece na fila de entrada ou o inicializador recebe uma resposta deerro. Esses resultados não ocorrem ao usar a ação ignorar.

Se uma regra de processamento com uma ação parar for aplicada a um canal depublicação gerado pelo recurso Exportação de dados, a ação parar é tratada comouma ação ignorar. Se a ação parar for avaliada para verdadeiro, a mensagem éignorada.

Ação Ignorar Filhos

É possível aplicar a ação ignorar filhos somente para mensagens de saída em umcanal de publicação. Aplique a regra de processamento no registro ou objeto cujosregistros no nível do filho são ignorados.

Se a estrutura de pessoa tiver o objeto pessoal e objetos filhos telefone e email, épossível usar a ação ignorar filhos em uma pessoa para tirar os dados de telefone eemail da mensagem. Use a ação ignorar filhos quando ocorre uma mudança destatus e o sistema externo não precisa das informações de telefone e de email.

Ação Ignorar Registro

É possível aplicar a ação ignorar registro somente para mensagens de saída em umcanal de publicação. A ação ignorar registro exclui um registro ou objeto quecontém sua regra aplicada. Aplique a regra de processamento ao registro ou objetoe todos os registros e objetos filhos que deseja ignorar.

Se a estrutura de objeto pessoal tiver um objeto pessoal e um objeto filho detelefone, é possível usar a ação ignorar registro para remover um registro detelefone da mensagem. Use a ação ignorar registro, por exemplo, quando quiserenviar o número de telefone comercial, mas não o número de telefone residencial auma pessoa. A regra ignorar registro precisa de uma condição que identifica umregistro de telefone residencial para assegurar que o registro seja ignorado.

Ações de Transformação de Campo:

Aplique a regra de transformação de campo a um registro ou objeto que contenhao campo a ser transformado. Uma regra de transformação de campo pode seraplicada a um único campo ou a diversos campos no registro selecionado.

Ação Configurar

A ação configurar grava um valor em um campo de dados especificado. Ao definira regra, você especifica os dados a serem configurados e a origem do novo valor.

124 Integrando Dados a Aplicativos Externos

Page 131: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Indique se a regra sempre grava o novo valor no campo de destino ou se grava onovo valor somente quando o campo for nulo (a ação padrão). Você pode utilizaresta ação para inicializar o valor em um campo de dados. Se a regra sempre gravaro novo valor no campo de destino, qualquer valor existente no campo ésobrescrito.

A origem pode ser qualquer um dos seguintes valores:v Um controle de integração de valorv Um valor codificado permanentementev Um controle do sistema (na tabela de banco de dados MAXVARS)v Outro campo no registro ou objeto especificadov Um campo em um objeto relacionado

Ação Substituir

A ação de substituição substitui um valor em um campo de dados com outro valor.Ao definir a regra, especifique o campo de dados que deseja atualizar. O controleusado deve ser um controle de referência cruzada. Você especifica o nome de umcontrole de referência cruzada que contém os valores original e de substituiçãopara o campo de dados.

Use essa ação quando o banco de dados e o sistema externo usarem diferentesidentificadores para a mesma entidade. É possível, por exemplo, substituir o valorSITEID em um canal de publicação por um valor PLANTID externo e substituir ovalor PLANTID externo em um serviço corporativo pelo valor SITEID.

Ação Combinar

A ação combinar concatena valores de diversos campos de origem em um únicocampo de destino. Ao definir a regra, identifique o campo de destino e os camposde origem e a sequência na qual os dados de origem devem ser gravado. Os dadosde origem podem ser um campo de dados ou um controle de integração quecontém um valor de dados. Também é possível especificar um controle deintegração que contém o delimitador para separar os segmentos no campo dedestino.

Utilize esta ação em uma regra de processamento de serviço corporativo quandoexistir uma incompatibilidade entre a definição do sistema e a definição do sistemaexterno de uma entidade. Uma regra de processamento de serviço corporativopode, por exemplo, combinar um campo de ID de fornecedor e um de local defornecedor de um sistema externo no campo COMPANY. Uma regra deprocessamento do canal de publicação pode então usar a ação dividir para separaro campo combinado em valores separados quando os dados forem enviados aosistema externo.

Os campos de origem e de destino deve, estar no mesmo objeto. Essa ação sempresobrescreve o valor existente no campo de destino. Assegure que os campos deorigem e de destino sejam campos alfanuméricos ou erros de processamentopodem ocorrer.

Integrando Dados a Aplicativos Externos 125

Page 132: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Ação Dividir

A ação dividir é o reverso da ação combinar. A ação dividir separa o valor de umcampo em diversos campos. Ao definir a regra, você identifica um campo deorigem, um ou mais campos de destino e como o processador de regra identificasegmentos do campo de origem.

Os campos podem ter as seguintes origens:v Um campo do registro ou objeto selecionadov Um controle de integração que contém o delimitador que separa os segmentos

no campo de origem

Os campos de origem e destino devem existir no mesmo objeto. Esta ação sempresubstitui o valor existente nos campos de destino. Assegure-se de que os camposde origem e destino sejam campos alfanuméricos ou poderão ocorrer erros deprocessamento.

Se tiver combinado diversos campos em uma mensagem de entrada, divida ocampo combinado em campos individuais na direção de saída. Existem duasmaneiras de identificar como dividir o campo. Você pode especificar ocomprimento de cada segmento do campo de origem ou pode identificar umdelimitador que separa os segmentos.

Se o comprimento do campo de cada segmento dos dados de origem for constante,o processador de regra divide o campo de origem da esquerda para a direita, combase no comprimento do campo, sequência e valores especificados. Por exemplo, ocampo de destino A com comprimento de caractere igual a 6 retém as posições 1-6do campo de origem. O campo de destino B com comprimento de caractere igual a3 retém as posições 7-9 do campo de origem.

Se o comprimento dos segmentos do campo de origem for variável, mas o campode origem contiver um delimitador distinto que identifica os segmentos, use aopção separador. A opção separador identifica um controle de integração quedefine o separador. O mesmo separador deve delimitar todos os segmentos. Oprocessador de regra analisa o campo de origem da esquerda para a direita. Oprocessador procura o delimitador, divide a sequência em diversos valores e movecada valor para o campo de destino designado.

Sequência de Processamento:

As regras de processamento são aplicadas sequencialmente para cada registro ouobjeto dentro de uma estrutura de objeto, começando com o objeto principal emovendo para baixo até os objetos-filhos.

Se diversas regras de processamento forem definidas para um único registro ouobjeto, é possível modificar a sequência de processamento padrão. Sua modificaçãoé especialmente importante se uma regra depender do resultado bem-sucedido deuma regra anterior. Se uma regra com uma ação parar ou ignorar for aplicada comsucesso, nenhuma verificação inclui ocorre.

Condições e AvaliaçõesAs regras de processamento são aplicadas de forma condicional. Quaisquercondições devem ser atendidas antes do processamento ou ação especificado naregra poder ser executado.

126 Integrando Dados a Aplicativos Externos

Page 133: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Condições podem envolver avaliação ou comparação de dados do campo XML,um campo de objeto, um conjunto de objetos ou um controle de integração ousistema.

Especificações de Condições:

Uma condição é um agrupamento de uma ou mais avaliações. Diversas condiçõespodem ser especificadas e a sequência das mesmas é identificada pelo número dacondição.

Cada avaliação retorna um valor true ou false. Se uma avaliação verificar se osvalores de dois campos são iguais, por exemplo, retorna um valor verdadeiro se oscampos forem iguais e um valor falso se não forem iguais. As condições tambémretornam um valor true ou false. Se cada avaliação em uma condição forverdadeira, a condição será verdadeira. Se qualquer avaliação na condição for falsa,a condição será falsa. Se uma regra de processamento contiver diversas condições,somente uma condição deve ser verdadeira para a ação associada à regra deprocessamento.

Especificações da Categoria de Avaliação:

Antes de definir as especificidades de uma avaliação, selecione o tipo de dadosque deve ser avaliado.

A tabela a seguir descreve as categorias que é possível usar em suas avaliações.

Categoria Uso

Campo XML Avalie um valor no campo de registro do objeto de integração oucompare os valores em dois campos de registro.

Campo do objeto Avalia o valor em um campo do objeto ou compare os valores dedois campos nos objetos relacionados. O campo do objeto pode serparte da definição da estrutura de objeto. O campo do objetotambém pode fazer parte de um objeto acessado em umrelacionamento com um objeto na definição de estrutura de objeto.

Conjunto de objetos Verifique a existência de registros em um objeto relacionado.

Controle Avalia um valor ou controle de integração booleana ou umcontrole de sistema.

Como as regras de processamento de serviço corporativo são aplicadas antes deobjetos serem construídos, as regras de processamento não podem avaliar camposde objetos ou conjuntos de objetos. É possível usar as seguintes combinações decategorias, direção de processamento (saída ou entrada) e tipos de registros(registro ou objeto) em suas avaliações.

Direção da regra deprocessamento

Avaliação do campoXML

Avaliação do campo doobjeto

Avaliação do conjuntode objetos Avaliação do controle

Saída Disponível Disponível Disponível Disponível

Entrada (registro) Disponível Não Disponível Não Disponível Disponível

Entrada (Objeto) Disponível Disponível Disponível Disponível

Campo a Avaliar:

Para avaliações de campo XML e de campo do objeto, especifique o campo a seravaliado.

Para uma avaliação de objeto, especifique o objeto e o relacionamento para acessaro campo. Se o valor do campo for um derivativo do objeto, que corresponde aoregistro, nenhum relacionamento é necessário.

Integrando Dados a Aplicativos Externos 127

Page 134: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tipo de Avaliação:

As avaliações geralmente envolvem a comparação de dois valores ou umaverificação da existência de um conjunto de objetos ou de um valor nulo.

A interface com o usuário exibe um subconjunto dos tipos dependendo dacategoria de avaliação (campo XML, campo de objeto, conjunto de objetos oucontrole). A tabela a seguir lista os possíveis tipos de avaliações que é possívelusar.

Tipo de Avaliação Descrição

IGUAL O valor no campo especificado é igual ao valor de um segundocampo (o campo de comparação).

NÃOIGUAL O valor no campo especificado não é igual ao valor de umsegundo campo (o campo de comparação).

MAIOR O valor no campo especificado é maior do que o valor de umsegundo campo (o campo de comparação).

MAIOROUIGUAL O valor no campo especificado é maior ou igual ao valor de umsegundo campo (o campo de comparação).

MENOR O valor no campo especificado é menor do que o valor de umsegundo campo (o campo de comparação).

MENOROUIGUAL O valor no campo especificado é menor ou igual ao valor de umsegundo campo (o campo de comparação).

LIKE O valor contém o valor esperado.

NÃOCOMO O valor não contém o valor esperado.

ÉVAZIO O campo especificado não contém nenhum valor ou contém umvalor nulo.

ISNOTNULL O campo especificado contém um valor.

NONE Essa opção está disponível somente se o campo Quando Avaliarestiver configurado como Alterado ou Não Alterado. Se NONE forselecionado, nenhuma avaliação adicional é necessária.

EXISTS Existem registros no conjunto de objetos especificado.

NÃOEXISTE Não existem registros no conjunto de objetos especificado.

Quando Avaliar um Campo:

Para avaliações do campo XML e do campo do objeto, a regra de processamentoprimeiro determina se os dados especificados devem ser avaliados.

O sistema avalia os dados verificando o campo Avaliar Quando, que pode ter umdos seguintes valores:

Valor Ação

MUDADO A avaliação continua somente se a atividade que gerou amensagem mudar o campo especificado.

NOT CHANGED A avaliação continua somente se a atividade que gerou amensagem não alterar o campo especificado.

ALWAYS A avaliação continua se o valor da atividade que gerou amensagem (padrão) mudar ou não o campo especificado. Se vocêespecificar essa opção, não será possível especificar um tipo decomparação igual a Nenhum.

Quando um registro for atualizado, o atributo changed (changed=”1”) aparece nocampo correspondente na mensagem de saída. Esse atributo determina se o campoatende os critérios do campo Avaliar Quando.

Esse atributo não aparece nas mensagens geradas pelo recurso Exportação deDados. Avaliações que são aplicadas quando um valor tiver sido alterado podemnão fornecer a saída certa em um cenário de exportação de dados.

O atributo alterado não se aplica a mensagens de entrada.

128 Integrando Dados a Aplicativos Externos

Page 135: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Especificações do Campo de Comparação:

A interface com o usuário exibe subconjuntos dependendo do tipo de avaliação(campo XML, campo de objeto, conjunto de objetos ou controle). Se uma regra deprocessamento utilizar um dos primeiros oito tipos de avaliação, ela deveráespecificar o campo (campo de comparação) com o qual está fazendo acomparação.

A tabela a seguir lista os possíveis tipos de campos de comparação que é possívelusar nas comparações de campos. Comparação de um campo de origemalfanumérico faz distinção entre maiúsculas e minúsculas.

Campo Uso

Controle de integração Compare o valor do campo especificado aos valores de umcontrole de integração de lista ou valor. Se um controle de listativer diversos valores correspondentes, a avaliação é verdadeira. Aavaliação real ocorre somente se o valor do campo corresponder aqualquer um dos valores do controle de lista.

Exemplo: Validar o STATUS de uma ordem de compra. O valoratual em um campo STATUS é WAPPR e os valores possíveisaceitáveis que satisfazem a condição estão em um controle de listachamado POSEND. Os valores em POSEND são WAPPR, APPR eCLOSE. Se o tipo de avaliação for EQUALS, a avaliação retornaum valor verdadeiro.

Valor Compare o valor do campo especificado a um valor predefinido.Essa opção está disponível para condições definidas pelo usuário.

Independentemente da configuração do código de idioma doservidor de aplicativos ou do banco de dados, todos os camposdecimais devem utilizar um ponto (.) como o marcador decimal.Números à esquerda do marcador não são formatados. Esteformato aplica-se a dados de entrada e saída. Por exemplo,$1.738.593,64 deve estar no seguinte formato: 1738593.64.

Exemplo: Uma regra de processamento compara o valor do campoPOLIN1 com o valor SPARE. Se o tipo de avaliação for EQUALS eos dois valores forem iguais, a avaliação retorna um valorverdadeiro.

MAXVAR Comparar o valor no campo especificado com o valor em umcontrole do sistema (um valor na tabela de banco de dadosMAXVARS).

Exemplo: Avaliar OWNERSYSID em qualquer serviço corporativoou canal de publicação para determinar se ele é igual aMAXVARS.MXSYSID.

Booleano Comparar o valor no campo especificado com um valor Booleano(true ou false).

Campo de comparação Comparar o valor no campo especificado com outro campo nomesmo objeto.

Exemplo: Compare o valor de GLDEBITACCT e o valor deGLCREDITACCT em uma linha de OC ou em uma entrada nodiário para determinar se são iguais.

Objeto, relacionamento e campo Comparar o valor no campo especificado com um campo em umobjeto diferente.

Exemplo: Verificar o OWNERSYSID de inventário no sistema paraos valores de item-almoxarifado em uma linha de recebimento ouem uma Linha de OC.

Controles de integraçãoOs controles de integração fornecem a capacidade de configurar o comportamentode qualquer serviço corporativo ou canal de publicação de acordo com osrequisitos de organizações e sites individuais. As regras de processamento e asclasses Java podem acessar controles de integração para propósitos de avaliação.

Os controles de integração são definidos no nível do sistema. É possível designarcontroles a um ou mais serviços corporativos e canais de publicação. Os valores decontrole podem ser configurados no nível do sistema externo. Dois sistemasexternos que processam o mesmo serviço corporativo podem compartilhar a

Integrando Dados a Aplicativos Externos 129

Page 136: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

mesma lógica de processamento, arquivos de classe e regras de processamento,ainda assim eles processam os dados de forma diferente, pois usam configuraçõesde controle diferentes.

Níveis de Controle:

Todos os dados e documentos principais são armazenados no nível do sistema,nível de organização ou nível do site. Os dados de item são armazenados no níveldo sistema, informações contábeis no nível de organização e ordens de serviço nonível do site. Existe uma hierarquia implícita entre esses níveis.

Um controle de integração pode ser configurado para substituir valores emqualquer dos seguintes níveis:

Valor de Controle Descrição

Nível do sistema Um valor em nível do sistema aplica-se a todas as organizações esites do sistema. Se o controle não estiver configurado para osvalores de nível de organização ou de nível do site, oprocessamento do sistema usa o padrão do sistema. Se o controlefor configurado para valores de nível de organização ou valores denível do site, mas nenhum existir para uma organização ou siteespecífico, o processamento do sistema usa o valor de nível dosistema.

Nível de organização Um valor em nível de organização aplica-se a todos os sites dosistema em uma organização. Se um controle for configurado paravalores de nível de organização, mas não existir nenhum para umaorganização específica, o processamento do sistema usa o valor denível do sistema.

Nível de site Um valor em nível de site aplica-se a um site específico em umaorganização do sistema. Se um controle for configurado paravalores de nível do site, mas não existir nenhum para um siteespecífico, o processamento do sistema usa o valor da organização(se existir um) ou o valor de nível do sistema.

Os dados processados pelos serviços corporativos ou canais de publicação queusam um controle com uma substituição de organização ou site devem está nonível de organização ou do site.

Tipos de Controles:

É possível criar quatro tipos de controles de integração para atender suasnecessidades de negócios.

Controles Booleanos

Um controle de integração booleano especifica um valor igual a 0 (falso) ou 1(true).

Controles de Listas

Um controle de integração de lista contém uma lista de valores. Você pode inserirdiversos valores para o controle e, opcionalmente, designar um domínio do sistemaao controle. Designar um domínio assegura a validação de qualquer valor inseridopara esse controle, em qualquer nível. Se um domínio não for designado, não hánenhuma validação dos valores inseridos

Por exemplo, as ordens de serviço são enviadas a um sistema externo somente se ostatus da ordem de serviço for APPR (aprovado) ou COMPLETE. Para determinaro envio ou não envio da ordem de serviço, o código Java ou a regra deprocessamento podem verificar o status de uma ordem de serviço com relação aum controle de lista que contém esses dois valores.

130 Integrando Dados a Aplicativos Externos

Page 137: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Controles de Valores

Um controle de integração de valor contém um único valor. Você pode inserir umúnico valor para o controle e, opcionalmente, designar um domínio do sistema aocontrole.

Controles de Referência Cruzada

Um controle de referência cruzada substitui um valor por outro. Em um canal depublicação, um valor do sistema é convertido para um valor do sistema externo.Em um serviço corporativo, um valor do sistema externo é convertido para umvalor do sistema. É possível designar como opção um domínio do sistema a umcontrole de referência cruzada. Se um domínio for especificado, qualquer valor dosistema especificado para o controle é validado com relação a esse domínio. Se umdomínio não for designado, não há nenhuma validação dos valores inseridos

Controles de referência cruzada devem ter um mapeamento de um para um entreo valor do sistema e o valor do sistema externo. Se dois valores do sistemaestiverem associados a um valor do sistema externo, ou dois valores do sistemaexterno a um valor do sistema, ocorrerá um erro de processamento.

Se o controle de referência cruzada for criado para funcionar como um controle demultiplicação em um serviço corporativo, mapeamentos de um para muitos podemexistir. Um controle de multiplicação é um controle de referência cruzada quecopia ou multiplica uma mensagem de entrada para diversas organizações ou sites.Um controle de multiplicação tem um valor externo e diversos valores do sistema.

Controles de multiplicação sempre são específicos do sistema externo. Vocêidentifica o controle como um controle de multiplicação na guia ServiçoCorporativo no aplicativo de Serviços Corporativos.

Por exemplo, sites de sistemas correspondem a unidades de negócios do sistemaexterno, mas os dois sistemas usam diferentes valores para essas entidades. Umcontrole de referência cruzada pode executar a conversão entre os dois valores. Umcontrole de referência cruzada em um serviço corporativo pode converter aunidade de negócios EX001 no site do sistema MX001. Em um canal de publicação,o mesmo controle pode converter MX001 em EX001.

Controles de Multiplicação

Um controle de multiplicação pode atualizar a empresa em cada organização nobanco de dados do sistema. Por exemplo, use um controle de multiplicação paraatualizar a empresa em cada organização dentro do sistema. Atualizações devalores ocorrem quando o sistema recebe dados da empresa usando um serviçocorporativo.

Criação de Novo Controle:

A modificação de valores de controle no nível do sistema externo geralmente ésuficiente para customizar o processamento do serviço corporativo ou do canal depublicação predefinido. Se novas regras de negócios forem implementadas ou umnovo canal de publicação ou serviço corporativo for implementado, um novocontrole pode ser necessário.

Use as seguintes diretrizes ao criar novos controles:v Nomes de controles devem ser exclusivos.

Integrando Dados a Aplicativos Externos 131

Page 138: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

v Para usar os controles como parte de uma regra de processamento e paraconfigurar um valor no nível do sistema externo, associe controles a um canal depublicação ou serviço corporativo.

v Ao associar um canal de publicação ou serviço corporativo para um sistemaexterno, todos os controles associados são copiados para o nível do sistemaexterno. É possível designar valores no nível do sistema externo.

Configurando Regras de ProcessamentoÉ possível configurar regras de processamento para uma estrutura de objeto noaplicativo Canais de Publicação ou no aplicativo Serviços Corporativos.

Definindo Avaliações de Controle de Integração ou de Controle do Sistema:

É possível usar uma avaliação de controle para comparar um valor de um campoespecificado ao valor de um controle de integração. Também é possível usar umaavaliação de controle para comparar o valor de um campo especificado a um valorde controle do sistema (um valor MAXVARS).

Sobre Esta Tarefa

Se um controle de integração for avaliado, ele deverá ser do tipo Booleano ouValor.

Procedimento

1. No aplicativo Serviços Corporativos ou Canais Públicos, exiba o registro deserviço ou de canal ao qual a avaliação se aplica.

2. Na janela da tabela Sub-registros de Estrutura de Objetos, selecione a estruturade objeto à qual a avaliação se aplica.

3. Execute uma das seguintes ações:v Para um serviço corporativo, clique em Incluir/Modificar Condições na guia

Regras de Processamento da Estrutura de Objeto ou a guia Regras deProcessamento de Objeto.

v Para um canal de publicação, clique em Incluir/Modificar Condições najanela da tabela Regras de processamento para o Sub-registro.

4. Na janela da tabela Condições, clique em Nova Linha.5. No campo Condições, insira um valor. O valor da condição determina a ordem

na qual a estrutura de integração avalia as condições.6. Para comparar o valor do controle a um valor do campo, selecione um dos

botões de opções a seguir e insira valores nos campos apropriados.v Controle de Integração

v MAXVAR

7. Insira valores nos campos a seguir:

Opção Descrição

Tipo de Avaliação Defina o tipo de avaliação que é realizadono campo XML.

Valor O valor que é usado na avaliação decontrole.

8. Clique em OK.

132 Integrando Dados a Aplicativos Externos

Page 139: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Definindo Avaliações de Campo do Objeto:

É possível usar uma avaliação de campo do objeto para avaliar o valor de umcampo em qualquer objeto incluído na definição de uma estrutura de objeto.Também é possível avaliar outros objetos de negócios que podem ser acessadosusando-se uma cláusula WHERE.

Sobre Esta Tarefa

Independentemente da configuração do código de idioma do servidor deaplicativos ou do banco de dados, todos os campos decimais devem utilizar umponto (.) como o marcador decimal. Não há formatação de números para aesquerda do marcador. Este formato aplica-se a dados de entrada e saída. Porexemplo, $1.738.593,64 deve ser 1738593.64.

É possível usar uma avaliação de campo do objeto para executar as seguintesavaliações:v Verifique se o campo é nulo ou não nulov Compare o valor do campo do objeto ao valor de um controle de integração ou

um controle do sistemav Compare o valor do campo do objeto a valor predefinido

Se os dados não satisfizerem a comparação, a avaliação retorna um resultado falso.Se os dados satisfizerem a comparação, a avaliação retorna um resultadoverdadeiro.

Procedimento

1. No aplicativo Canais de Publicação, exiba o registro do canal ao qual aavaliação se aplica.

2. Na janela de tabela Sub-registros da Estrutura de Objeto, selecione a estruturade objeto à qual a avaliação se aplica.

3. Na janela de tabela Regras de Processamento para Sub-registro, clique emIncluir/Modificar Condições.

4. Na janela da tabela Condições, clique em Nova Linha.5. No campo Condições, insira um valor. O valor da condição determina a

ordem na qual a estrutura de integração avalia as condições.6. Na guia Campo do Objeto, clique em Nova Linha.7. Insira valores nos campos a seguir:

Opção Descrição

Objeto O objeto de negócios que contém o campoque é avaliado.

Relacionamento de Objetos O relacionamento entre o objeto de negóciosdefinido e o objeto de negócios de regra.

Campo O campo do objeto de negócios que éavaliado.

Tipo de Avaliação O tipo de avaliação que é realizado nocampo do objeto de negócios.

Avaliar Quando Com que frequência a avaliação é executada.

Insira um valor de objeto de negócios somente se não for o objeto de negóciosno qual a regra é criada.

Integrando Dados a Aplicativos Externos 133

Page 140: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

8. Para comparar o valor do campo do objeto de negócios a outro valor,selecione um dos botões de opções a seguir e insira valores no campoapropriado.v Controle de Integração

v Valor

v MAXVAR

9. Clique em OK.10. Clique em Salvar Canal de Publicação.

Definindo Avaliações de Conjuntos de Objetos:

Uma avaliação de conjunto de objetos é usada para determinar se existem registrosem um relacionamento entre dois objetos de negócios. Se o relacionamento retornarum conjunto de objetos de negócios, a avaliação retorna um resultado verdadeiro.

Procedimento

1. No aplicativo Canais de Publicação, exiba o registro do canal ao qual aavaliação se aplica.

2. Na janela de tabela Sub-registros da Estrutura de Objeto, selecione a estruturade objeto à qual a avaliação se aplica.

3. Na janela de tabela Regras de Processamento para Sub-registro, clique emIncluir/Modificar Condições.

4. Na janela da tabela Condições, clique em Nova Linha.5. No campo Condições, insira um valor. O valor da condição determina a ordem

na qual a estrutura de integração avalia as condições.6. Na guia Conjunto de Objetos, clique em Nova Linha.7. Insira valores nos campos a seguir:

Opção Descrição

Objeto O objeto de negócios que contém o campoque é avaliado.

Relacionamento de Objetos O relacionamento entre o objeto de negóciosdefinido e o objeto de negócios de regra.

Tipo de Avaliação O tipo de avaliação que é realizado nocampo do objeto de negócios.

8. Clique em OK.9. Clique em Salvar Canal de Publicação.

Definindo Avaliações de Campo XML:

É possível usar uma avaliação de campo XML para avaliar um valor em umsub-registro de estrutura de objeto. Ao usar uma avaliação de campo XML, épossível verificar se um campo é nulo e comparar valores em um campo de objetode negócios a um controle de integração, um valor de sistema ou um valorpredefinido.

Procedimento

1. No aplicativo Serviços Corporativos ou Canais Públicos, exiba o registro deserviço ou de canal ao qual a avaliação se aplica.

2. Na janela da tabela Sub-registros de Estrutura de Objetos, selecione a estruturade objeto à qual a avaliação se aplica.

134 Integrando Dados a Aplicativos Externos

Page 141: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

3. Execute uma das seguintes ações:v Para um serviço corporativo, clique em Incluir/Modificar Condições na guia

Regras de Processamento da Estrutura de Objeto ou a guia Regras deProcessamento de Objeto.

v Para um canal de publicação, clique em Incluir/Modificar Condições najanela da tabela Regras de processamento para o Sub-registro.

4. Na janela da tabela Condições, clique em Nova Linha.5. Opcional: No campo Condições, insira um valor. O valor da condição

determina a ordem na qual a estrutura de integração avalia as condições.6. Na guia Campo XML, clique em Nova Linha.7. Insira valores nos campos a seguir:

Opção Descrição

Campo O campo XML que é avaliado.

Tipo de Avaliação O tipo de avaliação realizado no campoXML.

Avaliar Quando Com que frequência a avaliação éexecutada.

8. Para comparar o valor do campo XML a outro valor, selecione um dos botõesde opções a seguir e insira valores no campo apropriado.v Controle de Integração

v Valor

v MAXVAR

v Campo de Comparação

9. Clique em OK.

Definindo Regras de Processamento:

É possível definir uma regra de processamento para executar processamento deserviço corporativo e de canal de publicação customizado. Ao usar uma regra deprocessamento, é possível executar processamento de entrada e saída customizadosem usar uma classe Java.

Antes de Iniciar

Antes de criar uma regra de processamento, você deve considerar a definição de:v Se uma regra de serviço corporativo ou de canal de publicação avalia um campo

XML ou um campo de objeto de negócios.v O sub-registro ou objeto de negócios específico no qual a regra é definida.v As ações que acionam a regra.

Procedimento

1. No aplicativo Serviços Corporativos ou Canais de Publicação, exiba o serviçoou canal ao qual a regra se aplica.

2. Na janela de tabela Sub-registros da Estrutura de Objeto, selecione osub-registro da estrutura de objeto ao qual a regra se aplica.

3. Para um serviço corporativo, execute uma das ações a seguir:v Na guia Regras de Processamento de Estrutura de Objeto, clique em Nova

Linha para definir uma regra de processamento de entrada em umaestrutura de objeto.

Integrando Dados a Aplicativos Externos 135

Page 142: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

v Na guia Regras de Processamento de Objeto, clique em Nova Linha paradefinir uma regra de processamento de entrada em um objeto de negócios.

4. Para um canal de publicação, clique em Nova Linha na guia Regras deProcessamento para Sub-registro para definir uma regra de processamento desaída em um objeto de negócios.

5. No campo Regra, insira um identificador de regra.6. No campo Ação, insira um valor.7. Para alterar a ordem na qual o aplicativo aplica as regras de processamento

para um objeto, altere o valor no campo Sequência. A estrutura de integraçãoaplica as regras sequencialmente, começando com o objeto no nível principal.

8. Execute uma ou mais ações a seguir.v Selecione ou limpe a caixa de seleção Aplicar na Inserção do Objeto

Principal.v Selecione ou limpe a caixa de seleção Aplicar na Atualização do Objeto

Principal.v Selecione ou limpe a caixa de seleção Aplicar na Exclusão do Objeto

Principal.

As configurações observadas determinam se a estrutura de integração aplica aregra de processamento quando uma linha for inserida, atualizada ou excluídado objeto de negócios principal na estrutura de objeto.

9. Clique em Salvar Serviço Corporativo ou Salvar Canal de Publicação.

Ativando Regras de Processamento:

Você deve ativar uma regra de processamento antes de a regra poder ser aplicadaa objetos de serviço corporativo ou de canal de publicação. Uma regra deprocessamento ativada indica que está pronta para executar processamento deentrada e saída customizado.

Sobre Esta Tarefa

Se você desativar uma regra de processamento predefinida, isso pode causar errosde processamento da estrutura de integração.

Procedimento

1. No aplicativo Serviços Corporativos ou Canal de Publicação, exiba o serviço oucanal que contém a regra de processamento que você deseja ativar.

2. Na janela de tabela Sub-registros da Estrutura de Objeto, selecione o objeto aoqual a regra se aplica.

3. Especifique se deseja que a regra de processamento seja ativada ou desativada.

Opção Ativado

Ativado Selecionado

Desabilitada Desmarcado

Para o serviço corporativo, é possível ativar ou desativar a regra deprocessamento na guia Regras de Processamento da Estrutura de Objeto ouRegras de Processamento de Objeto. Para o canal de publicação, é possívelativar ou desativar a regra de processamento na guia Regras de Processamentopara Sub-registro.

4. Clique em Salvar Serviço Corporativo ou Salvar Canal de Publicação.

136 Integrando Dados a Aplicativos Externos

Page 143: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Incluindo Controles:

Os controles de integração são usados para configurar o comportamento dequalquer serviço corporativo ou canal de publicação de acordo com os requisitosde organizações e sites individuais. Tipos de controle incluem controles booleanos,controles de referência cruzada, controles de lista e controles de valor.

Incluindo Controles Booleanos:

É possível incluir um controle de tipo booleano quando você precisa de umcontrole de integração que especifica um valor de verdadeiro ou falso. Um serviçocorporativo ou um canal de publicação pode usar esse controle booleano em suasavaliações de regra de processamento. O valor de verdadeiro ou falso designado aocontrole determina se um serviço corporativo ou canal de publicação aplica umaregra de processamento em uma transação.

Procedimento

1. No aplicativo Serviços Corporativos, no menu Selecionar Ações, selecioneCriar Controles de Integração.

2. Clique em Incluir Novo Controle > Incluir Novo Controle Booleano.3. No campo Controle de Integração, insira o identificador para o controle

booleano.4. Especifique se deseja que o controle booleano tenha um valor padrão

verdadeiro ou falso.

Opção Padrão Verdadeiro

Valor verdadeiro Selecionado

Valor falso Desmarcado

5. Clique em OK para fechar a caixa de diálogo Controle Booleano.6. Clique em OK para fechar a caixa de diálogo Criar Controles de Integração.

Exemplo

É possível usar um controle booleano para indicar se serviços corporativos oucanais de publicação recebem ou enviam transações de ordem de compra. Épossível configurar uma ação de regra de processamento em um serviçocorporativo ou canal de publicação para ignorar uma transação. Se o valor padrãodesignado ao controle booleano for verdadeiro e a avaliação da regra deprocessamento for verdadeira, o serviço corporativo ou o canal de publicaçãorecebem e envia, atualizações da transação de ordem de compra.

O que Fazer Depois

É possível associar um controle de integração a um serviço corporativo ou canal depublicação no aplicativo Serviços Corporativos ou Canais de Publicação. Essasassociações disponibilizam os controles de integração para processamento demensagens de entrada e saída. Também é possível associar um controle deintegração a um sistema externo no aplicativo Sistemas Externos. O valor definidono controle no nível externo sobrescreve o valor de controle definido no nível doserviço corporativo ou do canal de publicação.

Integrando Dados a Aplicativos Externos 137

Page 144: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Incluindo Controles de Referência Cruzada:

Você inclui um controle de tipo de referência cruzada quando precisa de umcontrole de integração para substituir um valor por outro. É possível substituir umvalor nas mensagens de entrada ou saída e entre diversas organizações ou sites.Um controle de referência cruzada pode executar a conversão entre um valor nosistema de gerenciamento de ativos e um valor no sistema externo.

Sobre Esta Tarefa

Um canal de publicação usa um controle de referência cruzada para converter umvalor do sistema de gerenciamento de ativos de saída para um valor do sistemaexterno. Um serviço corporativo usa um controle de referência cruzada paraconverter um valor do sistema externo de entrada para um valor do sistema degerenciamento de ativos. Se você usar sinônimos, insira o valor externo como ovalor de controle, não o valor de aplicativo interno. Deve-se utilizar um ponto (.)como o marcador decimal ao inserir decimais como um valor de controle. Osnúmeros à esquerda do marcador não são convertidos. Por exemplo, $1.738.593,64deve ser 1738593.64.

Procedimento

1. No aplicativo Serviços Corporativos ou Publicar Canais, selecione a ação CriarControles de Integração.

2. Clique em Incluir Novo Controle > Incluir Novo Controle de ReferênciaCruzada.

3. Insira valores nos campos a seguir:

Opção Descrição

Controle de Integração O identificador para o controle de valor.

Domínio O domínio que é usado para verificar osvalores inseridos para o controle deintegração.

4. Na janela de tabela Valores, clique em Nova Linha.5. Insira valores nos campos a seguir:

Opção Descrição

Valor Padrão O valor convertido para ou a partir de umvalor de sistema externo.

Valor Externo Padrão O valor do sistema externo convertidopara ou a partir do valor padrão.

6. Clique em OK para fechar a caixa de diálogo Controle de Referência Cruzada.7. Clique em OK para fechar a caixa de diálogo Criar Controles de Integração.

Exemplo

Os sites do sistema de gerenciamento de ativos correspondem a unidades denegócios do sistema externo, mas dois sistemas externos usam diferentes valorespara essas entidades. Um controle de referência cruzada pode executar a conversãoentre os dois valores incompatíveis e o valor do sistema de gerenciamento deativos.

138 Integrando Dados a Aplicativos Externos

Page 145: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Um controle de referência cruzada em um serviço corporativo pode converter ovalor do site do sistema externo EX001 para um valor do site do sistema degerenciamento de ativos MX001.

O que Fazer Depois

É possível associar um controle de integração a um serviço corporativo ou canal depublicação no aplicativo Serviços Corporativos ou Canais de Publicação. Essasassociações disponibilizam os controles de integração para processamento demensagens de entrada e saída. Também é possível associar um controle deintegração a um sistema externo no aplicativo Sistemas Externos. O valor definidono controle no nível externo sobrescreve o valor de controle definido no nível doserviço corporativo ou do canal de publicação.

Incluindo Controles de Listas:

Crie um controle de integração do tipo lista quando precisar de um controle quecontenha uma lista de valores. Um serviço corporativo ou canal de publicaçãopode usar esse controle de lista em suas avaliações de regra de processamento. Aregra poderia ignorar o processamento da transação quando o valor do campo dedados não corresponder a nenhum dos valores de controle da lista definida.

Sobre Esta Tarefa

Deve-se utilizar um ponto (.) como o marcador decimal ao inserir decimais comoum valor de controle. Os números à esquerda do marcador não são convertidos.Por exemplo, $1.738.593,64 deve ser 1738593.64.

Procedimento

1. No aplicativo Serviços Corporativos, no menu Selecionar Ações, selecioneCriar Controles de Integração.

2. Clique em Incluir Novo Controle > Incluir Novo Controle de Lista.3. Insira valores nos campos a seguir:

Opção Descrição

Controle de Integração O identificador para o controle de valor.

Domínio O domínio que é usado para verificar osvalores inseridos para o controle deintegração.

4. Na janela de tabela Valores, clique em Nova Linha.5. No campo Valor Padrão, insira um valor para avaliação.6. Clique em OK para fechar a caixa de diálogo Controle de Lista.7. Clique em OK para fechar a caixa de diálogo Criar Controles de Integração.

Exemplo

As ordens de serviço são enviadas a um sistema externo somente se o status daordem de serviço for APPR (aprovado) ou COMPLETE. A regra de processamento podeverificar o status de uma ordem de serviço com relação a um controle de lista quecontém esses dois valores de status. Se o status de uma ordem de serviço nãocorresponder aos dois valores de controle de lista, a transação de ordem de serviçonão é enviada ao sistema externo.

Integrando Dados a Aplicativos Externos 139

Page 146: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

O que Fazer Depois

É possível associar um controle de integração a um serviço corporativo ou canal depublicação no aplicativo Serviços Corporativos ou Canais de Publicação. Essasassociações disponibilizam os controles de integração para processamento demensagens de entrada e saída. Também é possível associar um controle deintegração a um sistema externo no aplicativo Sistemas Externos. O valor definidono controle no nível externo sobrescreve o valor de controle definido no nível doserviço corporativo ou do canal de publicação.

Incluindo Controles de Valor:

É possível criar um controle de integração de tipo de valor quando você precisa deum controle que contém um único valor. Um serviço corporativo ou canal depublicação pode usar esse controle de valor em suas avaliações de regra deprocessamento. A regra poderia ignorar o processamento da transação quando ovalor do campo de dados não corresponder ao valor de controle definido.

Sobre Esta Tarefa

Você pode fornecer um valor de controle padrão e designar um domínio aocontrole para assegurar a validação de qualquer valor inserido para esse controle.

Procedimento

1. No menu Selecionar Ações no aplicativo Serviços Corporativos ou Canais dePublicação, selecione Criar Controles de Integração.

2. Clique em Incluir Novo Controle > Incluir Novo Controle de Valor.3. Insira valores nos campos a seguir:

Opção Descrição

Controle de Integração O identificador para o controle de valor.

Domínio O domínio que é usado para verificar osvalores inseridos para o controle deintegração.

Valor Padrão O valor padrão para o controle deintegração.

4. Clique em OK para fechar a caixa de diálogo Controle de Valor.5. Clique em OK para fechar a caixa de diálogo Criar Controles de Integração.

Exemplo

As ordens de compra são recebidas pelo sistema de gerenciamento de ativossomente se o valor do tipo de empresa for EX. Para determinar se a ordem decompra for recebida, a regra de processamento pode verificar o valor do tipo deempresa com relação ao valor que é definido no controle. Se o valor da empresa EXnão corresponder ao valor contido no controle, a transação de ordem de compranão é enviada ao sistema de gerenciamento de ativos.

O que Fazer Depois

É possível associar um controle de integração a um serviço corporativo ou canal depublicação no aplicativo Serviços Corporativos ou Canais de Publicação. Essasassociações disponibilizam os controles de integração para processamento de

140 Integrando Dados a Aplicativos Externos

Page 147: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

mensagens de entrada e saída. Também é possível configurar um controle deintegração em um sistema externo no aplicativo Sistemas Externos. O valordefinido no controle no nível do sistema externo sobrescreve o valor de controledefinido no nível do serviço corporativo ou do canal de publicação.

Associando Controles de Integração a Serviços Corporativos ou CanaisPúblicos:

É possível associar controles de integração a um serviço corporativo ou um canalde publicação para disponibilizar o controle para processamento de mensagem deentrada e saída. Um serviço corporativo ou um canal de publicação pode ter umaassociação a um ou mais controles de integração.

Sobre Esta Tarefa

Ao associar um controle de integração a um serviço corporativo ou um canal depublicação, é possível substituir os valores predefinidos dos controles configuradosno nível do serviço ou do canal. É possível definir controles de integraçãoglobalmente e configurar os controles para cada sistema externo, de acordo com osrequisitos de organizações e sites individuais.

Procedimento

1. No aplicativo Serviços Corporativos ou Canais de Publicação, exiba o serviçoou canal ao qual deseja associar um controle de integração.

2. Selecione a ação Associar Controles de Integração.3. Execute uma das seguintes ações:

Opção Descrição

Selecionar controles de integraçãoindividualmente

1. Clique em Nova Linha.

2. No campo Controle de Integração,insira um valor de controle.

Selecionar diversos controles deintegração

1. Clique em Selecionar Controles.

2. Selecione os controles apropriados.

3. Clique em OK.

4. Clique em OK para fechar a caixa de diálogo Associar Controles de Integração.

Gerenciando Dados em Campos do Sub-registro:

Como parte de uma integração, é possível trabalhar com os valores em um únicocampo de dados de origem para configurar o valor, combinar o valor, dividir ovalor ou substituir o valor.

Configurando Valores de Campos do Sub-registro:

É possível designar um valor a um campo de dados especificado para sobrescrevero valor existente do campo de dados. É possível indicar se um valor sempre édesignado ou designado somente quando o campo de dados de destino for nulo.

Antes de Iniciar

Você deve criar uma regra de processamento que contém uma ação deconfiguração antes de ser possível configurar valores de campos do sub-registro.

Integrando Dados a Aplicativos Externos 141

Page 148: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Procedimento

1. No aplicativo Serviços Corporativos ou Canais de Publicação, exiba o registrode serviço ou de canal ao qual a ação de configuração do campo desub-registro se aplica.

2. Na guia Serviço Corporativo ou Canal de Publicação, selecione a regra deprocessamento à qual a ação de configuração do campo de sub-registro seaplica.

3. Execute uma das seguintes ações:v Para um serviço corporativo, clique em Campos do Sub-registro na guia

Regras de Processamento da Estrutura de Objeto ou a guia Regras deProcessamento de Objeto.

v Para um canal de publicação, clique em Campos do Sub-registro na janelada tabela Regras de processamento para o Sub-registro.

4. Clique em Nova Linha.5. No campo Campo, insira o nome do campo de dados de destino. Esse valor

define o campo que você deseja substituir.6. Especifique se um valor sempre é designado ou designado somente quando o

campo de dados de destino for nulo.

Opção Substituir Quando Vazio

Designar quando o campo de dados fornulo

Selecionado

Sempre designar Desmarcado

7. Para especificar o campo de origem, selecione um dos botões de opções aseguir e insira valores nos campos apropriados:v Controle de Integração

v MAXVAR

v Campo

v Objeto

8. Clique em OK.

Combinando Valores de Campos do Sub-registro:

É possível combinar os valores em dois ou mais campos de dados de origem oucontroles de integração em um único campo de dados de destino. É possívelcombinar valores quando ocorrerem incompatibilidades entre um valor do sistemade gerenciamento de ativos e o valor do sistema externo. Por exemplo, uma chavedo sistema externo com duas partes pode ser mapeada para uma chave de parteúnica no sistema de gerenciamento de ativos.

Antes de Iniciar

Você deve criar uma regra de processamento que contém uma ação de combinaçãoantes de ser possível combinar valores de campos do sub-registro.

Sobre Esta Tarefa

Os campos de origem e de destino deve, estar no mesmo objeto. Essa ação sempresobrescreve o valor existente no campo de destino. Assegure que os campos deorigem e de destino sejam campos alfanuméricos ou erros de processamentopodem ocorrer.

142 Integrando Dados a Aplicativos Externos

Page 149: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Procedimento

1. No aplicativo Serviços Corporativos ou Canais de Publicação, exiba o registrode serviço ou de canal ao qual a ação de combinação do campo de sub-registrose aplica.

2. Na guia Serviço Corporativo ou Canal de Publicação, selecione a regra deprocessamento à qual a ação de combinação do campo de sub-registro se aplica.

3. Execute uma das seguintes ações:v Para um serviço corporativo, clique em Campos do Sub-registro na guia

Regras de Processamento da Estrutura de Objeto ou a guia Regras deProcessamento de Objeto.

v Para um canal de publicação, clique em Campos do Sub-registro na janelada tabela Regras de processamento para o Sub-registro.

4. Na janela da tabela Campos do Sub-registro de Destino, execute uma das açõesa seguir:

Opção Descrição

Selecionar campos de destinoindividualmente

1. Clique em Nova Linha.

2. No campo Campo, insira um campo dedados de destino.

3. No campo Controle de Integração doSeparador, insira um valor dedelimitador que separa os segmentos docampo de destino.

Selecionar diversos campos de destino deuma vez

1. Clique em Selecionar Campo.

2. Selecione os campos apropriados.

3. Clique em OK.

4. No campo Controle de Integração doSeparador, insira um valor dedelimitador que separa os segmentos docampo de destino.

5. Na janela da tabela Campos do Sub-registro de Origem para Destino, executeuma das ações a seguir:

Opção Descrição

Selecionar campos de origemindividualmente

1. Clique em Nova Linha.

2. Selecione um dos botões de opções aseguir e insira valores nos camposapropriados:

v Campo

v Controle de Integração

3. Insira um valor no campo Sequênciapara definir a ordem na qual o aplicativomove segmentos do campo de origempara os campos de destino.

Integrando Dados a Aplicativos Externos 143

Page 150: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Opção Descrição

Selecionar diversos campos de origem deuma vez

1. Clique em Selecionar Campo.

2. Selecione os campos apropriados.

3. Clique em OK.

4. Insira um valor no campo Sequênciapara definir a ordem na qual o aplicativomove segmentos do campo de origempara os campos de destino.

6. Clique em OK.

Dividindo Valores de Campos do Sub-registro:

É possível dividir o valor de um único campo de dados de origem em diversoscampos de destino. É possível dividir valores quando ocorreremincompatibilidades entre um valor do sistema de gerenciamento de ativos e o valordo sistema externo. Por exemplo, uma chave do sistema de gerenciamento deativos de parte única pode ser mapeada para uma chave de duas partes do sistemaexterno.

Antes de Iniciar

Você deve criar uma regra de processamento que contém uma ação de divisãoantes de ser possível dividir valores de campos do sub-registro.

Procedimento

1. No aplicativo Serviços Corporativos ou Canais de Publicação, exiba o registrode serviço ou de canal ao qual a ação de divisão do campo de sub-registro seaplica.

2. Na guia Serviço Corporativo ou Canal de Publicação, selecione a regra deprocessamento à qual a ação de divisão do campo de sub-registro se aplica.

3. Execute uma das seguintes ações:v Para um serviço corporativo, clique em Campos do Sub-registro na guia

Regras de Processamento da Estrutura de Objeto ou a guia Regras deProcessamento de Objeto.

v Para um canal de publicação, clique em Campos do Sub-registro na janelada tabela Regras de processamento para o Sub-registro.

4. Na janela da tabela Campos do Sub-registro de Destino, execute uma das açõesa seguir:

Opção Descrição

Selecionar campos de destinoindividualmente

1. Clique em Nova Linha.

2. No campo Campo, insira um campo dedados de destino.

3. No campo Controle de Integração doSeparador, insira um valor dedelimitador que separa os segmentosdo campo de destino.

144 Integrando Dados a Aplicativos Externos

Page 151: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Opção Descrição

Selecionar diversos campos de destino deuma vez

1. Clique em Selecionar Campo.

2. Selecione os campos apropriados.

3. Clique em OK.

4. No campo Controle de Integração doSeparador, insira um valor dedelimitador que separa os segmentosdo campo de destino.

5. Na janela da tabela Campos do Sub-registro de Destino para Origem, executeuma das ações a seguir:

Opção Descrição

Selecionar campos de origemindividualmente

1. Clique em Nova Linha.

2. No campo Campo, insira o nome docampo de destino que recebe oprimeiro ou o próximo segmento dosdados de origem.

3. Se você não especificou um valor nocampo Controle de Integração doSeparador, insira um número nocampo Comprimento do Campo.

4. Insira um valor no campo Sequênciapara definir a ordem na qual oaplicativo move segmentos do campode origem para os campos de destino.

Selecionar diversos campos de origem deuma vez

1. Clique em Selecionar Campo.

2. Selecione os campos apropriados.

3. Clique em OK.

4. Se você não especificou um valor nocampo Controle de Integração doSeparador, insira um número nocampo Comprimento do Campo.

5. Insira um valor no campo Sequênciapara definir a ordem na qual oaplicativo move segmentos do campode origem para os campos de destino.

6. Clique em OK.

Substituindo Valores de Campos do Sub-registro:

É possível substituir um valor em um campo de dados por outro valor. É possívelsubstituir um valor quando o sistema externo e o sistema de gerenciamento deativos têm diferentes identificadores para a mesma entidade. Por exemplo, umidentificador de fábrica de um sistema externo pode ser convertido em umidentificador de site do sistema de gerenciamento de ativos.

Antes de Iniciar

Você deve criar uma regra de processamento que contém uma ação de substituiçãoantes de ser possível substituir valores de campos do sub-registro. Você tambémdeve criar um controle de referência cruzada que contenha os valores original enovo do campo de dados.

Integrando Dados a Aplicativos Externos 145

Page 152: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Procedimento

1. No aplicativo Serviços Corporativos ou Canais de Publicação, exiba o registrode serviço ou de canal ao qual a ação de substituição do campo de sub-registrose aplica.

2. Na guia Serviço Corporativo ou Canal de Publicação, selecione a regra deprocessamento à qual a ação de substituição do campo de sub-registro seaplica.

3. Execute uma das seguintes ações:v Para um serviço corporativo, clique em Campos do Sub-registro na guia

Regras de Processamento da Estrutura de Objeto ou a guia Regras deProcessamento de Objeto.

v Para um canal de publicação, clique em Campos do Sub-registro na janelada tabela Regras de processamento para o Sub-registro.

4. Clique em Nova Linha.5. No campo Campo, insira o nome do campo de dados de destino. Esse valor

define o campo que você deseja substituir. O campo de destino deve existir noobjeto de sub-registro mostrado na parte superior da caixa de diálogo.

6. No campo Controle de Integração, insira o nome do controle do tipo dereferência cruzada que contém os valores original e novo do campo de destino.

7. Clique em OK.

Customização baseada em códigoA estrutura de integração fornece marcadores nos fluxos de transação nos quais épossível inserir seu próprio código para fornecer a lógica que customiza oprocessamento da transação. É possível inserir as classes Java ou scripts deautomação em pontos selecionados no processamento de estruturas de objeto,canais de publicação, serviços corporativos e canais de chamada. Também épossível usar mapas XSL para transformar mensagens.

Ao criar ou atualizar um arquivo de classe Java, deve-se reconstruir ereimplementar o arquivo EAR do aplicativo antes que os componentes deintegração possam utilizá-lo. É possível gravar um script em uma das linguagensde script suportadas no aplicativo Scripts de Automação, ou importar um scriptcriado externamente e ativá-lo para uso imediato. Ao criar ou atualizar um mapaXSL, será possível armazená-lo no arquivo EAR do aplicativo ou em um diretóriono sistema de arquivos.

Quando o código de customização estiver configurado para uso, a estrutura deintegração chamará o código no ponto apropriado durante o processamento datransação.

É possível fazer download de classes Java ou arquivos XSL de amostra a partir doIBM Tivoli Open Process Automation Library (OPAL).

As classes e os métodos Java de customizaçãoÉ possível estender o processamento padrão de mensagens de saída e de entradautilizando as classes Java. Existem vários marcadores nos fluxos de processamentode mensagens em que é possível inserir o código Java customizado para afetar oconteúdo da mensagem, o processamento ou ambos.

146 Integrando Dados a Aplicativos Externos

Page 153: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Classes de saída externas:

As classes de saída externas fornecem a classe base, ExternalExit, que pode serestendida para customizar o canal de publicação, o serviço corporativo e oprocessamento do canal de chamada.

Para mensagens de saída, a entrada para a classe de saída externa é o elementoirData da mensagem XML. A saída do processamento da classe é o elementoerData da mensagem XML que é entregue ao destino. Para mensagens de entrada,a entrada para a classe de saída externa é o elemento erData da mensagem deentrada. A saída é o elemento irData que é entregue à estrutura de objetorelacionada para processamento no Maximo Asset Management.

Para usar uma classe de saída externa para customização, especifique sua classeJava no campo Classe de processamento no aplicativo Canais de Publicação ou noaplicativo Canais de Chamada.

Uma abordagem alternativa para customização de integração é implementar umaclasse de saída de usuário. Se um adaptador para o Oracle ou SAP estiverinstalado, as classes de processamento predefinidas serão fornecidas e ascustomizações deverão ser feitas usando a classe de saída de usuário. Quando nãoexistir nenhuma classe de processamento predefinida, será possível escolher sedeseja implementar o código customizado na classe de saída externa ou na classede saída de usuário.

Classes de saída de usuário:

Para transações de entrada e saída em um canal de publicação, um serviçocorporativo ou um canal de chamada, uma classe de saída de usuário pode ter ummétodo pré-processador e um método pós-processador. Para transações de entrada,a classe de saída de usuário pode ter um método extra que processa objetos denegócios logo antes que eles sejam confirmados no banco de dados.

Método Pré-processamento para Transações de Saída:

A entrada no primeiro ponto de saída de usuário de saída é o XML que é geradopela estrutura de objeto. Se houver uma classe de processamento do adaptadorERP, será possível utilizar o método pré-processamento ou o métodopós-processamento para implementar sua lógica customizada, dependendo do seurequisito.

Usando o ponto de saída de pré-processamento, é possível alterar os dados namensagem que depois altera a lógica de processamento de uma classe deprocessamento quando ela é implementada.

A customização de mensagem de saída pode ser feita no método depré-processador, usando o método a seguir:public StructureData setUserValueOut(StructureData irData)

Esse método pode executar o seguinte processamento:v Valide os dados.v Alterar os dados do sistema mudando o registro IR que é enviado para o

sistema externo.v Impedir que a mensagem seja enviada do Maximo Asset Management lançando

uma exceção de sistema. A mensagem inteira será retrocedida. Se a mensagem

Integrando Dados a Aplicativos Externos 147

Page 154: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

for iniciada por um evento, a mensagem inteira também será retrocedida,inclusive quaisquer mudanças feitas em um aplicativo.

v Impeça que a mensagem seja enviada ao sistema externo lançando uma exceçãoSKIP_TRANSACTION.

v Registre a transação em log.

Método Pós-processamento para Transações de Saída:

No método pós-processamento da saída de usuário, o elemento IR da estrutura deobjeto e o elemento ER da saída XML da classe de processamento são ambosdisponíveis para processamento.

Use o método a seguir para customizar mensagens de saída.public StructureData setUserValueOut(StructureData irData,StructureData erData)

O método pode executar os seguintes processos:v Valide os dados.v Altere os dados mudando o registro ER que é enviado para o sistema externo.v Mapeie os dados adicionais do elemento irData para o elemento erData.v Interrompa o envio da transação a partir do Maximo Asset Management

lançando uma exceção do sistema. A mensagem inteira será retrocedida. Se amensagem for iniciada por um evento, a mensagem inteira também seráretrocedida, inclusive quaisquer mudanças feitas em um aplicativo.

v Impeça que a mensagem seja enviada ao sistema externo lançando uma exceçãoSKIP_TRANSACTION.

v Registre a transação em log.

Você identifica a classe de saída de usuário de canal de publicação no aplicativoCanais de Publicação.

Método Pré-processamento para Transações de Entrada:

No método de pré-processamento para transações de entrada, a entrada é amensagem XML que é entregue do sistema externo. Se necessário, é possívelalterar dados na mensagem para afetar a lógica de processamento na classe deprocessamento.

A customização da transação de entrada pode ser feita na primeira saída usando ométodo a seguir:public StructureData setUserValueIn(StructureData erData)

Esse método pode executar o seguinte processamento:v Valide os dados.v Alterar dados externos mudando o registro ER antes de ele ser mapeado para o

registro IR e ser salvo no sistema.v Pare o processamento adicional da transação emitindo uma exceção. Para

mensagens baseadas em fila, a transação permanece na fila para serreprocessada. Para mensagens que não forem baseadas em fila, as mensagensserão retornadas ao cliente que iniciou o serviço corporativo.

v Impeça que a mensagem seja processada no Maximo Asset Management,lançando uma exceção SKIP_TRANSACTION. Neste caso, a mensagem não ésalva no sistema. Para mensagens baseadas em fila, a mensagem é removida dafila.

148 Integrando Dados a Aplicativos Externos

Page 155: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

v Registre a transação em log.

Método Pós-processamento para Transações de Entrada:

No método pós-processamento para transações de entrada, ambos os registros, IR eER, estão disponíveis para o processamento.

A customização da transação de entrada pode ser feita no fluxo depós-processamento, usando o método a seguir:public StructureData setUserValueIn(StructureData irData,StructureData erData)

O método pode executar os seguintes processos:v Valide os dados.v Altere dados externos alterando o registro IR a ser salvo no sistema.v Mapeie os dados adicionais do registro ER para o registro IR.v Pare o processamento adicional da transação emitindo uma exceção. Para

mensagens baseadas em fila, a transação permanece na fila parareprocessamento. Para mensagens que não forem baseadas em fila, as mensagensserão retornadas ao cliente que iniciou o serviço corporativo.

v Impeça que a mensagem seja processada no Maximo Asset Management,lançando uma exceção skip_transaction. Neste caso, a mensagem não é salva nosistema. Para mensagens baseadas em fila, a mensagem é removida da fila.

v Registre a transação em log.

Você identifica a classe de saída de usuário do serviço corporativo no aplicativoServiços Corporativos.

Processamento de Objeto de Negócios em Transações de Entrada:

A classe de saída de usuário em um serviço corporativo possui um métodoadicional, setUserMboIn, que permite o processamento customizado no ponto emque os objetos de negócios são criados a partir de estrutura de objeto XML, masainda não estão salvos no banco de dados.

Essa saída de usuário é chamada após o processamento do sistema e pode serexecutada nos objetos que são criados no sistema usando o método a seguir:public void setUserMboIn(MboRemote mbo)

O parâmetro de objeto é uma referência a um objeto primário na estrutura deobjeto.

Esse método é chamado uma vez para o objeto principal. Para uma transação XMLcom diversos substantivos, a saída do objeto é chamada uma vez para cadasubstantivo.

O método pode executar os seguintes processos:v Valide os dados.v Evite que a transação seja salva no sistema emitindo uma exceção do sistema.

Para mensagens baseadas em fila, a transação permanece na fila e é tentadanovamente.

v Registre a transação em log.

Você identifica a classe de saída de usuário no aplicativo Serviços Corporativos.

Integrando Dados a Aplicativos Externos 149

Page 156: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Classes de filtro de eventos:

Para transações assíncronas de saída que utilizam canais de publicação, é possívelexecutar uma classe Java customizada ouum script de automação usando umaclasse de filtro de eventos. O processamento para uma classe de filtro de eventosocorre antes da serialização de dados na camada de estrutura de objeto para umamensagem de saída. A classe de filtro de eventos pode inserir uma lógica que afetea criação da mensagem de integração neste ponto de processamento.

Um uso comum da classe de filtro de eventos é incluir a lógica que remove oscampos ou objetos indesejados de uma mensagem para reduzir a quantia de dadosno processo de serialização. Outro uso comum da classe é substituir a lógica derecursão padrão que impede que um evento de uma integração de entrada envieuma mensagem de integração de saída. Substituir o comportamento padrão nessecenário pode permitir que uma mensagem de saída seja iniciada a partir de umevento que é acionado por uma mensagem de entrada.

Classes de Saída do Manipulador:

Diversos métodos predefinidos ou manipuladores são fornecidos para que sejapossível enviar dados a um sistema externo, incluindo HTTP, uma chamadaEnterprise Java Bean e as tabelas de interface. Alguns desses métodos têmmarcadores de saída de usuário que estão disponíveis para customização.

Classe da Saída de Usuário de Processamento de Enterprise Bean:

É possível usar um marcador de saída para a customização de classe quando astransações são enviadas para um sistema externo por um enterprise bean. Essaclasse de saída é opcional e é chamada antes do enterprise bean ser chamado.

A implementação dessa classe Java deve resolver a assinatura de método doenterprise bean que é iniciado por este manipulador e os parâmetros que o métodorequer. Se nenhum valor for especificado para essa propriedade, o sistema aplicauma saída padrão chamada DefaultEJBExit. Essa saída padrão tenta resolver aassinatura e parâmetros do método do enterprise bean.

Essa classe deve implementar a interface psdi.iface.router.EJBExit e os métodosa seguir:v O método getClassParams() retorna a assinatura de método no formato de uma

matriz de classes Java:public Class[] getClassParams()

v O método getObjectParams retorna uma matriz de parâmetros do enterprisebeans como uma matriz de objetos Java:public Object[] getObjectParams(byte[] data, String interfaceName, StringdestinationName)

v Após a chamada bem-sucedida do enterprise bean, o método responseOk() échamado com um objeto como a resposta da chamada:public void responseOk(Object response)throws MXException

v Se um erro for encontrado durante a chamada do enterprise bean, o métodoresponseError() é chamado com a exceção de origem como um parâmetro:public void responseError(Exception e) throws MXException

Insira o nome completo da classe Java na propriedade EJBEXIT do terminal queimplementa o manipulador de bean corporativo.

150 Integrando Dados a Aplicativos Externos

Page 157: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Classe da Saída de Usuário de Processamento de HTTP:

Quando transações de saída são enviadas a um sistema externo usando HTTP, épossível usar um marcador de saída HTTP para a customização. Essa classe desaída é opcional e é chamada como parte da resposta da chamada HTTP.

A classe de saída de processamento HTTP é executada quando uma resposta éretornada para uma Postagem HTTP de um sistema externo. Na implementaçãopadrão da classe psdi.iface.router.DefaultHTTPExit, o código de resposta que érecebido do sistema externo é comparado a um intervalo de códigos de resposta. Ointervalo que é usado pela implementação padrão é 200 – 299. Se o código estiverfora do intervalo, então a transação não foi entregue ao sistema externo e umaexceção é levantada.

Com alguns sistemas externos, a resposta de uma chamada HTTP é interpretadapara ver se o sistema externo aceitou a mensagem. A lógica de interpretação podeser implementada na classe de saída HTTP.

Se a mensagem do canal de publicação não for aceita, o código deve levantar umaexceção. A mensagem na fila de saída é marcada como um erro e não é removidada fila. Se a mensagem for aceita, a mensagem é removida da fila de saída. Se amensagem do canal de chamada falhar, a exceção é retornada ao invocador docanal e o invocador manipula a exceção de acordo com os requisitos de design.

A classe de saída de processamento HTTP deve implementar a interfacepsdi.iface.router.HTTPExit e implementar o seguinte método:

public void processResponseData(int responseCode, String responseMsg,byte[] msgBodyData)

Se necessário, essa classe pode interpretar o código de resposta e emite umaexceção. A classe pode executar as ações a seguir:v Verificar o código de resposta do HTTP post.v Se o código de resposta estiver no intervalo de erro, a exceção será registrada no

nível de ERROR e uma exceção de sistema será lançada.v Se o código de resposta for válido, a transação é registrada em log no nível

DEBUG.

Deve-se especificar o nome completo da classe Java na propriedade HTTPEXIT doterminal que implementa o manipulador HTTP.

Classe da Saída de Usuário de Processamento de JMS:

Ao enviar transações do sistema para um sistema externo usando a JMS, é possívelusar um marcador de saída para customização. Essa classe de saída é opcional e échamada antes de JMS ser chamado.

Essa classe deve implementar a classe psdi.iface.router.JMSExit e o seguintemétodo:

public Map getMessageProperties(Map metaData, (byte[] data, MaporigProps)throws MXException

Esse método pode executar os seguintes processos:v Alterar as propriedades da mensagem JMS

Integrando Dados a Aplicativos Externos 151

Page 158: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

v Dividir os dados entre diversas propriedades para corresponder à mensagemJMS

Insira o nome completo da classe Java na propriedade JMSEXIT do terminal queimplementa o manipulador JMS.

Classe da Saída de Usuário de Processamento de Serviço da Web:

É possível usar um marcador de saída para customização ao enviar transações dosistema para um sistema externo utilizando um serviço da web. Essa classe desaída é opcional e é chamada antes de o serviço da web ser iniciado.

Essa classe deve implementar a interface psdi.iface.router.WSExit e os seguintesmétodos:

Método getServiceName()O método getServiceName() retorna o nome do serviço do serviço da weba ser iniciado:

public String getServiceName(Map metaData, String endpointURL,String serviceName, String interfaceName, String targetNameSpace)throws MXException

Método getEndpointURL()O método getEndpointURL() retorna a URL de terminal do serviço da weba ser iniciado:

public String getEndpointURL(Map metaData, String endpointURL,String serviceName, String interfaceName, String targetNameSpace)throws MXException

Método responseOk()O método responseOk() é chamado após uma chamada bem-sucedida doserviço da Web externo.

public void responseOk(org.w3c.dom.Document response) throwsMXException

Método responseError()Se um erro for encontrado durante a chamada de serviço da web, ométodo responseError() é chamado com a exceção de origem como umparâmetro:

public void responseError(Exception e) throws MXException

Método getOneWayWsInfo()O método getOneWayWsInfo() retorna um valor booleano que especifica seo serviço da web a ser iniciado é unilateral:

public boolean getOneWayWsInfo(Map metaData, String endpointURL,String serviceName, String interfaceName, String targetNameSpace,boolean oneWayWs) throws MXException

Método getSoapAction()O método getSoapAction() retorna o cabeçalho HTTP SOAPAction a serutilizado para iniciar o serviço da web:

public String getSoapAction(Map metaData, String endpointURL, StringserviceName, String interfaceName, String targetNameSpace, StringsoapAction) throws MXException

152 Integrando Dados a Aplicativos Externos

Page 159: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Deve-se especificar o nome completo da classe Java na propriedade WSEXIT doterminal que implementa o manipulador do serviço da web.

A classe psdi.iface.router.DefaultWSExit é a implementação padrão da interfaceWSExit. Esta classe substitui o método getEndpointURL() para concatenar o nomedo serviço no final da URL de terminal para formar a nova URL de terminal.

Customização com scripts de automaçãoÉ possível usar scripts de automação em vez de classes Java para estender asprincipais classes de processamento Java para componentes de integraçãopredefinidos. Os scripts de automação podem ser usados para aplicar a lógicacustomizada em vários pontos durante o processamento de estruturas de objeto,canais de publicação, serviços corporativos e canais de chamada.

Defina scripts de automação para integração usando o aplicativo Scripts deAutomação. Definir um script para integração identifica a qual componente deintegração o script está associado e em qual ponto no fluxo de processamento oscript é executado. Para testar scripts, é possível configurar o nível de log paradepuração, ativar o script e usar o recurso de importação de dados e de exportaçãode dados para iniciar uma transação de integração.

Criando scripts de automação para integração:

Um script de automação pode customizar o processamento de mensagens deintegração para transações de entrada e saída. Associe um script de automação aum componente de integração e configure quando inseri-lo no processamento deintegração.

Procedimento

1. No aplicativo Scripts de automação, selecione a ação Criar > Script paraintegração.

2. Especifique um componente de integração para associar ao script de automaçãoe, em seguida, especifique o ponto de inserção para o script.

3. Opcional: Marque a caixa de seleção Ativar se quiser que o script seja ativadoimediatamente.

4. Opcional: Especifique o nível de criação de log a ser aplicado quando o scriptfor executado. Para fins de teste, se o nível de criação de log for configuradopara depuração, os logs conterão informações úteis que ajudam a resolverquaisquer problemas.

5. Especifique a linguagem de script do script.6. Insira o script diretamente no campo Código fonte ou navegue para o local em

que o script está armazenado e clique em Importar.7. Clique em Criar.

Customização de processamento de estrutura de objeto com Scripts deautomação:

O processamento de estrutura de objeto suporta o uso simultâneo de scripts deautomação e as classes Java para customização. Os scripts de automação definidospara uma estrutura de objeto podem afetar o processamento de dados diretamenteprocessados por meio da estrutura de objeto, como a API REST, ou por meio deoutros componentes de integração, como canais de publicação e serviçoscorporativos.

Integrando Dados a Aplicativos Externos 153

Page 160: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Pontos de inserção para customização do processamento de estrutura de objeto com scriptsde automação:

É possível inserir o processamento baseado em script nas classes de definição Javae classes de processamento Java que transformam as estruturas de objeto durante oprocessamento de integração.

A ilustração mostra a inserção de scripts de automação durante o processamentode entrada e saída das estruturas de objeto.

Componentes de Integração

- Publicar canais- Serviços corporativos- Canais de chamada- APIs REST e OSLC- Serviços da web- Interações de serviço da web- Importação e exportaçãode aplicativo

- Gerenciador de migração

Destinos e origens deintegração

- Arquivos (comoplanilhas)

- Aplicativos Maximo- Sistemas externos

Maximo Asset Management

Processamento de saída

Processamento de entrada

Maximo Integration Framework

Ob

jeto

sd

en

eg

ócio

s

Estruturas de objeto

Processamento de saída

Classe dedefinição

Java

Sscript deautomação

Processamento de entrada

Classe deprocessamento

Java

Sscript deautomação

O processamento de estrutura de objeto de saída implementa uma classe dedefinição Java que permite a inserção de processamento customizado durante aserialização de dados do objeto de negócios em uma mensagem XML. Também épossível implementar um script de automação para customizar o processamento daestrutura de objeto. A estrutura de integração suporta a customização de umaestrutura de objeto para que seja uma classe Java, um script de automação ouambos simultaneamente.

O processamento de estrutura de objeto de entrada implementa uma classe deprocessamento Java que permite a inserção de processamento customizado dosdados da mensagem XML de entrada antes que ela seja mapeada para os dados doobjeto de negócios. Além da classe de processamento Java, é possível implementarum script de automação para customizar o processamento na estrutura de objeto.

Processamento de saída de estruturas de objeto:

O processamento de estrutura de objeto de saída executa a serialização de dadosdo objeto de negócios (mbo) em uma mensagem XML. Durante esteprocessamento, um script de automação pode inserir a lógica de processamento

154 Integrando Dados a Aplicativos Externos

Page 161: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

customizada para alterar o comportamento de processamento padrão da estruturade objeto. O script pode ser usado em vez da classe de definição Java ou pode serusado com ela.

Funções, como a skipMbo(ctx), são usadas na serialização. No nome da função, ctxé o objeto na função que é preparada pela estrutura de integração e comunicadados entre a estrutura de integração e o script de automação. Um script deautomação pode afetar o processamento dos dados e comunicar essas mudanças devolta para a estrutura de integração.

A serialização inclui as seguintes funções que podem ser usadas por scripts deautomação para inserir a lógica customizada no processamento dos dados:

skipMbo(ctx)Filtra dados do objeto da mensagem XML. As APIs estão disponíveis parafiltrar dados da mensagem XML, continuar o processamento dos dadosque você deseja na mensagem XML e concluir o processamento daestrutura de objeto após os dados serem filtrados. Por exemplo, se aestrutura de objeto estiver construindo uma mensagem XML para umaordem de compra, um script de automação poderá inserir uma lógica quefiltra os dados de linha da ordem de compra nos quais o tipo de linha épara as linhas de serviço.

skipCols(ctx)Filtra uma coluna ou várias colunas da estrutura de objeto. Por exemplo, sea estrutura de objeto estiver construindo uma mensagem XML para umativo, um script de automação poderá inserir uma lógica que filtrará umnúmero de colunas que não são necessárias pelo sistema que receberá amensagem XML.

overrideValues(ctx)Configura o valor de um campo de estrutura de objeto na mensagem XML.Por exemplo, se a estrutura de objeto estiver construindo uma mensagemXML para um ativo, um script de automação PODERÁ inserir uma lógicaque possa filtrar várias colunas que não são necessárias para o sistema quereceberá a mensagem XML que é criada.

Funções para processamento de saída de estruturas de objeto:

As funções skipMBO(c), skipCols(ctx) e overrideValues(ctx) são usadas em scriptsde automação para processamento de saída de estruturas de objeto. Cada funçãopossui suas próprias APIs disponíveis para processar os dados na estrutura deobjeto. Todos os scripts de exemplo são gravados em Jython.

Ignore o processamento de objetos de negócios usando a função skipMbo(ctx):

A função skipMbo(ctx) filtra os dados da mensagem XML que são criados duranteo processo de serialização. A função skipMbo(ctx) pode filtrar um objeto denegócios Maximo, continuar o processamento da mensagem depois que um objetode negócios é ignorado ou finalizar o processamento da mensagem no ponto deexecução.

API ctx.skipMbo()

A API ctx.skipMbo() filtra o processament de qualquer objeto de negócios doMaximo na mensagem XML.

Integrando Dados a Aplicativos Externos 155

Page 162: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Por exemplo, o script a seguir é executado na API ctx.skipMbo() e filtra todas aslinhas de ordem de compra e seus dados de custo de ordem de comprarelacionados para a linha da ordem de compra 1234.def skipMbo(ctx):if ctx.getMboName()=='POLINE' and ctx.getMbo().getString("itemnum")=="1234":ctx.skipMbo()

Se você usar a API ctx.skipMbo() no objeto raiz ou primário na estrutura de objeto,qualquer objeto de negócios que atenda aos critérios na instrução IF será filtradona mensagem XML.

API ctx.process()

A API ctx.process() continua o processamento das linhas que não são filtradas pelaAPI ctx.skipMbo(), por exemplo:def skipMbo(ctx):if ctx.getMboName()=='POLINE' and ctx.getMbo().getString("itemnum")=="1234":ctx.skipMbo()

elsectx.process()

Executar a API ctx.process() em uma linha de dados permite que os dados sejamserializados. Se a classe de definição Java ignorar esta linha de dados, a APIctx.process() substitui a classe de definição Java e permite que os dados sejamserializados.

API ctx.complete()

Quando a API ctx.complete() é chamada, o processamento de saída da estrutura deobjeto é interrompido para a instância atual do objeto de negócios, para asinstâncias dos objetos de negócios filho e para instâncias de seus objetos denegócios de nível de par.

Por exemplo, o objeto de PO consiste em objetos-filhos POLINE e POTERM. Oobjeto POLINE consiste em um objeto-filho, o POCOST. Quando a APIctx.complete() é chamada no objeto PO, os objetos POLINE, POTERM e POCOSTque estão relacionados a essa PO não são processados.

No script de exemplo a seguir, toda ordem de compra que tiver o status concluídoserá processada sem a serialização de dados de linha da ordem de compra.def skipMbo(ctx):if ctx.getMboName()=='PO' and ctx.getMbo().getString("status")=="COMPLETE":ctx.complete()

elsectx.process()

Ignore o processamento de colunas em objetos de negócios usando a função skipCols(ctx):

A função skipCols(ctx) filtra as colunas de um Maximo a partir do processamentoda mensagem XML. A API ctx.skipCol(String) pode aceitar um argumento desequência para filtrar uma única coluna ou vários argumentos de sequênciaseparados por vírgula para filtrar várias colunas.

A API ctx.skipCol(String) pode filtrar uma única coluna de um Maximo. O scriptde exemplo a seguir filtra a coluna de descrição do objeto ASSET:def skipCols(ctx):

if ctx.getMboName()==’ASSET’:ctx.skipCol("description")

Também é possível usar a API ctx.skipCol(String) para filtrar várias colunas. Oscript de exemplo a seguir filtra a descrição e as colunas de número de ativo doobjeto ASSET:

156 Integrando Dados a Aplicativos Externos

Page 163: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

def skipCols(ctx):if ctx.getMboName()==’ASSET’:

ctx.skipCol("description",”assetnum”)

A API ctx.skipCol(String) pode filtrar a coluna de um objeto-filho em umaestrutura de objeto. Por exemplo, o script a seguir filtra a coluna METERNAME doobjeto ASSETMETER:def skipCols(ctx):

if ctx.getMboName()==’ASSETMETER’:ctx.skipCol("metername”)

Também é possível usar a API ctx.skipCol(String) para filtrar colunas com base emum valor especificado. Por exemplo, o script a seguir filtra a coluna de descriçãoquando o atributo assettag possui o valor 12593:def skipCols(ctx):

if ctx.getMboName()==’ASSET’ and ctx.getMbo().getString("assettag")=="12593":ctx.skipCol("description")

Defina valores nos campos utilizando a função overrideValues(ctx):

A função overrideValues(ctx) configura o valor de um campo na mensagem XML.

A API ctx.overrideCol() configura o valor do campo na mensagem XML. Porexemplo, o script a seguir configura o valor do ID do site para ABC:def overrideValues(ctx):

if ctx.getMboName()==’ASSET’:ctx.overrideCol("SITEID","ABC")

No script de exemplo a seguir, se o campo de descrição de uma ordem de compraestiver vazio, o campo de descrição será configurado com o número da ordem decompra:def overrideValues(ctx):if ctx.getMboName()=='PO':mbo = ctx.getMbo()if mbo.isNull("description"):

ctx.overrideCol("DESCRIPTION",mbo.getString("ponum"))

Classes de definição Java e scripts de automação:

É possível usar uma classe de definição Java e um script de automação ao mesmotempo em uma estrutura de objeto. A classe de definição Java é executada antes doscript de automação para cada função.

Algumas das estruturas de objeto incluídas na estrutura de integração e noMigration Manager fornecem as classes de definição Java que filtram dados. Porexemplo, a estrutura de objeto do item filtra os itens do tipo TOOL. Quando umscript de automação for implementado com uma classe de definição Java, o scriptde automação poderá substituir a filtragem da classe de definição Java e remover afiltragem da classe Java ou alterar os critérios de filtragem para excluir mais dadosou incluir mais dados na mensagem XML.

Por exemplo, a classe de definição Java da estrutura de objeto MXOPERLOC filtraos locais do tipo LABOR enquanto permite que os locais do tipo OPERATINGsejam incluídos na mensagem. É possível alterar a filtragem, incluir mais filtragemou substituir o padrão de filtragem. O script de exemplo a seguir altera oprocessamento para filtrar os locais do tipo OPERATING e continua a processarlocais do tipo LABOR:def skipMbo(ctx):

if ctx.getMboName()==’LOCATIONS’:if ctx.getMbo().getString("type")=="LABOR":

ctx.process()if ctx.getMbo().getString("type")=="OPERATING":

ctx.skipMbo()

Integrando Dados a Aplicativos Externos 157

Page 164: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

O script de exemplo a seguir inclui mais filtragem para a estrutura de objetoMXOPERLOC filtrando pelo tipo COURIER:

if ctx.getMboName()==’LOCATIONS’:if ctx.getMbo().getString("type")=="COURIER":

ctx.skipMbo()

O script de exemplo a seguir substitui a filtragem de classe de definição para quesomente os locais do tipo COURIER sejam filtrados:def skipMbo(ctx):

if ctx.getMboName()==’LOCATIONS’:if ctx.getMbo().getString("type")=="COURIER":

ctx.skipMbo()else:

ctx.process()

Processamento de entrada de estruturas de objeto:

O processamento de mensagens de entrada pela estrutura de integração suporta ouso de scripts de automação na estrutura de objeto para suportar a lógicacustomizada. Esse uso de scripts de automação permite a customização paraqualquer mensagem de integração de entrada que use uma estrutura de objeto epara a customização de dados do Migration Manager de processamento.

Para o processamento de integração, um script que é implementado na estruturade objeto se aplica às mensagens das seguintes origens:v Importação de dadosv RESTv Importação do aplicativov serviço da Webv OSLCv Servlet de integraçãov Tabelas de Integração

A estrutura de objeto suporta uma classe de processamento Java ou um script deautomação. É possível usar uma classe de processamento Java, um script deautomação ou ambos na mesma estrutura de objeto. O processamento suportafunções que estão no arquivo de classe ou o script de automação.

Um contexto (ctx) é passado entre a classe de processamento da estrutura de objetode entrada e o script de automação, que implementa o código customizado. Ocontexto é suportado de forma bidirecional. As APIs predefinidas estão disponíveispara o contexto. A estrutura de script fornece uma classe Java integrada queprepara um contexto.

Todos os seguintes exemplos e fragmentos de código utilizam o JavaScript. Épossível implementar a lógica nos seguintes pontos no processamento:v Antes do processamento de um Maximo. Por exemplo, a função

beforeProcess(ctx) é processada uma vez para cada substantivo na mensagem deentrada antes que os objetos de negócios relacionados à mensagem sejamcriados.

v Durante o processamento de um Maximo. Por exemplo, a funçãobeforeCreateMboSet(ctx) é processada sequencialmente para cada objeto em cadasubstantivo na mensagem de entrada. Outras funções que são processadassequencialmente incluem afterCreateMboSet(ctx), mboRules(ctx),beforeMboData(ctx) e afterMboData(ctx).

158 Integrando Dados a Aplicativos Externos

Page 165: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

v Após a conclusão do processamento do Maximo. Por exemplo, as funçõespreSaveRules(ctx) e changeStatus(ctx) são processadas uma vez para cadasubstantivo na mensagem de entrada depois que os objetos de negócios sãocriados.

No aplicativo Scripts de Automação, é possível criar um script para integração aser incluído no processamento de estrutura de objeto.

Funções para processamento de entrada de estruturas de objeto:

Cada função fornece APIs que podem ser usadas para customizar o processamentodos dados na estrutura de objeto.

Ignore ou altere o processamento de mensagens usando a função beforeProcess(ctx):

A função beforeProcess(ctx) fornece um ponto de injeção para executar a lógica noscript de automação antes que os objetos de negócios sejam criados.

Por exemplo, é possível ignorar o processamento de uma mensagem baseada naavaliação dos dados na mensagem XML. Outro exemplo é alterar o atributo deação para a mensagem de Sincronizar para Criar.

O exemplo JavaScript a seguir define a ação de mensagem para Sincronizar:function beforeProcess(ctx){

ctx.setMsgType("Sync");}

Crie conjuntos de objeto de negócios utilizando a função beforeCreateMboSet(ctx):

A função beforeCreateMBOSet(ctx) processa dados de entrada antes que a estruturacrie os conjuntos do objeto de negócios ou Maximos e pode operar em todos osobjetos de negócios na estrutura de objeto.

Se um script de automação que estiver processando uma estrutura de objeto criarum conjunto de objeto de negócios, a função createMboSet() na classe base seráignorada. O processamento de um objeto de negócios filho suporta o acesso aoobjeto pai usando a função getParentMbo().

Também é possível usar a função beforeCreateMboSet(ctx) para criarcondicionalmente o objeto de negócios baseado nos dados incluídos na mensagemXML.

Não é possível criar um objeto de negócios filho independente de seu objeto denegócios pai.

O exemplo a seguir mostra como criar um objeto de negócios filho a partir de umobjeto de negócios pai.importPackage(Packages.psdi.server);function beforeCreateMboSet(ctx){var struc=ctx.getData();var ponum=struc.getCurrentData("PO",ctx.getUserInfo();var siteid=struc.getCurrentData("SITEID");var poSet = MXServer.getMXServer().getMboSet("PO",ctx.getUserInfo());poSet.setQbeExactMatch(true);poSet.setQbe("ponum",ponum);poSet.setQbe("siteid",siteid);var poMbo = poSet.moveFirst();var polineSet = poMbo.getMboSet("POLINE");ctx.setMboSet(polineSet);

}

Integrando Dados a Aplicativos Externos 159

Page 166: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Altere objetos de negócios ou conjuntos de objetos de negócios utilizando a funçãoafterCreateMboSet(ctx):

A função afterCreateMboSet(ctx) processa a estrutura de objeto de entrada depoisque a estrutura cria o Maximo ou o conjunto de objeto de negócios.

A função afterCreateMboSet(ctx) está disponível para operar em todos os objetosde negócios na estrutura de objeto. Essa função pode alterar o objeto de negóciosou o conjunto de objeto de negócios que a estrutura criou ou pode injetar maisobjetos de negócios no conjunto de objeto de negócios.

O exemplo a seguir configura uma propriedade MboSet para constatar que o localcriado possui um tipo de Storeroom. Essa lógica substitui a lógica padrão que estána classe de processamento MXSTORELOC.importPackage(Packages.psdi.server);function afterCreateMboSet(ctx){

var loc type = MXServer.getMXServer().getMaximoDD().getTranslator().toInternalString("LOCTYPE",ctx.getData().getCurrentData("TYPE"));

if (loc Type=="STOREROOM"){

ctx.getPrimaryMboSet().setStoreroom();}

else{

ctx.getPrimaryMboSet().setNonStoreroom();}

}

Altere o processamento de regras usando a função mboRules(ctx):

A função mboRules(ctx) pode ignorar o processamento de um objeto de negócios,ignorar uma transação, continuar o processamento ou criar um objeto de negócios.Essa função opera antes da criação de cada Maximo.

O exemplo a seguir mostra como ignorar uma transação:function mboRules(ctx){

ctx.skipTxn();}

Defina valores nos campos utilizando a função beforeMboData(ctx):

A função beforeMboData(ctx) está disponível quando o Maximo é criado, masantes que os valores no objeto de negócios sejam definidos pela estrutura deintegração. O processamento da estrutura de objeto pode alterar a configuração dedados do objeto de negócios. O processamento também pode configurarsinalizações nos campos, como a sinalização samevaluevalidation, que aciona asvalidações de campo mesmo quando o valor do campo é configurado com o valoratual do campo.

Inclua objetos de negócios e altere os valores nos campos usando a funçãoafterMboData(ctx):

A função afterMboData(ctx) implementa lógica customizada para criar um extrarelacionado Maximo para inclusão na transação ou altere os dados em umMaximo. A função fica disponível depois que o objeto de negócios é criado e osvalores são configurados no Maximo pela estrutura de integração.

Quando as colunas na estrutura de objeto estiverem restringidas, será possível usara função afterMboData(ctx) para fornecer a lógica para configurar essas colunas emvez de deixar que a estrutura de integração configure os valores.

160 Integrando Dados a Aplicativos Externos

Page 167: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

No exemplo a seguir, um ativo é criado com o campo de descrição configuradocom uma concatenação do campo EXTERNALREFID e o campo de descrição que étransmitido a partir da estrutura de objeto:importPackage(Packages.psdi.server);importPackage(Packages.psdi.mbo);function afterMboData(ctx){

var mbo = ctx.getMbo();var struc = ctx.getData();mbo.setValue("description", "FROM: "+struc.getCurrentData("EXTERNALREFID")+ " DESC: "+struc.getCurrentData("DESCRIPTION"));

}

Altere a transação antes de salvá-la no banco de dados utilizando a funçãopreSaveRules(ctx):

A função preSaveRules(ctx) permite processamento extra relacionado à transaçãocomo um todo. Use a função preSaveRules(ctx) para criar um objeto relacionado einclua-a na transação. A função é chamada antes da ação Salvar e é chamada paracada substantivo na mensagem.

Altere o status ou a data do status usando a função changeStatus(ctx):

A função changeStatus(ctx) implementa um status fora da classe statefulMicSetInque está disponível na estrutura de integração. Também é possível usar esta funçãopara definir a data de status com um valor em vez de usar a data do sistema.

Para o script de automação usar a função changeStatus(ctx), a classestatefulMicSetin ou a classe que estende a classe statefulMicSetin deve serregistrada como a classe de processamento na estrutura de objeto. É possível usaressa função para suportar uma mudança de status para cinco parâmetros. A classebase suporta somente três parâmetros.

O exemplo a seguir configura o campo de memorando que está relacionado à açãode status da mudança para um valor de sequência se o campoNP_STATUSMEMO não contiver um valor:importPackage(Packages.psdi.server);importPackage(Packages.psdi.mbo);

function changeStatus(ctx){

var mbo = ctx.getMbo();var struc = ctx.getData();var stat = struc.getCurrentData("STATUS");var memo = struc.getCurrentData("NP_STATUSMEMO");if(struc.isCurrentDataNull("NP_STATUSMEMO"))

{memo = "Status change via Integration";

}mbo.changeStatus(stat, MXServer.getMXServer().getDate(), memo, MboCon-stants.NOACCESSCHECK);

}

APIs de contexto para processamento de entrada de estruturas de objeto:

Um contexto (ctx) é um objeto que fornece métodos de conveniência para os scriptsde automação analisarem os dados ou acionarem as ações. O contexto é suportadode forma bidirecional. APIs predefinidas estão disponíveis para o contexto e cadafunção pode usar contextos diferentes.

Um script de automação requer métodos de contexto para implementar a lógica deprocessamento. Um contexto é transmitido entre o processamento da estrutura deobjeto e o script de automação, que implementa o código customizado. A tabela aseguir mostra as APIs de contexto e o uso comum das APIs para cada uma dasfunções:

Integrando Dados a Aplicativos Externos 161

Page 168: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tabela 28. APIs de contexto, conforme o uso pelas funções

APIs de contextobeforeProcess

(ctx)beforeCreateMBOSet

(ctx)afterCreateMboSet

(ctx)mboRules

(ctx)beforeMboData

(ctx)afterMboData

(ctx)preSaveRules

(ctx)changeStatus

(ctx)

ctx.setMsgType() U

ctx.getProcessTable() U U U U U

ctx.setProcessTable(StringProcessTable)

U

ctx.setMboSet(MboSet mboSet) U

ctx.setMbo(Mbo mbo) U

ctx.getData() U U U U U U U U

ctx.getMosDetailInfo() U U U U U U U

ctx.setSkipBaseAdditionalRules() U

ctx.skipMbo() U

ctx.skipTxn() U U U U U U U U

ctx.complete() U

ctx.process() U

ctx.getUserInfo() U U U U U U U U

ctx.getParentMbo() U U U U U

ctx.isPrimary() U U U U U U U

ctx.bypassMbo() U

ctx.getMsgType() U U U U U U U U

ctx.getPrimaryMboSet() U U U U U U

ctx.getPrimaryMbo() U U U U

ctx.processAsUpdate() U

ctx.processAsAdd() U

ctx.processAsAddAtEnd() U

ctx.log () U U U U U U U U

As seguintes APIs estão disponíveis para processamento de dados de entrada:

ctx.getMosDetailInfo()Fornece informações sobre o cache do dicionário de dados para a estruturade integração da estrutura de objeto que está sendo processada.

ctx.skipMbo()Ignora o processamento de um Maximo.

ctx.skipTxn()Ignora o processamento de uma transação inteira, como uma mensagem.

ctx.complete()Finaliza o processamento da estrutura de objeto no ponto de execução, oque significa que os dados-filhos não são processados.

ctx.process()Continua o processamento no ponto de execução. Essa API geralmente éusada como parte da lógica condicional.

ctx.getParentMbo()Recupera o objeto de negócios pai. Essa API pode ser usada a partir de umobjeto-filho cujo objeto de negócios ainda não tenha sido criado.

ctx.isPrimary()Identifica se o objeto de negócios atual é um objeto de negócios denível-raiz ou da estrutura de objeto.

ctx.getUserInfo()Recupera informações do usuário, que serão necessárias se um scriptestiver criando um novo objeto de negócios.

ctx.bypassMbo()Ignora a criação do objeto de negócios e continua até o próximo objeto denegócios que está sendo processado.

ctx.getMsgType()Fornece acesso ao tipo de mensagem, como Sincronização ou Criar.

162 Integrando Dados a Aplicativos Externos

Page 169: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

ctx.setMsgType()Fornece o tipo de mensagem, como Sincronização ou Criar. This API canbe used before processing begins.

ctx.getData()Fornece acesso ao StructureData, que é a mensagem XML.

ctx.setMboSet(MboSet mboSet)Configura valores em um conjunto de objeto de negócios.

ctx.setMbo(Mbo mbo)Configura valores em um objeto de negócios.

ctx. getPrimaryMboSet()Recupera o objeto de negócios raiz de uma estrutura de objeto durante oprocessamento de um objeto de negócios filho.

ctx.setProcessTable(String processTable)Configura a tabela para um processo. O método é usado se você tiver umobjeto de negócios não persistente, como MXRECEIPT, que tem lógica deprocessamento para determinar se a tabela MATRECTRANS ou a tabelaSERVRECTRANS serão atualizadas. A API ctx.setProcessTable(StringprocessTable) é usada na função beforeProcess(ctx).

ctx.getProcessTable()Recupera o nome da tabela configurado pela API ctx.setProcessTable(StringprocessTable).

ctx.setSkipBaseAdditionalRules()Inclui a lógica customizada na função preSaveRules(ctx) para operar emuma estrutura de objeto concluída que agora está preparada noprocessamento.

ctx.processAsUpdate()Configura a ação de processamento de um objeto de negócios para a açãoAtualizar em vez da ação Incluir ou Excluir.

ctx.processAsAdd()Configura a ação de processamento de um objeto de negócios para a açãoIncluir em vez da ação Atualizar ou Excluir.

ctx.processAsAddAtEnd()Configura a ação de processamento de um objeto de negócios para a açãoIncluir em vez da ação Atualizar ou Excluir e cria o objeto de negócios nofinal da coleta em vez de no início da coleta.

ctx.log ()Executa uma instrução de log a partir de um contexto de processamento deestrutura de objeto.

Customização do processamento de canal e serviço usando os scripts deautomação:

Ao criar um script de automação, identifique o canal ou serviço no qual o script éexecutado. Especifique também onde inserir o script durante o fluxo doprocessamento.

Integrando Dados a Aplicativos Externos 163

Page 170: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Pontos de customização durante o processamento de canal de publicação:

Os canais de publicação processam mensagens de integração de saída que nãorequerem resposta. A classe de processamento Java que é associada a um canal depublicação inclui vários ganchos nos quais é possível inserir o código para fornecerlógica customizada.

A ilustração mostra os pontos de customização durante o processamento de saídade mensagens de integração utilizando canais de publicação.

Processamento de saída

Maximo Asset Management

Maximo Integration Framework

Ob

jeto

sd

en

eg

ócio

s

Estruturas de objeto

Processamento de saída

Classe dedefinição

Java

Sscript deautomação

Fila JMS

Destinos de integração

- Arquivos (comoplanilhas)

- Sistemas externos

Publicar Canais

Classe de saídade usuário Java

(antes de método)Sscript deautomação

Classe deprocessamento

Java

Sscript deautomação

Classe desaída

de usuário Java(após método)

Sscript deautomação

Classe defiltro de eventos

Java

Sscript deautomação

Depois que o processamento da estrutura de objeto constrói a mensagem deintegração, ela é encaminhada ao canal de publicação associado. É possível incluirlógica customizada nos seguintes pontos durante o processamento do canal depublicação:v Classe de saída externav Classe de saída de usuário que é executada antes da classe de saída externav Classe de saída de usuário que é executada após a classe de saída externav Classe de filtro de eventos

Em seguida, a mensagem é enviada à fila JMS para ser entregue ao destino final.

Ao configurar um script de saída externa ou de saída de usuário para um canal depublicação, uma classe Java predefinida é inserida no canal que é usado paraexecutar o script. As classes predefinidas são a classecom.ibm.tivoli.maximo.script.ScriptExternalExit e a classe

164 Integrando Dados a Aplicativos Externos

Page 171: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

com.ibm.tivoli.maximo.script.ScriptUserExit. Não é possível implementar um scripte uma classe Java no mesmo ponto de processamento. Se você tentar criar umscript em um ponto de processamento no qual uma classe Java é configurada, nãoserá possível salvar o script.

Pontos de customização durante o processamento do serviço corporativo:

Os serviços corporativos fornecem processamento assíncrono e síncrono demensagens de integração de entrada. É possível inserir um código para fornecerlógica customizada para a classe de processamento de solicitação Java paraprocessamento de entrada e para a classe de processamento de resposta Java paraprocessamento de saída.

A ilustração mostra os pontos de customização durante o processamento deentrada e saída de mensagens de integração utilizando serviços corporativos.

Processamento de saída

Processamento de entrada

Maximo Asset Management

Maximo Integration Framework

Obje

tos

de

negócio

s

Estruturas de objeto

Processamento de saída

Classe dedefinição

Java

Sscript deautomação

Processamento de entrada

Classe deprocessamento

Java

Sscript deautomação

Respostas de serviço corporativo

Classe de saída deusuário Java

(antes de método)

Classe deprocessamento

Java

Classe desaída de usuário Java

(após método)

Script de automação

Script de automação

Script de automação

Solicitações de serviço corporativo

Classe de saídade usuário Java

(antes de método)

Classe deprocessamento

Java

Classe de saídade usuário Java(após método)

Script de automação

Script de automação

Script de automação

Cliente externo

Início (iniciação da transação)

Para mensagens assíncronas que não requerem uma reposta, um serviço externoabre uma conexão para enviar uma solicitação de serviço corporativo. Quando asolicitação é validada, a mensagem é colocada em uma fila JMS para oprocessamento de serviços corporativos. Para mensagens síncronas que requeremuma resposta, o serviço externo mantém uma conexão contínua durante atransação até que a resposta seja recebida.

No aplicativo Scripts de automação, ao configurar um script de automação paraum serviço corporativo, especifique um dos seguintes pontos de inserção para oscript:v Pontos de inserção para processamento assíncrono de entrada:

Integrando Dados a Aplicativos Externos 165

Page 172: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

– Solicitação, entrada: A classe de saída de usuário que é executada antes daclasse de saída externa

– Solicitação, entrada: Classe de saída externa– Solicitação, entrada: A classe de saída de usuário que é executada depois da

classe externav Pontos de inserção para o processamento síncrono de entrada, em que uma

resposta é necessária:– Solicitação, entrada: A classe de saída de usuário que é executada antes da

classe de saída externa– Solicitação, entrada: Classe de saída externa– Solicitação, entrada: A classe de saída de usuário que é executada depois da

classe externa– Resposta, saída: A classe de saída de usuário que é executada antes da classe

de saída externa– Resposta, saída: Classe de saída externa– Resposta, saída: A classe de saída de usuário que é executada após a classe

externa

Ao configurar um script de saída externa ou de saída de usuário para a solicitaçãoou a resposta de um serviço externo, é inserida uma classe Java predefinida queexecuta o script. As classes predefinidas são a classecom.ibm.tivoli.maximo.script.ScriptExternalExit e a classecom.ibm.tivoli.maximo.script.ScriptUserExit. Não é possível implementar um scripte uma classe Java no mesmo ponto de processamento. Se você tentar criar umscript em um ponto de processamento no qual uma classe Java é configurada, nãoserá possível salvar o script.

Pontos de customização durante o processamento de canal de chamada:

Os canais de chamada processam mensagens de integração de saída que requeremuma resposta. A classe de solicitação do canal de chamada e a classe de respostado canal de chamada incluem vários ganchos no quais é possível inserir códigopara fornecer a lógica customizada.

A ilustração mostra os pontos de customização durante o processamento deentrada e saída de mensagens de integração utilizando canais de chamada.

166 Integrando Dados a Aplicativos Externos

Page 173: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Maximo Asset Management

Maximo Integration Framework

Ob

jeto

sd

en

eg

ócio

s

Estruturas de objeto

Processamento de saída

Classe dedefinição

Java

Sscript deautomação

Processamento de entrada

Classe deprocessamento

Java

Sscript deautomação

Serviços externos

Solicitações de canal de chamada

Classe de saída de usuário Java(antes de método)

Classe de processamentoJava

Classe de saída de usuário Java(após método)

Script de automação

Script de automação

Script de automação

Respostas de canal de chamada

Classe de saída\de usuário Java

(antes de método)

Classe de processamentoJava

Classe de saída deusuário Java

(após método)

Script de automação

Script de automação

Script de automação

Processamento de saída

Processamento de entrada

Início (iniciação da transação)

Quando uma ação do usuário no Maximo Asset Management inicia uma transaçãode integração de saída que requer uma resposta, um canal de chamada fornece oprocessamento de integração de solicitações e respostas.

No aplicativo Scripts de automação, ao configurar um script de automação paraum canal de chamada, especifique um dos pontos de inserção a seguir para oscript:v Solicitação, saída: A classe de saída de usuário que é executada antes da classe

de saída externav Solicitação, saída: Classe de saída externav Solicitação, saída: A classe de saída de usuário que é executada após a classe de

saída externav Resposta, entrada: A classe de saída de usuário que é executada antes da classe

de saída externav Resposta, entrada: Classe de saída externav Resposta, entrada: A classe de saída de usuário que é executada após a classe de

saída externa

Ao configurar um script de saída externa ou de saída de usuário para a solicitaçãoou a resposta de um canal de chamada, é inserida uma classe Java predefinida queexecuta o script. As classes predefinidas são a classecom.ibm.tivoli.maximo.script.ScriptExternalExit e a classecom.ibm.tivoli.maximo.script.ScriptUserExit. Não é possível implementar um scripte uma classe Java no mesmo ponto de processamento. Se você tentar criar umscript em um ponto de processamento no qual uma classe Java é configurada, nãoserá possível salvar o script.

Integrando Dados a Aplicativos Externos 167

Page 174: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Exemplos de como usar scripts de automação durante o processamento por canais eserviços:

O processamento de canal e serviço obtém um registro de dados do sistema deorigem como um valor de entrada, manipula os dados conforme o necessário econstrói um registro de dados para o sistema de destino. Os scripts python deexemplo consultam os dados de entrada e fornecem a lógica para manipular osdados antes que os dados de saída sejam construídos.

Quando o Maximo Asset Management inicia uma transação de integração, aestrutura de objeto fornece um elemento de dados do registro interno (irData) aum canal de publicação ou um canal de chamada. O processamento manipula oelemento irData e constrói um elemento de dados externos do registro (erData)antes que a mensagem seja encaminhada para seu destino. Transações do canal dechamada podem requerer uma resposta do sistema externo. O processamento deresposta transmite o elemento erData ao canal de chamada, que manipula os dadosde resposta e constrói o elemento irData.

Quando um sistema externo inicia uma transação de integração, a mensagemfornece um elemento erData a um serviço corporativo. O processamento manipulao elemento erData e constrói um elemento irData antes que a mensagem sejaencaminhada à estrutura de objeto associada. Para mensagens que requerem umaresposta, a estrutura de objeto fornece o elemento irData ao serviço corporativo. Oprocessamento manipula os dados e constrói o elemento erData que éencaminhado ao seu destino.

Os exemplos consistem em scripts simples que podem ser usados para propósitode teste. É possível usar os recursos de importação e exportação de dados noaplicativo Sistemas Externos para iniciar transações para testar scripts.

Exemplo: Script que altera a descrição de ativos de operação em transações desaída

Neste cenário, a estrutura de objeto MXASSET fornece o irData ao canal depublicação MYASSET para processamento. Um script de automação é configuradopara ser executado na classe de saída externa do canal de publicação. O scriptverifica o status do ativo no elemento irData. Se o ativo estiver no statusoperacional, o script inserirá um valor no campo de descrição e imprimirá umamensagem no arquivo de log. O elemento erData é, então, construído eencaminhado ao sistema externo.if irData.getCurrentData("STATUS") == ’OPERATING’ :

irData.setCurrentData("DESCRIPTION","hello")print "MYASSET description change"

Exemplo: Script que altera a descrição de ativos de operação em transações deentrada

Neste exemplo, o serviço corporativo MYASSET processa uma mensagem deentrada para a estrutura de objeto MXASSET. Um script de automação insere umscript na classe de saída externa do serviço corporativo. O script verifica o statusdo ativo no elemento erData. Se o ativo estiver no status operacional, o scriptinserirá um valor no campo de descrição e imprimirá uma mensagem no arquivode log. O elemento irData é, então, construído e encaminhado à estrutura de objetoassociada para processamento.if erData.getCurrentData("STATUS") == ’OPERATING’:

erData.setCurrentData("DESCRIPTION","hello inbound")print "MYASSET inbound description has changed"

168 Integrando Dados a Aplicativos Externos

Page 175: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Exemplo: O script que altera a descrição de linhas em uma ordem de compra,utilizando uma variável de script de automação

Neste exemplo, a estrutura de objeto MXPO fornece o elemento irData para o canalde publicação MYPO para processamento. Um script de automação é configuradopara ser executado na classe de saída externa do canal de publicação. Um valorliteral, world, é definido como uma variável de entrada no script de automação. Oscript consulta o elemento irData para ordens de compra que contêm linhas deordem de compra. O script numera cada linha da ordem de compra em umasequência que começa com 1, configura hello como o valor no campo descrição einclui a variável de entrada do script de automação. O script atualiza a ordem decompra pai antes que o elemento erData seja construído e encaminhado ao sistemaexterno.lines = irData.getChildrenData("POLINE")i = 0if lines is not None:

for value in lines:++iirData.setAsCurrent(lines,i);irData.setCurrentData("DESCRIPTION","hello"+world)

irData.setParentAsCurrent()

Exemplo: Script que ignora transações com base no status de registros

Neste exemplo, a estrutura de objeto MXPO é enviada para o canal de publicaçãoMYPO2 para processamento. Um script de automação é configurado para serexecutado na classe de saída de usuário antes que a classe de saída externa sejaexecutada. O script consulta o elemento irData para ordens de compra com umstatus de WAPPR e ignora o processamento dessas ordens de compra.if irData.getCurrentData("STATUS") == ’WAPPR’ :

errorgroup = "iface"errorkey ="SKIP_TRANSACTION"

Exemplo: Script que imprime informações de transação em um arquivo de logpara ajudar na resolução de problemas

Neste exemplo, a estrutura de objeto MXASSET fornece irData ao canal depublicação MYASSET2 para processamento. Um script de automação é configuradopara ser executado na classe de saída externa. O script consulta o elemento irDatapara ativos com um status operacional, imprime informações de transação em umarquivo de log e constrói o elemento erData sem fazer nenhuma mudança. Paraimprimir as informações sobre a transação, você deverá configurar a criação de logpara depuração. No aplicativo Criação de log, o criador de logs é configurado parascripts de automação e o nível de criação de log é definido como DEBUG. Noaplicativo Scripts de automação, o nível de criação de log para o script éconfigurado como DEBUG.if irData.getCurrentData("STATUS") == ’OPERATING’ :

print "Test scriptvariable VAR_EXIT_IFACETYPE " + ifaceTypeprint "Test scriptvariable VAR_EXIT_IFACENAME " + ifaceNameprint "Test scriptvariable VAR_EXIT_EXTSYSTEM " + extSystemprint "Test scriptvariable VAR_EXIT_MESSAGETYPE " + messageTypeprint "Test scriptvariable VAR_EXIT_EXTSYSTEM " + extSystemprint "Test scriptvariable VAR_EXIT_OSNAME " + osNameprint "Test script

Quando um ativo é exportado, as seguintes informações de depuração sãoimpressas em um arquivo de log:18 Mar 2014 11:35:06:877 [DEBUG] [MXServer] [CID-MXSCRIPT-2022] execution completedfor cached compiled script PUBLISH.MYASSET.EXTEXIT.OUT for launch point nullTest script variable VAR_EXIT_IFACETYPE MAXIMOTest script variable VAR_EXIT_IFACENAME MYASSET2Test script variable VAR_EXIT_EXTSYSTEM MYEXTSYSTest script variable VAR_EXIT_MESSAGETYPE PublishTest script variable VAR_EXIT_OSNAME MXASSET

Integrando Dados a Aplicativos Externos 169

Page 176: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Mapeamento de XSLPara transações de saída, é possível implementar um arquivo XSL para manipularos dados que são enviados ao sistema externo após o processamento de saída Javaser concluído. Para transações de entrada, é possível implementar um arquivo XSLpara manipular os dados a serem configurados para a estrutura de objeto após oprocessamento de saída Java ser concluído.

O arquivo XSL sempre é chamado com a mensagem XML que é saída doprocessamento de saída Java. É possível registrar o arquivo XSL no arquivo EARdo aplicativo no diretório businessobjects/classes/ ou é possível fazer referênciaa ele usando um caminho de arquivo de diretório que não faz parte do arquivoEAR do aplicativo.

Omita a extensão de arquivo .xsl para registrar o arquivo no diretóriobusinessobjects/classes/psd/iface/xsl, por exemplo:psdi.iface.xsl.mapping

Inclua a extensão de arquivo .xsl para registrar o arquivo em um diretório dearquivo que esteja acessível para o servidor de aplicativos, por exemplo:c:/psdi/iface/xsl/mapping.xsl

Classe da Saída de Usuário de Tabela de InterfaceAo usar tabelas de interface para receber mensagens de um sistema externo, épossível executar customização no programa de pesquisa que recupera os dados databela de interface e envia dados ao sistema.

O gerenciador de tarefa Cron executa o programa de pesquisa da tabela deinterface. A tarefa Cron IFACETABLECONSUMER possui uma propriedadeEXITCLASS opcional em que é possível especificar o nome completo de uma classede saída Java.

A lista de estruturas de dados Java representa o registro das tabelas de interface,onde o primeiro elemento é sempre a ação da mensagem. Os elementos restantesda lista são estruturas de dados mapeadas e cada mapa representa uma linha natabela de interface para cada mensagem. As chaves do mapa são os nomes dascolunas e os valores são os valores das colunas correspondentes. Todos os valoresda coluna são convertidos para seus formatos de sequência convertida antes deserem configurados no mapa.

A classe EXITCLASS deve implementar a interfacepsdi.iface.intertables.IfaceTbExit e os métodos a seguir:v public void beforeQueue(long transid, String extSys, String ifaceName,

List data, Connection conn)

Esse método é chamado após os dados serem recebidos da tabela de interface eantes de os dados serem inseridos em uma das filas de entrada.

v public void afterCommit(long transid, String extSys, String ifaceName,Connection conn)

Este método é chamado após os dados serem inseridos em uma fila de entrada eexcluídos da tabela da fila da interface e a confirmação do banco de dados serexecutada.

v public void afterRollback(long transid, String extSys, String ifaceName,Connection conn)

Esse método é semelhante ao método afterCommit, mas é chamado se atransação for retrocedida

170 Integrando Dados a Aplicativos Externos

Page 177: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Essa classe pode executar os processos a seguir:v Valide os dados.v Alterar dados externos alterando o registro IR a ser salvo no sistema.v Evitar que a transação seja salva na fila emitindo uma exceção. Nesse caso, a

transação permanece na tabela MXIN_INTER_TRANS com a mensagem de erroe é reprocessada.

v Evitar que a mensagem seja enviada ao sistema externo emitindo uma exceçãoskip_transaction. Nesse caso, o sistema não salva a mensagem; a mensagem éremovida da fila.

v Registre a transação em log

A saída de usuário que usa o método afterCommit ou afterRollback pode executaros processos a seguir:v Executar processamento customizado e limpeza.v Registre a transação em log.

Essa classe é identificada no aplicativo Configuração da Tarefa Cron.

Configurando a Estrutura de IntegraçãoA configuração da estrutura de integração inclui configurar propriedades desistema, filas JMS e segurança relacionadas. A implementação de cenários deintegração requer um conhecimento de configuração de filas JMS no servidor deaplicativos e conhecimento de suporte de segurança de J2EE e do produto.

Propriedades de Sistema de IntegraçãoAs propriedades do sistema definem o comportamento e as características daestrutura de integração. Para revisar ou alterar as propriedades da estrutura deintegração, filtre as propriedades no aplicativo Propriedades do sistema.

Propriedades de integração gerais

Para ver uma lista de propriedades de integração gerais, especifique mxe.int comoum termo de filtro no aplicativo Propriedades de sistema. Para propriedadesbooleanas (true/false), um valor igual a 0 significa false e um valor igual a 1significa true.

Tabela 29. Propriedades de integração geraisPropriedade Descrição Valor padrão

mxe.int.containerdeploy Implementar serviços da Web para o contêiner do servidor deaplicativos. Quando configurado para 0 (falso), os serviços da Web sãoimplementados no contêiner do produto.

0

mxe.int.credentialmapperclassname O nome de classe do mapeador de credenciais é um arquivo de classeque pode ser usado para mapear informações de credenciais quando ummódulo de integração é implementado.

mxe.int.genboolasbool Gerar booleano como booleano de esquema. 1

mxe.int.globaldir Especifica o Diretório global de integração. 1

mxe.int.queueusercachesize Número de usuários que são armazenados em cache para mensagens dafila de entrada.

10

mxe.int.resolveschema Resolve todas as inclusões do esquema para conter definição deesquema sequencial.

1

mxe.int.servicedeployer A classe do implementador de serviços da Web é uma classe Javacustomizada para implementação de serviço da Web quando a classe doimplementador padrão não é usada.

mxe.int.uddiinqurl Representa a URL de consulta do registro UDDI de integração.

mxe.int.uddiname Representa a ID do usuário do registro UDDI de integração.

mxe.int.uddipassword Senha do registro UDDI de integração.

mxe.int.uddipuburl URL de publicação do registro UDDI de integração.

Integrando Dados a Aplicativos Externos 171

Page 178: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tabela 29. Propriedades de integração gerais (continuação)Propriedade Descrição Valor padrão

mxe.int.validatedbupdates Valida as atualizações do banco de dados concluídas por integração.Quando configurado como 1 (true), a exclusão de objetos de negócios,atributos, índices e relacionamentos por um usuário por meio doaplicativo de configuração de Banco de dados é validada com relação aoconteúdo de integração. A validação assegura que os dados excluídosnão sejam referenciados por um componente de integração. Se umareferência existir, o usuário não poderá concluir a ação de exclusão.

1

mxe.int.validatemmpackage Valida as atualizações do banco de dados Migration Manager porintegração.

0

mxe.int.verifywebappurl Verifica a URL do aplicativo da web quando arquivos de esquema estãosendo gerados.

1

mxe.int.webappurl Representa a URL de aplicativo da web de integração. Configure essapropriedade para conter o nome do host e o número da porta corretos.

http://localhost:9998/meaweb

mxe.int.wsdlcurrentschema Mostra a definição de esquema atual no WSDL. 1

mxe.int.wsdlincludesschema Inclui o esquema diretamente no WSDL. 1

mxe.int.wsdlnamespace Representa o namespace do WSDL de integração. http://www.ibm.com/maximo/wsdl

mxe.int.xmlnamespace Representa o namespace do XML de integração. http://www.ibm.com/maximo

mxe.int.binarytext Converter um valor de texto no valor codificado em base 64. 10

mxe.int.defaultaction A ação padrão para a importação do arquivo simples. Adic.Alt.

mxe.int.defaultoperation A operação padrão para a exportação do aplicativo. Sincronizar

mxe.int.dfltuser Representa o usuário de login padrão de Integração. mxintadm

mxe.int.doclink.maxfilesize Representa o tamanho máximo do arquivo (MB) para anexos incluídoscomo parte de uma mensagem de integração.

10

mxe.int.enabledatemillis Ativa datas com a parte de milissegundos. 0

mxe.int.expupdatesender Atualiza o campo SENDERSYSID no objeto principal durante aexportação de dados.

0

mxe.int.extracttrycount A Contagem de novas tentativas de extração de arquivo é o número devezes que uma mensagem de erro é tentada novamente durante aimportação de dados quando o gerenciamento de erro baseado emarquivo é usado.

0

mxe.int.flatfiledelimiter O delimitador de texto de arquivo simples de integração é o valor dodelimitador padrão usado para ativação de importação de aplicativo epara importação de dados.

,

mxe.int.flatfilenewline Retém caractere de nova linha em arquivos simples. Para campos, comodescrições, que podem conter caracteres de nova linha, os caracteres sãoretidos nas mensagens de integração quando o valor da propriedade for1 (true).

0

mxe.int.interactiveimport Executa a importação de aplicativos como interativa. 0

mxe.int.keyresponse Fornece conteúdo de resposta para mensagens de integração de entradapara todas as operações. Quando configurado para 1 (true), o conteúdoda resposta, que inclui os valores de chaves de objetos principais, éfornecido para todas as operações de serviço. Quando configurado para0 (falso), o conteúdo da resposta é fornecido somente para as operaçõesConsultar e Criar.

1

mxe.int.maxextractdocs Representa o número de documentos de erro que são gravados em cadaarquivo temporário quando um arquivo de extração está sendoconstruído.

1000

mxe.int.mdbdelay Representa o tempo de espera, em milissegundos, antes que umamensagem na fila de erros seja processada.

-1

mxe.int.propagateuser Propagar o usuário autenticado por meio de uma fila de entrada.Quando configurado como 1 (true), o usuário da mensagem deintegração é salvo com a mensagem da fila e usado durante oprocessamento da mensagem porque ele é processado a partir da filapara os objetos de negócios.

0

mxe.int.savemessage Indica a mensagem JMS salva. 0

mxe.int.setclobasaln Controla o truncamento dos caracteres que são enviados para as tabelasde interface.

0

mxe.int.textqualifier O qualificador de texto do arquivo simples é o valor padrão doqualificador de texto na ativação da importação de aplicativo e naimportação de dados.

"

mxe.int.updatecoafromglcomp Atualiza o Plano de Contas que contém um componente identificado.Quando configurado para 1 (true), o processamento dos dados docomponente contábil de entrada inicia atualizações relacionadas aquaisquer dados do plano de contas que façam referência aocomponente contábil.

1

mxe.int.usescientific Usa anotação científica para valores duplos. 1

mxe.int.validatexmltext Valida o valor do elemento XML para caracteres XML inválidos. Quandoconfigurado para 1 (true), uma mensagem de saída é validada paraassegurar que todos os dados da mensagem usem caracteres XMLválidos. Se mensagens contiverem caracteres inválidos, a operação parae nenhuma mensagem de saída é entregue.

0

mxe.int.whereclausepolicy Configura a política da cláusula where para uma consulta de integração. analisar

172 Integrando Dados a Aplicativos Externos

Page 179: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tabela 29. Propriedades de integração gerais (continuação)Propriedade Descrição Valor padrão

mxe.int.adminfromemail O endereço de email DE administração de integração, que é usado comoo endereço de email De, quando a integração inicia um email. Deve serum formato de endereço de email válido, como [email protected].

mxe.int.admintoemail O endereço de email PARA administração de integração, que é usadocomo o endereço de email Para, quando a integração inicia um email.Deve ser um formato de endereço de email válido, [email protected]. É possível fornecer mais de um endereço de email emuma lista separada por vírgula.

Tabela 30. Propriedades de integração gerais.

Propriedade Descrição Valor padrãoQuem pode editar apropriedade?

mxe.int.containerdeploy

Implementar serviços da Web para o contêiner doservidor de aplicativos. Quando configurado para 0(falso), os serviços da Web são implementados nocontêiner do produto.

0 Administrador global

mxe.int.credentialmapperclassname

O nome de classe do mapeador de credenciais é umarquivo de classe que pode ser usado para mapearinformações de credenciais quando um módulo deintegração é implementado.

Administrador global

mxe.int.genboolasbool

Gerar booleano como booleano de esquema.1 Administrador global

mxe.int.globaldir

Especifica o Diretório global de integração.1 Administrador global

mxe.int.queueusercachesize

Número de usuários que são armazenados em cache paramensagens da fila de entrada.

10 Administrador global

mxe.int.resolveschema

Resolve todas as inclusões do esquema para conterdefinição de esquema sequencial.

1 Administrador global

mxe.int.servicedeployer

A classe do implementador de serviços da Web é umaclasse Java customizada para implementação de serviçoda Web quando a classe do implementador padrão não éusada.

Administrador global

mxe.int.uddiinqurl

Representa a URL de consulta do registro UDDI deintegração.

Administrador global

mxe.int.uddiname

Representa a ID do usuário do registro UDDI deintegração.

Administrador global

mxe.int.uddipassword

Senha do registro UDDI de integração.Administrador global

mxe.int.uddipuburl

URL de publicação do registro UDDI de integração.Administrador global

mxe.int.validatedbupdates

Valida as atualizações do banco de dados concluídas porintegração. Quando configurado como 1 (true), a exclusãode objetos de negócios, atributos, índices erelacionamentos por um usuário por meio do aplicativode configuração de Banco de dados é validada comrelação ao conteúdo de integração. A validação asseguraque os dados excluídos não sejam referenciados por umcomponente de integração. Se uma referência existir, ousuário não poderá concluir a ação de exclusão.

1 Administrador global

mxe.int.verifywebappurl

Verifica a URL do aplicativo da web quando arquivos deesquema estão sendo gerados.

1 Administrador global

mxe.int.webappurl

Representa a URL de aplicativo da web de integração.Configure essa propriedade para conter o nome do host eo número da porta corretos.

http://localhost:9998/meaweb Administrador global

mxe.int.wsdlcurrentschema

Mostra a definição de esquema atual no WSDL.1 Administrador global

mxe.int.wsdlincludesschema

Inclui o esquema diretamente no WSDL.1 Administrador global

mxe.int.wsdlnamespace

Representa o namespace do WSDL de integração.http://www.ibm.com/maximo/wsdl Administrador global

mxe.int.xmlnamespace

Representa o namespace do XML de integração.http://www.ibm.com/maximo Administrador global

Integrando Dados a Aplicativos Externos 173

Page 180: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tabela 30. Propriedades de integração gerais (continuação).

Propriedade Descrição Valor padrãoQuem pode editar apropriedade?

mxe.int.binarytext

Converter um valor de texto no valor codificado em base64.

10 Administrador Global,administrador de locatário

mxe.int.defaultaction

A ação padrão para a importação do arquivo simples.Adic.Alt. Administrador Global,

administrador de locatário

mxe.int.defaultoperation

A operação padrão para a exportação do aplicativo.Sincronizar Administrador Global,

administrador de locatário

mxe.int.dfltuser

Representa o usuário de login padrão de Integração.mxintadm Administrador Global,

administrador de locatário

mxe.int.doclink.maxfilesize

Representa o tamanho máximo do arquivo (MB) paraanexos incluídos como parte de uma mensagem deintegração.

10 Administrador Global,administrador de locatário

mxe.int.enabledatemillis

Ativa datas com a parte de milissegundos.0 Administrador Global,

administrador de locatário

mxe.int.expupdatesender

Atualiza o campo SENDERSYSID no objeto principaldurante a exportação de dados.

0 Administrador Global,administrador de locatário

mxe.int.extracttrycount

A Contagem de novas tentativas de extração de arquivo éo número de vezes que uma mensagem de erro é tentadanovamente durante a importação de dados quando ogerenciamento de erro baseado em arquivo é usado.

0 Administrador Global,administrador de locatário

mxe.int.flatfiledelimiter

O delimitador de texto de arquivo simples de integração éo valor do delimitador padrão usado para ativação deimportação de aplicativo e para importação de dados.

, Administrador Global,administrador de locatário

mxe.int.flatfilenewline

Retém caractere de nova linha em arquivos simples. Paracampos, como descrições, que podem conter caracteres denova linha, os caracteres são retidos nas mensagens deintegração quando o valor da propriedade for 1(verdadeiro).

0 Administrador Global,administrador de locatário

mxe.int.interactiveimport

Executa a importação de aplicativos como interativa.0 Administrador Global,

administrador de locatário

mxe.int.keyresponse

Fornece conteúdo de resposta para mensagens deintegração de entrada para todas as operações. Quandoconfigurado para 1 (true), o conteúdo da resposta, queinclui os valores de chaves de objetos principais, éfornecido para todas as operações de serviço. Quandoconfigurado para 0 (falso), o conteúdo da resposta éfornecido somente para as operações Consultar e Criar.

1 Administrador Global,administrador de locatário

mxe.int.maxextractdocs

Representa o número de documentos de erro que sãogravados em cada arquivo temporário quando umarquivo de extração está sendo construído.

1000 Administrador Global,administrador de locatário

mxe.int.mdbdelay

Representa o tempo de espera, em milissegundos, antesque uma mensagem na fila de erros seja processada.

-1 Administrador Global,administrador de locatário

mxe.int.propagateuser

Propagar o usuário autenticado por meio de uma fila deentrada. Quando configurado como 1 (true), o usuário damensagem de integração é salvo com a mensagem da filae usado durante o processamento da mensagem porqueele é processado a partir da fila para os objetos denegócios.

0 Administrador Global,administrador de locatário

mxe.int.savemessage

Indica a mensagem JMS salva.0 Administrador Global,

administrador de locatário

mxe.int.setclobasaln

Controla o truncamento dos caracteres que são enviadospara as tabelas de interface.

0 Administrador Global,administrador de locatário

mxe.int.textqualifier

O qualificador de texto do arquivo simples é o valorpadrão do qualificador de texto na ativação daimportação de aplicativo e na importação de dados.

" Administrador Global,administrador de locatário

mxe.int.updatecoafromglcomp

Atualiza o Plano de Contas que contém um componenteidentificado. Quando configurado para 1 (verdadeiro), oprocessamento dos dados do componente contábil deentrada inicia atualizações relacionadas a quaisquer dadosdo plano de contas que façam referência ao componentecontábil.

1 Administrador Global,administrador de locatário

174 Integrando Dados a Aplicativos Externos

Page 181: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tabela 30. Propriedades de integração gerais (continuação).

Propriedade Descrição Valor padrãoQuem pode editar apropriedade?

mxe.int.usescientific

Usa anotação científica para valores duplos.1 Administrador Global,

administrador de locatário

mxe.int.validatexmltext

Valida o valor do elemento XML para caracteres XMLinválidos. Quando configurado para 1 (verdadeiro), umamensagem de saída é validada para assegurar que todosos dados da mensagem usem caracteres XML válidos. Semensagens contiverem caracteres inválidos, a operaçãopara e nenhuma mensagem de saída é entregue.

0 Administrador Global,administrador de locatário

mxe.int.whereclausepolicy

Configura a política da cláusula where para uma consultade integração.

analisar Administrador Global,administrador de locatário

mxe.int.adminfromemail

O endereço de email DE administração de integração, queé usado como o endereço de email De, quando aintegração inicia um email. Deve ser um formato deendereço de email válido, como [email protected].

Administrador do locatário

mxe.int.admintoemail

O endereço de email PARA administração de integração,que é usado como o endereço de email Para, quando aintegração inicia um email. Deve ser um formato deendereço de email válido, como [email protected]. Épossível fornecer mais de um endereço de email em umalista separada por vírgula.

Administrador do locatário

Propriedades de integração do REST

Para ver uma lista de propriedades de integração da API REST, especifiquemxe.rest como um termo de filtro no aplicativo Propriedades do sistema. Parapropriedades booleanas (true/false), um valor igual a 0 significa false e um valorigual a 1 significa true.

Tabela 31. Propriedades de integração de API RESTPropriedade Descrição Valor padrão

mxe.rest.format.json.mimetypes Os tipos MIME suportados pelo REST paraJSON.

aplicativo/json

mxe.rest.format.xml.mimetypes Os tipos MIME suportados pelo REST paraJSON.

aplicativo/xml,texto/xml

mxe.rest.handler.mbo O manipulador de recursos de MBO doREST.

com.ibm.tivoli.maximo.rest.MboResourceRequestHandler

mxe.rest.handler.os O manipulador de recursos de estrutura deobjeto REST.

com.ibm.tivoli.maximo.rest.OSResourceRequestHandler

mxe.rest.handler.ss O manipulador de recursos de serviçopadrão do REST.

com.ibm.tivoli.maximo.rest.MaxServiceResourceRequestHandler

mxe.rest.serializer.mbo.imglib.image

O serializador REST para imagelib MBOpara o formato de imagem.

com.ibm.tivoli.maximo.rest.ImageLibSerializer

mxe.rest.serializer.mbo.json O serializador REST para MBO para oformato JSON.

com.ibm.tivoli.maximo.rest.MboJSONSerializer

mxe.rest.serializer.mbo.xml O serializador REST para MBO para oformato XML.

com.ibm.tivoli.maximo.rest.MboXMLSerializer

mxe.rest.serializer.os.json O serializador REST para estruturas deobjeto para o formato JSON.

com.ibm.tivoli.maximo.rest.OSJSONSerializer

mxe.rest.serializer.os.xml O serializador REST para estruturas deobjeto para formatos XML.

com.ibm.tivoli.maximo.rest.OSXMLSerializer

mxe.rest.serializer.ss.json O serializador REST para serviços padrãopara o formato JSON.

com.ibm.tivoli.maximo.rest.ServiceMethodResponseJSONSerializer

mxe.rest.serializer.ss.xml O serializador REST para serviços padrãopara o formato xml.

com.ibm.tivoli.maximo.rest.ServiceMethodResponseXMLSerializer

mxe.rest.webappurl Autenticação de token na URL do aplicativoda web.

mxe.rest.mbo.blockaccess Bloqueia acesso à lista separada por vírgulade MBOs.

mxe.rest.mbo.defaultformat O formato padrão do REST para todos osMBOs.

xml

mxe.rest.mbo.imglib.defaultformat O formato padrão do REST para o MBOimglib.

imagem

mxe.rest.os.blockaccess Bloqueia o acesso à lista separada deestruturas de objeto.

10

Integrando Dados a Aplicativos Externos 175

Page 182: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tabela 31. Propriedades de integração de API REST (continuação)Propriedade Descrição Valor padrão

mxe.rest.os.defaultformat O formato padrão do REST para todas asestruturas de objeto.

xml

mxe.rest.ss.defaultformat O formato REST padrão para todas asrespostas do serviço padrão

xml

mxe.rest.supportedformats Os formatos suportados pelo REST parauma resposta.

xmljsonimagem

mxe.rest.whereclausepolicy Configura a política da cláusula where paraconsulta REST.

analisar

Propriedades de integração de OSLC

Para ver uma lista das propriedades de integração do OSLC, especifique mxe.oslccomo um termo de filtro no aplicativo Propriedades do sistema. Para propriedadesbooleanas (true/false), um valor igual a 0 significa false e um valor igual a 1significa true.

Tabela 32. Propriedades de integração de OSLCPropriedade Descrição Valor padrão

mxe.oslc.dfltconsumerversion A versão do OSLC padrão que o consumidor usa. 2

mxe.oslc.dfltversion A versão do OSLC padrão para um provedor OSLC. 2

mxe.oslc.enableprovider Ativa o provedor OSLC. 1

mxe.oslc.idleexpiry Indica o tempo de validação inativo. 300

mxe.oslc.webappurl A URL pública do provedor. http://localhost/maximo/oslc/

mxe.oslc.collectioncount Inclui a contagem total na coleção de OSLC. 0

mxe.oslc.defaultep O Terminal OSLC padrão. OSLCDEFAULT

mxe.oslc.defaultformat O formato padrão para OSLC. oslcjson

mxe.oslc.errorresponse O formato de resposta de erro de OSLC. 1

mxe.oslc.preferproviderdesc Prefere a descrição de provedor OSLC para URLsreconciliadas de registro de recurso

falso

mxe.oslc.prefersmallpreview Prefere a visualização pequena do consumidor de OSLC. falso

mxe.oslc.prettyjson JSON com impressão elegante. 0

mxe.oslc.prettyrdf RDF com impressão elegante. 0

mxe.oslc.prqueryep O terminal de consulta de registro do Provedor. PROVIDERREGISTRY

mxe.oslc.prcreateep Representa o Terminal de Criação de Registro doProvedor.

Configuração de Fila JMSTransações assíncronas que são trocadas usando canais de publicação ou serviçoscorporativos usam filas do Serviço de Mensagens Java (JMS) para trocar dados comum sistema externo.

Para processamento de entrada, quando uma mensagem de serviço corporativo érecebida, a mensagem é gravada imediatamente em uma fila JMS e o responsávelpela chamada do serviço é liberado da transação. A mensagem é processada da filaJMS de entrada, por meio de objetos de negócios do aplicativo, e salva no banco dedados. As mensagens permanecem em uma fila de entrada até serem processadasou até serem excluídas da fila. Uma estratégia comum para implementação de filade entrada é isolar as filas e os consumidores de fila para um servidor separado oucluster de servidores. Essa estratégia assegura que o processamento de mensagensde entrada não tem um impacto de desempenho em usuários do aplicativo.

Para processamento de saída, mensagens enviadas usando um canal de publicaçãosão gravadas em uma fila JMS e o usuário que iniciou a mensagem é liberado datransação. A mensagem é processada da fila JMS de saída usando o terminalconfigurado e é entregue ao aplicativo externo. Mensagens permanecem na fila desaída até serem entregues com sucesso ao aplicativo externo ou serem excluídas dafila.

176 Integrando Dados a Aplicativos Externos

Page 183: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Há três filas de mensagens padrão:v Uma fila sequencial de saídav Uma fila sequencial de entradav Uma fila contínua de entrada

Uma implementação de fila JMS pode operar em um único servidor de aplicativosou entre um cluster de servidores de aplicativos.

Criando e Configurando uma FilaÉ possível usar uma única fila JMS para diversos sistemas externos ou criar umafila separada para cada sistema externo usado. A criação e configuração de filaenvolve diversas etapas. É possível usar as filas padrão ou criar filas adicionais,dependendo de seus requisitos de integração.

Sobre Esta Tarefa

Filas separadas são usadas para suportar transações de saída e transações deentrada. Configure uma fila para suportar transações de entrada ou de saída, nãoambas. Configure filas de saída para usar com canais de publicação e configurarfilas de entrada para uso com servidores corporativos.

Procedimento1. Crie e configure a fila de mensagens no servidor de aplicativos. As filas JMS

podem ser configuradas automaticamente ou manualmente no WebSphereApplication Server. As filas JMS devem ser configuradas manualmente noWebLogic Server.

2. No aplicativo Sistemas Externos, inclua propriedades na fila. É possível criarfilas adicionais para atender às necessidades do sistema. Se as filas padrão nãoforem usadas, use um provedor de servidor de aplicativos para a configuraçãoda fila.

3. No aplicativo Sistemas Externos, configure o sistema externo e os serviçoscorporativos para usar as filas.

Propriedades da Fila:

No aplicativo Sistemas Externos, é possível configurar diversas propriedades paracada fila JMS.

Propriedade Descrição

Nome JNDI da Fila Faz referência ao nome de Java Naming andDirectory Interface (JNDI) configurado noservidor de aplicativos. Um valor padrão éfornecido.

Nome do Factory de Conexão da Fila Faz referência ao nome do ConnectionFactory configurado no servidor deaplicativos. Um valor padrão é fornecido.

Fábrica em Contexto Inicial Um valor que você deve configurar quandoas filas padrão não são usadas e umservidor de aplicativos fornecido não éusado.

URL do Fornecedor Um valor que você deve configurar quandoas filas padrão não são usadas e umservidor de aplicativos fornecido não éusado.

Integrando Dados a Aplicativos Externos 177

Page 184: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Propriedade Descrição

ID do Usuário O ID do usuário configurado quando a fila éassegurada no servidor de aplicativos.

Senha A senha configurada quando a fila éassegurada no servidor de aplicativos ou noID do usuário.

De entrada Identifica se a fila é usada paraprocessamento de entrada. Se o valor deentrada for nulo, o sistema usa a fila paraprocessamento de saída.

Sequencial Identifica se a fila é usada uma filasequencial. Se o valor sequencial for nulo, osistema usa a fila para processamento de filacontínua.

Compactar Identifica se as mensagens são compactadasquando são gravadas na fila edescompactadas quando são puxadas da fila.A compactação fornece tamanhos demensagens reduzidos de forma significativa.As APIs Java Inflater e Deflater (java.util.zip)são usadas para compactação.

Contagem de Tentativas Máximas Identifica quantas vezes a estrutura deintegração tenta reprocessar uma mensagemapós ela encontrar um erro. O sistemacontinua a tentar novamente a mensagematé o valor da contagem ser atendido. Ovalor dessa propriedade deve serconfigurado para zero quando uma fila deerros for implementada.

Filas SequenciaisA fila sequencial é uma fila JMS que usa uma tarefa Cron do sistema predefinidapara consumir mensagens. Mensagens em filas sequenciais são processadas emuma base rígida de primeira a entrar, primeira a sair, assegurando que asmensagens sejam processadas na ordem que são geradas e recebidas.

Quando uma mensagem resulta em um erro, o sistema gera um erro que pode sergerenciado no aplicativo Reprocessamento de Mensagem e não processamensagens subsequentes na fila até o erro ser limpo.

Você pode configurar duas filas sequenciais do sistema para processamento demensagens de entrada e saída. Uma tarefa cron predefinida,JMSQSEQCONSUMER, pesquisa as filas. Existem duas instâncias da tarefa, umaque pesquisa a fila de entrada e uma que pesquisa a fila de saída. Se filassequenciais adicionais forem criadas, é possível configurar instâncias adicionais datarefa Cron para apontar para as filas adicionais.

A tabela a seguir lista os parâmetros da tarefa Cron que podem ser configurados.

Parâmetro Descrição

MESSAGEPROCESSOR A classe Java que processa a mensagem a partir da fila. O sistemafornece esta classe.

QUEUENAME Nome JNDI da fila, quando a fila é criada no servidor deaplicativos.

178 Integrando Dados a Aplicativos Externos

Page 185: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Parâmetro Descrição

SELECTOR A cláusula WHERE para configurar uma instância da tarefa Cronpara processar um subconjunto de mensagens na fila. Esseparâmetro é opcional.

TARGETENABLED Assegure-se de que o valor esteja no padrão de 0 (false). Afuncionalidade deste sinalizador é substituída pela funcionalidadedonotrun. Use o parâmetro donotrun na estrutura da tarefa Cronpara controlar em quais servidores a tarefa Cron é executada.

Filas ContínuasUma fila contínua é uma fila JMS com um bean acionado por mensagens (MDB)como um consumidor. Uma fila contínua é predefinida somente para serviçoscorporativos e usa processamento multiencadeado para fornecer melhordesempenho do sistema. Uma fila contínua não garante a ordem de processamentodas mensagens como no caso de uma fila sequencial.

Quando o processamento de mensagens resultar em um erro que possa sergerenciado no aplicativo de reprocessamento de mensagens, o sistema gerará umamensagem de erro e, em seguida, continuará o processamento de mensagenssubsequentes na fila. Há uma fila contínua padrão para processar mensagens deentrada. É possível optar por implementar filas contínuas adicionais, dependendode seus requisitos de integração.

Ativando Beans de Mensagens:

Os beans de mensagens do servidor de aplicativos agem como o consumidor demensagens de uma fila contínua. Para ativar beans de mensagens para suportarema fila contínua, você deve remover o comentário das linhas dos arquivos deimplementação XML no servidor de aplicativos.

Procedimento

1. Para ambientes WebSphere Application Server e WebLogic Server, remova ocomentário das linhas de código no arquivo ejb-jar.xml localizado na pasta...\applications\maximo\mboejb\ejbmodule\META-INF\:<!-- MEA ejb for MDB<message-driven id="MessageDriven_JMSContQueueProcessor_1"><ejb-name>JMSContQueueProcessor-1</ejb-name><ejb-class>psdi.iface.jms.JMSContQueueProcessor</ejb-class><transaction-type>Container</transaction-type><message-destination-type>javax.jms.Queue</message-destination-type><env-entry><env-entry-name>MESSAGEPROCESSOR</env-entry-name><env-entry-type>java.lang.String </env-entry-type><env-entry-value>psdi.iface.jms.QueueToMaximoProcessor</env-entry-value></env-entry></message-driven>

--><!-- MEA ejb for MDB<container-transaction><method><ejb-name>JMSContQueueProcessor-1</ejb-name><method-name>*</method-name></method><trans-attribute>Required</trans-attribute></container-transaction>-->

2. Remova o comentário das linhas a seguir no arquivo ...\applications\maximo\mboejb\ejbmodule\META-INF\ibm-ejb-jar-bnd.xmi em um ambiente doWebSphere Application Server:<!-- MEA ejb for MDB<ejbBindings xmi:type="ejbbnd:MessageDrivenBeanBinding"xmi:id="MessageDrivenBeanBinding_1"

activationSpecJndiName="intjmsact"><enterpriseBean xmi:type="ejb:MessageDriven"

href="META-INF/ejb-jar.xml#MessageDriven_JMSContQueueProcessor_1"/></ejbBindings>-->

3. Remova o comentário das linhas a seguir no arquivo ...\applications\maximo\mboejb\ejbmodule\META-INF\weblogic-ejb-jar.xml em um ambiente doWebLogic Server:

Integrando Dados a Aplicativos Externos 179

Page 186: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

<!-- MEA MDB<weblogic-enterprise-bean><ejb-name>JMSContQueueProcessor-1</ejb-name><message-driven-descriptor><pool><max-beans-in-free-pool>3</max-beans-in-free-pool></pool><destination-jndi-name>jms/maximo/int/queues/cqin</destination-jndi-name><connection-factory-jndi-name>jms/maximo/int/cf/intcf

</ connection-factory-jndi-name></message-driven-descriptor><transaction-descriptor><trans-timeout-seconds>600</trans-timeout-seconds></transaction-descriptor><jndi-name>JMSContQueueProcessor-1</jndi-name></weblogic-enterprise-bean>-->

4. Após fazer mudanças os arquivos XML, você deve reconstruir o arquivo EAR ereimplementá-lo no servidor de aplicativos para que as mudanças tenhamefeito.

Desempenho da Fila Contínua:

Para melhorar o desempenho da fila, é possível aumentar o número de beansacionados por mensagens para uma fila e introduzir servidores de aplicativosadicionais em um cluster. Como o processamento de mensagens é multiencadeado,podem ocorrer erros devido à ordem aleatória de processamento.

Os exemplos a seguir descrevem erros que podem ocorrer. Em ambos os cenários,o processamento de gerenciamento de erro de integração pode reprocessar comsucesso o erro antes de o administrador do sistema poder revisá-lo.

Por exemplo, você está fazendo um carregamento em lote de um grande volumede mensagens de item e de inventário na fila contínua e diversos registros deinventário existem para o mesmo número de item. Se uma mensagem deinventário para o Item A for processada antes de a mensagem de item que inclui oItem A no sistema ser processada, a mensagem de inventário produz um erro, poiso Item A não existe. O processamento continua com a próxima mensagem.

Eventualmente, a mensagem de item para o Item A é processada e o Item A éincluído no sistema. A mensagem com falha pode então ser processada comsucesso. Nesse caso, o erro é corrigido sem intervenção manual.

Esse tipo de situação pode ocorrer quando mensagens relacionadas são carregadasna fila contínua ao mesmo tempo. Essa situação ocorre mais provavelmentequando o volume de transações é alto, mas também pode ocorrer sempre que duasmensagens processarem dados relacionados simultaneamente.

Por exemplo, duas mensagens tentam atualizar o mesmo registro do sistema aomesmo tempo. Uma mensagem é bem-sucedida e a outra falha. No entanto, oprocessamento de gerenciamento de erro do sistema deve processar a segundamensagem após a primeira atualização ser concluída.

Configurando Beans de Mensagens:

Extensões específicas do servidor controlam o número máximo de bean que podemser criados.

Configurando Beans de Mensagens no WebSphere Application Server:

Por padrão, o servidor está configurado para ter cinco beans acionados pormensagens.

180 Integrando Dados a Aplicativos Externos

Page 187: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Procedimento

1. No console administrativo, selecione a especificação de ativação de JMS.2. Selecione intjmsact.3. Especifique um valor no campo Número Máximo de Terminais Simultâneos.

Configurando Beans de Mensagens no WebLogic Server:

Por padrão, o WebLogic Server está configurado para ter três beans acionados pormensagens.

Procedimento

1. Abra o arquivo weblogic-ejb-jar.xml em um editor de texto.2. Procure as linhas de código a seguir:

<pool><max-beans-in-free-pool>3</max-beans-in-free-pool></pool>

3. Substitua o valor 3 por um valor diferente se necessário. Inicie com um númerorelativamente baixo de beans acionados por mensagens e monitore odesempenho.

4. Modifique o arquivo para aumentar o número de beans acionados pormensagens de forma incremental até estar satisfeito com o desempenho deprocessamento das mensagens na fila contínua.

O que Fazer Depois

Se o desempenho do sistema estiver fraco, é possível resolver alguns problemas dedesempenho do sistema armazenando servidores em cluster e isolando oprocessamento de mensagem de entrada para um cluster de servidores específico.

Armazenamento em Cache de Mensagem:

O processamento de fila contínua usa a propriedade Tamanho Máximo do Lote,sob a definição Especificação de Ativação, para controlar o número de mensagensrecebidas do mecanismo do sistema de mensagens em um único lote.

Se três beans acionados por mensagens forem ativados e o tamanho do lote for 10,até 30 mensagens podem ser armazenadas em cache. Teste com diferentes valorespara assegurar que o valor configurado não afete usuários do aplicativo ouprocessos do servidor.

Um número ilimitado de mensagens pode ser processado quando o valor TamanhoMáximo do Lote é configurado para -1 em um ambiente do WebLogic Server.

Se você planeja usar uma fila de erros do WebSphere Application Server, use ovalor padrão para o tamanho do lote.

Configurando uma Fila de Erros para a Fila Contínua:

É possível implementar uma fila de erros no servidor de aplicativos que move umamensagem da fila principal para uma fila secundária quando uma mensagem entraem erro. A menos que seu cenário de integração suporte um volume de mensagensmuito baixo, configure uma fila de erros para suportar processamento demensagens por meio da fila contínua.

Uma fila contínua usa MDBs para consumir mensagens. Quando uma mensagementra em erro, os MDBs continuam a consumir as mensagens em erro, mesmo após

Integrando Dados a Aplicativos Externos 181

Page 188: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

as mensagens atingirem a contagem de tentativa máxima configurada paraprocessamento. A seleção contínua dessas mensagens consome recursos do sistemae pode tornar mais lento, ou até mesmo impedir, o processamento de outrasmensagens. Configurar uma fila de erros para a fila contínua ajuda a evitar atrasosde desempenho ou gargalos de transações passando mensagens em erro para umafila secundária.

Configurando uma Fila de Erro no WebSphere Application Server:

É possível configurar uma fila contínua para que tenha uma fila de erroscorrespondente. Se uma mensagem encontrar um erro, ela é movida para fora dafila contínua para a fila de erros quando o número de novas tentativas configuradono parâmetro de número máximo de entregas com falha for atingido. A filacontínua processa então novas mensagens da fila.

Sobre Esta Tarefa

O provedor do sistema deve executar essa tarefa em nome do locatário.

Procedimento

1. Configure um destino de fila de erros dentro do mesmo membro dobarramento em que a fila contínua reside.

2. Configure a definição de destino de fila contínua para ter um destino daexceção. O destino da exceção deve apontar para o destino de fila de errosdefinido.

3. Na fila de erros, inclua um destino da exceção que aponte para ela mesma.Erros da fila de erros são movidos da parte superior da fila de erros para aparte inferior da fila de erros. Mensagens em erro são tentadas novamente deforma contínua.

4. Abra o arquivo ejb-jar.xml em um editor de texto para ativar a propriedadeMDBDELAY. Para evitar o uso excessivo de recursos do sistema durante oreprocessamento da mensagem, a propriedade MDBDELAY atrasa oprocessamento de mensagens.

5. Remova comentário das linhas a seguir de código e configure um valorapropriado:<env-entry><env-entry-name>MDBDELAY</env-entry-name><env-entry-type>java.lang.Long </env-entry-type><env-entry-value>30000</env-entry-value></env-entry>

O valor padrão é 30 segundos (30000 milissegundos).6. Abra o arquivo ibm-ejb-jar-bnd.xmi e remova o comentário das linhas de

código a seguir para ativar os beans acionados por mensagens na fila de erros.<!-- MEA MDB for error queue<ejbBindings xmi:type="ejbbnd:MessageDrivenBeanBinding"xmi:id="MessageDrivenBeanBinding_1"

activationSpecJndiName="intjmsacterr"><enterpriseBean xmi:type="ejb:MessageDriven"href="META-INF/ejb-jar.xml#MessageDriven_JMSContQueueProcessor_2"/>

</ejbBindings>-->

Erros de Fila Contínua no WebLogic Server:

A fila do WebLogic Server tem uma propriedade de atraso de nova entrega quepode controlar como mensagens em erro são reprocessadas. A propriedade deatraso de nova entrega representa o tempo entre quando a mensagem relata umerro e quando a mensagem é reprocessada.

182 Integrando Dados a Aplicativos Externos

Page 189: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Não é possível visualizar a mensagem na fila pela quantia de tempo especificadana propriedade de atraso de nova entrega. O atraso de nova entrega melhora odesempenho do sistema. Mensagens diferentes das mensagens em erro podem serprocessadas pela quantia de tempo definida na propriedade de atraso de novaentrega. O atraso de processamento se aplica à mensagem e não ao encadeamentoque processa a mensagem.

Se a propriedade de tamanho de lote for configurada para -1 (ilimitado) e apropriedade de atraso de nova entrega para 30 segundos (30.000 milissegundos),novas mensagens podem ser processadas na fila. O processamento continuamesmo quando um grande número de erros está sendo processado.

O mesmo connection factory é usado para as filas sequencial e contínua. Paraevitar problemas de processamento de consumidor sequencial, configure o valor deatraso de nova entrega na configuração da fila de destino. Não configure aconfiguração do nível do connection factory.

Se o número de vezes que uma mensagem em erro é processada exceder acontagem de tentativas configurada, a mensagem para o processamento éredirecionada para gerenciamento de erro.

Como alternativa, é possível implementar uma fila de erros. Para implementaruma fila de erros, você deve remover comentário das entradas para a fila de errosnos arquivos ejb-jar.xml e weblogic-ejb-jar.xml.

Formato da Mensagem de FilaMensagens que são carregadas nas filas JMS pela estrutura de integração possuemcomponentes e formatos definidos. O corpo da mensagem contém a mensagemXML que é processada no sistema ou enviada para o sistema externo.

Cabeçalho da Mensagem

O cabeçalho da mensagem pode conter os valores de ID de mensagem de JMS e decabeçalho JMS padrão.

Cabeçalho Descrição

JMSMessageID Um ID de mensagem gerado pelo sistema.

JMSRedelivered Identifica se a mensagem foi reprocessada.

Propriedades de Mensagens

As propriedades contêm as propriedades a seguir do provedor JMS e da estruturade integração. As propriedades da estrutura de integração são do tipo de dados desequência.

Propriedade Descrição

MEAMessageID O ID de mensagem gerado pela estrutura de integração.

destjndiname O nome da fila ou tópico no qual a menagem é gravada.

INTERFACE O nome do canal de publicação (fila de saída) e do serviçocorporativo (fila de entrada).

destination O nome do sistema externo para mensagens de saída.

SENDER O nome do sistema externo para as mensagens de entrada.

USER O nome do usuário que está associado à mensagem de integraçãode entrada. Esse valor pode ser usado para segurança deautorização se necessário.

Integrando Dados a Aplicativos Externos 183

Page 190: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Propriedade Descrição

compressed Indica se a mensagem está compactada. Valores podem serverdadeiros ou falsos; o valor padrão é falso.

As APIs Java Inflater e Deflater (java.util.zip) são usadas paracompactação.

uncompressed_length Armazena o tamanho de carga útil da mensagem original antes dacompactação. Este valor deve estar em conformidade com o tipo deesquema int [xsd:int] e está presente somente quando apropriedade compactada é configurada como true.

MSG_TRK_ENABLED Valor interno.

MSG_OP_MODE O nome de terminal para as mensagens de saída. A sequênciaMXJMS fixa para mensagens de entrada.

MSG_TRK_STORE_MSG Valor interno.

MSG_TRK_EXTSYS O nome do sistema externo para mensagens de saída e de entrada.

Msgkeyval Uma chave de mensagem de nome de campo.

searchfieldval Um valor do campo de procura separado por vírgula.

msgoperation Indica se o canal de publicação ou serviço corporativo contém umaoperação sincronizar, criar, atualizar ou excluir.

msgstatus Indica se a mensagem tem um valor do status RECEIVED, ERROR,DELETED ou PROCESSED.

msgerrmsg Contém o texto da mensagem de exceção.

Mensagens no Formato de Texto:

As mensagens que são gravadas em uma fila pela estrutura de integração estão noformato de byte por padrão. É possível usar o aplicativo Sistemas Externos paraassegurar que as mensagens no formato de texto também sejam suportadas.

Para suportar mensagens no formato de texto, selecione a caixa de seleção Texto najanela Incluir/Modificar Fila no aplicativo Sistemas Externos. Quando uma fila éconfigurada para suportar mensagens no formato de texto, todas as mensagenssubsequentes que são gravadas na fila por um componente de integração estão noformato javax.jms.TextMessage em vez de no formato javax.jms.BytesMessage padrão.

Quando a fila é configurada para mensagens no formato de texto, o campoCodificação da Mensagem de Texto no aplicativo Sistemas Externos identifica acodificação de mensagens formatadas em texto em qualquer uma das filas deentrada configuradas para o sistema externo. Quando nenhum valor é fornecido,assume-se que as mensagens são codificadas em UTF-8. As mensagens que sãogravadas na fila de saída são sempre codificadas com UTF-8.

Seletores de FilaSeletores agem como cláusulas WHERE no consumidor de fila JMS. Seletorespodem ser aplicados a cabeçalhos de mensagens e propriedades em uma filacontínua ou sequencial.

A tabela a seguir lista como é possível usar seletores contínuos no consumidor defila JMS.

Tipo de fila Onde identificar o seletor

Fila Sequencial Especificado como uma propriedade da tarefa Cron.

Fila Contínua Especificado no código ejb-jar.xml do bean acionado pormensagens.

A aplicação de seletores divide uma fila em filas menores, cada uma das quaiscontendo um subconjunto de dados que cada tarefa Cron ou bean acionado pormensagens usa. Um erro em um subconjunto dos dados não para o processamentonos outros em uma fila sequencial.

184 Integrando Dados a Aplicativos Externos

Page 191: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Apesar de seletores fornecerem flexibilidade na separação do processamento detransações, eles afetam o desempenho de processamento de pesquisa. Dependendodo volume das transações, é possível preferir implementar diversas filas em vez deuma fila com diversos seletores. Diversas filas geralmente fornecem melhordesempenho.

É possível incluir a instrução a seguir na propriedade SELECTOR da instânciaSEQQIN de JMSQSEQCONSUMER para instruir a tarefa Cron para processar astransações MXPOInterface e MXPRInterface a partir do sistema externocorrespondente:SENDER=’EXTSYS1’ and INTERFACE in ('MXPOInterface’,'MXPRInterface’)

Inclua o conteúdo a seguir na configuração do bean de mensagem no arquivoejb-jar.xml para instruir o bean acionado por mensagens para processar astransações MXPOInterface e MXPRInterface a partir do sistema externocorrespondente:<message-selector>

SENDER=’EXTSYS1’ AND INTERFACE IN ('MXPOInterface’, 'MXPRInterface’)</message-selector>

Se dois sistemas externos enviarem dados a uma fila sequencial de entrada, umerro em qualquer registro para o processamento de todas as transações nessa filapara manter uma ordem de processamento de primeira a entrar, primeira a sair.Crie diversas instâncias de uma tarefa Cron, cada uma com um seletor queprocesse um sistema externo diferente, para evitar que um erro em um sistemapare transações do segundo sistema.

Assegure que as cláusulas where dos seletores identifiquem os conjuntos detransações mutuamente exclusivos em uma fila sequencial. Inclua todas astransações inseridas nas filas para assegurar que todas as mensagens sejamprocessadas em uma ordem de primeira a entrar, primeira a sair.

Visualizando e Excluindo Mensagens de uma Fila JMSÉ possível visualizar uma lista das mensagens em uma fila JMS, fazer downloaddessas mensagens para visualizar seu conteúdo e é possível excluir mensagens defilas configuradas. Ao visualizar ou excluir mensagens, é possível aplicar umseletor para limitar as mensagens retornadas para processamento.

Sobre Esta Tarefa

As mensagens que estão sendo processadas atualmente para uma fila contínua porum bean acionado por mensagens ou para uma fila sequencial por uma tarefaCron JMS não estão disponíveis para visualização ou exclusão. É possível desativara tarefa Cron para parar o processamento de mensagens para uma fila sequencial.Os beans acionados por mensagens processam mensagens de forma contínua e onúmero de mensagens que estão sendo processadas pode variar. A menos que vocêdesative beans acionados por mensagens, é provável que nem todas as mensagenspossam ser visualizadas ou excluídas. Se você visualizar ou excluir mensagensenquanto beans acionados por mensagens estão ativados, é possível que nem todasas mensagens estejam disponíveis para processamento.

Procedimento1. No aplicativo Sistemas Externos, selecione a ação Incluir/Modificar Filas.2. Selecione uma fila e clique no botão Visualizar dados da fila ou no botão

Excluir dados da fila.

Integrando Dados a Aplicativos Externos 185

Page 192: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

3. Opcional: Se você selecionar a opção Visualizar Dados da Fila, é possívelespecificar um número no campo Contagem para limitar o número de registrosa visualizar e é possível selecionar o campo Somente Contagem se quisersomente saber quantas mensagens estão atualmente na fila.

4. Opcional: Especifique um dos seletores a seguir se quiser filtrar os registrosretornados na janela Visualizar Dados da Fila ou na janela Excluir Dados daFila:

Opção Descrição

MEAMessageID ID da mensagem (aplica-se a mensagens deentrada e de saída).

INTERFACE O nome do serviço corporativo paramensagens de entrada ou o nome do canalde publicação para mensagens de saída.

destination O nome do sistema externo somente parafilas de saída.

SENDER O nome do sistema externo somente parafilas de entrada.

USER O usuário fornecido com a mensagem. Essevalor é opcional e se aplica somente amensagens de entrada.

Os valores de seletores fazem distinção em maiúsculas e minúsculas e vocêdeve colocar o valor do seletor entre aspas simples, por exemplo,INTERFACE='MXPERSONInterface'.

Configurando Filas com o WebSphere MQÉ possível usar o IBM WebSphere MQ para configurar e gerenciar atividades deenfileiramento. A estrutura de integração suporta o WebSphere MQ Versão 6.Conceitos relacionados:“Mensagens no Formato de Texto” na página 184As mensagens que são gravadas em uma fila pela estrutura de integração estão noformato de byte por padrão. É possível usar o aplicativo Sistemas Externos paraassegurar que as mensagens no formato de texto também sejam suportadas.

Configurando Terminais e Manipuladores JMS:

Mensagens de saída em um canal de publicação são colocadas na fila padrão evocê deve configurar o terminal e manipulador JMS para enviar a mensagem aoWebSphere MQ.

Procedimento

1. Crie um provedor WebSphere MQ no WebSphere Application Server econfigure um terminal de integração para apontar para o provedor de fila demensagens (MQ) usando:a. O nome JNDI de destino (DESTJNDINAME)b. O nome JNDI do connection factory (CONFACTORYJNDINAME)

2. Configure o terminal para apontar para o WebSphere MQ usando:a. O nome JNDI de destino (DESTJNDINAME)b. O nome JNDI do connection factory (CONFACTORYJNDINAME)c. A URL do provedor (PROVIDERURL)d. O factory de contexto inicial (CONTEXTFACTORY)

186 Integrando Dados a Aplicativos Externos

Page 193: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Configurando Filas de Integração e o Provedor WebSphere MQ:

Para substituir filas da estrutura de integração por filas do WebSphere MQ,configure as filas no WebSphere Application Server e inclua essas definições de filano aplicativo Sistemas Externos.

Procedimento

1. Crie a fila JMS definindo um provedor alternativo para substituir o provedorpadrão.

2. Crie uma fila proxy no WebSphere Application Server usando o provedorWebSphere MQ que aponta para a fila do servidor de fila de mensagens (MQ).

3. Na janela de diálogo Incluir/Modificar Filas no aplicativo Sistemas Externos,inclua valores nos campos Nome JNDI de Fila e Connection Factory paraapontarem para a fila proxy e o connection factory.

Resultados

Mensagens de saída destinadas à fila padrão são entregues à fila de mensagens(MQ) e as mensagens de saída são recuperadas da fila de mensagens (MQ).

Gerenciamento de ErroA estrutura de integração suporta diversos formatos de mensagens, protocolos paratroca de mensagens e processamento de mensagens síncronas e assíncronas. Ogerenciamento de erros requer diversas opções para atender as configurações deimplementação variadas que é possível escolher.

Filas JMS são usadas pela estrutura de integração como um mecanismo detemporariedade para mensagens de entrada e saída. O gerenciamento de erro defila é iniciado quando uma condição de erro é identificada e é possível visualizar,corrigir, cancelar e reprocessar mensagens problemáticas.

Gerenciamento de Erro Não de FilaAo iniciar o processamento síncrono de mensagens de integração de entrada ousaída, você é notificado sobre quaisquer erros no momento da execução.

O gerenciamento de erros não de fila é necessário se ocorrer um erro quando umamensagem síncrona estiver sendo processada. Para mensagens de entrada, em vezde depender de uma fila de erros, a estrutura de integração responde de formasíncrona ao responsável pela chamada do processo com uma mensagem de erro. Oaplicativo de chamada deve receber a resposta, corrigir o erro e tentar a transaçãonovamente.

Use o log do sistema para solucionar problemas de erros de transação síncrona. Olog do sistema contém a exceção de processamento que a estrutura de integraçãoemite para o responsável pela chamada do processo.

Gerenciamento de Erro Baseado em FilaÉ possível usar o aplicativo Reprocessamento de Mensagem para gerenciarmensagens de integração assíncronas de entrada e saída errôneas que usam filasJMS.

Erros que ocorrem quando uma mensagem é enviada de uma fila para um sistemaexterno são geralmente causados por uma falha de comunicação ou um problemacom configuração do banco de dados ao gravar nas tabelas ou arquivos de

Integrando Dados a Aplicativos Externos 187

Page 194: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

interface. Erros que ocorrem durante processamento de entrada são geralmente umresultado de validações de regra de negócios ou da lógica de processamento deentrada da estrutura de integração.

A fila sequencial processa mensagens uma por vez, em uma sequência de primeiraa entrar, primeira a sair. Quando a estrutura de integração encontrar um erro noprocessamento de uma mensagem em uma fila sequencial, de entrada ou saída, omecanismo de gerenciamento de erros será iniciado e a mensagem será sinalizadacomo tendo um erro. Mensagens subsequentes na fila não são processadas até amensagem em erro ser resolvida ou excluída. Como resultado, somente um únicoerro pode existir em uma fila sequencial.

A fila contínua somente manipula o processamento de entrada e processamensagens em um modo multiencadeado. Quando ocorre um erro na fila contínua,o gerenciamento de erro é iniciado e a mensagem é sinalizada como tendo umerro. A estrutura de integração continua a processar mensagens subsequentes nafila. Portanto, podem existir diversos erros em uma fila contínua.

Dependendo da configuração do sistema, a estrutura de integração faz diversastentativas de reprocessar a mensagem, para cada tipo de fila, antes de determinarque um erro requer intervenção. O sistema também executa as atividades a seguirao encontrar um erro:v Envia uma notificação a uma conta de email especificada, informando o

destinatário que ocorreu um erro. Em um ambiente do IBM WebSphereApplication Server, a estrutura de integração envia um email à conta de emailespecificada toda vez que o servidor de aplicativos for reiniciado com sucesso.

v Cria um registro no aplicativo Reprocessamento de Mensagem. Cria um registroque pode ser visualizado no aplicativo Reprocessamento de mensagem. Esseregistro inclui a mensagem que foi colocada na fila.

Configurando Gerenciamento de ErroPara configurar gerenciamento de erro, você deve configurar propriedades desistema e configurar o sistema externo.

Configurar Propriedades de Gerenciamento de Erro:

Antes de usar a estrutura de integração, configure as propriedades no aplicativoPropriedades de Sistema.

Procedimento

1. Filtre pela propriedade mxe.int.adminfromemail e especifique um endereço deemail, como [email protected]. Esse endereço aparece em notificações deerro que são enviadas pela estrutura de integração. Alguns servidores SMTPrequerem que esse endereço seja um formato de endereço de email válido;alguns servidores aceitam qualquer valor.

2. Filtre pela propriedade mxe.int.admintoemail e especifique um ou maisendereços de email para receber notificação de erros de processamento demensagens. Use vírgulas para delimitar diversos endereços de email. É possívelusar como opção a propriedade de endereço de email no nível da fila parasubstituir o endereço do administrador. Use essa opção se desejar especificardiferentes endereços de email para cada fila. Se um endereço de email não forconfigurado, nenhuma notificação por email é enviada quando ocorrer erros deprocessamento de fila.

188 Integrando Dados a Aplicativos Externos

Page 195: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

3. Filtre pela propriedade mail.smtp.host e especifique um servidor SMTP senenhum tiver sido configurado. Essa propriedade não é exclusiva da estruturade integração e pode ser configurada para outros aplicativos.

Configurando Gerenciamento de Erro no Sistema Externo:

Configure o sistema externo para tratar de gerenciamento de erro.

Procedimento

1. No aplicativo Sistemas Externos, especifique um valor apropriado no campoContagem Máxima de Tentativas. Não há nenhum limite para o número devezes que o sistema tenta novamente a transação. Após a primeira tentativamal sucedida em processar a transação, o administrador do sistema recebe umanotificação e a mensagem é gravada em um arquivo de erro. Este valorgeralmente é configurado como 0 para filas de saída.

2. Especifique um valor no campo Endereço de Email se quiser que mensagensde notificação de erro sejam enviadas a diferentes endereços para cada fila.Você pode inserir diversos endereços, delimitados com uma vírgula (,). O valornessa propriedade substitui o valor na propriedade de endereço de email doadministrador. Se nenhum valor for especificado, notificações por email sãoenviadas aos endereços de email especificados para a propriedade de endereçode email do administrador.

3. Clique em Salvar.

Notificação de ErroQuando uma transação de entrada ou saída resulta em um erro em uma fila, umanotificação por email é enviada ao administrador do sistema somente se nenhumoutro erro não resolvido estiver esperando na mesma fila. Se diversos errosexistirem na fila, o administrador do sistema deve resolver todos eles antes denotificações de novos erros ser enviadas.

Uma mensagem de erro de email inclui um rastreamento de pilha de erro Java.

O mesmo processo de notificação é usado para todos os erros, para filas contínuase sequenciais, para mensagens de entrada e saída e independentemente de se osistema está em execução em um ambiente em cluster ou não em cluster.

O exemplo a seguir descreve notificação de erro para uma fila de entrada contínuaque contém dez mensagens. As quatro primeiras mensagens são processadas comsucesso e um erro ocorre na quinta mensagem. Dependendo do valor configuradopara a propriedade Contagem Máxima de Tentativas para o sistema externo, amensagem pode ser tentada uma ou mais vezes. Se a mensagem continuarcausando um erro, uma notificação por email é enviada ao administrador dosistema e mensagens subsequentes na fila são processadas. Se outro erro ocorrer nasétima mensagem, outra notificação por email não é enviada se o administrador dosistema não tiver resolvido o erro original. Se o administrador do sistema tiverresolvido o erro original e nenhum erro estiver pendente, uma nova notificação poremail é enviada.

Se o erro for encontrado em uma fila sequencial, o processamento é o mesmo queem uma fila contínua, exceto pelo sistema não processar mensagens subsequentesaté a mensagem com o erro original ser resolvida.

Integrando Dados a Aplicativos Externos 189

Page 196: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Diversos erros podem existir somente na fila de entrada contínua. Em umambiente em cluster, o administrador do sistema pode receber uma notificação deerro por email por servidor de aplicativo, dependendo da sincronização dastransações em erro.

Uma condição de exceção incomum pode ocorrer para mensagens de saída quandouma mensagem for salva na fila, mas a confirmação da transação na fila falha. Essaexceção pode ocorrer porque uma conexão com o banco de dados para oarmazenamento de dados JMS não está disponível. Se essa exceção ocorrer, umanotificação será enviada e a mensagem com erro ficará visível no aplicativoReprocessamento de mensagem com o status JMSERROR ou SAVED. Como amensagem não foi salva com sucesso na fila, não será possível configurar o statusda mensagem como RETRY, mas será possível processar a mensagem a partir doaplicativo.

Reprocessamento de MensagensNo aplicativo Reprocessamento de Mensagem, é possível gerenciar mensagens queestão sinalizadas com um erro, inclusive alterando o status da mensagem,corrigindo a mensagem ou excluindo a mesma do banco de dados.

Se rastreamento de mensagem estiver ativado, use o aplicativo Rastreamento deMensagem para determinar quais mensagens controladas são sinalizadas com umerro. Se o rastreamento de mensagem não estiver ativado, é possível verificar errosde transação no aplicativo Reprocessamento de Mensagem.

Valores de Status de Mensagem:

Para alterar o status de uma mensagem, selecione a ação Status da Mudança noaplicativo Reprocessamento de Mensagem. O sistema designa um status para cadamensagem para indicar se está pronta para processamento.

Uma mensagem pode ter um status RETRY ou HOLD:

Status Descrição

RETRY A mensagem está pronta para ser reprocessada pelo sistema.

Suspenso A mensagem não está pronta para ser reprocessada pelo sistema.

O status RETRY é o status padrão para mensagens que estão sinalizadas com umerro. Até você corrigir o problema de processamento, o sistema continua areprocessar a mensagem de acordo com a contagem de novas tentativas da filaconfigurada. Quando a condição de contagem de novas tentativas for atendida, osistema altera o status das mensagens para HOLD.

É possível parar o reprocessamento da mensagem alterando o status da mensagempara HOLD. Um status de retenção evita que o sistema reprocesse a mensagemsinalizada e que atualize as tabelas de banco de dados do sistema.

Mensagens XML com erro:

É possível revisar a mensagem XML gerada quando um erro ocorre e é possívelmodificar o conteúdo da mensagem.

Ao gerenciar um erro no aplicativo Reprocessamento de mensagem, é possívelvisualizar as seguintes informações:v O campo Dados de erro contém a mensagem de erro.

190 Integrando Dados a Aplicativos Externos

Page 197: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

v O conteúdo da mensagem contém a mensagem original que foi colocada na filae está causando um erro. É possível editar este elemento.

v Se estiver disponível, o registro interno conterá a representação XML damensagem no momento em que o erro ocorreu. Não é possível editar o registrointerno, mas é possível usá-lo para visualizar se o processamento de integraçãoalterou a mensagem original antes da ocorrência do erro.

O registro interno representa a estrutura de objeto que foi criada duranteprocessamento de serviço corporativo e de saída de usuário. Um registro internosomente estará disponível para transações de entrada e somente quando o serviçocorporativo e o processamento de saída de usuário for concluído com sucesso. Sehouver um registro interno disponível, ele somente será fornecido comoinformação e não poderá ser alterado.

A seguir há um exemplo de uma mensagem XML de erro:<?xml version="1.0" encoding="UTF-8"?>

<SyncMXPERSON xmlns="http://www.ibm.com/maximo"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"creationDateTime="2014-04-22T14:04:03-04:00"transLanguage="EN" baseLanguage="EN" messageID="11798570432187483"maximoVersion="7 6" event="1" messageid="11798570432652428">

<MXPERSONSet><PERSON action="Update">...</PERSON>

</MXPERSONSet></SyncMXPERSON>

A seguir há um exemplo de uma mensagem XML de registro interno:<?xml version="1.0" encoding="UTF-8"?>

<SyncMXPERSON xmlns="http://www.ibm.com/maximo"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"creationDateTime="2014-04-22T14:04:03-04:00"transLanguage="EN" baseLanguage="EN" messageID="11798570432187483"maximoVersion="7 6" event="1" messageid="11798570432652428">

<MXPERSONSet><PERSON action="Update">...</PERSON>

</MXPERSONSet></SyncMXPERSON>

</IR></ERROR>

Erros Críticos:

Erros críticos são exceções de processamento que o processo de correção de erro daestrutura de integração não pode tentar novamente.

Exceções de processamento de transações podem ocorrer quando dados incorretos,como um caractere especial, são persistentes no arquivo XML. Para corrigir umerro crítico, remova os dados incorretos da mensagem XML de erro. É possível verdados incorretos associados a um erro crítico na guia principal do aplicativoReprocessamento de Mensagem.

Corrigindo Erros:

No aplicativo Reprocessamento de Mensagem, é possível reprocessar umamensagem que está em erro ou é possível excluir a mensagem do banco de dados.

Reprocessando uma Mensagem Editada:

É possível visualizar, modificar e reprocessar mensagens no aplicativoReprocessamento de Mensagem. Depois de editar a mensagem XML de erro, épossível salvar ou cancelar as mudanças sem reprocessar a mensagem.

Integrando Dados a Aplicativos Externos 191

Page 198: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Sobre Esta Tarefa

É possível editar somente as mensagens que têm um status HOLD. Se a mensagemtiver um status RETRY, o conteúdo da mensagem é somente leitura.

Procedimento

1. No aplicativo Reprocessamento de Mensagem, selecione a mensagem quedeseja modificar e clique no ícone Detalhes da Mensagem.

2. Na janela Dados de erros, faça as mudanças necessárias para a mensagem.3. Clique em Processar se quiser reprocessar a mensagem. É possível clicar em

Salvar para salvar as mudanças sem reprocessar a mensagem ou é possívelclicar em Cancelar para descartar quaisquer mudanças feitas.

Resultados

Se o processamento for bem-sucedido, o aplicativo Reprocessamento de mensagemexecutará as tarefas a seguir:v Exclui o registro da tabela de mensagens de erro.v Atualiza os atributos DELETEFLAG, CHANGE BY e CHANGE DATE na tabela

de status do erro

O que Fazer Depois

Na janela Detalhes da mensagem, atualize a lista de mensagens sinalizadas comum erro. Se a mensagem for processada com sucesso, ela será eliminada da lista.

Excluindo Mensagens:

É possível excluir mensagens da fila de mensagens de erro. Após excluir umamensagem, ela não pode ser reprocessada.

Procedimento

1. No aplicativo Reprocessamento de Mensagem, selecione os registros demensagens que deseja excluir.

2. Selecione a ação Excluir Mensagem.3. Clique em OK.

Resultados

Quando uma mensagem for excluída, o registro será excluído das tabelasMAXINTERRORMSG e MAXINTERROR. O aplicativo atualiza o conjunto deresultados e omite a listagem da mensagem excluída na guia principal doaplicativo Reprocessamento de Mensagens.

Atualizar Mensagens:

É possível usar o ícone Atualizar no aplicativo Reprocessamento de Mensagenspara atualizar a lista de mensagens. Ao atualizar a lista de mensagens, é possívelverificar o status de listagens de uma mensagem específica.

Se o reprocessamento da mensagem for bem-sucedido, o aplicativo omite aslistagens da mensagem aplicável. Se uma mensagem for excluída, o aplicativoomite a listagem da mensagem excluída.

192 Integrando Dados a Aplicativos Externos

Page 199: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Gerenciamento de erro com a importação de dados baseada emarquivoA estrutura de integração suporta gerenciamento de erro com o aplicativoReprocessamento de Mensagem que permite revisar, corrigir, reprocessar e excluirmensagens que entram em erro quando processadas de uma fila de entrada.Quando dados são importados de um arquivo XML ou de um arquivo simples,fica disponível uma segunda opção que gerencia erros usando um arquivotransferido por download em vez do aplicativo Reprocessamento de mensagem.

O gerenciamento de erro baseado em arquivo é útil ao importar um grandenúmero de mensagens que possam causar um grande número de erros. Ogerenciamento de um grande número de erros em um formato de arquivo pode sermais fácil e mais rápido do que o gerenciamento individual de cada erro noaplicativo Reprocessamento de mensagem.Conceitos relacionados:“Exportando e importando dados baseados em arquivo” na página 216O administrador de integração pode iniciar a exportação e a importação de dadosa partir do aplicativo Sistemas externos para suportar, por exemplo, a integraçãode dados usando arquivos. O processo de importação inclui a capacidade devisualizar um carregamento de dados de um arquivo para validar os dados antesde salvá-los no banco de dados. O processo de importação também inclui umaopção para gerenciar erros que resultam do carregamento de arquivos no mesmoformato de arquivo que o arquivo importado.

Gerenciamento de Erro Baseado em Arquivo:

É possível usar gerenciamento de erro baseado em arquivo com o recurso deimportação de dados. O gerenciamento de erro baseado em arquivo fornece acapacidade de identificar todas as mensagens de integração sinalizadas com umerro e fazer download de um arquivo completo que contém todos os erros. Oarquivo transferido por download está em um formato consistente com o arquivousado para a importação.

Para configurar gerenciamento de erro baseado em arquivo, na janela Importaçãode Dados, selecione a caixa de seleção Gerenciamento de Erro Baseado emArquivo.

Ao selecionar a caixa de seleção Gerenciamento de Erro Baseado em Arquivo edeixar a caixa de seleção Importar Visualização limpa, você recebe uma mensagemdo sistema após as mensagens de entrada serem processadas com sucesso na fila.

A lógica de processamento de entrada identifica erros de processamento emqualquer uma das mensagens no arquivo de origem e disponibiliza as mensagenscom falha para download em um arquivo reprocessável. O aplicativoReprocessamento de Mensagem fornece um recurso para fazer download doarquivo que pode ser reprocessado.

Marcar a caixa de seleção Gerenciamento de erro baseado em arquivo significaque todas as mensagens de integração sinalizadas com um erro somente ficamdisponíveis no arquivo reprocessável e não são exibidas na seção de mensagens doaplicativo de Reprocessamento de mensagens.

Integrando Dados a Aplicativos Externos 193

Page 200: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Configurando Gerenciamento de Erro nas Tarefas Cron de Importação deDados:

É possível configurar o parâmetro ISFILEEXTRACT nas tarefas CronXMLFILECONSUMER e FLATFILECONSUMER para identificar o mecanismos degerenciamento de erros que você deseja usar.

A tabela a seguir contém os valores possíveis para o parâmetro ISFILEEXTRACT:

Valor mecanismo de gerenciamento de erro

0 O gerenciamento de erro é tratado noaplicativo Reprocessamento de Mensagem.

1 O gerenciamento de erro baseado emarquivo é tratado na janela Importação deDados e no arquivo que pode serreprocessado.

O gerenciamento de erro baseado em arquivo significa que todas as mensagens deintegração sinalizadas com um erro somente estão disponíveis no arquivoreprocessável e não são exibidas na seção de mensagens do aplicativoReprocessamento de mensagem.

Informações Extraídas por Gerenciamento de Erro Baseado em Arquivo:

O gerenciamento de erro baseado em arquivo fornece a capacidade de fazerdownload de um arquivo reprocessável contendo todas as mensagens de errooriginadas a partir de um único arquivo de entrada.

A tabela a seguir contém as informações disponíveis na seção Extração de Erro doaplicativo Reprocessamento de Mensagem.

Campo Descrição

Arquivo deImportação

Nome do arquivo de origem que gerou o arquivo responsável.

ServiçoCorporativo

Nome do serviço corporativo que foi usado para importar o arquivo de origem.

Sistema Externo Nome do sistema externo que foi usado para importar o arquivo de origem.

Data deImportação

Data e hora em que o processo de importação de dados iniciou o processamento do arquivo de origem.

ContagemImportada

Número total de mensagens importadas do arquivo de origem original.

ContagemProcessada

Número de mensagens processadas com sucesso.

Contagem de Erros Número de mensagens que têm erros.

Formato deArquivo

Formato do arquivo de origem.

Disponível paraExtração

Identifica se o processamento de entrada do arquivo de origem foi concluído.

Ícone de Extrair O botão de ação que inicia o processo de download de arquivo. Para assegurar que o arquivo de origem foicompletamente processado pelo mecanismo de importação, arquivos estão disponíveis para download somentequando a soma da contagem de erros e da contagem processada for igual à contagem importada.

Ícone de Excluir O botão de ação que exclui o registro selecionado na tabela Extração de Erro. É possível excluir registros de tabelasomente se a soma a contagem de erros e da contagem processada for igual à contagem importada.

Fazendo Download de Arquivos que Podem Ser Reprocessados:

É possível fazer download de um arquivo que pode ser reprocessado e corrigir oserros de processamento identificados no arquivo. Em seguida, será possível tentarrecarregar os arquivos reprocessáveis sem remover nenhuma informação dedescrição de mensagem de erro contida no arquivo.

194 Integrando Dados a Aplicativos Externos

Page 201: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Procedimento

1. No aplicativo Reprocessamento de Mensagem, identifique o arquivo de origema partir do qual você estará fazendo download seus erros correspondentes.

2. Verifique se o arquivo de origem foi integralmente processado pelo processo deimportação de dados. A soma do campo de contagem de erros e do campo decontagem processada deve ser igual ao campo de contagem importada.

3. Clique no ícone de Download.4. Salve o arquivo reprocessável para o cliente ou para um local do servidor de

arquivos acessível.

Formato de Arquivo que Pode Ser Reprocessado:

Ao fazer o download do arquivo reprocessável, ele será fornecido no mesmoformato que o arquivo de entrada original. Se o formato de arquivo simples forusado, o arquivo usa o mesmo delimitador e qualificador de texto. O nome doarquivo padrão para o arquivo que pode ser reprocessado é<UniqueFileIdentifier>_<OriginalFileName>.<OriginalFileExtension>

Exemplo de um Arquivo XML que Pode Ser Reprocessado

Um arquivo que pode ser reprocessado com base em um arquivo XML inclui umelemento adicional no MBO principal da estrutura de objeto original. Por exemplo,um arquivo que pode ser reprocessado gerado com base em informaçõesMXASSET inclui o elemento MAXINTERRORMSG como parte dos elementos deativos.<?xml version="1.0" encoding="UTF-8"?>

<SyncMXASSET xmlns="http://www.ibm.com/maximo" transLanguage="EN"><MXASSETSet>

<ASSET><ANCESTOR /><ASSETID>94</ASSETID><ASSETNUM>THREE_T2002</ASSETNUM><ASSETTAG /><ASSETTYPE />.........<WARRANTYEXPDATE>2020-12-24T00:00:00-05:00</WARRANTYEXPDATE><YTDCOST>0.0</YTDCOST><MAXINTERRORMSG>

O erro a seguir ocorreu ao processar ASSET.BMXAA4147E -O conjunto de itens error1 não existe.

</MAXINTERRORMSG></ASSET>.........

</MXASSETSet></SyncMXASSET>

Exemplo de Arquivo de Formato Simples que Pode ser Reprocessado

Os arquivos que podem ser reprocessados que seguem uma estrutura de arquivosimples incluem uma coluna adicional. Por exemplo, um arquivo que pode serreprocessado gerado com base em informações MXASSET inclui a colunaMAXINTERROR no final da estrutura de registro original:EXTSYS1,MXASSETInterface,,ENASSETNUM,AS_DESCRIPTION,AS_DESCRIPTION_LD,HIERARCHYPATH,AS_SITEID,MAXINTERRORMSGT-SP500_error,autospray,,,TEXAS,O erro a seguir ocorreu ao processar ASSET.BMXAA4049E -O valor especificado T-SP500_error excede o comprimento máximo do campo.

Excluindo Arquivos que Podem Ser Reprocessados:

É possível excluir permanentemente os dados disponíveis para seremreprocessados como um arquivo.

Integrando Dados a Aplicativos Externos 195

Page 202: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Procedimento

1. No aplicativo Reprocessamento de mensagem, identifique a linha de dadosreprocessáveis que deseja excluir.

2. Clique no ícone Excluir.

Gerenciamento de Erro da Tabela de InterfaceAs tabelas de interface podem ser usadas para troca de dados de entrada e saída.Erros podem ocorrer ao gravar dados de entrada de uma tabela de interface parauma fila ou dados de saída de uma fila para uma tabela de interface.

Se um erro for encontrado pela tarefa Cron que puxa uma mensagem de saída deuma fila, a mensagem permanece na fila até a condição de erro ser abordada.Podem ocorrer erros pelas seguintes razões:v A tabela de interface não existe.v Há um erro de banco de dados devido à falta de espaço.v O conteúdo da mensagem, conforme definido pela estrutura de objeto, foi

alterado, mas a tabela de interface não foi recriada para refletir o novo formatoda mensagem.

Quando uma mensagem de saída atinge uma tabela de interface, éresponsabilidade do aplicativo externo recuperar esses dados e gerenciar erros combase na implementação de integração.

A tarefa Cron que grava mensagens de entrada em uma fila pode encontrar errospelas seguintes razões:v A fila JMS está desativada ou espaço livre não está disponível.v O nome do serviço corporativo ou do sistema externo não é válido.v O serviço corporativo não está ativado para o sistema externo.v O sistema externo não está ativado.

Quando ocorrer um erro durante o processamento da tabela de interfaces deentrada, o programa de pesquisa gravará o rastreio da exceção na colunaIMPORTMESSAGE da tabela de fila MXIN_INTER_TRANS. Para o primeiro errona tabela de fila MXIN_INTER_TRANS, o sistema envia uma notificação por emailao administrador. É possível resolver a condição de erro atualizando a linha dedados em MXIN_INTER_TRANS, por exemplo, corrigindo o valor do nome dosistema externo ou atualizando os dados de configuração no aplicativo, porexemplo, marcando o serviço corporativo como ativado.

Após a tarefa Cron processar registros subsequentes na tabela de filaMXIN_INTER_TRANS, ele alterna para um estado inativo baseado nos intervalosde processamento da tarefa Cron definida. Quando o processamento continuar, atarefa Cron tenta processar os registros em erro, assim como novos registrosincluídos na tabela de fila MAX_INTER_TRANS.

Após enviar uma notificação de erro, a tarefa Cron não envia notificação de errosadicionais se a tabela de fila contiver uma transação marcada em erro. Supõe-seque a pessoa que foi notificada sobre o erro inicial vê e corrige erros adicionaisquando a tabela de fila for examinada. Após todos os erros atuais serem corrigidos,a tarefa Cron envia uma notificação quando encontra um novo erro.

Quaisquer erros que ocorrem após a tarefa Cron gravar com sucesso umamensagem de tabela de interface em uma fila de entrada são gerenciados peloprocesso de manipulação de erros para as filas.

196 Integrando Dados a Aplicativos Externos

Page 203: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Causas Comuns de ErrosOcorrem erros ao processar mensagens na fila de saída, porque há um problemade entrega de uma mensagem ao terminal especificado para o sistema externo.Erros ao processar mensagens em uma fila de entrada geralmente estãorelacionados a uma validação de regra de negócios ou no processamento deentrada do serviço corporativo.

Para processamento de saída, problemas típicos são interrupções do link decomunicação com o aplicativo externo, problemas com o espaço de tabela de bancode dados ou problemas de espaço de arquivo no aplicativo externo. Para resolverum erro de saída, você geralmente não precisa modificar a mensagem XML.

A tabela a seguir descreve os erros de mensagens mais comuns que é possívelencontrar e fornece sugestões para corrigi-los. A correção de um erro na mensagemXML pode criar uma incompatibilidade nos dados entre os sistemas de envio e derecebimento.

Tipo de erro Descrição Ações

Erro de sequência Causado por problemas sequenciais entremensagens. O sistema interromperá oprocessamento de mensagens quando umregistro fizer referência a outro registro queesteja no estado pendente.

Este erro é aplicado para assegurar que osregistros sejam processados na ordemcorreta. Dependendo da direção datransação de mensagens e da lógica deprocessamento que se apliquem, oprocessamento poderá corrigir o erroautomaticamente quando o registro queestava no estado pendente for processado.

Erro de dados Ocorre porque os dados ou registro nãoexistem no banco de dados do sistema enão fazem parte das mensagens de entradana fila.

Inclua os dados ausentes ao banco de dadosdo sistema.

Erro de comunicação Causado por problemas de comunicaçãocom o sistema externo de falhas do sistemaou problemas de rede.

Restaure a comunicação com o sistemaexterno.

Erro de mensagem Causado por valores errôneos de dados damensagem.

v Altere o status de transação para HOLD.

v Corrija a mensagem XML de erro.

v Altere o status de transação para RETRYpara reprocessar a transação.

Pesquisa de ErroAo receber uma notificação de erro, consulte a mensagem XML no aplicativoReprocessamento de mensagem. Dependendo do tipo de fila (sequencial oucontínua), o número de mensagens na fila pode ser zero, um ou mais no aplicativoReprocessamento de mensagem para uma fila individual.

Não há mensagens com erro

Se não houver mensagens com erro no aplicativo Reprocessamento de mensagem,significará que a mensagem foi tentada novamente e o erro não foi maisencontrado. A mensagem com erro foi excluída quando a mensagem foi processadacom sucesso.

Por exemplo, ocorre um erro em uma mensagem de recebimento de entradadevido a uma conta contábil incorreta. Após o erro ocorrer, um usuário onlineinsere essa conta contábil no sistema. A mensagem é processada com sucesso e osdados são salvos.

Em outro exemplo, uma transação de saída encontra um erro de comunicação.Quando o problema de comunicação for resolvido, a mensagem será enviada aosistema externo e a mensagem com erro será excluída.

Integrando Dados a Aplicativos Externos 197

Page 204: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Existem uma ou mais mensagens com erro

Quando ocorre um erro em uma fila sequencial (entrada ou saída), oprocessamento da fila pára até que o erro seja resolvido.

Quando um erro ocorre em uma fila contínua, o processamento da fila continua eerros adicionais podem ocorrer antes do erro inicial ser resolvido. Podem existirvárias mensagem com erro no aplicativo Reprocessamento de mensagem.

Rastreamento de MensagemO aplicativo Rastreamento de mensagem controla e exibe o histórico deprocessamento de mensagens do canal de publicação e de mensagens de serviçocorporativo baseado em fila.

O aplicativo Rastreamento de Mensagens funciona com o aplicativoReprocessamento de Mensagens. Ao utilizar o aplicativo Rastreamento deMensagens, você pode determinar quais mensagens estão sinalizadas com um erro.Você pode então selecionar uma mensagem com falha e ir para o aplicativoReprocessamento de Mensagens para executar a ação apropriada para corrigirdados com erro.

Detalhes da Mensagem:

Ao ativar o rastreamento de mensagens, a estrutura de integração grava todas asmensagens processadas na tabela MAXINTMSGTRK. Um status é designado paracada mensagem que representa sua posição atual no ciclo de processamentobaseado em fila. Eventos de mensagem individuais são exibidos na janela Detalhesda Mensagem.

Ao ativar o rastreamento de mensagem, as mensagens de fila existentes antes de afunção ter sido ativada não são identificadas pela lógica de rastreamento demensagem. Ao desativar rastreamento de mensagem, mensagens de filapré-existentes que existiam antes de a função ter sido desativada são identificadas,mas novas mensagens não são identificadas.

As mensagens têm os seguintes atributos e valores são designados com base nosdados originais do serviço corporativo ou do canal de publicação:v Modo de integração: O nome do modo de integração usado no processamento

da mensagem. Para mensagens de entrada, o sistema designa um valor MXJMSpadrão. Para menagens de saída, o sistema designa o nome do terminal que éusado no processamento de mensagens.

v Operação: A operação de processamento que o sistema aplica à mensagemcontrolada, que pode ser qualquer um dos seguintes: SYNC, UPDATE, QUERY,DELETE, CREATE e PUBLISH.

v Sistema: O nome do sistema externo que é associado ao serviço corporativo oucanal de publicação.

v Componente de integração: O nome do serviço corporativo ou do canal depublicação.

v Adaptador: O nome do adaptador que está associado ao serviço corporativo oucanal de publicação.

v Nome da fila: O nome da fila usada pela estrutura de integração para processara mensagem.

Os atributos a seguir são valores designados no momento que o registro datransação é criado.

198 Integrando Dados a Aplicativos Externos

Page 205: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Atributo Valor

Data/hora de Recebimento A data e hora de recebimento da mensagem na fila.

ID da Mensagem Identificador de mensagem exclusivo designado pela estrutura deintegração.

ID de Procura O identificador de mensagem designado por um aplicativo externoe que é usado nas procuras de mensagens.

ID de Mensagem Externa Identificador de mensagem exclusivo designado por um aplicativoexterno.

Os atributos a seguir têm valores dinâmicos que são alterados com base noseventos de transação.

Atributo Valor

Status Atual O status de processamento mais atual para a mensagemcontrolada.

Status O status associado ao evento de mensagem individual no históricode transação.

Status Date A data do status para o evento de mensagem individual nohistórico de transação.

Error A mensagem de erro para o evento de mensagem de erroindividual no histórico de transação.

Valores de Status de Mensagem:

Toda mensagem baseada em fila de entrada e de saída registrada no aplicativoRastreamento de Mensagens tem um valor de status que indica sua posição noloop de processamento de transações.

O status de rastreamento de mensagens indica se a mensagem foi recebida ouprocessada com sucesso. O status de rastreamento de mensagens também indica sea mensagem foi excluída ou sinalizada com erros.

Status de Mensagem de Entrada

As mensagens de entrada podem ter os seguintes valores de status:

Status Descrição

ERROR O processamento de mensagens falhou devido a problemas devalidação.

EXCLUÍDO A mensagem foi excluída da fila.

PROCESSADA A mensagem foi processada com êxito.

RECEIVED A mensagem foi gravada com êxito na fila de entrada.

Status de Mensagem de Saída

As mensagens de saída podem ter os seguintes valores de status:

Status Descrição

ERROR O processamento de mensagens falhou devido a problemas devalidação.

EXCLUÍDO A mensagem foi excluída da fila.

PROCESSADA A mensagem foi processada com êxito.

RECEIVED A mensagem foi gravada com êxito na fila de saída.

Eventos de Mensagens:

O aplicativo Rastreamento de Mensagens controla e exibe eventos deprocessamento de transações baseadas em fila de entrada e de saída. Eventos deprocessamento de transações acionam o sistema para atualizar a tabelaMAXINTMSGTRK.

Integrando Dados a Aplicativos Externos 199

Page 206: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Os atributos de tabela de mensagens a seguir são atualizados de acordo com o tipode evento:v STATUSv STATUSDATETIMEv ERRORMSGR

Os eventos de entrada e saída a seguir atualizam a tabela MAXINTMSGTRK:

Tabela 33. Eventos de Entrada e Saída ControladosEvento Detalhes

A mensagem é gravada na fila Um registro é criado na tabela de rastreamento de mensagensquando a estrutura de integração grava a mensagem na fila pelaprimeira vez. Quando a mensagem é gravada com sucesso na fila,o status do registro da mensagem é configurado para RECEIVED.

Se a estrutura de integração encontrar um erro quando estivergravando uma mensagem de entrada na fila, ela envia umamensagem ao responsável pela chamada do processo detalhando acausa da falha.

Erro no processamento de mensagens O registro existente na tabela de rastreamento de mensagens.Quando o sistema de gerenciamento de ativos encontra um erro deprocessamento, ele atualiza o status do registro da mensagem paraERROR. Se sua mensagem for reenviada e ocorrer um erro deprocessamento novamente, o sistema de gerenciamento de ativosmantém o status de mensagem ERROR.

Processamento de fim de fila Os eventos de processamento de transações a seguir atualizam oregistro existente:

v O sistema de gerenciamento de ativos conclui com sucesso oprocessamento de mensagens e atualiza o status de registro damensagem para PROCESSED. Como o loop de processamentoestá concluído, nenhuma atualização inclui é feita na tabela derastreamento de mensagens.

v Se a mensagem for excluída da fila, o sistema de gerenciamentode ativos configura o status de registro da mensagem paraDELETED. A tabela de rastreamento de mensagens não é maisatualizada.

Configuração de Rastreamento de Mensagens:

É possível rastrear mensagens que são enviadas por meio de canais de publicaçãoou que são recebidas de serviços corporativos.

Nos aplicativos Canais de Publicação e Serviços Corporativos, é possível configuraras funções de rastreamento de mensagem a seguir:v Ativar ou desativar o rastreamento de mensagens.v Armazenar mensagens da transação no banco de dados juntamente com os

detalhes de rastreamento.v Especificar os dados da mensagem que a função de procura do aplicativo

Rastreamento de mensagem usa por meio de uma expressão XPATH.v Identificar exclusivamente mensagens com um único valor de ID usando uma

expressão XPATH.v Identificar mensagens com um valor de ID de procura usando uma expressão

XPATH.

As expressões XPATH associadas aos valores de ID de mensagem externos e aosvalores de ID de procura podem identificar diversos nós em um arquivo XML.Nesse caso, os valores de ID de mensagem e de ID de procura são registradoscomo uma lista de valores separada por vírgula. Os comprimentos dos campos dobanco de dados são aplicáveis aos campos de ID externo e de ID de procura. Senecessário, é possível ajustar o comprimento desses campos no aplicativoConfiguração do Banco de Dados.

200 Integrando Dados a Aplicativos Externos

Page 207: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Mensagens Armazenadas

Ao configurar o rastreamento de mensagens, as mensagens e os detalhes derastreamento de mensagem são salvos no banco de dados e podem servisualizados no aplicativo Reprocessamento de mensagem.

ID de Rastreamento de Mensagem Externa

Cada mensagem de entrada tem um identificador de mensagem externoarmazenado na tabela MAXINTMSGTRK. Com o aplicativo Rastreamento deMensagem, é possível usar esse ID de mensagem externo para localizar mensagensespecíficas. A sintaxe usada para identificar um nó de mensagem deve ser umaexpressão XPATH completa.

Para localizar todas as mensagens para o serviço corporativo MXPERSONInterface,especifique a expressão XPATH completa a seguir no campo ID da MensagemExterna:/{http://www.ibm.com/maximo}SyncMXPERSON/@messageID

Quando uma mensagem de entrada com diversos substantivos for recebida, aestrutura de integração usa a expressão XPATH para o ID de mensagem externopara identificar a mensagem. Se a expressão XPATH apontar para um elementoincluído em cada um dos substantivos na mensagem de entrada, a estrutura deintegração cria uma lista separada por vírgula com diversos substantivos deidentificadores externos.

ID de Procura

Ao especificar uma expressão XPATH para identificar nós, a estrutura deintegração pode executar procuras eficientes com diversos substantivos. O sistemaarmazena o identificador de procura na tabela MAXINTMSGTRK.

Para localizar todas as mensagens para o serviço corporativo MXPERSONInterface,crie a expressão XPATH completa como o ID de procura:

/{http://www.ibm.com/maximo}SyncMXPERSON/{http://www.ibm.com/maximo}MXPERSONSet/{http://www.ibm.com/maximo}PERSON/{http://www.ibm.com/maximo}PERSONID

Quando uma mensagem de entrada com diversos substantivos for recebida, aestrutura de integração usa a expressão XPATH para o ID de procura paraidentificar a mensagem. Se a expressão XPATH apontar para um elemento incluídoem cada um dos substantivos na mensagem de entrada, a estrutura de integraçãocria uma lista separada por vírgula com diversos substantivos de identificadores deprocura.

Ativando Rastreamento de Mensagens:

Ative rastreamento de mensagem para transações de saída no aplicativo Canais dePublicação e para transações de entrada no aplicativo Serviços Corporativos.

Procedimento

1. No aplicativo Canais de Publicação ou no aplicativo Serviços Corporativos,selecione o canal ou serviço que processa mensagens de integração.

2. Selecione a ação Rastreamento de Mensagem.

Integrando Dados a Aplicativos Externos 201

Page 208: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

3. Na janela Configuração de Rastreamento de Mensagem, selecione a caixa deseleção Ativar Rastreamento de Mensagem.

4. Opcional: Selecione a caixa de seleção Armazenar Mensagem para armazenarmensagens de transação.

5. Opcional: No campo ID de Mensagem Externa, especifique uma ou maisexpressões XPATH para localizar mensagens específicas.

6. Opcional: No campo ID de Procura, especifique uma ou mais expressõesXPATH para procurar mensagens.

Configuração de ClusterA estrutura de integração pode fornecer serviços de integração entre um cluster deservidores de aplicativos. Se a fila contínua em um único servidor for inadequadapara seu volume de mensagens, é possível incluir unidades de processamentocentral, hardware e uma configuração de cluster para melhorar o desempenho deprocessamento de mensagens.

Ao implementar um cluster de servidores,é possível usar diversos servidoressimultaneamente para processar mensagens de entrada. Essas mensagens sãoprocessadas nas filas contínuas usando beans acionados por mensagens (MDBs).Configurações de clusters facilitam o processamento de mensagens em grandesvolumes.

Filas JMS em um Cluster de ServidoresEm uma configuração de cluster, as filas JMS são associadas a um membro docluster de servidores e acesso às filas é fornecido pelo serviço Java Naming andDirectory Interface (JNDI).

O serviço JNDI está disponível entre todos os membros no cluster.

Mensagem XML(serviço

HTTP / EJB / SOAP

Balanceador de Carga

Serv.Aplicativos 1

ProdutorJMS

Serv.Aplicativos 2

ProdutorJMS

Serv.Aplicativos 3

ProdutorJMS

Fila JMSContínua

Serv.Aplicativos 1

ConsumidorJMS

Serv.Aplicativos 2

ConsumidorJMS

Serv.Aplicativos 3

ConsumidorJMS

Serviço Corporativo

Objetos de Negócios / BD

Processamentomultiencadeado viadiversos servidores deaplicativos e MDBs comoConsumidores

Processamento deencadeamento único,sequencial (FIFO) viaTarefa CRON comoConsumidor

Fila JMSSequencial

202 Integrando Dados a Aplicativos Externos

Page 209: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Todos os membros de cluster podem produzir mensagens na fila sequencial. Umatarefa Cron com encadeamento único lê as mensagens da fila sequencial parasuportar processamento de primeiro a entrar, primeiro a sair.

A fila contínua é multiencadeada do lado do consumidor para suportarprocessamento de mensagem em altos volumes. Nessa fila, a ordem deprocessamento de mensagens não é considerada.

As mensagens do serviço corporativo que usam a fila sequencial são processadasem uma ordem sequencial rígida. O processamento de mensagens temencadeamento único. O armazenamento em cluster não afeta de forma significativao desempenho do processamento de mensagens por meio da fila sequencial.

Fila contínua em um cluster do servidor de aplicativos:

Em um ambiente em cluster, é possível prender a fila contínua JMS a um membrodo cluster.

O diagrama a seguir mostra um exemplo de configuração de cluster em umservidor de aplicativos. A fila contínua recebe mensagens do produtor JMS eprocessa as mensagens de consumidor JMS.

Arquivo XML,Arquivo Simples,Carregamento deTabela de Interface

Transação XML(serviço corporativo)

HTTP / EJB / SOAP

Balanceador de Carga

Serv.Aplicativos 1

ProdutorJMS

Ta

refa

sC

RO

N

Serv.Aplicativos 2

ProdutorJMS

Serv.Aplicativos 3

ProdutorJMS

Fila JMS(Contínua

Servidor

Serv.Aplicativos 1

ConsumidorJMS

Serv.Aplicativos 2

ConsumidorJMS

Serv.Aplicativos 3

ConsumidorJMS

Serviço Corporativo

Objetos de Negócios / BD

O exemplo mostra a filaJMS presa ao server2.Ela pode ser presa aqualquer servidor nocluster.

Processamentomultiencadeado viaBeans Acionados porMensagens (MDBs)

O exemplo mostratarefas CRON emexecução no server1.Elas podem serexecutadas em qualquerservidor no cluster.

No exemplo, existem três servidores de aplicativos no ambiente em cluster. A filacontínua JMS é presa a um membro do cluster.

O processamento ocorre quando a estrutura de integração recebe mensagens doserviço corporativo usando ações HTTP, enterprise beans e SOAP. O balanceador

Integrando Dados a Aplicativos Externos 203

Page 210: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

de carga direciona o servidor de aplicativos para colocar mensagens do serviçocorporativo na fila contínua. Cada membro do cluster coloca mensagens na fila,que existe em um membro do cluster.

Uma tarefa Cron de integração entrega mensagens do serviço corporativo dearquivos simples ou XML e tabelas de interface. As tarefas Cron que colocammensagens na fila podem ser executadas em qualquer servidor no cluster.

Após as mensagens estarem na fila, todos os servidores de aplicativos podemefetuar pull de mensagens simultaneamente da fila e processar as mesmas nosistema. Os beans acionados por mensagens devem ser ativados em cada servidorde aplicativos no cluster.

Fila sequencial em um cluster de servidor de aplicativos:

A fila sequencial recebe mensagens do produtor JMS e processa as mensagens deconsumidor JMS.

O diagrama a seguir mostra um exemplo de configuração de cluster em servidoresde aplicativos.

Arquivo XML,Arquivo Simples,Carregamento deTabela de Interface

Transação XML(serviço

HTTP / EJB / SOAP

Balanceador de Carga

Serv.Aplicativos 1

ProdutorJMS

Ta

refa

sC

RO

N

Serv.Aplicativos 2

ProdutorJMS

Serv.Aplicativos 3

ProdutorJMS

Fila JMS(Sequenci

Servidor

A tarefa CRON do JMSpode ser executada emqualquer servidor nocluster

Serv.Aplicativos 1

TarefaCRON do

Consumidor

Serv.Aplicativos 2

Serv.Aplicativos 3

Serviço Corporativo

Objetos de Negócios / BD

O exemplo mostra a filaJMS presa ao server2.Ela pode ser presa aqualquer servidor nocluster.

Processamento deencadeamento único,sequencial via TarefaCRON

O exemplo mostratarefas CRON emexecução no server1.Elas podem serexecutadas em qualquerservidor no cluster.

No exemplo, existem três servidores de aplicativos no ambiente em cluster. A filasequencial JMS é presa a um membro do cluster.

O processamento ocorre quando a estrutura de integração recebe mensagens doserviço corporativo usando ações HTTP, enterprise beans e SOAP. O balanceador

204 Integrando Dados a Aplicativos Externos

Page 211: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

de carga direciona o servidor de aplicativos para colocar mensagens do serviçocorporativo na fila sequencial. Cada membro do cluster coloca mensagens na fila,que existe em um membro do cluster.

Uma tarefa Cron de integração entrega mensagens do serviço corporativo dearquivos simples ou XML e tabelas de interface. As tarefas Cron que colocammensagens na fila podem ser executadas em qualquer servidor no cluster. Quandomensagens estão na fila, o servidor de aplicativos que está executando a tarefaCron de consumidor JMS processa mensagens em uma ordem sequencial.

Diferentemente da fila contínua, não há multiencadeamento de mensagens pordesign. Uma implementação de cluster não afeta de forma significativa odesempenho de processamento de mensagens que são processadas por meio da filasequencial.

Configurando a Tarefa CronA tarefa Cron da tabela de interface, a tarefa Cron de importação de dados e atarefa Cron da fila JMS são funções cientes de cluster. Por padrão, a estrutura datarefa Cron executa uma tarefa em um servidor escolhido aleatoriamente. Épossível configurar uma tarefa Cron para execução em um servidor de aplicativosespecífico dentro de um cluster de servidores. Use o parâmetro donotrun naestrutura da tarefa Cron para controlar em quais servidores a tarefa Cron éexecutada.

Configurando um Servidor de Processamento de MensagensPara volumes altos de mensagens de entrada, é possível melhorar a eficiência doservidor movendo o processamento de mensagens de entrada para um servidor deaplicativos separado ou cluster de servidores.

Procedimento1. Implemente um arquivo EAR separado no servidor e processamento de

mensagens ou no cluster de servidores.2. No servidor de aplicativos de processamento de mensagens ou no cluster de

servidores, use o parâmetro donotrun na estrutura da tarefa Cron paracontrolar em quais servidores a tarefa Cron é executada.

3. Opcional: Configure beans acionados por mensagens para puxar dados da filacontínua de entrada. Não ative os beans acionados por mensagens paraprocessamento de entrada no servidor ou cluster de servidores dedicado parausuários online. É possível executar outras tarefas Cron de processamento emsegundo plano nesse servidor ou cluster de servidores.

4. Opcional: Conceda acesso à interface com o usuário aos usuários que usam orecurso de importação de dados.

Configuração do Diretório GlobalEm um ambiente em cluster, se você configurar um diretório global para ogerenciamento de arquivos de integração, o diretório deverá estar acessível a todosos membros do cluster.

Dependendo de seu uso dos componentes da estrutura de integração, os arquivospodem ou não ser gravados no diretório global. Uma das razões principais paraconfigurar um diretório global é para suportar o uso de terminais baseados emarquivo. Se você pretende usar terminais baseados em arquivo para que os canaisde chamada e as mensagens sejam iniciados por usuários do aplicativo que sãoconfigurados em um cluster de UI, todos os membros do cluster devem tervisibilidade para o diretório global.

Integrando Dados a Aplicativos Externos 205

Page 212: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Para definir o diretório global, atualize a propriedade de sistemamxe.int.globaldir no aplicativo Propriedades do Sistema.

Acesso a Serviços por Mensagens de EntradaOs serviços corporativos, serviços de estrutura de objeto e serviços-padrão podemtodos funcionar em um cluster de servidores.

Uma transação de entrada pode acessar o serviço relevante com qualquer um dosmétodos de comunicação a seguir:v Chamada de método remoto (RMI) Java , Internet Inter-ORB Protocol (IIOP) e

enterprise beansv Servlet HTTP e HTTPSv Servlet SOAP, HTTP e HTTPS

Enterprise Beans

Com um servidor único, o URL do provedor para acessar a árvore JNDI é o URLde servidor único. Com um cluster de servidores, a URL do provedor pode ser aURL de qualquer um dos servidores que tenha os enterprise beans implementados.Todos os membros do cluster compartilham a árvore JNDI e qualquer membro docluster pode procurar e recuperar um cluster.

Após uma consulta de cluster, o cliente recupera um proxy ciente do cluster deenterprise beans que balanceia a carga de todas as chamadas subsequentes queusam esse proxy. O balanceamento de carga ocorre de forma transparente para ocódigo do cliente. Não há nenhuma diferença entre o código de um único servidore de uma configuração de cluster. Um enterprise bean separado é implementadopara cada tipo de serviço: serviços de estrutura de objeto, serviço corporativo eserviço padrão.

Servlet HTTP

O servlet de integração é implementado entre todos os membros do cluster. Comuma configuração de servidor único, a URL é a URL HTTP e HTTPS desseservidor. Como uma configuração de servidor de cluster, a URL é a URL HTTP eHTTPS do balanceador de carga do cluster. Um servlet separado é implementadopara cada tipo de serviço.

Os formatos de URL para cada serviço são mostrados na tabela a seguir. A variávelmeaweb na URL representa o valor especificado para mxe.int.webappurl noaplicativo Propriedades de sistema.

Serviço URL

Serviço de estrutura de objeto http://hostname:port/meaweb/os/object structure name

Serviço corporativo (ignorando a fila) http://hostname:port/meaweb/es/extsysname/enterprise service name

Serviço corporativo (por meio da fila) http://hostname:port/meaweb/esqueue/extsysname/enterprise service name

Serviço padrão http://hostname:port/meaweb/ss/standard service name

Serviços da Web

Os serviços da Web de integração são implementados de maneira homogênea emtodos os membros do servidor no cluster. O acesso ao serviço da Web de umcluster é o mesmo que de um servidor único, exceto por a URL do serviço da Webe a URL da Web Service Definition Language (WSDL) apontarem para o cluster emvez de para um servidor específico no cluster.

206 Integrando Dados a Aplicativos Externos

Page 213: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

As propriedades a seguir devem apontar para a URL do cluster:v URL do aplicativo da Web mxe.int.webappurl

v URL da consulta de registro UDDI mxe.int.uddiinurlv URL de publicação do registro UDDI mxe.int.uddipuburl

A URL para acessar um serviço da web é http://hostname:port/meaweb/services/web service name. A variável meaweb na URL representa o valor especificado paramxe.int.webappurl no aplicativo Propriedades de sistema.

Segurança de IntegraçãoA estrutura de integração inclui suporte para autenticação J2EE e para autorizaçãono nível de componente.

Segurança de AutenticaçãoÉ possível configurar a segurança de autenticação J2EE para filas JMS, EJB, HTTP eserviços da Web. Também é possível configurar segurança de autenticação paraAPIs de integração remota e para as classes Java manipuladoras para roteamentode saída.

Configurando Segurança J2EE:

A estrutura de integração suporta segurança J2EE básica para restringir acessobaseado em autenticação e autorização.

Configurando Restrições de J2EE para Filas JMS:

As filas JMS que são usadas pelo processamento de integração suportam segurançaJ2EE com base em autenticação e autorização baseadas em ID do usuário e senha.É possível evitar acesso não autorizado à fila designando um ID do usuário esenha ao nome de Java Naming and Directory Interface (JNDI), mesmo se o nomeJNDI da fila for comhecido.

Sobre Esta Tarefa

Diversas filas podem usar as mesmas ou diferentes identificações de usuários.

Procedimento

1. No console do administrador para o servidor, especifique os valores de ID dousuário e senha para as seguintes propriedades, para ativar restrições de J2EE:v java.naming.security.principal (ID do usuário)v java.naming.security.credentials (senha)

2. No aplicativo Sistemas Externos, selecione a ação Incluir/Modificar Filas eespecifique o mesmo ID do usuário e senha fornecidos na Etapa 1. Essa etapafornece acesso à fila dos programas produtor e consumidor de integração.

3. Para fornecer acesso à fila contínua, sob a seção <enterprise-beans> do arquivoejb-jar.xml, inclua elementos <security identify> mostrados no texto emnegrito:<enterprise-beans><message-driven id="MessageDriven_JMSContQueueProcessor_1"><ejb-name>JMSContQueueProcessor-1</ejb-name><ejb-class>psdi.iface.jms.JMSContQueueProcessor</ejb-class><transaction-type>Container</transaction-type><message-driven-destination><destination-type>javax.jms.Queue</destination-type>

</message-driven-destination><env-entry><env-entry-name>MESSAGEPROCESSOR</env-entry-name><env-entry-type>java.lang.String </env-entry-type><env-entry-value>psdi.iface.jms.QueueToMaximoProcessor</env-entry-value>

</env-entry>

Integrando Dados a Aplicativos Externos 207

Page 214: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

<security-identity><run-as><role-name>maximouser</role-name>

</run-as></security-identity>

</message-driven>

4. Sob a seção <assembly-descriptor> do arquivo ejb-jar.xml, inclua os elementos<security-role> mostrados no texto em negrito:<assembly-descriptor><security-role><role-name>maximouser</role-name>

</security-role><container-transaction><method><ejb-name>JMSContQueueProcessor-1</ejb-name><method-name>*</method-name>

</method><trans-attribute>Required</trans-attribute>

</container-transaction></assembly-descriptor>

Protegendo o Acesso de Enterprise Bean:

Se a Autenticação J2EE do sistema estiver ativada, você deve ativar a segurançapara cada enterprise bean nos descritores de implementação.

Sobre Esta Tarefa

Sob a seção <enterprise-beans> do arquivo ejb-jar.xml, três EJBs de integraçãosão implementados com o valor padrão igual a 1, o que indica que nenhumaautenticação é necessária.

O <ejg-name> para mapeamento de serviço é:

<ejb-name> Serviço

enterpriseservice Serviço Corporativo

mosservice Serviço de Estrutura de Objeto

actionservice Serviço-padrão

Procedimento

1. Para forçar a autenticação, altere o valor de ALLOWDFLTLOGIN para 0 (falso),para cada um dos três serviços, indicado em negrito no exemplo de código aseguir:<enterprise-beans><session id="Session_enterpriseservice"><ejb-name>enterpriseservice</ejb-name><home>psdi.iface.gateway.MEAGatewayHome</home><remote>psdi.iface.gateway.MEAGateway</remote><local-home>psdi.iface.gateway.MEAGatewayHomeLocal</local-home><local>psdi.iface.gateway.MEAGatewayLocal</local><ejb-class>psdi.iface.gateway.MEAGatewayBean</ejb-class><session-type>Stateless</session-type><transaction-type>Container</transaction-type><env-entry><env-entry-name>ALLOWDFLTLOGIN</env-entry-name><env-entry-type>java.lang.String </env-entry-type><env-entry-value>0</env-entry-value>

</env-entry><security-role-ref><description>Usuários do Aplicativo

</description><role-name>maximouser</role-name><role-link>maximouser</role-link>

</security-role-ref></session><session id="Session_mosservice"><ejb-name>mosservice</ejb-name><home>psdi.iface.mos.MOSServiceHome</home><remote>psdi.iface.mos.MOSServiceRemote</remote><local-home>psdi.iface.mos.MOSServiceHomeLocal</local-home><local>psdi.iface.mos.MOSServiceLocal</local><ejb-class>psdi.iface.mos.MOSServiceBean</ejb-class><session-type>Stateless</session-type><transaction-type>Container</transaction-type><env-entry><env-entry-name>ALLOWDFLTLOGIN</env-entry-name><env-entry-type>java.lang.String </env-entry-type><env-entry-value>0</env-entry-value>

</env-entry><security-role-ref><description>Usuários do Aplicativo

</description>

208 Integrando Dados a Aplicativos Externos

Page 215: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

<role-name>maximouser</role-name><role-link>maximouser</role-link></security-role-ref></session>

<session id="Session_actionservice"><ejb-name>actionservice</ejb-name><home>psdi.iface.action.MAXActionServiceHome</home><remote>psdi.iface.action.MAXActionServiceRemote</remote><local-home>psdi.iface.action.MAXActionServiceHomeLocal</local-home><local>psdi.iface.action.MAXActionServiceLocal</local><ejb-class>psdi.iface.action.MAXActionServiceBean</ejb-class><session-type>Stateless</session-type><transaction-type>Container</transaction-type><env-entry><env-entry-name>ALLOWDFLTLOGIN</env-entry-name><env-entry-type>java.lang.String </env-entry-type><env-entry-value>0</env-entry-value>

</env-entry><security-role-ref><description>Usuários do Aplicativo

</description><role-name>maximouser</role-name><role-link>maximouser</role-link>

</security-role-ref></session>

Programas clientes chamam a versão segura dos métodos de enterprise beanpara cada tipo de serviço:v Serviço corporativo: secureProcessExtnernalDataAsync(..) ,

secureProcessExtnernalDataSync(..)v Serviço de estrutura de objeto: secureProcessMOS(..)v Serviço-padrão: secureAction(..)

2. Para criar um contexto seguro para chamar o enterprise bean, execute uma dastarefas a seguir:v Inclua o código a seguir no código do cliente:

Properties env = new Properties();...if(userid != null && password != null){env.put(Context.SECURITY_CREDENTIALS, password);env.put(Context.SECURITY_PRINCIPAL, userid);}

Context ctx = new IntialContext(env);//em vez de utilizar o construtor padrão IntialContext()

v Use o construtor InitalContext padrão para passar as informações desegurança por meio de parâmetros –D no script .bat/.sh que ativa o cliente:–Djava.naming.security.principal=<username>–Djava.naming.security.credentials=<password>

A versão SSL do Internet Inter-ORB Protocol executa criptografia de dadosna URL do provedor, enquanto que o sistema se comunica com o enterprisebean.

Protegendo o Servlet HTTP:

O servlet HTTP é um componente J2EE que trata de HTTP posts de entrada. Paraproteger o servlet HTTP, você deve primeiro proteger o enterprise bean. É possívelusar autenticação básica HTTP para proteger o servlet HTTP. Usuários autorizados,com um nome de usuário e senha válidos, podem postar uma transação XML nosistema.

Sobre Esta Tarefa

Para ativar autenticação básica HTTP, modifique o arquivo web.xml do aplicativoda Web:v Remova os comentários da seção <security-constraint> dos servlets de

integração. Há três seções <security-constraint>, uma para cada tipo de serviço:serviços corporativo, serviço de estrutura de objeto e serviço padrão.

O <web-resource-name> para mapeamento de serviço é:

Integrando Dados a Aplicativos Externos 209

Page 216: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

<web-resource-name> Serviço

Servlet de Serviço Corporativo Serviço Corporativo

Servlet de Serviço de Aplicativo Serviço-padrão

Servlet de Serviço de Estrutura de Objeto Serviço de Estrutura de Objeto

Procedimento

1. No arquivo web.xml, remova comentário das seções de restrição de segurançapara cada tipo de serviço, como no exemplo de código a seguir:<!--<security-constraint><web-resource-collection><web-resource-name>Enterprise ServiceServlet</web-resource-name><description>Servlet de Serviço Corporativo (HTTP POST) acessível para usuários

autorizados</description><url-pattern>/es/*</url-pattern><url-pattern>/esqueue/*</url-pattern><http-method>GET</http-method><http-method>POST</http-method></web-resource-collection><auth-constraint><description>Funções que têm acesso ao Servlet de Serviço Corporativo (HTTP POST)

</description><role-name>maximouser</role-name></auth-constraint><user-data-constraint><description>data transmission gaurantee</description><transport-guarantee>NONE</transport-guarantee></user-data-constraint></security-constraint>

<security-constraint><web-resource-collection><web-resource-name>App Service Servlet</web-resource-name><description>Servlet de Serviço de Aplicativo (HTTP POST) acessível para usuários

autorizados</description><url-pattern>/ss/*</url-pattern><http-method>GET</http-method><http-method>POST</http-method></web-resource-collection><auth-constraint><description>Funções que têm acesso ao Servlet de Serviço de Aplicativo (HTTP POST)

</description><role-name>maximouser</role-name></auth-constraint><user-data-constraint><description>data transmission gaurantee</description><transport-guarantee>NONE</transport-guarantee></user-data-constraint></security-constraint>

<security-constraint><web-resource-collection><web-resource-name>Object Structure ServiceServlet</web-resource-name><description>Servlet de Serviço de Estrutura de Objeto (HTTP POST) acessível para

usuários autorizados</description><url-pattern>/os/*</url-pattern><http-method>GET</http-method><http-method>POST</http-method></web-resource-collection><auth-constraint><description>Funções que têm acesso ao Servlet de Serviço de Estrutura de Objeto

(HTTP POST)</description><role-name>maximouser</role-name></auth-constraint><user-data-constraint><description>data transmission gaurantee</description><transport-guarantee>NONE</transport-guarantee></user-data-constraint>

</security-constraint>

-->

2. Verifique se a seção <security-role> do arquivo web.xml não está comentada,como no código de exemplo a seguir:<security-role><description>An Integration User</description><role-name>maximouser</role-name>

</security-role>

3. Altere o valor de 0 para 1 na seção useAppServerSecurity <env-entry-name>,como no exemplo a seguir:<description>Indicates whether to use Application Server security or not

</description>

210 Integrando Dados a Aplicativos Externos

Page 217: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

<env-entry-name>useAppServerSecurity</env-entry-name><env-entry-type>java.lang.String </env-entry-type><env-entry-value>1</env-entry-value></env-entry>

O que Fazer Depois

É possível implementar com segurança um serviço da Web usando Secure SocketLayer (SSL) para HTTPS posts. Configure SSL no servidor de aplicativos com oscertificados digitais apropriados.

Protegendo Serviços da Web:

É possível proteger serviços da Web de integração uando autenticação básica HTTPem segurança J2EE padrão. Essas configurações de segurança fornecem acesso aserviços da Web a usuários autorizados com um nome de usuário e senha válidos.

Procedimento

1. Semelhante ao procedimento para proteger o servlet HTTP, no arquivoweb.xml, remova o comentário da seção <security-constraint> para a chamadade serviço da Web, como no exemplo a seguir<security-constraint><web-resource-collection><web-resource-name>Integration Web

Services</web-resource-name><description>Serviços da Web de Integração acessíveis para usuários autorizados

</description><url-pattern>/services/*</url-pattern><http-method>GET</http-method><http-method>POST</http-method>

</web-resource-collection><auth-constraint><description>Funções que têm acesso a Serviços da Web de Integração

</description><role-name>maximouser</role-name>

</auth-constraint><user-data-constraint><description>data transmission gaurantee</description><transport-guarantee>NONE</transport-guarantee>

</user-data-constraint></security-constraint>

2. Verifique se a seção <security-role> do arquivo web.xml não está comentada,como no código de exemplo a seguir:<security-role><description>An Integration User</description><role-name>maximouser</role-name>

</security-role>

3. Altere o valor de 0 para 1 na seção useAppServerSecurity <env-entry-name>,como no exemplo a seguir:<description>Indicates whether to use Application Server security or not

</description><env-entry-name>useAppServerSecurity</env-entry-name><env-entry-type>java.lang.String </env-entry-type><env-entry-value>1</env-entry-value></env-entry>

4. Para chamada de serviço da Web, assegure que o programa cliente use aschamadas de nome de usuário e senha a seguir no objeto JAX-RPC Call:call.setProperty(Call.USERNAME_PROPERTY, username);call.setProperty(Call.PASSWORD_PROPERTY, password);

O que Fazer Depois

É possível implementar com segurança um serviço da Web usando Secure SocketLayer (SSL) para HTTPS posts. Configure SSL no servidor de aplicativos com oscertificados digitais apropriados.

Segurança da Tabela de Interface:

As tabelas de interface usam autenticação e autorização de banco de dados padrão.Se a autenticação e a autorização estiverem em vigor, os programas externos que

Integrando Dados a Aplicativos Externos 211

Page 218: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

lêem ou gravam nas tabelas de interfaces deverão fornecer a autorizaçãoapropriada. Para ler e gravar nas tabelas de interface, os valores USERNAME ePASSWORD são configurados para o terminal que implementa o manipulador databela de interface.

Protegendo APIs de Integração Remotas:

Algumas APIs remotas de MicService protegem o acesso forçando o usuário dessesmétodos a fornecerem o objeto UserInfo. Se um objeto UserInfo válido não forfornecido, ocorre um erro e a chamada não é concluída.

Os métodos remotos a seguir são protegidos, pois eles fornecem informaçõessensíveis ou executam processamento de transação de dados sensíveis:v exportData(..)v deleteQueueData(..)v processExternalData(..) (ambas as versões)v query(..)v viewQueueData(..)v loadData(..)v loadSystemData(..)v processObjectStructure(..)v routeData(..)

Para executar esses métodos, o responsável pela chamada deve recuperar umobjeto UserInfo válido e passá-lo ao método para obter acesso à camada segura.

Um objeto UserInfo é um objeto serializado que contém detalhes do usuário,incluindo informações de usuário, senha, código do idioma, idioma e fuso horário,que são usados para propósitos de segurança.

O sistema usa Chamada de Método Remoto (RMI) Java e Protocolo de Chamadade Método Remoto (JRMP). É possível se comunicar com os serviços do sistemausando uma versão segura do protocolo JRMP usando SSL.

Segurança do Manipulador do Roteador de Saída:

Os manipuladores do roteador de saída possuem suporte para autorização econfidencialidade. Os manipuladores de enterprise bean, HTTP, JMS, serviço daWeb e tabela de interface têm suporte para segurança.

Segurança de AutorizaçãoÉ possível configurar a segurança de autorização no nível do aplicativo, nível doobjeto ou no nível de um método definido em um serviço padrão. Após aautenticação do usuário ser concluída, a estrutura de integração verifica se ousuário teve autoridade concedida para enviar mensagens ao aplicativo, objeto oumétodo de destino.

Autorização no Nível do Objeto

A autorização no nível do objeto é baseada na configuração de segurançaconfigurada na guia Restrições de Dados do aplicativo Grupos de Segurança. Seum objeto ou atributo for marcado como somente leitura ou ocultado, oprocessamento de dados de mensagens de entrada limita-se a consultas. Não épossível inserir, atualizar ou excluir dados do objeto ou atributo relevante.

212 Integrando Dados a Aplicativos Externos

Page 219: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Autorização no Nível do Aplicativo

A autorização no nível do aplicativo é configurada no aplicativo Estruturas deObjetos. No campo Aplicativo Autorizado, especifique o aplicativo a autorizar. Oaplicativo especificado e o grupo de usuários do usuário da mensagem deintegração juntos fornecem autorização para mensagens de integração de entradapara estruturas de objetos e serviços corporativos. A combinação de aplicativo egrupo de usuários também fornece autorização para a exportação de dadosrelacionados a essa estrutura de objeto.

Se você usar a API REST, poderá precisar configurar a autorização no nível doaplicativo para acessar recursos de objeto de negócios.

Autorização de Serviço-padrão

A autorização de serviço padrão não suporta o uso de uma condição associada àopção de assinatura. Qualquer condição designada é ignorada.

É possível configurar uma transação de serviço padrão para usar o mesmo perfilde segurança para o usuário de integração como se esse usuário tivesse inserido atransação por meio de um aplicativo. Esse nível de autorização requerconfiguração manual. O serviço de aplicativo deve ter um método anotadocorretamente e o serviço deve estar registrado no aplicativo Configuração do Bancode Dados. Designe uma opção de assinatura para um serviço padrão para limitaracesso aos usuários ou grupos autorizados para a opção selecionada.

Execute um script SQL que atualiza a tabela MAXSERVSECURITY com os detalhesdo serviço padrão a autorizar. A instrução de inserção para MAXSERVSECURITYdeve incluir os campos listados na tabela a seguir.

Campo Descrição

MAXSERVSECURITYID Um ID exclusivo numérico. É possível, por exemplo, consultarmax(MAXSERVSECURITYID) de MAXSERVSECURITY e usar opróximo valor sequencial.

ROWSTAMP Um ID exclusivo numérico. É possível, por exemplo, consultarmax(ROWSTAMP) de MAXSERVSECURITY e usar o próximovalor sequencial.

SERVICENAME O nome do serviço registrado no aplicativo Configuração do Bancode Dados (MAXSERVICE.SERVICENAME).

APP O nome do aplicativo no qual a opção de assinatura é configuradapara (MAXAPPS.APP).

METHODNAME O nome do método anotado no serviço de aplicativo.

OPTIONNAME Esse valor é uma combinação da tabela de opção de assinaturapara o aplicativo e a opção de assinatura(SIGOPTION.OPTIONNAME).

Conceitos relacionados:“API REST” na página 224A interface de programação de aplicativos (API) Representational State Transfer(REST) fornece uma maneira de aplicativos externos consultarem e atualizaremdados do aplicativo no mecanismo de automação de processo da Tivoli.

Suporte ao IdiomaSeu banco de dados pode conter alguns elementos, como descrições e descriçõesdetalhadas, em diversos idiomas. Os canais de publicação e os serviçoscorporativos podem incluir estas colunas traduzidas. A estrutura de integraçãotambém suporta o uso de formatos de idiomas bidirecionais.

Integrando Dados a Aplicativos Externos 213

Page 220: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Um banco de dados único pode conter dados em diversos idiomas. O idioma debase é especificado quando o aplicativo é instalado. Se seu sistema usar um idiomaque difere do idioma de base, é possível ativar a estrutura de integração paraenviar e receber dados que não estão nos dados do idioma de base.

Processamento Padrão de Diversos IdiomasAo efetuar login, é possível escolher um código de idioma diferente do idioma debase para o sistema. Em qualquer aplicativo, você pode inserir valores específicosdo idioma para colunas que são designadas como traduzíveis.

Por padrão, as transações de saída contêm os valores de colunas aplicáveis noidioma que está associado à sessão de login. Os valores de idioma exibem se atransação é iniciada por um aplicativo ou pelo recurso de exportação de dados. Porexemplo, se o idioma base do seu sistema for inglês, você poderá efetuar logincomo usuário francês e atualizar um registro de item com uma descrição emfrancês. A mensagem de saída contém a descrição do item em francês, mesmoquando a descrição também existir em inglês ou em um terceiro idioma.

Se a tabela de banco de dados contiver colunas traduzíveis, o banco de dadosconterá uma tabela correspondente chamada L_tablename, por exemplo, ITEM eL_ITEM. A tabela L_tablename armazena os valores de idioma não base de cadacoluna traduzível, exceto da descrição detalhada. As descrições detalhadas emtodos os idiomas estão na tabela LONGDESCRIPTION.

Para incluir valores traduzíveis no XML de saída, inclua os objetos L_tablename eLONGDESCRIPTION nas estruturas de objetos aplicáveis. Forneça os valores deidioma base como uma entrada de serviço para as estruturas de objeto que tenhamo L_tablename como parte de sua definição de objeto. Sua entrada de serviço deveestar no objeto principal e todos os outros idiomas devem estar no objeto ativadopara o idioma adicional.

Por exemplo, quando inglês for o idioma base, a tabela ITEM conterá a descriçãoem inglês de um item e a tabela L_ITEM conterá as descrições em francês e emalemão desse item. A tabela LONGDESCRIPTION contém as descrições detalhadasem inglês, francês e alemão.

Quando você inclui o objeto L_tablename em uma estrutura de objetos, designe omesmo valor para os atributos transLanguage e baseLanguage. Caso contrário, osvalores de idioma de base não estarão disponíveis e serão processados para oscampos ativados para diversos idiomas.

Atributos de Diversos IdiomasO elemento-raiz da estrutura XML para serviços e canais inclui atributos de idiomaque especificam os atributos de idioma para o registro.

Os atributos de idioma a seguir são usados:v O atributo baseLanguage identifica o idioma de base do sistema ou aplicativo

que gera XML de saída. Para transações de entrada (XML de entrada), esteatributo não é validado.

v XML de saída inclui o atributo langenabled em cada coluna traduzível,conforme mostrado no exemplo a seguir:<DESCRIPTION langenabled="1">Descrição do Item 1</DESCRIPTION>

v O atributo transLanguage identifica o idioma no qual os valores para campos dediversos idiomas aplicáveis são especificados. Se esse atributo estiver ausente ounão contiver um valor, supõe-se que todos os dados estejam no idioma base. Se

214 Integrando Dados a Aplicativos Externos

Page 221: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

o valor transLanguage não puder ser interpretado ou se o valor não identificarum idioma válido, um erro é retornado ao solicitante do serviço.

Suporte ao Idioma BidirecionalA estrutura de integração suporta idiomas bidirecionais, como árabe e hebraico, eativa a troca de dados com sistemas externos que usam diferentes formatos deidiomas bidirecionais. Idiomas bidirecionais combinam caracteres que são lidos dadireita para a esquerda com alguns caracteres, como números ou datas, que sãolidos da esquerda para a direita.

A estrutura de integração pode transformar formatos bidirecionais e todos osdados de entrada e saída para e a partir do formato bidirecional especificado parao sistema externo. As transformações se aplicam a comunicações síncronas eassíncronas para serviços corporativos, serviços de estrutura de objeto e serviçospadrão. Também é possível transformar os formatos bidirecionais de arquivosimportados com uma tarefa Cron ou ao usar o recurso de importação de dados.

Formatos de Idiomas BidirecionaisOs formatos bidirecionais padrão usados pela estrutura de integração são baseadosem padrões Unicode. Esses formatos podem diferir dos formatos usados porsistemas externos.

Formatos bidirecionais têm cinco parâmetros.

Parâmetro Valor SinalizadoresPadrão Detalhes

Tipo de Texto v Implicit

v Visual

v I

v V

I: Implicit (lógico)

Orientando Texto v LeftToRight

v RightToRight

v ContextualLeftToRight

v ContextualRightToLeft

v L

v R

v C

v D

L: LeftToRight

Troca Simétrica de Texto v Ligado

v Desligada

v Y

v N

Y: On

Forma do Texto v Not Shaped

v Shaped

v Isolated

v N

v S

v B

N: Not Shaped Somentepara árabe

Formato de Numerais v Nacional

v Nominal

v ContextualNational

v ContextualNominal

v H

v N

v C

v T

N: Nominal Somentepara árabe

Configurando Suporte ao Idioma Bidirecional para SistemasExternosEspecifique o formato de idioma bidirecional usado por um sistema externo paraativar a transformação correta de dados para (e de) o formato padrão.

Procedimento1. Opcional: Selecione a ação Formato Bidirecional no aplicativo Sistemas

Externos para serviços corporativos ou no aplicativo Canais de Chamada paraserviços de estrutura de objeto.

Integrando Dados a Aplicativos Externos 215

Page 222: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

2. Selecione o formato de idioma bidirecional usado pelo sistema externo na listade opções e clique em OK.

Resultados

Após configurar o formato de idioma bidirecional usado pelo sistema externo, atransformação para o formato apropriado ocorre automaticamente durante oprocessamento de integração.

Exportando e importando dados baseados em arquivoO administrador de integração pode iniciar a exportação e a importação de dadosa partir do aplicativo Sistemas externos para suportar, por exemplo, a integraçãode dados usando arquivos. O processo de importação inclui a capacidade devisualizar um carregamento de dados de um arquivo para validar os dados antesde salvá-los no banco de dados. O processo de importação também inclui umaopção para gerenciar erros que resultam do carregamento de arquivos no mesmoformato de arquivo que o arquivo importado.

É possível usar o gerenciamento de erro baseado em arquivo como uma alternativapara gerenciar erros por meio do aplicativo Reprocessamento de Mensagem. Aimportação de dados de arquivos, no formato de arquivos simples ou XML, podeser feita de forma planejada usando uma tarefa Cron predefinida. Além disso,administradores podem ativar um aplicativo para exportação e importação eusuários podem, então, exportar e importar dados diretamente do aplicativoativado.Conceitos relacionados:“Gerenciamento de erro com a importação de dados baseada em arquivo” napágina 193A estrutura de integração suporta gerenciamento de erro com o aplicativoReprocessamento de Mensagem que permite revisar, corrigir, reprocessar e excluirmensagens que entram em erro quando processadas de uma fila de entrada.Quando dados são importados de um arquivo XML ou de um arquivo simples,fica disponível uma segunda opção que gerencia erros usando um arquivotransferido por download em vez do aplicativo Reprocessamento de mensagem.

Exportando e Importando Dados no Aplicativo SistemasExternos

É possível iniciar uma exportação de dados na guia Canais de Publicação doaplicativo Sistemas Externos. É possível iniciar uma importação de dados na guiaServiços Corporativos do aplicativo Sistemas Externos.

Exportando dados baseados em arquivoCom o recurso de exportação de dados, é possível executar uma exportação emmassa de dados de mensagem a partir de um arquivo para um sistema externo. Épossível iniciar o processo de exportação para cada canal de publicação associado aum sistema externo.

Antes de Iniciar

Em um ambiente de ocupação variada, somente será possível usar o recurso deexportação de dados se o provedor de sistema fornecer a você o acesso a umservidor de arquivos que possa ser acessado pelo servidor de aplicativos. Emseguida, você deverá configurar um terminal baseado em arquivo para apontarpara o local deste servidor de arquivos.

216 Integrando Dados a Aplicativos Externos

Page 223: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Você também deverá ativar o sistema externo e o canal de publicação para que sejapossível exportar dados. Os dados para exportação também devem estar em umformato de arquivo XML que segue o esquema de estrutura de objeto ou em umarquivo simples delimitado, como separado por vírgula, que é uma versãosimplificada do formato de esquema de estrutura de objeto.

Sobre Esta Tarefa

A consulta SQL opcional inserida no campo Condição de Exportação pode afetar otamanho da mensagem XML exportada. É possível filtrar o conteúdo para limitar aquantidade de dados que estão sendo exportados. O processo de exportaçãoexecuta o processamento de saída padrão no conjunto de resultados da consultapara o canal de publicação selecionado.

Procedimento1. No aplicativo Sistemas Externos, clique na guia Canais de Publicação e

selecione o canal de publicação que deseja exportar.2. No campo Ponto de extremidade, especifique um manipulador de terminal

baseado arquivo para o formato de arquivo XML ou de arquivo simples.3. Clique em Exportação de Dados.4. Opcional: Insira uma consulta SQL no campo Condição de Exportação. A

consulta deve ser com relação ao objeto principal ou de nível superior naestrutura de objeto do canal de publicação.

5. Opcional: Especifique um valor de número inteiro no campo ExportarContagem para limitar o número de registros contidos no arquivo exportado.Se o resultado da consulta contiver mais registros do que o númeroespecificado, esses registros não são incluídos no arquivo exportado.

6. Clique em OK para iniciar o processo de exportação de dados.

O que Fazer Depois

Quando a exportação de dados for executada, os dados selecionados são formadosem uma mensagem e colocados na fila de saída configurada para o canal depublicação e seu sistema externo correspondente. A mensagem é então processadada fila de saída para o terminal configurado. Caso ocorra algum erro ao entregaruma mensagem ao terminal, será possível gerenciar e visualizar as mensagens deexportação de dados sinalizadas com erro no aplicativo Reprocessamento demensagem.

Importando dados baseados em arquivoÉ possível usar o recurso de importação de dados para carregar dados de arquivosXML ou simples delimitados para atualizar o banco de dados do Maximo. Épossível visualizar e validar os dados antes de carregá-los e confirmá-los no bancode dados. É possível optar por gerenciar erros com o aplicativo Reprocessamentode Mensagem ou extraindo erros para um formato de arquivo que seja o mesmoque o formato de arquivo importado.

Antes de Iniciar

Antes de dados poderem ser importados, se você planeja importar os dados de umarquivo simples, como um arquivo .csv, a estrutura de objeto de serviçocorporativo deve suportar estruturas de arquivo simples. Assegure que a caixa deseleção Suportar Estrutura de Arquivo Simples esteja selecionada no registro deestrutura de objeto associado no aplicativo Estruturas de Objeto. Você também

Integrando Dados a Aplicativos Externos 217

Page 224: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

deve ativar o sistema externo e o serviço corporativo antes de poder importardados.

Sobre Esta Tarefa

Os dados importados devem estar em um arquivo simples delimitado, comoseparado por vírgula, ou em formato de arquivo XML. O processo de importaçãode dados pode utilizar um serviço corporativo predefinido ou definido pelousuário.

Procedimento1. No aplicativo Sistemas Externos, exiba o sistema externo que contém o serviço

corporativo a partir do qual deseja importar dados.2. Na guia Serviços Corporativos, selecione o serviço corporativo do qual deseja

importar dados.3. Clique em Importação de Dados.4. Opcional: Selecione a caixa de seleção Visualização da Importação para

examinar os dados antes de importar e confirmar os dados no banco de dados.Use a opção de visualização para obter amostra de registros de dados. Esserecurso não tem a intenção de suportar um arquivo grande que contenhacentenas de registros. Processar de forma síncrona processa o arquivo para osobjetos de negócios e retorna quaisquer mensagens de erro encontradas, semconfirmar quaisquer atualizações no banco de dados.

5. Especifique o tipo de arquivo que você deseja usar para a importação dearquivo.

Opção Descrição

Arquivo XML Dados importados estão no formato XML.

Arquivo Simples Dados importados estão em um arquivosimples delimitado. Se necessário,modifique os valores Delimitador eQualificador de Texto.

6. No campo Especificar Arquivo de Importação, insira o caminho do nome doarquivo que o arquivo importado usa para identificação e armazenamento.

7. Selecione a caixa de seleção Gerenciamento de Erro Baseado em Arquivo sequiser gerenciar quaisquer erros encontrados por meio de um arquivo nomesmo formato que o arquivo que está sendo importado. Essa opção é umaalternativa para gerenciar erros com o aplicativo Reprocessamento deMensagem

8. Clique em OK para iniciar o processo de importação de dados.

O que Fazer Depois

Quando a importação de dados for executada, o arquivo selecionado paraimportação é formado em diversas mensagens e colocado na fila de entradaconfigurada para o serviço corporativo e seu sistema externo correspondente. Asmensagens são então processadas da fila de entrada para os objetos de aplicativopara atualização. O processamento de mensagens de uma fila de entrada requer aativação da tarefa Cron JMS quando a fila sequencial for usada ou a ativação deMessage Driven Beans para a fila contínua. Se ocorrerem erros ao processar umarquivo, é possível gerenciar e visualizar as mensagens de importação de dadossinalizadas com um erro no aplicativo Reprocessamento de Mensagem.

218 Integrando Dados a Aplicativos Externos

Page 225: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tarefas Cron para Processar Dados de EntradaSe quiser planejar carregamentos de arquivos em vez de usar a janela deimportação de dados, você deve criar, configurar e ativar a tarefa CronXMLFILECONSUMER e a tarefa Cron FLATFILECONSUMER antes de oprocessamento de mensagem de tarefa Cron poder ocorrer.

Tarefa Cron XMLFILECONSUMERA tarefa Cron XMLFILECONSUMER é o mecanismo usado para carregar arquivosXML sem qualquer intervenção do usuário do aplicativo.

A tarefa Cron XMLFILECONSUMER tem os seguintes parâmetros predefinidos:

Parâmetro Descrição

EXTERNALSYSTEM Um valor de parâmetro obrigatório que identifica o valor dosistema externo que o processo de carregamento de dados da tarefaCron usa.

SOURCEDIRECTORY Um valor de parâmetro obrigatório que define o diretório no qualarquivos de origem são carregados. Esse diretório deve existir noservidor de aplicativos.

ENTERPRISESERVICE Um valor de parâmetro obrigatório que identifica o nome doserviço corporativo que a tarefa Cron usa para processar todos osarquivos localizados no diretório de origem.

FILENAME Um valor de parâmetro opcional que determina se o processo decarregamento de dados da tarefa Cron seleciona os arquivos deorigem com base em seus nomes de arquivos.

USEREXITCLASS Um valor de classe de processamento customizado opcional quedefine recurso adicional da tarefa Cron (por exemplo, ordem docarregamento de arquivo).

TARGETENABLED Assegure-se de que o valor esteja no padrão de 0 (false). Afuncionalidade deste sinalizador é substituída pela funcionalidadedonotrun. Use o parâmetro donotrun na estrutura da tarefa Cronpara controlar em quais servidores a tarefa Cron é executada.

ISFILEEXTRACT Quando configurado para 1 (true), esse parâmetro indica que ogerenciamento de erro baseado em arquivo é usado paraprocessamento de mensagem de entrada.

Todos os arquivos XML disponíveis no diretório de origem estão associados a umsistema externo – serviço corporativo específico quando um valor é incluído nosparâmetros EXTERNALSYSTEM, SOURCEDIRECTORY e ENTERPRISESERVICE.Esses arquivos XML também são carregados na estrutura de integração.

Os arquivos que correspondem à propriedade de nome do arquivo da tarefa Cronsão associados a um sistema externo – serviço corporativo específico e sãocarregados no sistema quando um valor é incluídos nos parâmetrosEXTERNALSYSTEM, SOURCEDIRECTORY, ENTERPRISESERVICE e FILENAME

Tarefa Cron FLATFILECONSUMERA tarefa Cron FLATFILECONSUMER é o mecanismo usado para carregar arquivossimples sem qualquer intervenção do usuário do aplicativo.

Parâmetros da Tarefa Cron

A tarefa Cron FLATFILECONSUMER tem os seguintes parâmetros predefinidos:

Tabela 34. Parâmetros da Tarefa Cron FLATFILECONSUMERParâmetro Descrição

SOURCEDIRECTORY Um valor de parâmetro obrigatório que define o diretório no qualarquivos de origem são carregados. Esse diretório deve existir noservidor de aplicativos.

DELIMITER Um parâmetro obrigatório que indica o caractere que é usadocomo delimitador de campo no arquivo simples. O valor padrão é ,(vírgula).

USEREXITCLASS Um valor de classe de processamento customizado para ativarrecurso adicional da tarefa Cron (por exemplo, ordem decarregamento de arquivo).

Integrando Dados a Aplicativos Externos 219

Page 226: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tabela 34. Parâmetros da Tarefa Cron FLATFILECONSUMER (continuação)Parâmetro Descrição

TEXTQUALIFIER Um valor de parâmetro obrigatório que define o caractere que éusado como qualificador de texto no arquivo simples. O valorpadrão é “ (aspas duplas).

TARGETENENABLED Assegure-se de que o valor esteja no padrão de 0 (false). Afuncionalidade deste sinalizador é substituída pela funcionalidadedonotrun. Use o parâmetro donotrun na estrutura da tarefa Cronpara controlar em quais servidores a tarefa Cron é executada.

ISFILEEXTRACT Quando configurado para 1 (true), esse parâmetro indica que ogerenciamento de erro baseado em arquivo é usado paraprocessamento de mensagem de entrada.

Todos os arquivos disponíveis no diretório de origem são processados pela tarefaCron FLATFILECONSUMER quando um valor é incluído no parâmetroSOURCEDIRECTORY. O sistema externo e o serviço corporativo são identificados apartir do primeiro registro do arquivo simples que é importado, que faz parte dadefinição do arquivo simples.

Propriedades de Processamento da Tarefa Cron

A tarefa Cron FLATFILECONSUMER usa as seguintes propriedades deprocessamento para mensagens de entrada:v Ordem de processamento de arquivo - A ordem na qual arquivos são carregados

no servidor que é determinada pelo registro de data e hora do arquivo XML. Aclasse de saída de usuário da tarefa Cron pode ser usada para sobrescrever alógica de processamento da mensagem de entrada.

v Divisão de arquivo - Arquivos com diversos substantivos processados pela tarefaCron FLATFILECONSUMER são divididos antes de serem gravados na fila. Atarefa Cron identifica se o arquivo carregado é um arquivo XML com diversossubstantivos. Se o arquivo XML for um arquivo com diversos substantivos, aestrutura de integração usa as colunas-chave de serviço corporativo paraidentificar onde ocorre a divisão do arquivo. Por exemplo, PONUM e SITE noserviço corporativo MXPOInterface.

v Processamento de fila - A tarefa Cron FLATFILECONSUMER identifica a fila naqual o arquivo simples é carregado. O local é baseado na fila (contínua ousequencial) especificada no nível do sistema externo e do serviço corporativo.

A tarefa Cron cria um arquivo de índice (recovery_filename.txt) que contém umareferência ao último substantivo processado com sucesso quando um arquivo comdiversos substantivos é processado. A entrada no arquivo de índice é atualizadaquando o substantivo é confirmado com sucesso na fila. Os arquivos de índiceestão disponíveis na pasta RECOVERY criada no diretório de origem da tarefaCron.

A tarefa Cron FLATFILECONSUMER usa o nome do arquivo de índice paraidentificar o arquivo que foi processado antes de o problema do servidor ou da filater sido encontrado. A tarefa Cron continua a processar o arquivo XML começandopelo último substantivo confirmado com sucesso no arquivo de índice. Erros quesão identificados após uma mensagem ser gravada com sucesso em uma fila deentrada devem ser resolvidos no aplicativo Reprocessamento de Mensagem.

Configurando um Aplicativo para Exportação e Importação deDados

Para ativar importação e exportação de dados baseadas em aplicativo, você devedefinir o conteúdo de uma estrutura de objeto e ativar essa estrutura de objetopara importação e exportação.

220 Integrando Dados a Aplicativos Externos

Page 227: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Definindo o Conteúdo da Estrutura de ObjetoUsuários do aplicativo podem ter acesso concedido para exportar ou importardados diretamente de um aplicativo. Um administrador pode identificar umaestrutura de objeto apropriada para um aplicativo e conceder recursos deexportação ou importação (ou ambos) a usuário para gerenciar dados de aplicativoem um arquivo, como um arquivo .csv, que pode ser mantido em planilha.

Sobre Esta Tarefa

Determine a estrutura de objeto a ser usada para as transações de integração e, emseguida, modifique o conteúdo da estrutura de objeto para limitar troca de dadosao conteúdo necessário.

Procedimento1. No Editor de Telas, abra o aplicativo que deseja ativar e observe o valor do

campo Objeto Principal na área do cabeçalho. Esse valor deve ser o objetoprincipal usado para a estrutura de objeto.

2. No aplicativo Estruturas de Objetos, especifique o nome do objeto principal nocampo Estrutura de Objeto para filtrar por estruturas de objetos com basenesse objeto. Se a procura não retornar nenhuma estrutura de objeto baseadano objeto principal, você deve criar uma estrutura de objeto e as etapas aseguir não se aplicam.

3. Se a procura retornar diversas estruturas de objetos, selecione uma estruturade objeto em que o valor do campo Consumido por esteja configurado paraIntegração.

4. Revise o conteúdo da estrutura de objeto e pergunte as seguintes questões:a. O objeto principal da estrutura de objeto é o mesmo que o objeto principal

do aplicativo que você deseja ativar para exportação e importação dedados?

b. A estrutura de objeto inclui objetos-filhos que contêm dados que usuáriosnão precisam importar ou exportar? Por exemplo, o objeto MXPERSONinclui os objetos-filhos PHONE, EMAIL e SMS. Seus usuários podemquerer importar e exportar dados somente dos objetos PERSON e PHONE.

5. Após revisar o conteúdo da estrutura de objeto, é possível optar por usar aestrutura de objeto predefinida com todo seu conteúdo existente ou duplicaressa estrutura de objeto e modificar seu conteúdo. Se você fizer mudanças emuma estrutura de objeto predefinida, isso pode afetar quaisquer outroscenários de integração que usem essa estrutura de objeto. Duplicar a estruturade objeto e usá-la como um modelo não causa comportamento inesperadopara outros usuários de integração.

6. Supondo que você duplique a estrutura de objeto para fornecer uma novaestrutura de objeto para esse cenário, exclua quaisquer objetos-filhos que nãosejam necessários para seus usuários de integração.

7. Para cada objeto que permanece na estrutura de objeto, selecione a opçãoIncluir/Excluir Campos no menu Selecionar Ações e cancele a seleção detodos os campos que usuários não precisam importar ou exportar. Essa etapalimita os campos de dados para somente aqueles necessários pelos usuáriosdo aplicativo.

8. Se arquivos simples delimitados forem necessários (para uso em umaplanilha), selecione a caixa de seleção Suportar Estrutura Simples. Essa etapaativa uma validação para assegurar que cada coluna de cada objeto daestrutura de objeto tenha um nome exclusivo. Se a validação falhar, umindicador Conflito de Alias é configurado.

Integrando Dados a Aplicativos Externos 221

Page 228: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

9. Se a estrutura de objeto contiver um conflito de alias, selecione a opçãoIncluir/Modificar Alias no menu Selecionar Ações para designar um aliasexclusivo para qualquer nome de campo quando existir uma duplicata.Conflitos de alias não existem em nenhuma das estruturas de objetospredefinidas.

10. Salve a estrutura de objeto.

O que Fazer Depois

O conteúdo da estrutura de objeto agora está configurado e é possível concederacesso do aplicativo a ele no aplicativo Estruturas de Objetos.

Ativando Importação e Exportação de Dados em um AplicativoApós definir o conteúdo da estrutura de objeto, você deve ativar um aplicativopara importação e exportação de dados. A ativação da importação de dados é umprocedimento separado da ativação de exportação de dados. Como osprocedimentos são separados, é possível ativar alguns usuários para exportardados, ativar outros usuários para importar dados ou ativar um conjunto deusuários separado para importar e exportar dados.

Procedimento1. No aplicativo Estruturas de Objetos, selecione a estrutura de objeto que deseja

ativar.2. Selecione a ação Incluir/Modificar o Suporte de Exportação de Aplicativo.3. Na janela Incluir/Modificar Suporte à Exportação de Aplicativo, clique em

Nova Linha. Na seção Detalhes, o valor do campo Aplicativo usa como padrãoo aplicativo que tem o mesmo objeto principal que o objeto principal daestrutura de objeto.

4. Especifique Arquivo XML ou Arquivo Simples como o formato para arquivosde exportação de dados.

5. No campo Contagem Máxima, é possível especificar um valor que limita onúmero de linhas que podem ser exportadas durante uma única execução.Mesmo se o usuário selecionar 1000 registros, se o limite estiver configuradopara 100, então somente 100 linhas são exportadas. Um valor igual a 0 ou nulopermite o processamento de um número ilimitado de linhas.

6. Selecione a caixa de seleção É Padrão se diversas estruturas de objetos foremativadas para exportação de aplicativo e você quiser que essa estrutura deobjeto seja o padrão.

7. Clique em OK para salvar a configuração de exportação.8. Selecione a ação Incluir/Modificar Suporte de Importação de Aplicativo e

repita os mesmos procedimentos para configurar a importação de dados para oaplicativo.

9. Selecione o grupo de usuários para os usuários do aplicativo no aplicativoGrupos de Segurança e conceda acesso à opção Exportação de Aplicativo, àopção Importação de Aplicativo ou a ambas as opções.

Iniciando Exportação e Importação de Dados em um AplicativoApós ativar exportação e importação de dados em um aplicativo, ícones sãoincluídos na barra de ferramentas do aplicativo para iniciar as transações.

Iniciando Exportação de Dados em um Aplicativo:

Após ativar exportação de dados para um aplicativo, usuários podem iniciartransações de exportação a partir da interface com o usuário do aplicativo.

222 Integrando Dados a Aplicativos Externos

Page 229: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Procedimento

1. Na guia Lista do aplicativo, selecione os dados para exportação em uma dasseguintes maneiras:v Use as opções de filtro para filtrar por um conjunto de registros para

exportação e clique no ícone Exportação de Aplicativo na barra deferramentas.

v Selecione um registro específico para exportação e clique no ícone Exportaçãode Aplicativo. Essa opção exporta somente os dados de um único registro.

2. Na janela Exportação de Dados, revise as configurações de exportação e façaquaisquer ajustes necessários:a. Opcional: Especifique um valor diferente no campo Estrutura de Objeto se

não quiser usar a estrutura de objeto padrão para a exportação. É possívelespecificar uma estrutura de objeto alternativa somente se outra estruturade objeto tiver sido ativada para esse aplicativo. Se você especificar umaestrutura de objeto alternativa, a janela é atualizada para incluir a seçãoConfiguração de Exportação onde é possível configurar definiçõesadicionais.

b. Opcional: Se o valor do campo Selecionado para Exportação exceder ovalor do campo Limite de Exportação, é possível cancelar a exportação eusar um filtro diferente para reduzir o número de registros a exportar. Ovalor do campo Limite de Exportação é configurado pelo administrador enão pode ser excedido, independentemente do número de registrosselecionados.

3. Opcional: Na seção Configuração de Exportação (expandida somente se vocêtiver especificado uma estrutura de objeto que não seja a padrão, especifique oformato de dados:a. Se você selecionar o formato XML, especifique a operação para a

exportação, por exemplo, Sincronizar.b. Se você selecionar o formato Arquivo Simples, especifique valores nos

campos Delimitador e Qualificador de Texto.4. Clique em OK para iniciar a exportação. Uma caixa de diálogo Salvar é aberta

na qual é possível especificar onde salvar o arquivo. Para que um arquivosimples seja aberto em um aplicativo de planilha, é possível alterar o nome doarquivo para usar o sufixo .csv. Se a caixa de diálogo Salvar não abrir, altere asconfigurações de segurança de seu navegador para ativar aviso automáticopara downloads.

Iniciando uma Importação de Dados em um Aplicativo:

Após ativar a importação de dados para um aplicativo, os usuários podem iniciartransações de importação a partir da interface com o usuário do aplicativo.

Procedimento

1. De qualquer parte do aplicativo, clique no ícone Importação de Dados na barrade ferramentas.

2. Opcional: Na janela Importação de Dados, especifique um valor diferente nocampo Estrutura de Objeto se não quiser usar a estrutura de objeto padrãopara a importação. Se uma estrutura de objeto alternativa for especificada, aseção Configuração de Importação é expandida e você deve executarconfigurações adicionais nela.

3. Opcional: Se tiver especificado uma estrutura de objeto alternativa, na seçãoConfiguração de Importação, especifique os seguintes valores:

Integrando Dados a Aplicativos Externos 223

Page 230: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

a. Se você especificar o formato XML, nenhuma configuração adicional seránecessária, pois o arquivo XML de entrada especifica a operação, o códigode idioma e o código de ação.

b. Se você especificar o formato Arquivo Simples, é possível especificarvalores nos campos Delimitador, Qualificador de Texto, Ação e Código deIdioma ou é possível usar os valores padrão.

4. Opcional: Revise o valor no campo Limite de Importação. Não é possívelalterar esse valor. Se o limite for configurado, por exemplo, para 100 registros eo arquivo de importação contiver 200 registros, somente os 100 primeirosregistros são importados.

5. Clique em Procurar para navegar até o arquivo de importação e selecione-o.6. Opcional: Se você selecionar Visualização da Importação, ao executar a

importação, o arquivo é processado pelos objetos de negócios, mas os dadosnão são salvos no banco de dados. É possível usar essa opção para testar ocarregamento de dados e validar que não há erros antes do carregamento.Quaisquer erros são exibidos e é possível aplicar correções ao arquivo deentrada e tentar a importação novamente.

7. Clique em OK para iniciar a importação. Como a importação de dados é umprocesso síncrono, você deve esperar na interface com o usuário até ocarregamento ser concluído e uma mensagem de confirmação aparecer. Se ocarregamento encontrar erros, nenhum dado é carregado, já que o arquivo éprocessado como uma única transação com uma única confirmação.

API RESTA interface de programação de aplicativos (API) Representational State Transfer(REST) fornece uma maneira de aplicativos externos consultarem e atualizaremdados do aplicativo no mecanismo de automação de processo da Tivoli.

A API REST faz parte da estrutura de integração e é possível usá-la para integraraplicativos externos com aplicativos do mecanismo de automação de processo. AAPI REST expõe objetos de negócios e estruturas do objeto de integração comorecursos REST. A API REST pode fornecer dados de recurso no formato XML ouJavaScript Object Notation (JSON). Os aplicativos externos podem usar a API RESTpara consultar e atualizar dados do aplicativo.

Os recursos da API REST podem ser usados sem qualquer configuração. Asestruturas de objeto que a API REST pode consultar ou atualizar possuem umvalor igual a INTEGRATION no campo Consumido Por no aplicativo Estruturasde Objeto.

A API REST suporta as operações de criação, consulta, atualização e exclusão emrecursos usando métodos HTTP GET, POST, PUT e DELETE padrão.Informações relacionadas:

Usando Detalhes da API REST (É aberto em uma nova janela do navegador ouguia)

RESTing com Maximo (É aberto em uma nova janela do navegador ou guia)

Estrutura da API RESTA API REST faz parte da estrutura de integração e manipula solicitações deconsumidores externos.

224 Integrando Dados a Aplicativos Externos

Page 231: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

O diagrama a seguir fornece uma visão geral de como a API REST manipulasolicitações.

Quando um consumidor externo inicia uma solicitação, um controlador da APIREST direciona a solicitação do recurso para o manipulador de recurso apropriado.O manipulador de recurso interage com recursos para executar a solicitação.Quando a solicitação é concluída, o recurso ou a coleção de recursos resultante éprocessada pelo serializador de recursos. O serializador de recursos retorna arepresentação como a resposta do recurso. Os serializadores são fornecidos paraXML e JSON.

Como a API REST está dentro da estrutura de integração, a API REST pode usar aautenticação, a autorização e as propriedades de sistema do mecanismo deautomação de processo.

O controlador da API REST é um servlet. O desempenho e o ajuste paracarregamento e escalabilidade são feitos no nível do servidor de aplicativos poiseles são para outros componentes da Web.

Representações SuportadasA API REST suporta XML e JSON como representações. As representações sãosuportadas pela implementação de classes serializadoras que são registradas empropriedades de sistema.

As representações XML e JSON são registradas nas propriedades de sistema daAPI REST a seguir:v mxe.rest.serializer.mbo.xml

v mxe.rest.serializer.os.xml

v mxe.rest.serializer.mbo.json

v mxe.rest.serializer.os.json

É possível estender serializadores para processamento customizado. É possívelcriar serializadores para tipos de recurso existentes e para instâncias individuais derecursos de objeto de negócios ou recursos de estrutura de objeto.

Para recursos de estrutura de objeto, o formato XML para a API REST ésemelhante ao formato que é suportado pela estrutura de integração.

Consumidor externo

Solicitação derecurso

Resposta derecurso

Controlador daAPI REST

Manipulador derecursos

Estrutura da API REST

Estrutura do mecanismo de automação do processo Tivoli

RecursosObjeto de negócios

(MBO)Estrutura de objeto

(OS)

Serializador derecursos

Apresentação de recurso(XML, JSON)

Recurso/Coleção de recursos

Integrando Dados a Aplicativos Externos 225

Page 232: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Referências relacionadas:“Propriedades de Sistema REST” na página 253As propriedades de sistema estão disponíveis para configurar como a API RESTfunciona para seus requisitos específicos.

Manipuladores de Recursos e URIsA API REST fornece acesso a objetos de negócios e a estruturas do objeto deintegração. Uma classe manipuladora para cada recurso é registrada em umapropriedade de sistema.

As classes manipuladoras para recursos do objeto de negócios e da estrutura deobjeto são registradas na propriedade de sistema mxe.rest.handler.mbo e napropriedade de sistema mxe.rest.handler.os.

É possível estender manipuladores para processamento customizado. É possívelcriar manipuladores para outros tipos de recursos e para instâncias individuais derecursos de objetos de negócios ou recursos da estrutura de objeto.

Os recursos da API REST são endereçados usando identificadores de recurso quefazem parte do Identificador Uniforme de Recursos (URI). Os URIs são usadospara endereçar as entidades que são representadas como recursos REST.

Por exemplo, o URI a seguir acessa uma coleção de objetos de negócios de Pessoa.O mbo indica o tipo de recurso do objeto de negócios e person é o recurso:.../maxrest/rest/mbo/person

Para outro exemplo, o URI a seguir acessa uma coleção de dados para a estruturade objeto de Pessoa. O os indica o tipo de recurso de estrutura de objeto emxperson é o recurso:.../maxrest/rest/os/mxperson

Método GETUse o método GET para recuperar recursos de objeto de negócios e recursos daestrutura de objeto.

SintaxeGET uri?parameter=value?parameter=value&...

uri é um URI. O comprimento do caminho do URI não pode exceder nenhumlimite especificado pelo sistema.

parameter é um parâmetro de consulta.

value é o valor do parâmetro de consulta.

Exemplo: Recuperando um Recurso de Objeto de Negócios

O método a seguir recupera um recurso de objeto de negócios:GET /maxrest/rest/mbo/asset/123

O XML a seguir é retornado:<?xml version="1.0" encoding="UTF-8"?>

<ASSET xmlns="http://www.ibm.com/maximo"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<ASSETNUM>11200</ASSETNUM><SERIALNUM>3481-52</SERIALNUM><ASSETTAG>3751</ASSETTAG><LOCATION>BR200</LOCATION>

226 Integrando Dados a Aplicativos Externos

Page 233: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

<DESCRIPTION>HVAC System- 50 Ton Cool Cap/ 450000 Btu Heat Cap</DESCRIPTION><ASSETUID>123</ASSETUID>..

</ASSET>

A resposta do recurso é mostrada em XML. A configuração de formato padrãopode ser configurada na propriedade de sistema mxe.rest.mbo.defaultformat.

Exemplo: Recuperando um Recurso de Estrutura de Objeto

O método a seguir recupera um recurso de estrutura de objeto:GET /maxrest/rest/mbo/mxasset/123

O XML a seguir é retornado:<?xml version="1.0" encoding="UTF-8"?>

<QueryMXASSETResponse xmlns="http://www.ibm.com/maximo"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"creationDateTime="2011-04-07T11:43:59-04:00"transLanguage="EN" baseLanguage="EN" messageID="1302195161355515345"maximoVersion="7 5 20110405-0030 V7500-718" rsStart="0" rsTotal="1"rsCount="1"><MXASSETSet>

<ASSET><ASSETNUM>11200</ASSETNUM><SERIALNUM>3481-52</SERIALNUM><ASSETTAG>3751</ASSETTAG><LOCATION>BR200</LOCATION><DESCRIPTION>HVAC System- 50 Ton Cool Cap/ 450000 Btu Heat Cap</DESCRIPTION><ASSETUID>123</ASSETUID>..<ASSETMETER>

<ACTIVE>1</ACTIVE><ASSETMETERID>63</ASSETMETERID><LASTREADING>0</LASTREADING><METERNAME>PRESSURE</METERNAME>..

</ASSETMETER><ASSETSPEC>

<ASSETATTRID>SPEED</ASSETATTRID><ASSETSPECID>2138</ASSETSPECID>..

</ASSETSPEC><ASSETSPEC>

<ASSETATTRID>SHAFTDIA</ASSETATTRID><ASSETSPECID>2139</ASSETSPECID>..

</ASSETSPEC></ASSET>

</MXASSETSet></QueryMXASSETResponse>

Os dados de recurso de estrutura de objeto incluem ativo, medidor de ativo edados de especificação de ativo baseados na configuração dos objetos dentro daestrutura de objeto MXASSET. Quaisquer campos que são configurados para seremincluídos ou excluídos são implementados nos dados.

O caminho do URI pode conter o ID do recurso como uma maneira de selecionarum recurso específico. No exemplo precedente, o ID é 123. O valor do ID é um IDexclusivo para o objeto que está registrado na tabela MAXATTRIBUTE. Se nenhumID é fornecido, a resposta inclui todas as ocorrências do recurso, dependendo dasrestrições de segurança no usuário. O ID é o único campo de objeto de negóciosque pode fazer parte do caminho de URI para critérios de seleção. Todos os outroscampos podem ser usados como um parâmetro de consulta no URI para filtragemde seleção.

Exemplo: Selecionando Recursos-filho Relacionados

O método a seguir solicita um recurso de OC para um recurso de objeto denegócios:GET /maxrest/rest/mbo/po/13

O XML a seguir é retornado:

Integrando Dados a Aplicativos Externos 227

Page 234: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

<?xml version="1.0" encoding="UTF-8"?><PO xmlns="http://www.ibm.com/maximo"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><PONUM>1005</PONUM><DESCRIPTION>Electrical Supplies</DESCRIPTION>..

</PO>

Exemplo: Selecionando Linhas de OC Relacionadas de uma OC

O método a seguir solicita todas as linhas de OC que estão relacionadas à OC queestá relacionada no exemplo anterior:GET /maxrest/rest/mbo/po/13/poline

O XML a seguir é retornado:<?xml version="1.0" encoding="UTF-8"?>

<POLINEMboSet rsStart="0" rsTotal="2" rsCount="2"xmlns="http://www.ibm.com/maximo"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><POLINE xmlns="http://www.ibm.com/maximo"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><PONUM>1005</PONUM><ITEMNUM>11241</ITEMNUM><STORELOC>CENTRAL</STORELOC><ORDERQTY>3.0</ORDERQTY><POLINENUM>1</POLINENUM><POLINEID>10051</POLINEID>..

</POLINE><POLINE xmlns="http://www.ibm.com/maximo"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><PONUM>1005</PONUM><ITEMNUM>29331</ITEMNUM><STORELOC>PKG</STORELOC><ORDERQTY>2.0</ORDERQTY><POLINENUM>2</POLINENUM><POLINEID>10052</POLINEID>..

</POLINE></POLINEMboSet>

Se você selecionar POLINE, o nome do relacionamento que é especificado no URI(POLINE) identifica o caminho do objeto de negócios (PO) para um objeto denegócios relacionado (POLINE). Neste este exemplo, o objeto de negócios e orelacionamento possuem o mesmo nome. Um objeto pode ter muitosrelacionamentos entre dois objetos que podem resultar em diferentes dados sendorelacionados para o objeto relacionado. Os relacionamentos são definidos na tabelaMAXRELATIONSHIP.

Para recuperar somente a linha de um objeto de negócios POLINE específico,inclua o ID do objeto de negócios POLINE no URI:GET /maxrest/rest/mbo/po13/poline/10052

Neste exemplo, poline representa o nome do relacionamento e 10052 é o ID doobjeto de negócios POLINE que o relacionamento recupera. É possível usar amesma abordagem para especificar o caminho de POLINE para ITEM ou POCOST:GET /maxrest/rest/mbo/po/13/poline/10052/item

GET /maxrest/rest/mbo/po/13/poline/10052/pocost

Quando você usa o recurso da estrutura de objeto, os objetos-filhos não podem terrelacionamentos. A estrutura de objeto suporta um gráfico de objetos de negóciosrelacionados. Os relacionamentos fazem parte da definição da estrutura de objeto.

É possível atravessar objetos de negócios relacionados para mover de um recursopara outro se um relacionamento válido existir entre o objeto de origem e o dedestino.Referências relacionadas:“Propriedades do Cabeçalho HTTP” na página 244Várias propriedades do cabeçalho HTTP são relevantes para a API REST.

228 Integrando Dados a Aplicativos Externos

Page 235: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Parâmetros de Consulta e OperadoresPara buscar um recurso cujo ID exclusivo é conhecido, é possível fornecer o ID dorecurso como parte do caminho do URI. Também é possível usar parâmetros deconsulta para filtrar e buscar coleções de recursos.

Em uma coleção de recursos, a representação possui um ponteiro para o IDexclusivo de cada recurso. O ID é usado pelo software de consumo para criar olink para o recurso. O link é usado para atualizar, excluir e consultar o recurso.

Uma interação RESTful geralmente inicia pela busca de uma coleção de recursos e,em seguida, pela pesquisa detalhada de um recurso específico na coleção.

É possível usar qualquer campo de um recurso de objeto de negócios ou umrecurso de objeto de negócios relacionado como um parâmetro de consulta. Aestrutura do objeto de negócios Query By Example (QBE) restringe orelacionamento entre os objetos de negócios a um nível profundo. Qualquer campode um recurso da estrutura de objeto pode ser usado como um parâmetro deconsulta se o campo pertence a um objeto que reside nos dois principais níveis daestrutura de objeto.

Se você usar um atributo do objeto de negócios como um parâmetro de consulta,os operadores a seguir poderão ser usados como parte do parâmetro.

Operador Notação Exemplo

Igual ~eq~ status=~eq~APPR Use ooperador de igual paraexecutar umacorrespondência exata. Umaconsulta status=APPR implicaem uma comparação dooperador como. Se você usarstatus=APPR&_exactmatch=1,o processador será forçado aexecutar umacorrespondência exata. Estanotação produz o mesmoresultado questatus=~eq~APPR.

Não igual ~neq~ status=~neq~APPR

Maior que ~gt~ quantity=~gt~2.5

Maior ou igual a ~gteq~ quantity=~gteq~2.5

Menor que ~lt~ quantity=~lt~2.5

Menor ou igual a ~lteq~ quantity=~lteq~2.5

Termina com ~ew~ description=~ew~APPR

Inicia com ~sw~ description=~sw~APPR

Como Nenhuma notação necessária description=APPR

Exemplo: Consultando por Local

O exemplo a seguir consulta um local usando o número do local como umparâmetro de consulta sem um operador:GET maxrest/rest/mbo/locations?location=PT100

Integrando Dados a Aplicativos Externos 229

Page 236: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

O XML a seguir é retornado pela consulta:<?xml version="1.0" encoding="UTF-8"?>

<LOCATIONSMboSet rsStart="0" rsTotal="2" rsCount="2"xmlns="http://www.ibm.com/maximo"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><LOCATIONS>

<LOCATION>PT100</LOCATION><DESCRIPTION>PT100</DESCRIPTION>..

</LOCATIONS><LOCATIONS>

<LOCATION>PT1001</LOCATION><DESCRIPTION>1001</DESCRIPTION>..

</LOCATIONS></LOCATIONSMboSet>

Como nenhum operador é especificado, uma comparação like é usada e oresultado possui dois locais. Se a solicitação usar o operador equals, comente olocal PT100 será retornado para a solicitação de consulta, porque o operadorimpinge uma correspondência exata:GET /maxrest/rest/mbo/locations?location=~eq~PT100

Exemplo: Usando Diversos Parâmetros

O exemplo a seguir mostra o uso de diversos parâmetros para consultar umaquantidade de YTD de Emissão que é maior que 1 e uma quantidade de pedidoque é maior que 5:GET /maxrest/rest/mbo/inventory?issueytd=~gt~1&orderqty=~gt~5

Exemplo: Usando a Condição ormode

É possível solicitar diversos valores para um único campo usando a condiçãoormode. O exemplo a seguir seleciona registros nos quais a quantidade de YTD deemissão é igual a 7 ou menor que 4:GET /maxrest/rest/mbo/inventory?issueytd.ormode=~eq~7&issueytd.ormode=~lt~4

Exemplo: Nenhum Registro Selecionado

Se uma solicitação de consulta resultar em nenhum registro sendo selecionado, umconjunto de resultados vazio (não uma condição de exceção) será retornado.

Por exemplo, a seguinte solicitação é para registros que possuem a quantidade deYTD de Emissão igual a 99:GET /maxrest/rest/mbo/inventory?issueytd=~eq~99

Nenhum registro é selecionado como um resultado da solicitação e, portanto, oseguinte resultado vazio é retornado:<?xml version="1.0" encoding="UTF-8"?>

<INVENTORYMboSet rsStart="0" rsTotal="0" rsCount="0"xmlns="http://www.ibm.com/maximo"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />

Parâmetro _opmodeorUse o parâmetro _opmodeor para avaliar diversos campos usando uma condiçãoOR entre valores em vez da condição AND padrão.

Por exemplo, a solicitação a seguir retorna registros nos quais a quantidade deYTD de emissão é maior do que 1 e a quantidade de pedido é maior do que 5:GET /maxrest/rest/mbo/inventory?issueytd=~gt~1&orderqty=~gt~5

A consulta seleciona seis registros, conforme mostrado no atributo rsTotal:<?xml version="1.0" encoding="UTF-8"?>

<INVENTORYMboSet rsStart="0" rsTotal="6" rsCount="6"xmlns="http://www.ibm.com/maximo"

230 Integrando Dados a Aplicativos Externos

Page 237: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><INVENTORY xmlns="http://www.ibm.com/maximo"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><ITEMSETID>SET1</ITEMSETID><MANUFACTURER>WES</MANUFACTURER><SHRINKAGEACC>

<VALUE>6600-810-800</VALUE></INVENTORY>..

<INVENTORY xmlns="http://www.ibm.com/maximo"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

.

.

A solicitação modificada a seguir configura o parâmetro _opmodeor como true pararetornar registros nos quais a quantidade de YTD de emissão é maior do que 1 oua quantidade de pedido é maior do que 5:GET /maxrest/rest/mbo/inventory?issueytd=~gt~1&orderqty=~gt~5&_opmodeor=1

A consulta modificada seleciona 54 registros:<?xml version="1.0" encoding="UTF-8"?>

<INVENTORYMboSet rsStart="0" rsTotal="54" rsCount="54"xmlns="http://www.ibm.com/maximo"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><INVENTORY xmlns="http://www.ibm.com/maximo"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">..

Parâmetros _rsStart e _maxItemsOs parâmetros _rsStart e _maxItems são usados juntos para controlar o número deregistros retornados para uma solicitação e para permitir a paginação em umgrande volume de registros.

Exemplo: Selecionar Todos os Recursos de Ativo

A solicitação a seguir seleciona todos os recursos de ativo no sestema:GET maxrest/rest/mbo/asset?&_opmodeor=1

Neste exemplo, 757 ativos são selecionados:<?xml version="1.0" encoding="UTF-8"?>

<ASSETMboSet rsStart="0" rsTotal="757" rsCount="757"xmlns="http://www.ibm.com/maximo"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><ASSET xmlns="http://www.ibm.com/maximo"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><ASSETNUM>CAL100</ASSETNUM>

Na solicitação a seguir, o parâmetro _maxItems limita o número de linhasselecionadas. O número de linhas é limitado a 20, conforme mostrado pelo valorrsCount:GET /maxrest/rest/mbo/asset?_maxItems=20

<?xml version="1.0" encoding="UTF-8"?><ASSETMboSet rsStart="0" rsTotal="757" rsCount="20"

xmlns="http://www.ibm.com/maximo"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><ASSET xmlns="http://www.ibm.com/maximo"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

Para recuperar as próximas 20 linhas, a solicitação a seguir inclui o parâmetro_rsStart:GET /maxrest/rest/mbo/asset?_maxItems=20&_rsStart=20

<?xml version="1.0" encoding="UTF-8"?><ASSETMboSet rsStart="20" rsTotal="757" rsCount="20"

xmlns="http://www.ibm.com/maximo"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><ASSET xmlns="http://www.ibm.com/maximo"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

As próximas 20 linhas são recuperadas, iniciando na linha 20 e terminando nalinha 39.Conceitos relacionados:

Integrando Dados a Aplicativos Externos 231

Page 238: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

“Rolagem na Sessão” na página 236Manter uma coleção de recursos na memória pode melhorar o desempenho aorolar por meio das páginas de dados.

Parâmetro _orderbyascO parâmetro _orderbyasc controla a ordem de classificação de dados retornados.

Os atributos que são usados para a ordenação por cláusula são mostrados emordem crescente. Forneça uma lista separada por vírgula de nomes do campo parao objeto de recurso para classificar o resultado.

Use o parâmetro _orderbydesc de uma maneira semelhante para classificar emordem decrescente.

Exemplo: Classificando uma Resposta

A solicitação a seguir não inclui o parâmetro _orderbyasc:GET /maxrest/rest/mbo/asset?_maxItems=20&_rsStart=20

Os ativos a seguir são retornados:<?xml version="1.0" encoding="UTF-8"?>

<ASSETMboSet rsStart="20" rsTotal="757" rsCount="20"xmlns="http://www.ibm.com/maximo"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><ASSET xmlns="http://www.ibm.com/maximo"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><ASSETNUM>7400</ASSETNUM><SERIALNUM>A5252525555</SERIALNUM><LOCATION>HWSTOCK</LOCATION>..

<ASSET xmlns="http://www.ibm.com/maximo"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><ASSETNUM>7300</ASSETNUM><SERIALNUM>A6687688888</SERIALNUM><LOCATION>HWSTOCK</LOCATION>..

<ASSET xmlns="http://www.ibm.com/maximo"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><ASSETNUM>7200</ASSETNUM><SERIALNUM>A6387683888</SERIALNUM><LOCATION>HARDWARE</LOCATION>..

A solicitação a seguir inclui o parâmetro _orderbyasc especificando o campo delocal do objeto de negócios do ativo:GET /maxrest/rest/mbo/asset?_maxItems=20&_rsStart=20&_orderbyasc=location

A solicitação modificada retorna os seguintes ativos na ordem de classificaçãosolicitada:<?xml version="1.0" encoding="UTF-8"?>

<ASSETMboSet rsStart="20" rsTotal="757" rsCount="20"xmlns="http://www.ibm.com/maximo"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><ASSET xmlns="http://www.ibm.com/maximo"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><ASSETNUM>2045</ASSETNUM><PARENT>19998</PARENT><LOCATION>5THFLSWSTOCK</LOCATION>..

<ASSET xmlns="http://www.ibm.com/maximo"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><ASSETNUM>2002</ASSETNUM><SERIALNUM>K6LQI</SERIALNUM><LOCATION>6THFLOOR</LOCATION>..

<ASSET xmlns="http://www.ibm.com/maximo"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><ASSETNUM>2074</ASSETNUM><PARENT>2002</PARENT><LOCATION>6THFLOOR</LOCATION>..

232 Integrando Dados a Aplicativos Externos

Page 239: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Parâmetros _includecols e _excludecolsUse os parâmetros _includecols e _excludecols para controlar o conteúdo dosatributos que são retornados em resposta a uma consulta.

Se nenhum parâmetro for especificado, todos os atributos serão retornados paraum recurso de objeto de negócios. Os parâmetros _includecols e _excludecols sãoválidos somente para um recurso de objeto de negócios.

Exemplo: Recuperando Campos Específicos

Se você usar o parâmetro _includecols, somente os atributos que são listados parao parâmetro serão retornados:GET /maxrest/rest/mbo/asset?_includecols=assetnum,serialnum

A solicitação retorna somente o número do ativo e o número de série:<?xml version="1.0" encoding="UTF-8"?>

<ASSETMboSet rsStart="0" rsTotal="757" rsCount="757"xmlns="http://www.ibm.com/maximo"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><ASSET xmlns="http://www.ibm.com/maximo"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><SERIALNUM>32R5G</SERIALNUM><ASSETNUM>13150</ASSETNUM>

</ASSET><ASSET xmlns="http://www.ibm.com/maximo"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><SERIALNUM>2342VV</SERIALNUM><ASSETNUM>13160</ASSETNUM>

</ASSET>

Exemplo: Excluindo um Campo

O parâmetro _excludecols identifica uma lista de campos de objeto de negóciospara excluir da resposta da consulta:GET /maxrest/rest/mbo/asset?_excludecols=serialnum

Neste exemplo, a solicitação retorna todos os campos do recurso do ativo, exceto onúmero de série.

Parâmetro _dropnullsConfigure o parâmetro _dropnulls como false para incluir campos que possuemum valor nulo na resposta da consulta.

Todos os campos de recurso são retornados por uma consulta, a menos que sejamrestringidos por outros parâmetros ou pela configuração da estrutura de objeto. Seo parâmetro _dropnulls não for fornecido, campos nulos serão eliminados daresposta da consulta.

Exemplo: Incluindo Campos que Possuem Valores Nulos

A consulta a seguir inclui o parâmetro:GET /maxrest/rest/os/mxasset?_dropnulls=0&_maxItems=1

A consulta retorna valores nulos conforme mostrado no XML a seguir:<?xml version="1.0" encoding="UTF-8"?>

<QueryMXASSETResponse xmlns="http://www.ibm.com/maximo"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"creationDateTime="2011-04-08T09:25:11-04:00" transLanguage="EN"baseLanguage="EN" messageID="1302273234298496774"maximoVersion="7 5 20110405-0030 V7500-718" rsStart="0"rsTotal="757" rsCount="1"><MXASSETSet><ASSET>

<ANCESTOR /><ASSETID>1579</ASSETID><ASSETNUM>CAL100</ASSETNUM><ASSETTAG /><ASSETTYPE /><AUTOWOGEN>0</AUTOWOGEN><BINNUM />

Integrando Dados a Aplicativos Externos 233

Page 240: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

<BUDGETCOST>0.0</BUDGETCOST><CALNUM /><CHANGEBY>WILSON</CHANGEBY>..

Parâmetros _format e _compactA API REST suporta representações XML e JSON (formatos). É possível usar oparâmetro _format ou a negociação de conteúdo para especificar umarepresentação de recurso. É possível usar o parâmetro _compact para especificar oformato JSON compacto.

Se uma solicitação não especificar um formato, a representação padrão é usada. Opadrão é definido pela propriedade de sistema mxe.rest.mbo.defaultformat.

Se uma solicitação especificar o parâmetro _format, o valor será validado comrelação à lista de formatos suportados na propriedade de sistemamxe.rest.supportedformats. Se o formato solicitado corresponder a um dosformatos suportados, o formato solicitado será usado como o formato de resposta.Se o formato solicitado não corresponder à lista de formatos suportados, umcódigo de erro HTTP 406 será gerado.

O parâmetro de consulta booleano _compact se aplica ao formato JSON quando aresposta formatada pode ser retornada em um estilo compacto. A estrutura dosdados de resposta é simplificada e nenhum metadado é retornado para valores docampo individuais.

Exemplo: Especificando a Representação JSON

A solicitação a seguir é para um objeto Asset na representação JSON:GET /maxrest/rest/mbo/asset/123?_format=json

A resposta a seguir é retornada:{

ASSET: {

Attributes: {

ASSETNUM: {content: "11200"}

SERIALNUM: {content: "3481-52"}

ASSETTAG: {content: "3751"}

LOCATION: {content: "BR200"}

DESCRIPTION: {content: "HVAC System- 50 Ton Cool Cap/ 450000 Btu Heat Cap"}

Exemplo: Especificando o Formato Compacto

A solicitação a seguir especifica o formato compacto:GET /maxrest/rest/mbo/asset/123?_format=json&_compact=1

Esta seguinte resposta é retornada:{

ASSET: {ASSETNUM: "11200"SERIALNUM: "3481-52"ASSETTAG: "3751"LOCATION: "BR200"DESCRIPTION: "HVAC System- 50 Ton Cool Cap/ 450000 Btu Heat Cap"

234 Integrando Dados a Aplicativos Externos

Page 241: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

VENDOR: "TRN"MANUFACTURER: "TRN"..

Conceitos relacionados:“Negociação de Conteúdo de Representações”A API REST suporta a identificação do formato de representação usando anegociação de conteúdo como uma alternativa ao uso do parâmetro de consulta_format.

Negociação de Conteúdo de RepresentaçõesA API REST suporta a identificação do formato de representação usando anegociação de conteúdo como uma alternativa ao uso do parâmetro de consulta_format.

Para formatos XML e JSON, os valores de tipo MIME suportados são definidos nasseguintes propriedades de sistema:

Propriedade Valor

mxe.rest.format.json.mimetypes aplicativo/json

mxe.rest.format.xml.mimetypes aplicativo/xml,texto/xml

O formato é um alias para um ou muitos tipos MIME e é usado para identificar oserializador para um tipo MIME solicitado. A API REST usa o valor do cabeçalhoHTTP Accept para negociação de conteúdo. A API REST corresponde ao valor docabeçalho para um dos tipos MIME especificados que estão definidos napropriedade de sistema. Se houver uma correspondência, a API REST usará o valorcomo o formato correspondente para o formato de resposta. Se não houvercorrespondência com a lista de formatos suportados, um código de erro HTTP 406será gerado.

Os serializadores XML e JSON sempre respondem com os valores application/xmlpara a representação XML e application/json para a representação JSON napropriedade do cabeçalho Content-Type. Se você criar um serializador parasuportar outro formato, inclua seu formato na lista na propriedade de sistemamxe.rest.supportedformats.

Os valores na propriedade de sistema mxe.rest.supportedformats estãorelacionados aos valores que são fornecidos em propriedades individuais para osvalores de tipo MIME suportados correspondentes, tais comomxe.rest.format.NEW.mimetypes. Os valores de tipo MIME são fornecidos nasolicitação por meio da propriedade do cabeçalho Accept.

Por exemplo, as propriedades de sistema a seguir são usadas para incluir HTMLcomo um formato de representação de recurso:

Propriedade Valor

mxe.rest.supportedformats html,xml,json,imagem

mxe.rest.format.html.mimetypes text/html

mxe.rest.mbo.serializer com.ibm.tivoli.maximo.rest.MboHTMLSerializer

mxe.rest.os.serializer com.ibm.tivoli.maximo.rest.OSHTMLSerializer

Quando o parâmetro _format e a propriedade do cabeçalho Accept são fornecidospara uma consulta, o parâmetro de consulta tem precedência.

Integrando Dados a Aplicativos Externos 235

Page 242: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Conceitos relacionados:“Parâmetros _format e _compact” na página 234A API REST suporta representações XML e JSON (formatos). É possível usar oparâmetro _format ou a negociação de conteúdo para especificar umarepresentação de recurso. É possível usar o parâmetro _compact para especificar oformato JSON compacto.

Rolagem na SessãoManter uma coleção de recursos na memória pode melhorar o desempenho aorolar por meio das páginas de dados.

Se você especificar o parâmetro _usc com um valor igual a 1 em uma consulta, oservidor manterá a coleção de recursos na memória. O navegador pode solicitarpáginas de dados adicionais a partir da memória em vez de selecionar novamenteos dados do objeto de negócios. A resposta HTTP inclui o ID da coleção derecursos na propriedade do cabeçalho RLID.

Solicitações subsequentes para páginas adicionais de dados podem especificar oparâmetro _maxitem, o parâmetro _rsStart e o parâmetro _rlid, que contêm o IDda coleção de recursos. O servidor recupera a próxima página a partir dos dadosque são mantidos na memória para o ID especificado.

Os dados do cache do servidor são mantidos até a sessão do navegador terminarou até o navegador liberar os dados. Por exemplo, os dados são liberados se o IDdo recurso é especificado pelo parâmetro _rlid e o parâmetro _rlrq estáconfigurado como true.

Como uma alternativa para usar os parâmetros _maxitems e _rsStart para rolagemna sessão, é possível criar uma propriedade de sistemamxe.rest.handler.resource.pagesize e designar-lhe diversos recursos para cadapágina de dados. É possível, então, usar o parâmetro de consulta _page nasolicitação para selecionar uma página de dados específica, tal como página 3.

Por exemplo, se você criar a propriedade de sistema mxe.rest.mbo.asset.pagesizee designar-lhe o valor 35, 35 ativos serão retornados para cada página de dados.Conceitos relacionados:“Parâmetros _rsStart e _maxItems” na página 231Os parâmetros _rsStart e _maxItems são usados juntos para controlar o número deregistros retornados para uma solicitação e para permitir a paginação em umgrande volume de registros.Referências relacionadas:“Propriedades do Cabeçalho HTTP” na página 244Várias propriedades do cabeçalho HTTP são relevantes para a API REST.“Parâmetros de Consulta REST” na página 249Usando parâmetros de consulta, é possível padronizar e filtrar as respostas.

Armazenamento em Cache de Solicitações GETAtivando o armazenamento em cache de solicitações GET, é possível melhorar ostempos de resposta de solicitações para dados de recurso que foram submetidosanteriormente pelo mesmo usuário.

Quando o armazenamento em cache está ativado, os dados são recuperados docache do navegador em vez de a partir do objeto de negócios no servidor. Oarmazenamento em cache é usado para uma solicitação se o valor da tag daentidade (ETag) da solicitação corresponde ao valor da solicitação anterior. O

236 Integrando Dados a Aplicativos Externos

Page 243: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

armazenamento em cache é exclusivo para cada usuário e é controlado pelapropriedade do cabeçalho HTTP Cache-Control.

Ativando o Armazenamento em Cache

Ative o armazenamento em cache para recursos individuais criando propriedadesde sistema. As propriedades de sistema devem estar no formatomxe.rest.handler.resource.cache, em que handler é mbo ou os e resource é o nome doobjeto de negócios ou da estrutura de objeto. As propriedades de sistema devemter um valor booleano igual a 1.

Por exemplo, a propriedade de sistema mxe.rest.mbo.workorder.cache configuradacom um valor igual a 1 ativa o armazenamento em cache para o objeto de negóciosda ordem de serviço.

Cálculos e Comparações da Tag de Entidade

Quando uma solicitação inicial é feita para um recurso e o armazenamento emcache está ativado para o recurso, a estrutura gera um valor de ETag para aresposta do recurso. A ETag é calculada com base no atributo MBO rowstamp, queé alterado sempre que um MBO é modificado. Para uma coleção de recursos, aETag é calculada com base em um hash da coleção de valores de rowstamp dosMBOs na coleção.

Por exemplo, a resposta contém o seguinte no cabeçalho HTTP:HTTP/1.1 200 OKETag: "123456789"Cache-control: privateContent-Length: 12195

O Cache-control é marcado como private para assegurar que somente o usuárioatual possa reutilizar o conteúdo do cache.

Quando o usuário faz uma solicitação repetida para o mesmo recurso ou a mesmacoleção, a solicitação é semelhante ao seguinte:GET maxrest/rest/mbo/po HTTP/1.1Host: x.yIf-None-Match: "123456789"

O valor If-None-Match é o valor de ETag da solicitação anterior. A estrutura lê ovalor do cabeçalho If-None-Match e o compara com o novo valor de ETagcalculado para o recurso ou a coleção para a segunda solicitação. Se os valorescorresponderem, o servidor responderá com um HTTP 304, significando que oconteúdo do cache cliente é válido e pode ser usado. A resposta inclui a seguintelinha:HTTP/1.1 304 Not Modified

Se o valor de ETag não corresponder ao valor do cabeçalho If-None-Match dasolicitação, a representação do recurso será construída e enviada ao cliente com umnovo valor de ETag a ser usado pelo cliente para solicitações subsequentes para orecurso ou a coleção:HTTP/1.1 200 OKETag: "98999999"Cache-control: privateContent-Length: 50004

Modo de Armazenamento em Cache Pessimista

O modo de armazenamento em cache padrão é o armazenamento em cachepessimista. No modo de armazenamento em cache pessimista, as solicitações são

Integrando Dados a Aplicativos Externos 237

Page 244: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

serializadas, mas os dados não são enviados do servidor para o cliente quando ovalor de ETag da solicitação corresponde ao valor da solicitação anterior.

Modo de Armazenamento em Cache Otimista

É possível ativar o armazenamento em cache otimista configurando a propriedadede sistema mxe.rest.handler.resource.optimistic como 1. No modo dearmazenamento em cache otimista, o valor de ETag é calculado antes de qualquerserialização de dados ocorrer. Embora o armazenamento em cache otimista possamelhorar tempos de resposta de forma significativa porque nenhuma serializaçãoocorre, ele requer mais memória, especialmente para consultas que solicitammuitos registros.

Por padrão, o armazenamento em cache otimista determina o valor de ETag doobjeto raiz de uma estrutura de objeto. Portanto, se uma estrutura de objeto tiverobjetos relacionados que não atualizam o objeto raiz, o valor de ETag pode não serexato. É possível assegurar que o valor de ETag seja determinado a partir de todosos objetos na estrutura de objeto, incluindo objetos relacionados, configurando apropriedade de sistema mxe.rest.handler.resource.deepetag como 1. No entanto,usando esta propriedade de sistema, a melhoria de desempenho não é tão grande emais memória é usada.

Limites de Tempo de Cache

É possível configurar a duração de tempo pela qual o cache é válido configurandoa propriedade de sistema mxe.rest.handler.resource.maxage com um valor medidoem segundos.Referências relacionadas:“Propriedades do Cabeçalho HTTP” na página 244Várias propriedades do cabeçalho HTTP são relevantes para a API REST.“Propriedades de Sistema REST” na página 253As propriedades de sistema estão disponíveis para configurar como a API RESTfunciona para seus requisitos específicos.

Métodos PUT, POST e DELETEÉ possível modificar recursos usando os métodos HTTP PUT, POST e DELETE.

Os métodos PUT, POST e DELETE podem ser usados para modificar recursos deobjeto de negócios e recursos de estrutura de objeto. No entanto, as regras denegócios de um objeto podem evitar que ele seja atualizado por uma solicitação daAPI REST. Por exemplo, uma solicitação DELETE em um recurso da ordem deserviço pode falhar se as validações do objeto de negócios impedirem exclusõesdevido ao estado atual da ordem de serviço.

Sintaxemethod uri HTTP/1.1parameter=value&parameter=value&...

method é PUT, POST ou DELETE

uri é um URI e quaisquer parâmetros de consulta associados

parameter é um parâmetro do recurso que é atualizado

value é o valor do parâmetro

238 Integrando Dados a Aplicativos Externos

Page 245: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Método PUTUse o método PUT para atualizar ou inserir um recurso. Uma solicitação deatualização deve fornecer o ID exclusivo do recurso. Para atualizar um recurso daestrutura de objeto, o ID do objeto principal é necessário.

Para atualizar ou inserir um recurso da estrutura de objeto, é possível especificar oparâmetro _action para identificar ações que a estrutura de integração fornece, taiscomo as ações Change ou AddChange.

Exemplo: Atualizando um Ativo

O método a seguir atualiza o ativo que possui um ID igual a 1234. A descrição doativo é alterada para my_new_description e o tipo é alterado para OPERATING:PUT maxrest/rest/mbo/asset/1234 HTTP/1.1description=my_new_description&type=OPERATING

Exemplo: Atualizando um Objeto-filho

O método a seguir atualiza o objeto de negócios assetspec, o qual é um filho deasset. O valor é alterado para new_value e a descrição é alterada paramy_new_description:PUT maxrest/rest/mbo/assetspec/5678 HTTP/1.1value=my_new_value&description=my_new_description

Exemplo: Estabelecendo o Contexto de um Objeto-pai

Para inserir ou atualizar um objeto de negócios filho, pode ser necessárioestabelecer o contexto do objeto de negócios pai, tal como no exemplo a seguir noqual uma descrição de linha de OC é atualizada e o ID da OC é fornecido paracontexto:PUT maxrest/rest/mbo/po/1234/poline/5678 HTTP/1.1description=my_new_description

Método POSTUse o método POST para atualizar ou inserir um recurso.

Para atualizar um recurso, você deve especificar o ID do recurso. Para criar umrecurso, você deve especificar a chave primária e todos os campos obrigatórios quenão possuem um valor padrão, mas nenhum ID é necessário.

Para atualizar ou inserir um recurso de estrutura de objeto, é possível especificar oparâmetro _action para identificar ações que a estrutura de integração fornece, talcomo Change ou AddChange.

Para atualizar ou inserir um objeto-filho de um recurso de estrutura de objeto, osdados de formulário devem identificar cada ocorrência do objeto-filho.

Quando você usar o método POST para criar um recurso, especifique o parâmetrode consulta _ulcr com um valor igual a 1 para que a resposta inclua um link parao cliente acessar o novo recurso. Caso contrário, o conteúdo do recurso seráincluído na resposta. O link é incluído na propriedade do cabeçalho Location e ocódigo de resposta HTTP é 201 para identificar que um link é fornecido em vezdos dados.

Exemplo: Inserindo um Ativo

O método a seguir insere o ativo 127 no site BEDFORD usando um recurso deobjeto de negócios. O ativo e o site formam a chave primária.

Integrando Dados a Aplicativos Externos 239

Page 246: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

POST maxrest/rest/mbo/asset HTTP/1.1assetnum=127&siteid=BEDFORD&description=my_new_description&type=OPERATING

Exemplo: Atualizando um Ativo Especificando seu ID

O método a seguir atualiza um ativo fornecendo o ID como parte do URI:POST maxrest/rest/mbo/asset/1234 HTTP/1.1description=my_new_description&type=OPERATING

Exemplo: Especificando uma Ação

O método a seguir usa o parâmetro _action para especificar uma ação Change:POST maxrest/rest/mbo/asset/968 HTTP/1.1_action=Change&description=my_new_description

Exemplo: Atualizando um Registro que Possui Diversos Objetos-filho

O método a seguir inclui duas linhas de ordem de compra em uma ordem decompra e cada linha possui dois custos de ordem de compra:

POST maxrest/rest/os/mxpo/1234 HTTP/1.1description=new_po_desc&poline.id1.polinenum=1&poline.id1.item=ABC&poline.id1.description=new_description&poline.id1.pocost.id1-1.costlinenum=1&poline.id1.pocost.id1-1.gldebitacct=new_gl_acct_a&poline.id1.pocost.id1-2.costlinenum=2&poline.id1.pocost.id1-2.gldebitacct=new_gl_acct_b&poline.id2.polinenum=2&poline.id2.item=XYZ&poline.id2.description=new_description&poline.id2.pocost.id2-1.costlinenum=1&poline.id2.pocost.id2-1.gldebitacct=new_gl_acct_c&poline.id2.pocost.id2-2.costlinenum=2&poline.id2.pocost.id2-2.gldebitacct=new_gl_acct_d&

No exemplo, os identificadores identificam os parâmetros a seguir:

Identificador degrupo Parâmetros identificados

id1 Parâmetros que pertencem à poline 1

id1-1 Parâmetros que pertencem ao pocost 1 para a poline 1

id1-2 Parâmetros que pertencem ao pocost 2 para a poline 1

id2 Parâmetros que pertencem à poline 2

id2-1 Parâmetros que pertencem ao pocost 1 para a poline 2

id2-2 Parâmetros que pertencem ao pocost 2 para a poline 2

Referências relacionadas:“Propriedades do Cabeçalho HTTP” na página 244Várias propriedades do cabeçalho HTTP são relevantes para a API REST.

Método DELETEO método DELETE requer o ID exclusivo do recurso.

Para excluir um recurso da estrutura de objeto, o ID do objeto principal énecessário.

Exemplo: Excluindo um Ativo

O método a seguir exclui o ativo 1234:DELETE maxrest/rest/mbo/asset/1234 HTTP/1.1

240 Integrando Dados a Aplicativos Externos

Page 247: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Atualizações Simultâneas de RecursosO processamento pode ser controlado para que um recurso seja atualizado ouexcluído somente se o recurso não tiver sido alterado por outro usuário ouaplicativo após a consulta inicial.

Se o parâmetro _urs for configurado com um valor igual a 1, a resposta daconsulta incluirá o valor de registro da linha para o recurso.

Exemplo de XML:<PO rowstamp=1234567890>

Exemplo de JSON:{"ASSET":{"rowstamp":"1234567890","Attributes":{"ASSETNUM":{"content":"1001"}

Exemplo de JSON no formato compacto:{"ASSET":{"rowstamp":"1234567890","ASSETNUM":"1001",

Para um recurso de estrutura de objeto, um valor de registro de linha é fornecidopara cada objeto que está na estrutura de objeto.

Em uma solicitação subsequente para atualizar o recurso, o valor de registro dalinha pode ser fornecido usando o parâmetro _rowstamp para recursos de objeto denegócios e de estrutura de objeto ou especificando a propriedade de cabeçalhoIf-Match para objetos de negócios.

Durante o processamento, o valor do registro de linha é comparado com o registrode linha inicial. Se os valores não corresponderem, a operação de atualização ou deexclusão falhará e um código de retorno HTTP igual a 412 estará na resposta.

Consultas e Atualizações do Método de ServiçoA API REST pode ser usada para chamar métodos que são expostos por serviçosde aplicativo.

Os métodos que são expostos por serviços de aplicativo geralmente são marcadoscom a anotação Java Specification Request (JSR) 181 @WebMethod, a qual os expõecomo métodos de serviço da Web. A API REST fornece uma visualização orientadaa recurso para estes métodos de serviço.

Os métodos de serviço estão nas categorias a seguir:v Os métodos que criam, atualizam ou excluem recursos usando o método HTTP

POST e modificam o estado do sistema fazendo isso.v Os métodos que buscam recursos ou coleções de recursos usando o método

HTTP GET e não modificam o estado do sistema.v Os métodos que retornam informações do sistema, tais como informações da

data ou versão, usando o método HTTP GET e não acessam recursos.

Métodos de Serviço que Usam HTTP POST para AtualizarRecursosOs métodos podem criar, atualizar ou excluir recursos usando o método HTTPPOST.

Os métodos que atualizam recursos modificam o estado do sistema.

O cabeçalho X-HTTP-Method-Override (XMO) qualifica o HTTP POST. Ocabeçalho XMO contém o nome do método que é exposto pela anotação JSR 181.

Integrando Dados a Aplicativos Externos 241

Page 248: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

A estrutura REST consulta o serviço que possui o recurso, localiza o método que éidentificado no cabeçalho XMO, desserializa os parâmetros do formulário POST,chama o método e retorna a representação serializada do recurso modificado.

Exemplo: Anotando um Método

Por exemplo, o serviço ASSET possui o método de negócios moveSingleAssetanotado:@WebMethodpublic void moveSingleAsset(@WSMboKey("ASSET") MboRemote asset, String newLocation,

String newSite, String newParent) throws MXException, RemoteException

O método move um ativo de seu local atual para um novo local e, portanto,modifica o estado do sistema. A solicitação a seguir é usada para chamar ométodo:POST maxrest/rest/mbo/asset/1234 HTTP/1.1x-http-method-override: "moveSingleAsset"

A solicitação de dados de formulário é a seguinte:~asset=this&~newLocation=Some_where&~newSite=some_site&~newParent=Some_one

Quando a solicitação é feita, o seguinte ocorre:1. O objeto de negócios do ativo que possui o identificador 1234 é carregado.2. O serviço proprietário (ASSET) é consultado.3. O método que é denominado moveSingleAsset é localizado.4. O asset que está no URI é referenciado para o objeto de negócios ASSET pela

anotação @WSMboKey e o objeto de negócios é fornecido como o primeirovalor de parâmetro na solicitação de dados de formulário.

5. Os valores restantes são desserializados e designados, com base em seusnomes.

6. O ativo modificado 1234 é retornado para o cliente na representação solicitada.

Exemplo: Substituindo um Nome do Parâmetro do Método

Os nomes do parâmetro do formulário são iguais aos nomes do parâmetro dométodo, prefixados com o caractere ~ (til), a menos que eles sejam anotados com aanotação @WebParam(name="...").

Por exemplo, considere um caso em que a definição do método possui um nomeda operação definido na anotação:@WebMethod(operationName="moveAssetLocation")public void moveSingleAsset(...)

Neste caso, a solicitação a seguir é usada para chamar o método:POST maxrest/rest/mbo/asset/1234 HTTP/1.1x-method-override: "moveAssetLocation"

A solicitação de dados de formulário é a seguinte:~asset=this&~newLocation=Some_where&~newSite=some_site&~newParent=Some_one

O valor do cabeçalho XMO deve usar o valor de atributo especificado na anotação@WebMethod: moveAssetLocation.

Métodos de Serviço que Usam HTTP GET para ConsultarRecursosUm nome de método ou nome da operação anotado que inicia com apalavra-chave get pode ser acessado pelo método HTTP GET.

242 Integrando Dados a Aplicativos Externos

Page 249: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Por exemplo, o método a seguir do serviço LOGGING retorna a lista de objetos denegócios MAXLOGGER como um conjunto de objeto de negócios:@WebMethod@WSMboSet(name="MAXLOGGER")public MboSetRemote getLoggerList()

A solicitação a seguir é usada para chamar o método e retorna a coleção de objetosde negócios na representação configurada:GET maxrest/rest/mbo/maxlogger?_qop=getLoggerList HTTP/1.1

Na variação do método a seguir, um nome da operação é fornecido:@WebMethod(operationName=”getFilteredLoggers”)@WSMboSet(name="MAXLOGGER")public MboSetRemote getLoggerList(String someFilter)

A solicitação a seguir é usada para chamar o método:GET maxrest/rest/mbo/maxlogger?_qop=getFilteredLoggers&~someFilter=... HTTP/1.1

O valor _qop especifica o nome anotatado. O parâmetro someFilter é prefixadocom o caractere ~ como parte da solicitação.

Métodos Virtuais

Se um nome de método não inicia com a palavra-chave get, ele não pode serchamado diretamente. Por exemplo, se um cliente tenta chamar a operaçãomoveSingleAsset usando HTTP GET, um erro HTTP 405 é lançado. No entanto, épossível definir um método virtual usando uma propriedade de sistema.

Por exemplo, suponha que você crie a propriedademxe.rest.mbo.maxqueue.action.getQueueData e designe para ela o valor_operation=viewQueue|~queueName=this.queuename.

Para o recurso maxqueue, o método virtual getQueueData mapeia para a operaçãoviewQueue no serviço de propriedade de maxqueue, que é o serviço MIC. Ocaractere | (barra vertical) separa os atributos. É possível, portanto, acessar aoperação viewQueue usando a seguinte chamada HTTP GET:GET /maxrest/rest/mbo/maxqueue/4567?_qop=getQueueData&~selector=...&~count=-1

É possível especificar valores literais ou derivados para um parâmetro de método.

Por exemplo, o método viewQueue possui um parâmetro queueName que mapeiapara o atributo maxqueue.queuename. A maxqueue é o objeto de negócios nocontexto atual que é especificado pelo URI GET. Portanto, a estrutura avalia ovalor derivado this.queuename como current_mbo_in_context.queuename, o qual é ovalor do atributo queuename de maxqueue que é identificado pelo ID exclusivo4567.

Como um segundo exemplo, suponha que você crie a propriedade de sistemamxe.rest.mbo.po.action.approve e designe para ela o valor_operation=changeStatus|~status=APPR.

Uma operação virtual chamada approve é criada e mapeia para a operaçãochamada changeStatus em PO, que é o serviço proprietário do objeto de negóciosPO. Para simplicidade no exemplo, o valor para o parâmetro de status é codificadopermanentemente como APPR. O valor codificado permanentemente não seriaprático porque o valor de parâmetro de status deve ser traduzível.

Integrando Dados a Aplicativos Externos 243

Page 250: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Se você usar métodos virtuais, deverá assegurar que os métodos HTTP GET nãomapeiem para operações que modificam o estado do sistema ou tenham qualqueroutro efeito colateral.

Operação initiateWorkflow Predefinida

A operação predefinida initiateFluxo de Serviço inicia um fluxo de serviço para umrecurso de objeto de negócios. Os dois exemplos a seguir usam esta operação:POST /maxrest/rest/mbo/po/6789 HTTP/1.1x-http-method-override: "initiateWorkflow"

wfname=SOMEWF

POST /maxrest/rest/mbo/po/6789?wfname=SOMEWF HTTP/1.1x-http-method-override: "initiateWorkflow"

O método inicia a revisão ativa de um fluxo de serviço denominado SOMEWFpara o objeto de negócios de ordem de compra que possui o ID exclusivo 6789. Seo fluxo de serviço possuir um nó de espera ou um nó de tarefa, ele poderárequerer outras etapas ou um evento de plano de fundo para reiniciá-lo, o que estáfora do escopo da API REST.

Métodos de Serviço que Usam HTTP GET para Consultar Dadosdo SistemaAlgumas operações de serviço recuperam dados do sistema e não são orientadas arecurso.

Por exemplo, o HTTP GET a seguir recupera a data e hora:GET /maxrest/rest/ss/system/getDate

O XML a seguir é retornado:<getDateResponse xmlns=....><result>some ISO 8601 date</result></getDateResponse>

Para outro exemplo, o HTTP GET a seguir retorna informações da versão:GET /maxrest/rest/ssm/system/getMXServerVersion

O XML a seguir é retornado:<getMXServerVersionResponse xmlns=...><return>Tivoli’s process automation engine 7.5.0.0 Build 20110127-1121DB Build V7500-673</return><return>...</return></getMXServerVersionResponse>

Para obter uma lista de todos os serviços, é possível usar o método GET a seguir:GET /maxrest/rest/ss

É possível, então, realizar drill down em cada um dos serviços na lista para obteruma lista de operações que podem ser chamadas. Por exemplo, o método a seguirretorna as operações para o serviço que é chamado system:GET /maxrest/rest/ss/system

Propriedades do Cabeçalho HTTPVárias propriedades do cabeçalho HTTP são relevantes para a API REST.

Tabela 35. Propriedades do Cabeçalho HTTP da API REST

Propriedade Descrição

Accept Fornecida pelo solicitante e usada para negociação de conteúdopara determinar o formato da resposta da solicitação.

244 Integrando Dados a Aplicativos Externos

Page 251: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tabela 35. Propriedades do Cabeçalho HTTP da API REST (continuação)

Propriedade Descrição

Accept-Language Fornece os dados em um idioma que é solicitado. Esta propriedadese aplica somente aos campos de aplicativo que suportam diversosidiomas. Os valores que são fornecidos (tais como EN ou FR)devem ser suportados pelo aplicativo.

O parâmetro de consulta _lang pode fornecer o código de idioma efornecer a mesma capacidade que a propriedade do cabeçalhoAccept-Language.

O parâmetro de consulta _locale ativa os números e as datas quesão retornados no código de idioma do solicitante.

Cache-Control Notifica o solicitante se o armazenamento em cache é ativado.

Se o armazenamento em cache for ativado, a propriedadeCache-Control terá um valor igual a private para assegurar quesomente o usuário atual possa reutilizar o conteúdo no cache.

Quando o armazenamento em cache não está ativado, apropriedade Cache-Control tem um valor igual a no-cache.

A solicitação do cliente pode conter o cabeçalho Cache-Control:no-cache para desativar o armazenamento em cache para umasolicitação específica, embora o armazenamento em cache estejaativado para o recurso.

Content-Length Contém o comprimento da resposta.

Content-Type Notifica o solicitante do formato da representação que está sendoenviada. Por exemplo, o valor aplicativon/xml (para formato deresposta XML) ou aplicativon/json (para formato de respostaJSON) pode ser especificado.

ETag Se o armazenamento em cache estiver ativado, conterá o valor deEtag para o recurso que é solicitado. O valor é retido pelo cache donavegador do solicitante para solicitações subsequentes para omesmo recurso.

If-None-Match Se o armazenamento em cache estiver ativado, conterá o valor deEtag para o recurso que foi solicitado anteriormente para que a APIpossa determinar se o conteúdo do cache pode ser reutilizado.

Last-Modified Notifica o solicitante da data e hora em que o recurso foimodificado pela última vez.

Location Contém o link para um recurso (código HTTP 201) que é criado porum HTTP POST.

_rlid Contém o ID da coleção de recursos e é usado para rolagem nasessão.

Conceitos relacionados:“Armazenamento em Cache de Solicitações GET” na página 236Ativando o armazenamento em cache de solicitações GET, é possível melhorar ostempos de resposta de solicitações para dados de recurso que foram submetidosanteriormente pelo mesmo usuário.“Rolagem na Sessão” na página 236Manter uma coleção de recursos na memória pode melhorar o desempenho aorolar por meio das páginas de dados.Referências relacionadas:

Integrando Dados a Aplicativos Externos 245

Page 252: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

“Método GET” na página 226Use o método GET para recuperar recursos de objeto de negócios e recursos daestrutura de objeto.“Parâmetros de Consulta REST” na página 249Usando parâmetros de consulta, é possível padronizar e filtrar as respostas.“Método POST” na página 239Use o método POST para atualizar ou inserir um recurso.“Propriedades de Sistema REST” na página 253As propriedades de sistema estão disponíveis para configurar como a API RESTfunciona para seus requisitos específicos.

Códigos de RespostaAs mensagens dos recursos REST são propagadas da instância de recurso para aresposta.

Os códigos de resposta HTTP a seguir são implementados pela API REST.

Tabela 36. Códigos de Resposta HTTP

Código HTTP Causa

200 Sucesso.

201 Sucesso. A resposta contém um link.

304 Sucesso. Os dados são recuperados a partir do cache.

400 A solicitação não pode ser recebida devido a uma URI inválida, porexemplo.

401 Ocorreu uma violação de autorização devido à configuração.

403 Ocorreu uma violação de autorização porque o recurso foi bloqueadopor uma propriedade de sistema mxe.rest.resourcetype.blockaccess.

404 O recurso não pode ser localizado ou um tipo de recurso inválido foifornecido.

405 O método de HTTP não pode ser usado para o recurso. Por exemplo,não é possível usar o método DELETE em um conjunto de objeto denegócios.

406 A representação solicitada não é suportada.

412 O recurso está sendo atualizado por outro usuário.

500 Todos os outros erros.

As mensagens suportam os idiomas que são suportados pelo mecanismo deautomação de processo da Tivoli.

Segurança na API RESTO mecanismo de automação de processo da Tivoli fornece a camada deautenticação e o suporte de autorização para a API REST.

Nenhum processamento relacionado à autenticação específico ocorre na estruturada API REST.

A camada de autenticação pode fornecer autenticação J2EE ou autenticação nativapara a API REST e o servidor de aplicativos fornece suporte a HTTPS.

246 Integrando Dados a Aplicativos Externos

Page 253: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Autenticação J2EE

Para usar a autenticação básica de HTTP, modifique o arquivo web.xml para omódulo da web maxrest, removendo o comentário das seguintes linhas:<!--

<security-constraint><web-resource-collection>

<web-resource-name>REST Servlet for Web App</web-resource-name><description>Object Structure Service Servlet (HTTP POST)

accessible by authorized users</description><url-pattern>/rest/*</url-pattern><http-method>GET</http-method><http-method>POST</http-method>

</web-resource-collection><auth-constraint>

<description>Roles that have access to Object StructureService Servlet (HTTP POST)</description>

<role-name>maximouser</role-name></auth-constraint><user-data-constraint>

<description>data transmission guarantee</description><transport-guarantee>NONE</transport-guarantee>

</user-data-constraint></security-constraint>

<login-config><auth-method>BASIC</auth-method><realm-name>REST Web Application Realm</realm-name>

</login-config>-->

A seção <security-constraint> precedente se refere a uma única função,maximouser, que está definida na seção <security-role> do arquivo. Por padrão, aseção <security-role> não tem a linha comentada:<security-role><description>MAXIMO Application Users</description><role-name>maximouser</role-name>

</security-role>

Além disso, altere o valor para useAppServerSecurity de 0 para 1:<description>Indicates whether to use Application Server

security or not</description><env-entry-name>useAppServerSecurity</env-entry-name><env-entry-type>java.lang.String </env-entry-type><env-entry-value>0</env-entry-value>

</env-entry>

Autenticação Nativa

Se a autenticação nativa for usada, uma solicitação poderá fornecer as credenciaisespecificando uma propriedade do cabeçalho MAXAUTH que contém um usuárioe uma senha codificados em Base64.

Se solicitações de login ou logout explícitas forem necessárias, use as solicitações aseguir:

GET /maxrest/rest/login

GET /maxrest/rest/logout

Comunicação de Módulo Cruzado

É possível comunicar-se com a API REST a partir dos módulos da web maximo emaxrest.

Na comunicação de módulo cruzado, você geralmente não deseja que o usuárioreinsira suas credenciais. Se você usar a autenticação do servidor de aplicativos,este problema não surge porque o navegador propaga o token de autenticação paraos módulos da Web para cada solicitação. Para autenticação nativa, a API RESTestá disponível como uma biblioteca (commonweb) que qualquer módulo da Webpode acessar.

Integrando Dados a Aplicativos Externos 247

Page 254: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Por exemplo, o URI a seguir consulta um ativo usando o módulo da web maxrest:http://site.example.com:9999/maxrest/rest/mbo/asset/46.

Em contraste, o URI a seguir consulta um ativo usando o módulo da Web deinterface com o usuário: http://site.example.com:9999/maximo/rest/mbo/asset/46.

Autorização

Para estruturas de objeto, é possível conectar um recurso a um aplicativo deautorização na guia Estrutura de Objeto do aplicativo Estruturas de Objeto. Se vocêespecificar um aplicativo de autorização, todo processamento de integração queusa a estrutura de objeto será afetado.

Para objetos de negócios, é possível conectar um recurso a um aplicativo deautorização na janela Autorização do Aplicativo para Objetos do aplicativoEstruturas de Objeto. O aplicativo autoriza todas as solicitações de API REST parao recurso de MBO específico.

É possível restringir o acesso ao recurso especificando uma lista de nomes dorecurso nas propriedades de sistema mxe.rest.mbo.blockaccess emxe.rest.os.blockaccess.Referências relacionadas:“Propriedades de Sistema REST” na página 253As propriedades de sistema estão disponíveis para configurar como a API RESTfunciona para seus requisitos específicos.

Customização da API RESTA API REST pode ser customizada para suportar diferentes representações derecurso, tais como os formatos XHTML ou Atom. Ela também pode sercustomizada incluindo atributos na representação de um recurso de objeto denegócios ou alterando a estrutura de uma representação.

Para suportar uma nova representação de recurso, você deve fornecerserializadores customizados que suportam os novos formatos.

Se você incluir atributos, tal como um atributo no recurso MBO da ordem deserviço na representação JSON, deverá incluir um serializador JSON customizadopara o recurso. Para suportar parâmetros de consulta adicionais, você deveestender o manipulador de MBO ou S.O.

Assegure que suas customizações não afetem processos de negócios ou usuáriosexistentes. Criando uma instância separada da API REST para os tipos de recurso,é possível evitar efeitos adversos.

Para qualquer customização, os arquivos de classe devem ser incluídos no arquivoEAR do aplicativo como parte da biblioteca commonweb.

Exemplo

As etapas a seguir customizam a API REST:1. Crie uma propriedade de sistema copiando a propriedade

mxe.rest.handler.mbo, fornecendo à propriedade o nomemxe.rest.handler.abcmbo e designando a ela o valorcom.ibm.tivoli.maximo.rest.ABCMboResourceRequestHandler.

248 Integrando Dados a Aplicativos Externos

Page 255: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Se a customização for genérica para todos os MBOs, a classe customizadaestenderá o manipulador de MBO de base. O contexto de URI é abcmbo e,portanto, URLs estão no seguinte formato: /maxrest/rest/abcmbo/workorder?...

Esta etapa cria uma instância da API REST para o recurso MBO.2. Para manipular parâmetros de consulta que são específicos para o MBO da

ordem de serviço, forneça um manipulador customizado criando a propriedadede sistema mxe.rest.handler.abcmbo.workorder e designando a ela o valorcom.ibm.tivoli.maximo.rest.WOMboResourceRequestHandler.A classe poderá estender o manipulador de MBO padrão usandoABCMboResourceRequestHandler para MboResourceRequestHandler, porexemplo.

3. Para customizar o serializador JSON para o MBO de ordem de serviço, registreo serializador criando a propriedade de sistemamxe.rest.serializer.abcmbo.workorder.json e designando a ela o valorcom.ibm.tivoli.maximo.rest.WOMboJSONSerializer.

4. Para suportar um novo formato, tal como Atom, inclua o valor atom napropriedade de sistema mxe.rest.supported.formats. O nome atom identificaexclusivamente o serializador para o formato. É possível especificar qualquernome, contanto que um serializador que possua o nome não exista.

5. Inclua uma classe do serializador criando a propriedade de sistemamxe.rest.serializer.abcmbo.atom e designando a ela o valorcom.ibm.tivoli.maximo.rest.MboATOMSerializer.

6. Para identificar o novo formato usando o cabeçalho HTTP Accept, forneça omapeamento de tipo MIME criando a propriedade de sistemamxe.rest.format.atom.mimetypes e designando a ela o valorapplication/atom+xml.

7. Configure o formato padrão designando o valor atom para a propriedade desistema mxe.rest.abcmbo.defaultformat.

Seguindo estas etapas, a customização não afeta outros manipuladores de recursode MBO ou S.O. porque está dentro do contexto do manipulador abcmbo.

Parâmetros de Consulta RESTUsando parâmetros de consulta, é possível padronizar e filtrar as respostas.

É possível especificar um ou mais dos parâmetros de consulta a seguir paracontrolar os dados que são selecionados. Os valores booleanos devem serconfigurados como 1 para true ou 0 para false.

Tabela 37. Parâmetros de Consulta REST

Nome Tipo ou Valor Descrição Padrão

_compact Booleano Se true, dados JSON são representados em umarepresentação compacta.

Falso

_dropnulls Booleano Se true, os atributos são serializados somente se oobjeto de negócios ou o recurso da estrutura deobjeto possui um valor. Se false, todos osatributos são serializados, mesmo se eles sãonulos.

Verdadeiro

_exactmatch Booleano Se true, os valores de parâmetro são avaliadospara uma correspondência exata. Se false, ocorreuma avaliação LIKE.

Falso

Integrando Dados a Aplicativos Externos 249

Page 256: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tabela 37. Parâmetros de Consulta REST (continuação)

Nome Tipo ou Valor Descrição Padrão

_excludecols Lista separada porvírgula de atributosMBO

Exclui os atributos listados da resposta dorecurso. Válido somente para o tipo de recurso deobjeto de negócios.

_fd Especifica um domínio de tabela de aplicativospara aplicar como um filtro quando a consulta éexecutada. Pode ser usado com os parâmetros_fdorg e _fdsite.

_fdorg Especifica um ID da organização para aplicarcomo um filtro quando a consulta é executada.Deve ser usado com o parâmetro _fd.

_fdsite Especifica um ID do site para aplicar como umfiltro quando a consulta é executada. Deve serusado com o parâmetro _fd.

_format json ou xml Especifica a representação da resposta do recurso. xml

_generic Booleano Se true, os dados do campo da resposta dorecurso são retornados em um formato genérico.Aplica-se apenas aos dados JSON.

Falso

_glc Booleano Se true, os dados do componente de contabilidadegeral (GL) são incluídos para todos os campos doaplicativo Plano de Contas do objeto de negócios.

Para a maioria dos campos do Plano de Contas,os dados do componente individual são incluídos.Este parâmetro, por padrão, omite os dados docomponente e, portanto, pode melhorar odesempenho.

Falso

_includecols Lista separada porvírgula de atributosMBO

Especifica os atributos que foram incluídos comoparte da resposta do recurso. Válido somente parao tipo de recurso de objeto de negócios.

_keys Booleano Se true, somente os atributos-chave do objeto denegócios são serializados. Todos os outrosatributos são descartados da resposta do recurso.

Falso

_lang Especifica o código de idioma do solicitante.

Se este parâmetro não for especificado, oparâmetro accept-language do cabeçalho HTTPserá usado para determinar a preferência deidioma do solicitante. Se o cabeçalho HTTP nãoespecificar o parâmetro, o valor do usuário deintegração padrão será usado.

_lid e _lpwd Especifica um ID de usuário para login e umasenha. Apenas para desenvolvimento e uso deteste. Válido somente quando a autenticaçãonativa está configurada.

_locale Booleano Se true, a versão de texto específica do código doidioma do valor de atributo do objeto de negóciosé retornada, além do valor de tipo restrito.

Falso

250 Integrando Dados a Aplicativos Externos

Page 257: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tabela 37. Parâmetros de Consulta REST (continuação)

Nome Tipo ou Valor Descrição Padrão

_maxItems Numérico Especifica o número máximo de objetos denegócios que são serializados na coleção derecursos. Use este parâmetro com o parâmetro_rsStart para paginar a resposta para coleções derecursos grandes. O nome do parâmetro fazdistinção entre maiúsculas e minúsculas.

_md Booleano Se true, informações de metadados, tais comovalores ocultos, somente leitura e necessários, sãoretornados.

Falso

_opmodeor Booleano Se true, o operador OR é aplicado entre diversosparâmetros de atributos. Se false, o operadorAND é aplicado.

Falso

_orderby Especifica como os campos de um recurso sãoordenados. O valor pode ser asc (crescente) oudesc (decrescente). Para um recurso de estruturade objeto, este parâmetro pode ser usado somentepara os campos de objetos de negócios que estãono primeiro ou segundo nível da estrutura deobjeto.

_orderbyasc Lista separada porvírgula de atributosMBO

Especifica os atributos que são usados para acláusula order by em ordem crescente.

_orderbydesc Lista separada porvírgula de atributosMBO

Especifica os atributos que são usados para acláusula order by em ordem decrescente.

_page Especifica o número da página que a solicitaçãodeve retornar. Este parâmetro pode ser usadosomente se uma propriedade de sistema pagesizeé criada para o recurso que está sendoconsultado.

_qop Especifica um método de consulta para aoperação GET. Válido apenas para recursos MBO.

_rcol.alias Especifica um campo de nome de relacionamentoque é retornado como parte da resposta daconsulta. O alias é o nome alternativo para oatributo relacionado.

Especificando este parâmetro, é possível consultarcampos que estão relacionados ao recurso MBOque é consultado. Por exemplo, no parâmetro_rcol.polinecost=poline.linecost, polinecost éo nome alternativo e poline.linecost é o atributorelacionado.

_retainmbos Booleano Apenas para uso interno.

_rlid Booleano Especifica o ID de uma coleção de recursos. Esteparâmetro é usado somente para rolagem nasessão.

_rlrq Booleano Se true, o cache é liberado para a coleção derecursos que é especificada pelo parâmetro _rlid.

Falso

_rootonly Booleano Se true, somente o objeto principal da estruturade objeto é serializado. Válido apenas para o tipode recurso da estrutura de objeto.

Falso

Integrando Dados a Aplicativos Externos 251

Page 258: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tabela 37. Parâmetros de Consulta REST (continuação)

Nome Tipo ou Valor Descrição Padrão

_rowstamp Para solicitações de atualização, o objeto denegócios de registro de linha pode ser fornecidopara assegurar que o objeto que está sendoatualizado não foi alterado desde que foiconsultado pela primeira vez.

_rsStart Numérico Especifica o índice de início do MBO na coleçãode recursos que é serializada pela resposta dorecurso. O nome do parâmetro faz distinção entremaiúsculas e minúsculas.

0

_tc Booleano Se true, o número total de registros é calculado eesse número é designado ao atributo rsTotal. Ocálculo inclui no tempo de processamento,dependendo do tamanho da coleção de recursos.

Falso

_tz Especifica o fuso horário da solicitação. Use esteparâmetro para executar corretamente consultasrelacionadas à data quando o fuso horário dasolicitação é diferente do fuso horário doaplicativo.

_ulcr Booleano Se true, um método POST retorna um link para onovo recurso na propriedade Location docabeçalho HTTP.

Falso

_urs Booleano Se true, uma resposta de consulta inclui o valorde registro da linha para o recurso.

_usc Booleano Se true, a rolagem na sessão é usada e a respostaHTTP inclui o ID da coleção de recursos usando apropriedade _rlid.

Falso

_uw Especifica uma cláusula SQL WHERE a ser usadacomo os critérios de seleção. A cláusula deve sercompatível com uma cláusula que trabalha emprocuras avançadas nos aplicativos. Use com apropriedade de sistemamxe.rest.whereclause.usepolicy.

_verbose Booleano Se true, a resposta do recurso para arepresentação JSON é retornada como formatada.

Falso

_vt Booleano Se true, o XML é validado para caracteres XMLválidos. Se você configurar o parâmetro comofalse, nenhuma validação será executada e,portanto, o desempenho poderá melhorar.

Se este parâmetro não for especificado, apropriedade de sistema mxe.int.validatexmldeterminará se o XML é validado.

Verdadeiro

Conceitos relacionados:“Rolagem na Sessão” na página 236Manter uma coleção de recursos na memória pode melhorar o desempenho aorolar por meio das páginas de dados.“Parâmetros _format e _compact” na página 234A API REST suporta representações XML e JSON (formatos). É possível usar oparâmetro _format ou a negociação de conteúdo para especificar umarepresentação de recurso. É possível usar o parâmetro _compact para especificar oformato JSON compacto.

252 Integrando Dados a Aplicativos Externos

Page 259: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

“Parâmetro _dropnulls” na página 233Configure o parâmetro _dropnulls como false para incluir campos que possuemum valor nulo na resposta da consulta.“Parâmetros _includecols e _excludecols” na página 233Use os parâmetros _includecols e _excludecols para controlar o conteúdo dosatributos que são retornados em resposta a uma consulta.“Parâmetros _rsStart e _maxItems” na página 231Os parâmetros _rsStart e _maxItems são usados juntos para controlar o número deregistros retornados para uma solicitação e para permitir a paginação em umgrande volume de registros.“Parâmetro _opmodeor” na página 230Use o parâmetro _opmodeor para avaliar diversos campos usando uma condiçãoOR entre valores em vez da condição AND padrão.“Parâmetro _orderbyasc” na página 232O parâmetro _orderbyasc controla a ordem de classificação de dados retornados.Referências relacionadas:“Propriedades do Cabeçalho HTTP” na página 244Várias propriedades do cabeçalho HTTP são relevantes para a API REST.“Propriedades de Sistema REST”As propriedades de sistema estão disponíveis para configurar como a API RESTfunciona para seus requisitos específicos.

Propriedades de Sistema RESTAs propriedades de sistema estão disponíveis para configurar como a API RESTfunciona para seus requisitos específicos.

Propriedades de Sistema Predefinidas

Use as propriedades de sistema a seguir para configurar como a API RESTfunciona. Todas as propriedades iniciam com mxe.rest, tal comomxe.rest.format.json.mimetypes.

Tabela 38. Propriedades de Sistema REST Predefinidas

Nome de mxe.rest.property Descrição Valor padrão

format.json.mimetypes Uma lista separada por vírgula detipos MIME suportados para JSONque é incluída na propriedade docabeçalho Accept HTTP. O valor éusado somente para negociação deconteúdo e é substituído porparâmetros de consulta queespecificam um formato.

aplicativo/json

format.xml.mimetypes Uma lista separada por vírgula detipos MIME suportados para XMLque é incluída na propriedade docabeçalho Accept HTTP. O valor éusado somente para negociação deconteúdo e é substituído porparâmetros de consulta queespecificam um formato.

aplicativo/xml,texto/xml

handler.mbo O arquivo de classe manipuladorado recurso para objetos denegócios.

com.ibm.tivoli.maximo.rest.MboResourceRequestHandler

Integrando Dados a Aplicativos Externos 253

Page 260: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tabela 38. Propriedades de Sistema REST Predefinidas (continuação)

Nome de mxe.rest.property Descrição Valor padrão

handler.os O arquivo de classe manipuladorado recurso para estruturas deobjeto.

com.ibm.tivoli.maximo.rest.OSResourceRequestHandler

handler.ss O arquivo de classe manipuladorado serviço padrão que suportaacesso aos dados do sistema.

com.ibm.tivoli.maximo.rest.MaxServiceResourceRequestHandler

mbo.blockaccess Uma lista separada por vírgula deobjetos de negócios que a APIREST não pode acessar. Estapropriedade substitui qualquerrestrição de autorizaçãoconfigurada.

mbo.defaultformat A representação padrão para todosos objetos de negócios. Estapropriedade é substituída pelovalor do cabeçalho Accept que éusado na negociação de conteúdoe por parâmetros de consulta queespecificam uma representação.

xml

mbo.imglib.defaultformat A representação padrão REST parao objeto de negócios IMGLIB.

imagem

os.blockaccess Uma lista separada por vírgula deestruturas de objeto que a APIREST não pode acessar. Estapropriedade substitui qualquerrestrição de autorizaçãoconfigurada.

os.defaultformat A representação padrão para todasas estruturas de objeto. Estapropriedade é substituída pelovalor da propriedade do cabeçalhoAccept que é usada na negociaçãode conteúdo e por parâmetros deconsulta que especificam umarepresentação.

xml

serializer.mbo.imglib.image A classe serializadora para o objetode negócios IMGLIB que está noformato de imagem.

com.ibm.tivoli.maximo.rest.ImageLibSerializer

serializer.mbo.json A classe serializadora para objetosde negócios que estão no formatoJSON.

com.ibm.tivoli.maximo.rest.MboJSONSerializer

serializer.mbo.xml A classe serializadora para objetosde negócios que estão no formatoXML.

com.ibm.tivoli.maximo.rest.MboXMLSerializer

serializer.os.json A classe serializadora paraestruturas de objeto que estão noformato JSON.

com.ibm.tivoli.maximo.rest.OSJSONSerializer

serializer.os.xml A classe serializadora paraestruturas de objeto que estão noformato XML.

com.ibm.tivoli.maximo.rest.OSXMLSerializer

254 Integrando Dados a Aplicativos Externos

Page 261: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tabela 38. Propriedades de Sistema REST Predefinidas (continuação)

Nome de mxe.rest.property Descrição Valor padrão

serializer.ss.json A classe serializadora para dadosdo sistema de serviço padrão queestão no formato JSON.

com.ibm.tivoli.maximo.rest.ServiceMethodResponseJSONSerializer

serializer.ss.xml A classe serializadora para dadosdo sistema de serviço padrão queestão no formato XML.

com.ibm.tivoli.maximo.rest.ServiceMethodResponseXMLSerializer

ss.defaultformat A representação padrão para todosos dados do sistema de serviçopadrão. Esta propriedade ésubstituída pelo valor dapropriedade do cabeçalho Acceptque é usada na negociação deconteúdo e por parâmetros deconsulta que especificam umarepresentação.

xml

supportedformats A lista de representaçõessuportadas.

xml,json,imagem

webappurl A URL para o aplicativo da Webde autenticação do token. Estapropriedade é apenas para usointerno.

whereclause.usepolicy Especifica como o parâmetro deconsulta _uw é usado. Se o valorfor parse, a cláusula SQL WHEREserá inspecionada para evitarscript de site cruzado e ataques deinjeção de SQL. Se o valor fornoparse, a cláusula não seráinspecionada. Se o valor forqualquer outra coisa, a cláusulaWHERE será ignorada.

analisar

Propriedades de Sistema Opcionais para Armazenamento emCache

É possível criar as propriedades a seguir para configurar o armazenamento emcache na API REST. Todas as propriedades devem iniciar com mxe.rest, tal comomxe.rest.mbo.wo.cache

Tabela 39. Propriedades de Sistema REST Opcionais para Armazenamento em Cache

Nome de mxe.rest.property Tipo Descrição Exemplos

handler.resource.cache Booleano Ativa o armazenamento emcache pessimista para omanipulador e o recursoespecificados.

Padroniza como false.

mxe.rest.mbo.wo.cacheconfigurado como 1

mxe.rest.os.mxwo.cacheconfigurado como 1

Integrando Dados a Aplicativos Externos 255

Page 262: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tabela 39. Propriedades de Sistema REST Opcionais para Armazenamento em Cache (continuação)

Nome de mxe.rest.property Tipo Descrição Exemplos

handler.resource.deepetag Booleano Se o armazenamento em cacheotimista estiver ativado,especifica que todos os objetosna estrutura de objeto sãoavaliadas em vez de apenas oobjeto raiz.

Padroniza como false.

handler.resource.optimistic Booleano Ativa o armazenamento emcache otimista para omanipulador e o recursoespecificados. Aplica-se àscoleções de um ou maisrecursos.

Para uma estrutura de objeto,somente o objeto de negóciosprincipal é avaliado para umamudança no estado. Os objetosde negócios filhos não sãoavaliados. Atributos nãopersistentes de um objeto denegócios são excluídos dasavaliações de mudanças deestado.

Se você ativar o armazenamentoem cache otimista, tambémpoderá especificar apropriedade de sistemahandler.resource.deepetag.

Padroniza como false.

mxe.rest.mbo.wo.optimistic setto 1

mxe.rest.os.mxwo.optimisticconfigurado como 1

handler.resource.maxage Número inteiro,em segundos

Especificada a quantidademáxima de tempo, emsegundos, que uma coleção derecursos é mantida no cache.

mxe.rest.mbo.wo.maxageconfigurado como 60

mxe.rest.os.mxwo.maxageconfigurado como 60

Conceitos relacionados:“Armazenamento em Cache de Solicitações GET” na página 236Ativando o armazenamento em cache de solicitações GET, é possível melhorar ostempos de resposta de solicitações para dados de recurso que foram submetidosanteriormente pelo mesmo usuário.“Representações Suportadas” na página 225A API REST suporta XML e JSON como representações. As representações sãosuportadas pela implementação de classes serializadoras que são registradas empropriedades de sistema.Referências relacionadas:“Parâmetros de Consulta REST” na página 249Usando parâmetros de consulta, é possível padronizar e filtrar as respostas.“Propriedades do Cabeçalho HTTP” na página 244Várias propriedades do cabeçalho HTTP são relevantes para a API REST.

256 Integrando Dados a Aplicativos Externos

Page 263: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Chamadas de Serviço ExternasAPIs REST externas podem ser chamadas usando um terminal HTTP configurado.

O manipulador HTTP que suporta quaisquer terminais HTTP configurados permiteo uso de serviços baseados em REST que usam uma carga útil XML e que usammétodos POST e GET. O terminal pode ser configurado para enviar mensagens pormeio de um canal de publicação ou de um canal de chamada.

integração do OSLCO Maximo Integration Framework suporta o compartilhamento de dados do ciclode vida entre aplicativos baseados na integração do Open Services for LifecycleCollaboration (OSLC). Com a integração OSLC, um aplicativo consumidor podeexecutar operações de criação, solicitação, atualização e exclusão nos recursos dedados que um aplicativo provedor disponibiliza para integração por meio de umprovedor de serviço OSLC.

Um aplicativo provedor do OSLC disponibiliza contêineres de recursos de dadosassociados para integração por meio de provedores de serviço. Os aplicativosconsumidores usam esses provedores de serviço para consultar recursos e criar,atualizar e excluir dados de recurso. A figura a seguir mostra as interações típicasem uma integração do OSLC. O aplicativo consumidor envia uma consulta para oprovedor de serviços para dados de recurso. O provedor de serviços fornece umlink com os dados de recurso em resposta. O aplicativo consumidor usa o linkpara criar, atualizar ou excluir dados de recurso.

Provedor de serviços

Aplicativo provedorOSLC

Consultar interação

Resource links

Aplicativoconsumidor OSLC

Criar interação

Resource link retornado

O aplicativo consumidor usa o resource linkpara atualizar ou excluir um recurso

Resource link retornado

Dados de recurso

Informações relacionadas:

Comunidade Open Services for Lifecycle Collaboration

OSLC on OASIS Open Standards Network

Comunidade da Plataforma OSLC (IBM)

Implementação do OSLC no Maximo Asset ManagementAs especificações do OSLC para representar e trocar dados vinculados entreaplicativos são mantidas e desenvolvidas pelo consórcio OASIS. Maximo AssetManagement suporta a versão 2.0 da especificação principal do OSLC que pode serativada e estendida com o Maximo Integration Framework.

Integrando Dados a Aplicativos Externos 257

Page 264: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

As especificações do OSLC definem como os aplicativos de ciclo de vidarepresentam, vinculam e acessam recursos baseados em padrões estabelecidos deInternet e de dados vinculados, incluindo arquitetura de transferência de estadorepresentativo (REST), especificações de estrutura de descrição de recurso (RDF) emétodos de protocolo de transferência de hipertexto (HTTP). As especificações sãodesignadas como mínimas na natureza para abordar casos de uso de integraçãocomum e os integradores podem estendê-las ou incluir novas para abordarcenários de integração específicos.

O Maximo Asset Management é configurado como um provedor OSLC com osseguintes componentes:v No aplicativo Recursos OSLC, você configura os recursos de dados para

integração. Cada recurso OSLC é baseado em uma estrutura de objeto queespecifica o objeto de negócios primário e todos os objetos de negócios filhosassociados que podem ser integrados.

v Os recursos do OSLC são gerados como documentos de forma que descrevem osobjetos de recurso em formato RDF/XML. Um documento de forma indica quaissão as características de um recurso e também pode descrever muitos aspectosdo objeto de recurso, incluindo suas dependências, atributos e propriedades. Umdocumento de forma de recurso pode incluir links em documentos de formapara quaisquer objetos-filho do recurso.

v Os recursos são agrupados por domínio funcional. Os agrupamentos funcionaispodem ser baseados nas especificações de domínio existentes desenvolvidas emantidas pelo grupo OASIS OSLC. Os integradores podem estender essasespecificações de domínio existentes ou criar especificações de domínioadicionais para suportar necessidades de negócios.

v Os recursos em um domínio são disponibilizados ao consumidor OSLC por meiode provedores de serviço.

v Um único provedor de serviços é suportado para cada domínio. Os provedoresde serviço suportam as operações de recurso de factory e consulta de criação deOSLC que fornecem consumidores do OSLC com o URI para criar ou procurarrecursos suportados.

v A estrutura de segurança suporta autenticação e autorização para serviços doOSLC. A autenticação nativa e a autenticação J2EE do Maximo AssetManagement são suportadas. O controle de autorização é fornecido pelaestrutura de objeto para um recurso e uma autorização de nível de aplicativo ebaseada em usuário é aplicada.

Um consumidor do OSLC usa os seguintes métodos de HTTP e informações docabeçalho para interagir com o provedor OSLC:v Envia uma solicitação GET para executar login se o login explícito for necessário

e incluir uma propriedade de autorização no cabeçalho HTTP se a autenticaçãonativa for usada. Se o logout explícito for necessário, uma solicitação GETtambém será usada.

v Envia solicitações GET que incluem parâmetros de consulta do OSLC em umURI do provedor de serviços para recursos de consulta do OSLC.

v Envia uma solicitação POST para criar uma instância de um recurso do OSLC. Asolicitação inclui um documento JSON que está em conformidade com odocumento de forma publicado para o recurso do OSLC. Quando a instância derecurso for criada, o provedor OSLC enviará uma resposta de HTTP incluindo oURI do novo recurso.

258 Integrando Dados a Aplicativos Externos

Page 265: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

v Envia uma solicitação PUT ou PATCH para atualizar um recurso OSLC. Umasolicitação PUT atualiza todo o recurso. Uma solicitação PATCH atualiza partedo recurso.

v Usa tags de entidade (ETags) em cabeçalhos HTTP para assegurar que umaentidade de recurso é atual e pode cominar ETags com cabeçalhos If-Match emsolicitações PUT e PATCH para ativar atualizações condicionais.

v Pode solicitar paginação estável em solicitações GET para recursos de coleta paraque a resposta redirecione o aplicativo consumidor a um URI em que diversaspáginas são carregadas. Para recursos de coleção, o desempenho melhora porqueo consumidor do OSLC pode carregar páginas estáveis sem acessar o banco dedados para cada página.

Configuração do OSLCA configuração do Maximo Asset Management como um provedor de OSLCenvolve a especificação de recursos em domínios, o fornecimento de provedores deserviços para esses domínios, a configuração de segurança e a configuração decriação de log para coletar informações para ajudar na resolução de problemas.

Especificação de Recursos do OSLCOs recursos do OSLC são baseados nas estruturas de objeto de integraçãoconfiguradas para serem consumidas pelo OSLC. Cada estrutura de objeto inclui oobjeto de negócios primário e todos os objetos de negócios filhos usados por umaplicativo. Os atributos dos objetos na estrutura de objeto são mapeados para ostipos RDF e predicados para o recurso e especificam os namespaces para os tiposde recursos.

Cada tipo de recurso do OSLC possui propriedades que são predicados RDF quepodem pertencer a uma especificação de vocabulário que corresponde aonamespace para as propriedades. Os atributos podem ser mapeados para aspropriedades definidas em especificações de vocabulário, como a Dublin CoreMetadata Initiative.

Cada recurso possui um nome, uma estrutura de objeto associado que é consumidapelo OSLC e o URI de namespace padrão para o recurso. Para cada atributo a serintegrado, é possível usar os valores de RDF padrão ou especificar seus própriosvalores:v Os valores de tipo e namespace funcionam como o tipo RDF para o recurso.v Os valores de nome e namespace funcionam como o predicado de RDF para o

recurso.

Um documento de forma de recurso é um documento RDF/XML que descreve umrecurso, incluindo todas as suas propriedades, atributos e dependências. Umdocumento de forma no OSLC é uma forma eletrônica de ver como um recurso éincluindo todas as suas dependências, atributos e propriedades. Por exemplo, umdocumento de formato de ordem de serviço inclui propriedades que descrevemrecursos de suporte, como ativo, tarefa, mão de obra e log de serviço. Osdocumentos de formato podem cobrir uma ampla variedade de áreas, como ativos,empresas, ordens de compra e ordens de serviço. Um documento de formatotambém mostra o que é necessário. Um documento de forma de recurso podeincluir links com os documentos de forma para objetos-filho.

Exemplo: Documento de Forma de Recurso de Ordem de Serviço

Um documento de forma de recurso da ordem de serviço lista todas aspropriedades, atributos e dependências de uma ordem de serviço. O código a

Integrando Dados a Aplicativos Externos 259

Page 266: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

seguir mostra um extrato de um documento de formato de ordem de serviçochamado oslcwodetail. Três propriedades estão incluídas nesta parte dodocumento de formatos de recurso, mas o documento pode ter mais propriedadeslistadas. As três propriedades nesta parte do documento de formato representamtrês tipos de nós localizados em documentos RDF. A primeira propriedade,genforporevision, é um nó local. A segunda propriedade, multiassetlocci, é um nóem branco que significa que nenhum URI ou literal está listado para estapropriedade no RDF. A terceira propriedade, asset, é um nó do URI.<rdf:RDF

xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"xmlns:oslc="http://open-services.net/ns/core#"xmlns:dcterms="http://purl.org/dc/terms/>"

<oslc:ResourceShape rdf:about="http://host/maximo/oslc/shapes/oslcwodetail"><oslc:describes rdf:resource="http://jazz.net/ns/ism/work/smarter_physical_

infrastructure#WorkOrder"/><oslc:property><oslc:Property>

<oslc:name>genforporevision</oslc:name><oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-one"/><oslc:propertyDefinition rdf:resource="http://jazz.net/ns/ism/asset/smarter_physical_

infrastructure#genforporevision"/><oslc:valueType rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/><dcterms:title rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral">

PO Revision</dcterms:title></oslc:Property>

</oslc:property><oslc:property>

<oslc:Property><oslc:name>multiassetlocci</oslc:name><oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-many"/><oslc:propertyDefinition rdf:resource="http://jazz.net/ns/ism/asset/smarter_physical_

infrastructure#multiassetlocci"/><oslc:valueType rdf:resource="http://open-services.net/ns/core#LocalResource"/><oslc:representation rdf:resource="http://open-services.net/ns/core#Inline"/><oslc:valueShape rdf:resource="http://host/maximo/oslc/shapes/oslcwodetail/multiassetlocci"/><oslc:range rdf:resource="http://jazz.net/ns/ism/asset/smarter_physical_

infrastructure#MultuAssetLocationCI"/></oslc:Property>

</oslc:property><oslc:property>

<oslc:Property><oslc:name>asset</oslc:name><oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-one"/><oslc:propertyDefinition rdf:resource="http://jazz.net/ns/ism/work/smarter_physical_

infrastructure#asset"/><oslc:valueType rdf:resource="http://open-services.net/ns/core#Resource"/><oslc:representation rdf:resource="http://open-services.net/ns/core#Reference"/><oslc:valueShape rdf:resource="http://host/maximo/oslc/shapes/oslcasset"/><oslc:range rdf:resource="http://jazz.net/ns/ism/asset/smarter_physical_infrastructure#asset"/><dcterms:title rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral">

Asset</dcterms:title></oslc:Property>

</oslc:property>

Provedores de serviços de domínioOs recursos do OSLC são ativados em um domínio e estão disponíveis aosconsumidores do OSLC por meio do provedor de serviços do OSLC para odomínio. Um único provedor de serviços para cada domínio é suportado.

No Maximo Asset Management, é possível descobrir quais provedores de serviçoestão disponíveis inserindo o URI http:/host:port/maximo/oslc/sp em umnavegador. A resposta inclui o URI para o documento do provedor de serviçospara cada domínio configurado para a integração do OSLC.

O URI para o documento de provedor de serviços para o domínio dogerenciamento de serviço, por exemplo, é http://host:port/maximo/oslc/sp/WorkManagment. O documento do provedor de serviços está em formato RDF/XMLe descreve os recursos e mapeamentos de namespace disponíveis, consultas salvase operações suportadas para os recursos que ele suporta. Um consumidor do OSLCpode usar o documento do provedor de serviços para determinar quais recursosestão disponíveis e quais serviços eles suportam, como consulta ou criação. Aimplementação atual suporta criar, solicitar, atualizar e excluir operações no níveldos dados, mas os recursos em cenários da interface com o usuário delegado nãosão suportados.

260 Integrando Dados a Aplicativos Externos

Page 267: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Na resposta de amostra a seguir, o provedor de serviços OSLC é referenciado apartir da propriedade rdfs:member. O documento do provedor de serviços para odomínio mostra o URI para gerenciamento de trabalho:<rdfs:member rdf:resource="http://host/maximo/oslc/sp/WorkManagement">

<rdf:RDF><rdf:Description rdf:about="http://host/maximo/oslc/sp"><rdfs:member rdf:resource="http://host/maximo/oslc/sp/WorkManagement"></rdf:Description></rdf:RDF>

Namespaces

OSLC define namespaces comuns. A propriedade prefixDefinition expõe todos osmapeamentos prefix-to-namespace que o provedor de serviços usa para descreveros recursos que gerencia. A tabela a seguir mostra uma amostra dos namespacesque estão disponíveis:

Prefixo Namespace

rdf http://www.w3.org/1999/02/22-rdf-syntax-ns#

oslc http://open-services.net/ns/core#

dcterms http://purl.org/dc/terms/

ativo http://open-services.net/ns/asset#

foaf http://xmlns.com/foaf/0.1/

rdfs http://www.w3.org/2000/01/rdf-schema#

rr http://jazz.net/ns/ism/registry#

spi http://jazz.net/ns/ism/asset/smarter_physical_infrastructure#

O extrato a seguir da seção de serviço do documento do provedor de serviçosmostra OSLC e namespaces RDF:

<oslc:ServiceProvider rdf:about="http://host:7001/maximo/oslc/sp/WorkManagement"><oslc:prefixDefinition>

<oslc:PrefixDefinition><oslc:prefixBase rdf:resource="http://open-services.net/ns/core#"/><oslc:prefix>oslc</oslc:prefix>

</oslc:PrefixDefinition></oslc:prefixDefinition>

<oslc:prefixDefinition><oslc:PrefixDefinition>

<oslc:prefixBase rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/><oslc:prefix>rdf</oslc:prefix>

</oslc:PrefixDefinition></oslc:prefixDefinition>

A tabela a seguir mostra um mapeamento de amostra para uma ordem de serviçoque usa namespaces comuns:

prefixo OSLC Prefixo existente

oslc:shortTitle wonum

dcterms:title descrição

dcterms:description description_longdescription

dcterms:creator reportedby

dcterms:created reportdate

dcterms:identifier workorderid

A tabela a seguir mostra os mapeamentos para o objeto pessoal que é referidocomo dcterms:creator na ordem de serviço.

Integrando Dados a Aplicativos Externos 261

Page 268: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

prefixo OSLC Prefixo existente

foaf:name displayname

foaf:givenName firstname

foaf:familyName lastname

Factory de Criação e Operações de Consulta

Um provedor de serviços do OSLC suporta o factory de criação e as operações derecurso de consulta para os recursos que estão disponíveis no documento doprovedor de serviços. Um factory de criação fornece o URI de Criação oslc:creationque usar para criar novos recursos com uma solicitação POST HTTP. O URI deconsulta oslc:queryBase permite a seleção de uma coleção de recursos que égerenciada pelo provedor de serviços. Quando o recurso é obtido, por consulta oucriação, o recurso pode ser atualizado ou excluído.

Se o recurso suportar criação, pode haver uma operação de factory de criação. Oextrato a seguir de um documento de provedor de serviços mostra a operação defactory de criação, o URI para o formato do recurso e o URI para a operação derecurso de criação que cria o formato.<oslc:creationFactory><oslc:CreationFactory>

<oslc:resourceType rdf:resource="http://jazz.net/ns/ism/work/smarter_physical_infrastructure#WorkOrder"/>

<oslc:resourceShape rdf:resource="http://host:port/maximo/oslc/shapes/oslcwodetail"/><oslc:creation rdf:resource="http://host:port/maximo/oslc/os/oslcwodetail"/><oslc:label>Create WorkOrder</oslc:label><dcterms:title>OSLC creation factory for WorkOrder</dcterms:title>

</oslc:CreationFactory></oslc:creationFactory>

......

O URI de consulta é oslc:queryBase e o exemplo a seguir mostra uma procura poruma ordem de serviço usando a solicitação:<oslc:queryBase rdf:resource="http://host/maximo/oslc/os/oslcwodetail"/>

<oslc:queryCapability><oslc:QueryCapability>

<oslc:resourceType rdf:resource="http://jazz.net/ns/ism/work/smarter_physical_infrastructure#WorkOrder"/>

<oslc:queryBase rdf:resource="http://host/maximo/oslc/os/oslcwodetail"/><oslc:labelQuery> WorkOrder</oslc:label><dcterms:title>OSLC query capability for WorkOrder</dcterms:title>

</oslc:QueryCapability></oslc:queryCapability>

Consultas SalvasQuando um recurso do OSLC for definido com base em uma estrutura de objetoque referencie um aplicativo, todas as consultas públicas salvas a partir doaplicativo serão disponibilizadas por meio do provedor de serviços. As consultassão expostas como recursos de consulta do OSLC no documento do provedor deserviços para esse recurso OSLC.

As estruturas de objeto podem ser opcionalmente conectadas a um aplicativo.Quando uma estrutura de objeto estiver conectada a um aplicativo, o aplicativofornecerá autorização de segurança e consultas públicas salvas ao recursoassociado à estrutura de objeto. É possível criar consultas customizadas noaplicativo e torná-las públicas para que elas sejam disponibilizadas quando orecurso for consultado. Para executar uma consulta salva em um recurso, executeuma solicitação de HTTP GET no URI base de consulta fornecido no recurso deconsulta para a consulta salva. Uma lista dos recursos OSLC que correspondem àconsulta salva é retornada.

Cada propriedade de recurso de consulta expõe um URI chamado propriedadeoslc:queryBase que permite que um consumidor procure os recursos que são

262 Integrando Dados a Aplicativos Externos

Page 269: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

gerenciados pelo provedor de serviços. Cada recurso de consulta suporta apenasum tipo de recurso chamado oslc:resourceType. A especificação OSLC permite queum recurso de consulta suporte vários tipos de recurso. O recurso de consulta listatodas as consultas públicas salvas para o aplicativo registrado com a estrutura deobjeto que implementa o recurso OSLC. Se não houver consultas salvas públicaspara o aplicativo registrado ou se nenhum aplicativo foi registrado, apenas umrecurso de consulta fornece o URI de coleção de consulta genérica. Há sempre pelomenos um recurso de consulta para cada tipo de recurso que é suportado peloprovedor de serviços.

Exemplo: Consultas Salvas no Aplicativo de Ordem de Serviço

Você cria uma consulta no aplicativo Work Order para procurar ordens de serviçoque possuir. Você torna a consulta pública para que ela apareça no documento doprovedor de serviços como savedQuery=OWNER+IS+ME. A estrutura de objeto de nívelsuperior OSLC também deve ser uma ordem de serviço.<oslc:service>

<oslc:Service><oslc:queryCapability>

<oslc:QueryCapability><oslc:resourceType rdf:resource="http://jazz.net/ns/ism/work/smarter_physical_

infrastructure#WorkOrder"/><oslc:queryBase rdf:resource="http://host/maximo/oslc/os/oslcwodetail?

savedQuery=OWNER+IS+ME"/><oslc:label>Query OWNER IS ME</oslc:label><dcterms:title>OSLC query capability for My Work Orders</dcterms:title>

</oslc:QueryCapability></oslc:queryCapability><oslc:queryCapability>

<oslc:QueryCapability><oslc:resourceType rdf:resource="http://jazz.net/ns/ism/work/smarter_physical_

infrastructure#WorkOrder"/><oslc:queryBase rdf:resource="http://host/maximo/oslc/os/oslcwodetail"/><oslc:label>Query WorkOrder</oslc:label><dcterms:title>OSLC query capability for WorkOrder</dcterms:title>

</oslc:QueryCapability></oslc:queryCapability>......

Segurança OSLCO suporte à autenticação e autorização para os serviços do OSLC é fornecido pelaestrutura de segurança do Maximo Asset Management. A autenticação baseada emJ2EE, como o LDAP é suportada pelo servidor de aplicativos. O servidor deaplicativos também fornece suporte para HTTPS.

Autenticação nativa para o Maximo Asset Management

A solicitação do consumidor pode fornecer os valores user:password que sãocodificados base64 e estão na propriedade do cabeçalho de HTTP MAXAUTH.

Autenticação J2EE

Para configurar a autenticação J2EE, você modifica o arquivo web.xml, configura asrestrições de segurança e configura a propriedade useAppServerSecurity comotrue.

Você modifica o arquivo web.xml para o módulo da web maximouiweb removendoo comentário das linhas a seguir:<!--<servlet><display-name>OSLC Servlet for Web App</display-name><servlet-name>OSLCServlet</servlet-name><servlet-class>

com.ibm.tivoli.maximo.oslc.provider.MaximoOslcProviderServlet</servlet-class>

<init-param><param-name>char_encoding</param-name><param-value>UTF-8</param-value>

</init-param></servlet>-->

Integrando Dados a Aplicativos Externos 263

Page 270: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

<!--servlet-mapping><servlet-name>OSLCServlet</servlet-name><url-pattern>/oslc/*</url-pattern>

</servlet-mapping

Para configurar restrições de segurança, insira o código a seguir para<web-resource-collection>:<web-resource-collection><web-resource-name>OSLC Servlet</web-resource-name><description>

OSLC Object Structure Servlet accessible by authorized users</description>

<url-pattern>/oslc/*</url-pattern><http-method>GET</http-method><http-method>POST</http-method><http-method>PUT</http-method><http-method>HEAD</http-method>

</web-resource-collection>

A propriedade useAppServerSecurity deve ser configurada como true:<env-entry><description>

Indicates whether to use Application Server security or not</description>

<env-entry-nameuseAppServerSecurity</env-entry-name><env-entry-typejava.lang.String</env-entry-type>

<env-entry-valuefalse</env-entry-value></env-entry>

Login e Logout Explícitos

Se o aplicativo consumidor precisar executar comandos de login explícitos, vocêusará a seguinte solicitação:GET /maximo/oslc/login

Se estiver usando a autenticação nativa, você deve incluir a propriedade docabeçalho de HTTP MAXAUTH para a solicitação de login. Se o aplicativoconsumidor precisar executar comandos de logout explícitos, você usará a seguintesolicitação:GET /maximo/oslc/logout

Autorização

O controle de autorização é fornecido no nível da estrutura de objeto do recurso.Associe a estrutura de objeto a um aplicativo no aplicativo Object Structure. Oprocessamento de segurança de dados do recurso é baseado na configuração desegurança do aplicativo e no grupo de usuários do usuário que fez a solicitação deHTTP. Quando recursos do OSLC são processados, nenhum atributo do objetoconfigurado como oculto por meio de segurança é incluído na resposta para umasolicitação OSLC.

Criação de Log OSLCA correlação de log pode registrar informações quando recursos OSLC são criadosou atualizados. As informações que são registradas incluem o tempo total derespostas e o tamanho do recurso em bytes. As informações podem ser usadaspara análise de desempenho. Por exemplo, é possível usar as informações de logpara analisar tempos de resposta.

Para ativar a correlação de log de modo que informações sejam registradas duranteas solicitações GET, POST e PUT, acesse Configuração do Sistema > Configuraçãoda Plataforma > Aplicativo de Propriedades do Sistema e assegure-se de que apropriedade mxe.logging.CorrelationEnabled esteja configurada como 1.

A tabela a seguir mostra algumas das informações que podem ser registradas aoativar a propriedade mxe.logging.CorrelationEnabled. Alguns dos atributos natabela podem não estar disponíveis para todas as solicitações.

264 Integrando Dados a Aplicativos Externos

Page 271: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Atributo Descrição

ClientIP Endereço IP do cliente que faz a solicitação do servidor pormeio de OSLC.

InvokeAndSerTime Tempo levado para chamada e serialização.

SendResponseTime Tempo necessário para o servidor responder a uma solicitaçãodo cliente.

RequestURI Identificador de recurso universal do cliente.

RequestParams Parâmetros que são passados na URI do cliente.

ElapsedTime Tempo total necessário da solicitação do cliente à resposta doservidor.

LoginID Nome de usuário associado a uma solicitação de autenticaçãode cliente.

ResourceSize Tamanho do recurso em bytes.

EndUserClientIP Endereço IP do usuário final que faz a solicitação do servidor.

EndUserMetaData Dados que são associados ao usuário cliente final real.Normalmente as solicitações são entregues por meio de umservidor intermediário. Esse atributo, quando presente, semprecontém dados do usuário final.

ClientPort Número da porta que o cliente usa para fazer uma solicitaçãodo servidor.

Transações HTTPAs interações entre o consumidor OSLC e os recursos OSLC fornecidos peloMaximo Asset Management usam solicitações e resposta HTTP padrão. Osmétodos de solicitação de HTTP suportados incluem GET, POST, PUT e PATCH.As respostas HTTP fornecem informações em cabeçalhos de HTTP e os códigos deerro HTTP são retornados quando as solicitações não são bem-sucedidas.

Consultas de Recurso do OSLCOSLC define uma sintaxe da consulta leve baseada em padrão SPARQL pararecursos de consulta. O parâmetro de consulta do OSLC que está configurado emuma solicitação HTTP GET determina o tipo de informações que o provedor deserviços envia em resposta.

Parâmetros de propriedade da consulta:

O parâmetro de consulta oslc.properties retorna uma lista de propriedades paraum recurso do OSLC e fornece uma representação parcial do recurso.

O parâmetro oslc.properties somente é aplicável ao recuperar um único recursocom base em um ID do recurso. Outros parâmetros de consulta aplicam-se paraconsultar uma coleção de recursos que contém zero ou mais instâncias de umrecurso.

Exemplo: Solicitando Atributos

A solicitação a seguir especifica que os valores dos atributos shortTitle e isTasksejam retornados nos resultados de uma consulta do recurso oslcwodetail com o IDde recurso 337:http://www.example.com:9999/maximo/oslc/os/oslcwodetail/337?oslc.properties=oslc:shortTitle,spi_wm:istask

Integrando Dados a Aplicativos Externos 265

Page 272: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Esta solicitação retorna as informações a seguir:{

oslc:shortTitle: "1024"spi_wm:istask: truerdf:about: "<some uri>"

}

Parâmetro da cláusula WHERE de consulta:

O parâmetro de consulta oslc.where especifica uma cláusula WHERE para filtrar oconjunto de resultados de uma consulta. Por exemplo, é possível visualizar umacoleção de recursos de ordem de serviço do OSLC que foram criados em umintervalo de tempo no qual as ordens de serviço são aprovadas pelogerenciamento.

A cláusula OSLC WHERE suporta os operadores de comparação a seguir:

Símbolo Descrição

= Igualdade

!= Desigualdade

< Menor que

> Maior que

<= Menos que ou igual a

>= Maior que ou igual a

Os parâmetros da cláusula WHERE do OSLC WHERE possuem as características aseguir:v As datas são expressas em formato ISO 8601.v A especificação OSLC suporta and como operador booleano entre expressões

booleanas. O operador booleano or não é suportado.v Os valores de tipo de dados de sequência são colocados entre aspas, mas os

valores de tipo de dados decimais não possuem aspas.v Os valores de tipo de dados decimais não são colocados entre aspas. No

exemplo a seguir, o valor literal para o status está entre aspas, porque apropriedade de status possui um tipo de dados de sequência. O valor dequantidade não possui aspas, pois é um tipo de dados decimal. Os valores denúmero inteiro e booleanos também não requerem aspas. Por exemplo,spi_wm:status="Closed" and m:quantity>10.5 and m:active=true em quem:active possui um tipo de dados booleano.

v A cláusula WHERE suporta or em uma única propriedade usando o operador in.Por exemplo, a consulta a seguir retorna todas as ordens de serviço que estão nostatus APPR ou WAPPR:spi_wm:status in ["APPR","WAPPR"]

Exemplo: Procurando Ordens de Serviço que Foram Criadas em um Intervalo deTempo e Estão Aprovadas

A consulta da cláusula WHERE a seguir retorna uma lista de recursos de ordem deserviço que foram criados em um intervalo de tempo específico:spi_wm:status="APPR" and dcterms:created>"2003-07-07T09:50:00-04:00"and dcterms:created<="2004-07-07T09:50:00-04:00"

266 Integrando Dados a Aplicativos Externos

Page 273: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Exemplo: Procurando Todas as Ordens de Serviço Criadas por um Usuário

A consulta de cláusula WHERE a seguir retorna todas as ordens de serviço queforam criadas por um usuário ou pessoa específica:dcterms:creator= <http://host:port/oslc/os/oslcperson/<URI id for person Kelly Reese>

O valor de URI é delimitado por sinais de maior e menor e não é colocado entreaspas, diferente dos valores literais de sequência. O URI aponta para o recursopessoa com nome de Kelly Reese. Embora o uso de um URI na sintaxe da consultatrabalhe para integrações de sistema peer, os consumidores interativos ou baseadosem UI da API do OSLC não conheceriam nenhum dos URIs relevantes. Porexemplo, um usuário interativo saberia um número de ativo, mas não o URI quecorresponde a esse ativo. A consulta de cláusula WHERE a seguir é expressa semum URI:dcterms:creator{foaf:givenName=”Kelly” and foaf:familyName=”Reese”}

givenName e familyName são propriedades do recurso Person que é mencionado apartir da propriedade do criador. Esta cláusula WHERE demonstra que é possívelprocurar com base em propriedades de recurso vinculado.

Exemplo: Procurando por Todas as Ordens de Serviço em que a Propriedade Paido Recurso da Ordem de Serviço É Nula

A consulta de cláusula WHERE a seguir retorna todas as ordens de serviço denível raiz:spi_wm:parent!=”*”

Neste exemplo, * é um curinga que se refere a qualquer recurso e a consultaparent!="*" é o equivalente semântico de uma consulta parent="NULL".

Um derivado desta consulta verifica ordens de serviço em que o valor-pai não éNULL. A sintaxe desta consulta é spi_wm:parent=”*”. Também é possível executaruma procura LIKE com a sintaxe da consulta da cláusula WHERE do OSLC. Paraprocurar todas as ordens de serviço que têm um valor shortTitle, como Inspect, usea consulta a seguir: oslc:shortTitle =”%Inspect%”.

Para procurar ordens de serviço que têm um valor shortTitle que começa outermina com uma palavra que especificar, mova o %. Por exemplo, useoslc:shortTitle =”Inspect%” para procurar ordens de serviço que começam com apalavra Inspect e usam oslc:shortTitle =”%Inspect” para procurar ordens deserviço que terminam com a palavra Inspect.

Parâmetro de procura de consulta:

O parâmetro de consulta oslc.searchTerms retorna recursos que contêm termosespecificados. Por exemplo, é possível que deseje ver todas as ordens de serviçoque têm as palavras database e performance em suas descrições.

Para procurar termos, o campo no qual a procura é realizada deve ser configuradopara procura no aplicativo Recursos OSLC.

Integrando Dados a Aplicativos Externos 267

Page 274: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Exemplo: Procurando Ordens de Serviço que se Referem a um Desempenho doBanco de Dados

A solicitação a seguir consulta recursos de ordem de serviço selecionando o títuloabreviado, status e descrição onde a descrição contém os termos banco de dados edesempenho:http://host:7001/maximo/oslc/os/oslcwodetail?oslc.select=oslc:shortTitle,spi_wm:status,dcterms:description&oslc.searchTerms=database,performance

A consulta retorna as informações a seguir:-

"rdfs:member": [-{"oslc:shortTitle": "1001","rdf:about": "http://host/maximo/oslc/os/oslcwodetail/76","spi_wm:status": "INPRG","dcterms:description": "performance is key<!--RICH TEXT -->"

},-{"oslc:shortTitle": "2004","rdf:about": "http://host/maximo/oslc/os/oslcwodetail/58","spi_wm:status": "INPRG","dcterms:description": "all the database and stuff<!--RICH TEXT -->"

},-{"oslc:shortTitle": "6003","rdf:about": "http://host/maximo/oslc/os/oslcwodetail/8","spi_wm:status": "APPR"

},-{"oslc:shortTitle": "1004","rdf:about": "http://host/maximo/oslc/os/oslcwodetail/155","spi_wm:status": "INPRG","dcterms:description": "Performance is key"

},-{"oslc:shortTitle": "1006","rdf:about": "http://host/maximo/oslc/os/oslcwodetail/73","spi_wm:status": "APPR"

}],"rdf:about": "http://host/maximo/oslc/os/oslcwodetail"-"prefixes":{"rdfs": "http://www.w3.org/2000/01/rdf-schema#","oslc": "http://open-services.net/ns/core#","rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#","spi_wm": "http://jazz.net/ns/ism/work/smarter_physical_infrastructure#","dcterms": "http://purl.org/dc/terms/"}

}

Parâmetro de classificação de consulta:

O parâmetro de consulta oslc.orderBy define como os resultados de uma consultasão ordenados. Por exemplo, uma lista de ordens de serviço pode ser ordenada pordata ou ID.

Exemplo: Especificar a ordem de classificação

A consulta oslc.orderBy a seguir retorna as ordens de serviço baseadas na data decriação em ordem ascendente e a duração estimada em ordem descendente:+dcterms:created,-m:estimatedDuration

Nesta consulta, + indica uma ordem de classificação ascendente e - indica umaordem de classificação descendente. O parâmetro oslc.orderBy a seguir não éválido: dcterms:created,-m:estimatedDuration, pois não há uma ordem declassificação padrão na sintaxe da consulta do OSLC. Deve haver um + ou -explícito com o nome da propriedade. O parâmetro oslc.orderBy não é suportadopara propriedades aninhadas. Por exemplo, dcterms:creator{+foaf:name} não ésuportado.

268 Integrando Dados a Aplicativos Externos

Page 275: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Parâmetro de seleção de consulta:

O parâmetro de consulta oslc.select solicita uma representação parcial do recursodos recursos em um recurso de coleta. O parâmetro oslc.select sempre aplica-sea um recurso de coleção. Você especifica a lista de propriedades para incluir nasolicitação.

Exemplo: Solicitação de Recurso Parcial

O parâmetro oslc.select fornece uma lista separada por vírgula de nomes depropriedade qualificados. O parâmetro oslc.prefix não é suportado. A consulta aseguir solicita um recurso parcial:oslc.select=oslc:shortTitle, dcterms:creator

A consulta retorna as informações a seguir:{"rdf:about": "some uri","rdfs:member": [{"oslc:shortTitle": "1022","rdf:about": "some workorder uri","dcterms:creator":{

"rdf:about": "some person uri"}

Exemplo: Selecionando Propriedades de Recursos Referenciados

Com o parâmetro oslc.select, é possível selecionar propriedades dos recursosreferenciados. A consulta a seguir solicita o nome do criador:oslc.select= oslc:shortTitle, dcterms:creator{foaf:name}

A consulta retorna as informações a seguir:{"rdf:about": "some uri","rdfs:member": [{"oslc:shortTitle": "1022","rdf:about": "some workorder uri","dcterms:creator":{

"rdf:about": "some person uri","foaf:name": "Todd Winston"

}

Neste exemplo, o recurso foaf:Person é o nome da pessoa especificada no valor dapropriedade do criador. Para obter todas as propriedades do recurso, é possívelusar oslc.select=*. A mesma sintaxe pode ser aplicada ao parâmetrooslc.properties quando você procurar um recurso OSLC.

Criação de uma Instância de RecursoUm aplicativo consumidor usa o método POST HTTP para criar uma instância deum recurso do OSLC. Em seguida, outros aplicativos podem compartilhar orecurso.

O aplicativo consumidor usa o método POST HTTP para enviar um documentoJSON que está em conformidade com o formato publicado do recurso. O formatoOSLC JSON está associado ao tipo MIME application/json. Quando a solicitaçãoé processada com sucesso, o cabeçalho da resposta HTTP do aplicativo provedorinclui o URI do recurso recém-criado.

Exemplo: Criando uma Instância de um Recurso

O método a seguir cria o recurso oslcwodetail:

Integrando Dados a Aplicativos Externos 269

Page 276: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

POST /maximo/oslc/os/oslcwodetail....{

"dcterms:creator": {"rdf:resource": "http://host:port/maximo/oslc/os/oslcperson/_V0lOU1RPTg--"

},"dcterms:title": "Check-out Leaking","spi_wm:orgid": "EAGLENA","spi_wm:siteid": "BEDFORD","spi_wm:woclass": "WORKORDER","oslc:shortTitle": "T5050","spi:asset": {

"rdf:resource": "http://host:port/maximo/oslc/os/oslcasset/_MTMxNDUvQkVERk9SRA--"},"spi:location": {

"rdf:resource": "http://host:port/maximo/oslc/os/oslcoperloc/_U0hJUFBJTkcvQkVERk9SRA--"},"spi:status": "WAPPR"

}.....

Se a solicitação for processada com sucesso, o aplicativo consumidor receberá aresposta a seguir:201 CriadoLocation: http://host:port/maximo/oslc/os/oslcwodetail/_ABCD--ETag: 1234567

O corpo da mensagem da resposta HTTP fica vazio. Para obter detalhes do recursorecém-criado, o aplicativo consumidor deve enviar uma solicitação GET HTTP aoURI que está especificado na propriedade do local do cabeçalho de HTTP. Oaplicativo consumidor pode usar a propriedade ETag no cabeçalho de HTTP paraenviar uma solicitação de atualização condicional ao aplicativo provedor.

As solicitações do OSLC podem falhar por vários motivos, como validação denegócios, autenticação ou autorização. Se uma solicitação falhar, o aplicativoconsumidor receberá um código de erro HTTP como uma resposta, como um erro400 Solicitação Inválida e o corpo da mensagem conterá os detalhes do erro.

Modificação de RecursosO método HTTP PUT substitui um recurso do OSLC e o método HTTP PATCHparcialmente atualiza um recurso do OSLC.

Substituição de um Recurso do OSLC:

O método PUT HTTP substitui todas as propriedades de um recurso do OSLC,incluindo propriedades literais e propriedades do recurso local. O método PUTtambém exclui quaisquer propriedades de recurso local que não estejam incluídasna solicitação.

Ao usar o método PUT para substituir um recurso do OSLC, as regras a seguir seaplicarão:v Todas as propriedades literais especificadas no documento de solicitação de

HTTP serão atualizadas. Qualquer propriedade literal que não for especificadacomo parte da solicitação não será afetada explicitamente pela solicitação.Entretanto, as propriedades literais podem ser afetadas implicitamente pelalógica de negócios que está associada ao recurso.

v Todas as propriedades do recurso local serão substituídas por seus valorescorrespondentes na solicitação. Quando uma propriedade do recurso for incluídaem uma solicitação PUT, o valor substituirá o valor no servidor. Se umapropriedade do recurso não estiver incluída em uma solicitação de HTTP, apropriedade correspondente será excluída no servidor.

v Não é possível atualizar explicitamente os recursos de referência, mas é possívelatualizar as propriedades que se referem ao recurso e as propriedades seguem omodelo de atualização de propriedades literais.

270 Integrando Dados a Aplicativos Externos

Page 277: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Nos exemplos a seguir, um recurso de ordem de serviço possui uma propriedadeliteral, title e uma propriedade do recurso wplabor. A propriedade wplaboraponta para o recurso local WPLABOR e é associada a dois registros wplabor. Seuma solicitação PUT contiver a propriedade title e nenhuma propriedadewplabor, o título será atualizado e os dados de wplabor serão excluídos.

Exemplo: Atualizando uma Propriedade Literal

O método a seguir atualiza a propriedade literal title e exclui a propriedadewplabor e os dados associados:PUT /maximo/oslc/os/oslcwodetail/abc

{"dcterms:title": "Check-out Leaking – Modified for Test"

}

Se a solicitação for processada com sucesso, o aplicativo consumidor receberá aresposta HTTP a seguir:204 No ContentETag: 123456

O título é alterado para Check-out Leaking – Modified for Test. Como os dadoswplabor não estão incluídos, os registros wplabor serão excluídos.

Exemplo: Atualizando uma Propriedade do Recurso

O método a seguir atualiza a propriedade do recurso, wplabor:PUT /maximo/oslc/os/oslcwodetail/abc

{“spi:wplabor”: [

{“spi_wm:wplaborid": "0000000067",

"spi_wm:rate": 18.5}

]}

Se a solicitação for processada com sucesso, o aplicativo consumidor receberá aresposta HTTP a seguir:204 No ContentETag: 123456

A solicitação inicia uma procura por um registro wplabor com o ID 0000000067. Seeste registro wplabor existir, ele será atualizado. Se nenhum registrocorrespondente for localizado, um novo recurso wplabor será criado com o ID0000000067. Todos os outros dados wplabor para este recurso da ordem de serviçosão excluídos. Como a propriedade title não está incluída, o título não é parte dasolicitação e o valor não é afetado.

Atualização Parcial de um Recurso do OSLC:

O método HTTP PATCH atualiza parte de um recurso do OSLC. Diferente dométodo PUT, o método PATCH não exclui as propriedades do recurso local quenão estão incluídas na solicitação. O cabeçalho x-method-override é necessário paraimplementar o método PATCH.

Ao usar o método PATCH para substituir um recurso do OSLC, as regras a seguirse aplicam:v Todas as propriedades literais que são especificadas no documento de solicitação

são atualizadas. Qualquer propriedade literal que não for especificada como

Integrando Dados a Aplicativos Externos 271

Page 278: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

parte da solicitação não será afetada explicitamente pela solicitação. Entretanto,as propriedades literais podem ser afetadas implicitamente pela lógica denegócios que está associada ao recurso.

v As propriedades do recurso local são atualizadas ou substituídas se houvervalores de propriedade correspondentes na solicitação PATCH. Se umapropriedade do recurso não estiver incluída na solicitação, o recurso localcorrespondente não será afetado explicitamente pela solicitação. Se umapropriedade do recurso estiver incluída na solicitação, o valor de entradasubstituirá ou atualizará o valor no servidor.

v Não é possível atualizar explicitamente os recursos de referência, mas é possívelatualizar as propriedades que se referem ao recurso e as propriedades seguem omodelo de atualização de propriedades literais.

As solicitações HTTP PATCH são usadas nos cenários a seguir:v A solicitação PATCH substitui uma propriedade (recurso local) de matriz com o

conteúdo na solicitação. Esse cenário é a implementação padrão.v É possível localizar e corresponder elementos de recurso de matriz da solicitação

com elementos de recurso correspondentes no servidor. Dependendo se umacorrespondência é localizada, os elementos de recurso de matriz serãoatualizados ou inseridos. Um elemento de matriz nunca é excluído dapropriedade de recurso local. Para usar uma solicitação PATCH paracorresponder aos elementos de matriz, o aplicativo consumidor configura ocabeçalho da solicitação de HTTP PATCHTYPE como o valor MERGE (comdistinção entre maiúsculas e minúsculas).

Exemplo: Atualizando uma Propriedade Literal

O método a seguir atualiza a propriedade de título de uma ordem de serviço:POST /maximo/oslc/os/oslcwodetail/abcdx-method-override: PATCH

{"dcterms:title": "Check-out Leaking – Modified for Test"

}

Ao contrário do método PUT, esse método PATCH não atualiza outraspropriedades da ordem de serviço.

Exemplo: Atualizando e Mesclando uma Propriedade do Recurso

O método a seguir atualiza o recurso com o cabeçalho PATCHTYPE configuradocomo MERGE:POST /maximo/oslc/os/oslcwodetail/abcdx-method-override: PATCHPATCHTYPE: MERGE

{"dcterms:title": "Check-out Leaking – Modified for Test",“spi:wplabor”: [

{“spi_wm:wplaborid": "0000000067",

"spi_wm:rate": 18.5}

]}

A solicitação inicia uma procura por um registro wplabor com o ID 0000000067. Setal registro wplabor existir, o registro será atualizado. Se nenhuma correspondênciafor localizada, um novo registro wplabor será criado com o ID 0000000067. Como ocabeçalho PATCHTYPE está configurado como MERGE, os outros registros wplaborpara este recurso da ordem de serviço permanecem inalterados.

272 Integrando Dados a Aplicativos Externos

Page 279: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Exemplo: Fazendo uma Atualização Condicional

O método a seguir atualiza o recurso se o valor ETag for 1234567:POST /maximo/oslc/os/oslcwodetail/abcdx-method-override: PATCHif-match: 1234567

Se o valor ETag for 1234567, o recurso da ordem de serviço será atualizado e umaresposta HTTP 204 será enviada ao aplicativo consumidor.

Se o valor ETag não for 1234567, o servidor responderá com uma mensagem HTTP412 Precondition failed. Esta mensagem indica que o recurso foi atualizado poralgum outro processo e o aplicativo consumidor solicitante possui uma cópiadesatualizada do recurso. O aplicativo consumidor deve executar uma solicitaçãoGET no recurso abcd para obter uma cópia atualizada do recurso.

Cabeçalhos de HTTPO OSLC fornece vários valores na seção do cabeçalho de solicitações de HTTP erespostas para trocar informações adicionais em transações. Esses valores decabeçalho suportam recursos, como paginação estável, atualizações condicionais derecursos ou assegurar que as transações duplicadas não ocorram após uma falhade conexão HTTP.

Atualizações Condicionais Baseadas em Valores Etag e CabeçalhosIf-Match

Uma tag de entidade (ETag) é um valor incluído em uma resposta do cabeçalho deHTTP que representa o estado atual de um recurso. Quando um aplicativoconsumidor do OSLC fizer uma solicitação GET, o cabeçalho de resposta incluiráum valor ETag. O aplicativo consumidor inclui o valor ETag como parte de umcabeçalho If-Match nas solicitações de atualização PUT e PATCH subsequentespara assegurar que as mudanças sejam condicionais e feitas somente se o registronão tiver sido alterado desde que o valor ETag foi criado. O processo deatualização condicional detecta atualizações inválidas e condições de disputa, porexemplo, quando dois consumidores tentam atualizar o mesmo recurso.

O aplicativo consumidor armazena o valor de cabeçalho ETag e envia-o como partedo cabeçalho If-Match de HTTP para uma solicitação de atualização subsequente.O servidor avalia o cabeçalho If-Match e determina se o aplicativo consumidorpossui uma versão antiga ou a versão mais recente do recurso. Se o servidordeterminar que o aplicativo consumidor possui a versão mais recente do recurso, aatualização será implementada a menos que quaisquer restrições de validação denegócios ou banco de dados seja localizada. Se o servidor determinar que arestrição contém uma versão antiga do recurso, ele retornará uma resposta comfalha da condição prévia HTTP 412. O aplicativo consumidor deve obter o recursonovamente e enviar uma solicitação de atualização baseada na ETag atualizada.

O aplicativo consumidor pode enviar uma solicitação de atualização sem umcabeçalho If-Match ou com o valor do cabeçalho If-Match configurado como *(asterisco). Enviar esta solicitação é semanticamente equivalente a não tercabeçalho If-Match na solicitação de atualização. Nos dois casos, a atualização éincondicional. Se o recurso que é mencionado pelo URI existir e nenhumavalidação de negócios ou restrições de banco de dados for localizada, a atualizaçãoserá implementada.

Integrando Dados a Aplicativos Externos 273

Page 280: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Paginação Estável para Recursos de Coleta

A paginação estável do OSLC define um padrão de paginação em que o recursoque é paginado não se altera quando está sendo paginado para o aplicativoconsumidor, por exemplo, um dispositivo móvel. A paginação estável é suportadasomente para recursos de coleta e não é o formato de paginação padrão deservidores HTTP. Para solicitar a paginação estável, o aplicativo consumidor OSLCinclui o parâmetro de consulta stablepaging na solicitação de HTTP ou inclui umcabeçalho stablepaging na solicitação. O servidor carrega o recurso de coletasolicitado na memória e a resposta HTTP redireciona o aplicativo consumidorOSLC ao URI em que o recurso de coleta carregado está armazenado. Assolicitações subsequentes para as próximas páginas sempre são carregadas dorecurso de memória e nunca do banco de dados. A paginação estável resulta emmelhor desempenho que as páginas do aplicativo consumidor por meio dosresultados.

A paginação estável requer que a solicitação subsequente para a próxima páginaseja atendida pelo mesmo processo do servidor ou membro de cluster que atendeuà solicitação inicial para a paginação estável. O mesmo processo do servidor énecessário, porque o recurso está carregado na memória desse processo doservidor, não nos outros membros de cluster. Se uma solicitação subsequenteestiver com balanceamento de carga para outros membros, o aplicativo consumidorreceberá um erro 404 Not Found. Para evitar esse erro, assegure-se de que assolicitações na sessão de um aplicativo consumidor sejam todas atendidas pelomesmo processo do servidor.

Exemplo de Paginação Estável

O cliente solicita um recurso de ativo:GET/oslc/os/oslcasset?stablepaging=true

A solicitação produz a resposta a seguir:303 RedirectingLocation: http://host:port/../olscasset?stableid=1234

O cliente executa uma solicitação GET no URI de redirecionamento:GET../oslcasset?stableid=1234

A resposta é a primeira página da coleção. O URI para a próxima página estáintegrada no objeto oslc:ResponseInfo como parte da mensagem. Conforme ocliente move-se pelas páginas, as páginas expiram após serem carregadas. Se ocliente estiver na página 3, ela não poderá ser recarregada, nem a página 1 ou 2.Qualquer tentativa de recarregar essas páginas gerará um erro HTTP 410. Orecurso carregado permanece na memória até que expire com base no tempo devalidação inativo que é controlado usando a propriedade do sistemamxe.oslc.idleexpiry. O tempo de validação inativo indica o período que o recursonão foi acessado pelo cliente. O cliente pode solicitar as propriedades do membrousando a cláusula oslc.select e solicitar a coleção resultante usando o parâmetrode consulta oslc.orderBy.

Configurando o Cabeçalho PATCHTYPE para Mesclar paraAtualizações de Recurso Parciais

Para minimizar o tamanho de mensagem, por exemplo, para aplicativos remotos,os aplicativos consumidores podem usar solicitações PATCH para limitaratualizações para dados alterados somente. Para atualizar os objetos-filho de umaestrutura de objeto, por exemplo, para atualizar o log de serviço associado a uma

274 Integrando Dados a Aplicativos Externos

Page 281: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

ordem de serviço, o aplicativo consumidor enviará uma solicitação PATCH, em quea propriedade do cabeçalho PATCHTYPE está configurado para mesclar.

Retornando Propriedades de Recurso em Cabeçalhos de RespostaHTTP

A implementação do mecanismo de automação de processo da Tivoli do OSLCinclui uma nova propriedade de cabeçalho de HTTP, chamada propriedades, quesuporta o retorno de valores de atributo do recurso em respostas HTTP. Umaplicativo consumidor pode configurar o cabeçalho de propriedades e incluir umasequência separada por vírgulas de propriedades em uma solicitação POST, PUTou PATCH. A resposta HTTP inclui os valores de atributo solicitados na respostaHTTP. O cabeçalho de propriedades pode ser usado, por exemplo, para receber onúmero de uma ordem de serviço na resposta HTTP para a solicitação POST quecriou a ordem de serviço.

Evitando Transações Duplicadas após Falhas de Conexão

A implementação do mecanismo de automação de processo da Tivoli do OSLCinclui uma nova propriedade de cabeçalho de HTTP, chamada transactionid, queum aplicativo consumidor pode usar para designar um ID exclusivo a cadatransação. O aplicativo provedor armazena os IDs de transação na tabela detransação do OSLC. Após uma falha de conexão de rede, se o aplicativoconsumidor reenviar uma solicitação POST ou PATCH, o servidor validará o ID detransação em relação aos valores na tabela de transação. Se o ID de transação jáexistir, o servidor retorna um erro de conflito de transação na resposta HTTP.

Códigos de Resposta HTTPOSLC usa códigos de resposta HTTP padrão. Por exemplo, a resposta HTTP 404normalmente é retornada quando uma página da web não é localizada; no OSLC,o código de resposta 404 é retornado quando o recurso não pode ser localizado.

Alguns códigos de erro existentes são mapeados para códigos HTPP por padrão.Um implementador pode mapear códigos de resposta adicionais se necessário.

Os códigos de resposta HTTP a seguir são implementados pelo OSLC:

Código HTTP Explicação do OSLC

200 Sucesso

201 Sucesso. A resposta contém um link.

204 Recurso atualizado com sucesso. Não há entidade de resposta.

400 Erro ao manipular solicitação. Esse erro pode ser devido ao conteúdoda solicitação ou URI. Por exemplo, pode haver um erro de validaçãode lógica de negócios no lado do servidor.

401 Falha de autenticação.

403 Proibido. A senha de usuário expirou.

404 O recurso não pode ser localizado ou um tipo de recurso inválido foifornecido.

405 O método de HTTP não pode ser usado para o recurso.

406 A representação solicitada não é suportada.

410 A página de recurso estável expirou.

Integrando Dados a Aplicativos Externos 275

Page 282: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Código HTTP Explicação do OSLC

412 O recurso no lado do cliente está antigo e deve ser atualizado a partirdo servidor. A atualização condicional falhou, porque o recurso não foiatualizado por outro usuário ou processo.

500 Todos os outros erros do servidor.

As mensagens suportam os idiomas que são suportados pelo mecanismo deautomação de processo da Tivoli.

Integrando como um Consumidor do OSLCSeu aplicativo, um consumidor OSLC, pode ser configurado para suportar trêstipos de interação: diálogo de seleção, diálogo de criação e consulta. Resource linkssão obtidos pelo aplicativo consumidor do aplicativo provedor.

A figura a seguir ilustra as interações entre os aplicativos consumidor e provedor.Como um consumidor OSLC, o aplicativo pode consultar ou criar recursos noaplicativo provedor e reter os links para esses recursos. Com os links, o aplicativoconsumidor pode fazer solicitações para o aplicativo provedor para consultar,atualizar ou excluir os recursos.

Resource links

Aplicativo consumidorOSLC(por exemplo,SmartCloud Control Desk)

Interação de diálogo de seleção

Dados de recurso

Aplicativo provedorOSLC(por exemplo, RationalTeam Concert)

Interação do diálogo de criação

Visualizar diálogo

Interação de consulta

Resource link retornado

O aplicativo consumidor atualiza ou excluium recurso usando o resource link

Criação de Registros do Provedor OSLCVocê deve criar um registro do provedor no aplicativo Provedores OSLC para cadaproduto que registrar no Registry Services Resource Registry. É possível usar oregistro de provedor para criar interações que permitam que os usuárioscompartilhem e atualizem os dados entre os produtos.

Registry Services:

Registry Services é um serviço de integração do Jazz for Service Management quefornece os mecanismos por meio dos quais serviços, recursos e consumidores OpenServices for Lifecycle Collaboration (OSLC) podem usar a interface do OSLC paratrabalhar em um ambiente de gerenciamento de serviço integrado.

276 Integrando Dados a Aplicativos Externos

Page 283: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Registry Services usa o registro do provedor para controlar os recursos que estãodisponíveis no ambiente e usa o registro do recurso para controlar os recursos quepodem ser gerenciados para os ambientes. Ele controla os recursos que podem sergerenciados para os ambientes usando o registro do recurso. mecanismo deautomação de processo da Tivoli usa o registro do provedor e o registro do recursopara integrar diversos produtos.

Registro do Provedor

O registro do provedor é um diretório do Registry Services que contém serviçosque são fornecidos por vários produtos em diferentes domínios. O registro doprovedor controla todos os provedores de serviços em um ambiente, forneceinformações sobre como contatá-los e lista os tipos de ação que executam.

Como um consumidor OSLC, quando você cria uma janela de seleção, uma janelade criação ou uma interação de consulta, é possível configurar a interação paradescobrir os provedores de serviços no registro do provedor.

O provedor OSLC atualmente não oferece suporte para registrar os provedores deserviços do aplicativo para o registro do provedor.

Registro do Recurso

O registro do recurso é um diretório do Registry Services que contém recursos quesão gerenciados ou controlados por diversos produtos em diferentes domínios.

Como um consumidor OSLC, é possível usar o registro de recursos para consultarrecursos. Quando você cria uma interação de consulta, é possível configurar o URIpúblico do registro do provedor para o registro do recurso e configurar o terminalPROVIDERREGISTRY padrão.

O provedor OSLC atualmente não oferece suporte para registrar os recursos doaplicativo para o registro do recurso.

Provedores de serviços:

Um provedor de serviços é um contêiner ou uma coleção de dados relacionados,como um projeto, um banco de dados do usuário ou um módulo. Os provedoresde serviços suportam agrupamento de recursos semelhantes, como defeitos outarefas, que podem ser configurados para integração.

Um provedor de serviços em um aplicativo provedor OSLC contém os dados derecurso que podem ser vinculados aos dados de um aplicativo consumidor pormeio da integração dos aplicativos. Para integrar um aplicativo consumidor e umaplicativo do provedor, o consumidor deverá descobrir ou identificar osprovedores de serviços que estão disponíveis no aplicativo do provedor.

O aplicativo Provedores OSLC suporta as seguintes maneiras de descoberta deprovedores de serviços:v Lista de Catálogov Provedor de serviços únicov Registro do Provedor

Para usar a lista de catálogos ou um único provedor de serviços para descoberta,no aplicativo Provedores OSLC , você especifica um URI no campo URI de Lista

Integrando Dados a Aplicativos Externos 277

Page 284: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

de Provedores de Serviços. A URI pode vincular-se a um catálogo do provedor deserviços, a uma listagem de provedores de serviços ou a um provedor de serviçosindividual.

Para usar o registro do provedor para descoberta, no aplicativo Provedores OSLC ,você seleciona a caixa de seleção Usar Registro do Provedor. No aplicativoTerminais, um terminal HTTP predefinido denominado PROVIDERREGISTRY éusado para identificar as informações de conexão para o registro do provedor.

O terminal PROVIDERREGISTRY especifica um registro do provedor no qual osaplicativos provedores OSLC podem registrar dados do provedor de serviços. Oterminal requer alguma configuração antes que possa ser usado. O terminal HTTPpara o registro do provedor é diferente dos terminais OAuth ou HTTP que sãousados durante a execução de interações entre aplicativos integrados.

Tipos de Recurso e Documentos de Formatos:

Um tipo de recurso identifica o tipo de dados, como uma solicitação de mudança,vinculado entre aplicativos integrados. Um tipo de recurso pode ter um documentode formato associado. Um documento de formato é semelhante a um esquemaXML quanto ao modo em que define a estrutura de dados do recurso.

No aplicativo Provedores OSLC , você usa a ação Incluir/Modificar Tipos deRecurso para criar tipos de recurso. Você cria um tipo de recurso para cada tipo dedado que é suportado por pelo menos um provedor e ao qual você deseja sevincular. O aplicativo do provedor deve suportar o tipo de recurso por meio deum provedor de serviços para que o tipo de recurso esteja disponível para umainteração OSLC.

Um tipo de recurso pode ser usado com diversas interações para um provedor. Ostipos de recurso estão disponíveis para uso com vários provedores OSLC quesuportam o mesmo tipo de recurso.

Os dados de recurso do aplicativo do provedor podem ser disponibilizados para oaplicativo consumidor, conforme os usos. Um uso é uma subclasse dos dados derecurso. Por exemplo, um tipo de recurso de solicitação de mudança pode ter usosde defeito e tarefa.

Um documento de formato é um arquivo Resource Description Framework (RDF)que fornece uma descrição dos tipos de dados de recurso que podem ser usadosem uma interação. Ao criar um tipo de recurso, é possível importar um documentode formato para o tipo de recurso. O documento de formatos contém uma lista deatributos do tipo de recurso.

Terminais na Integração do OSLC:

Um terminal é o ponto de entrada para um serviço, um processo, um aplicativo ouum destino de tópico. Dois tipos de terminais podem ser usados na integração doOSLC. Um terminal de integração é usado para integração do OSLC entre umaplicativo consumidor e um aplicativo provedor. Ele especifica como um aplicativoconsumidor se comunica com o aplicativo provedor OSLC. O terminal deintegração pode ser um terminal OAuth ou um terminal HTTP. Um terminal deregistro do provedor será usado apenas se o método especificado para a descobertado provedor de serviços for por meio do Registro do Provedor.

278 Integrando Dados a Aplicativos Externos

Page 285: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Terminais de Integração

Ao criar um registro do provedor OSLC, você deve especificar o terminal para oaplicativo provedor. O terminal é usado para todas as interações entre o aplicativoconsumidor e o aplicativo do provedor. A integração do OSLC com algunsprovedores, como Rational Team Concert, deve usar um terminal com um tipo demanipulador OAuth. Outros provedores podem requerer um terminal HTTP ousuportam um terminal HTTP ou um terminal OAuth.

O OAuth é um padrão aberto para autorização entre sites ou aplicativos. O OAuthpermite o compartilhamento de recursos que são armazenados em um site comoutro site sem precisar fornecer credenciais de autenticação completas. Informaçõesadicionais sobre OAuth estão prontamente disponíveis na web.

Crie a definição do terminal no aplicativo de Terminais. O terminal especifica osvalores de atributo do aplicativo do provedor que permitem a integração e o linkde dados.

Importante: Use apenas caracteres em inglês e os numerais em um nome determinal OAuth.

Os valores das propriedades de terminal OAuth são baseados na configuração doaplicativo do provedor.

Tabela 40. Propriedades de Terminais OAuthPropriedade Descrição

ACCESSTOKENURL Você obtém a URL do token de acesso do aplicativo provedorOSLC. Este valor é necessário.

AUTHORIZATIONURL Você obtém a URL do token de autorização do aplicativo provedorOSLC. Este valor é necessário.

CONSUMERKEY A chave OAuth que deve ser usada pelo aplicativo consumidor apartir do aplicativo provedor OSLC. Este valor é necessário.

CONSUMERSECRET A senha ou segredo OAuth que deve ser usado pelo aplicativoconsumidor a partir do aplicativo provedor OSLC. Esse valor éarmazenado em um formato criptografado. Ele é obrigatório.

COOKIES Os cookies a serem transmitidos pelo terminal.

HEADERS As propriedades de terminal a serem transmitidas pelo terminal.Por exemplo, o código de idioma do lado do consumidor daintegração pode ser incluído nas propriedades do cabeçalho.

HTTPMETHOD O método de HTTP que é usado durante a solicitação. O valorpadrão é GET. Este valor é necessário. Assegure-se de que a opçãoPermitir Substituição esteja selecionada para a propriedadeHTTPMETHOD.

REQUESTTOKENURL A URL do provedor de segurança OAuth. Você obtém esse valordo aplicativo provedor OSLC. Este valor é necessário.

URL A URL do tipo de uso do provedor de serviços. Este valor énecessário. Assegure-se de que a opção Permitir Substituiçãoesteja selecionada para a propriedade de URL.

Terminal de Registro do Provedor

É possível especificar que o produto faz uma descoberta de provedores de serviçosno provedor OSLC por meio do Registro do Provedor. Neste caso, use um terminalHTTP predefinido para a descoberta, além do terminal OAuth ou HTTP que éusado para integração. O nome do terminal, PROVIDERREGISTRY, é registrado napropriedade de sistema mxe.oslc.prqueryep.

O IBM open service delivery platform (OSDP) tem uma versão do Registro doProvedor que está disponível sob o programa Desenvolvimento Transparente. Paraobter mais informações sobre o registro e para fazer download da versão atual,

Integrando Dados a Aplicativos Externos 279

Page 286: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

consulte https://www.ibm.com/developerworks/servicemanagement/iosdp/index.html. Quando implementado, este registro pode ser configurado como oterminal PROVIDERREGISTRY.

O terminal PROVIDERREGISTRY é predefinido no aplicativo Terminais, mas nemtodas as propriedades são configuradas. Você deve configurar totalmente oterminal para suportar a descoberta do provedor de serviços por meio do Registrodo Provedor.

Tabela 41. Propriedades do Terminal HTTP PROVIDERREGISTRYPropriedade Descrição

CONNECTTIMEOUT O período de tempo, em segundos, a aguardar a conexão antes dedar um erro de tempo limite.

COOKIES Os cookies a serem transmitidos pelo terminal.

HEADERS As propriedades de terminal a serem transmitidas pelo terminal.Por exemplo, o código de idioma do lado do consumidor daintegração pode ser incluído nas propriedades do cabeçalho.

HTTPEXIT A classe de saída Java que é fornecida para suportar oprocessamento específico do Registro do Provedor.

HTTPMETHOD O método de HTTP que é usado durante a solicitação. O valorpadrão é GET. Este valor é necessário. Assegure-se de que a opçãoPermitir Substituição esteja selecionada para a propriedadeHTTPMETHOD.

PASSWORD Se o registro for assegurado, a senha para o nome de usuáriocorrespondente será requerida.

READTIMEOUT O período de tempo, em segundos, a aguardar uma resposta parauma solicitação feita pelo aplicativo consumidor antes de dar umerro de tempo limite.

URL A URL do Registro do Provedor. Requerida. O valor padrão éhttps://oslc-registry/oslc/pr. O valor deve ser atualizado pararefletir a implementação local do registro. Assegure-se de que aopção Permitir Substituição esteja selecionada para a propriedadede URL.

USERNAME Se o registro for assegurado, o nome de usuário e a senhacorrespondente serão requeridos.

Quando configurar a definição de terminal PROVIDERREGISTRY, você deveespecificar valores para pelo menos essas duas propriedades:v HTTPMETHOD: Configurada para GET.v URL: Tem um valor padrão. Atualize o valor para refletir a implementação local

do registro.

Talvez seja necessário configurar também os valores USER e PASSWORD,dependendo da configuração de segurança do Registro do Provedor.

Conexão Única

Se planejar usar a conexão única, você deve configurar a propriedade COOKIESpara seu terminal HTTP como LtpaToken2.

Projetando uma Interação do OSLCA integração do OSLC estabelece links entre os dados em um de seus aplicativosde usuário e os dados em um aplicativo provedor OSLC externo. Você usa oaplicativo Provedores OSLC para integrar aplicativos projetando interações doOSLC.

O aplicativo Provedores OSLC suporta a criação de interações do OSLC que sãogeradas a partir da interface com o usuário. É possível projetar os três tipos aseguir de interações que permitem que seus usuários vinculem seus dados doaplicativo aos dados do recurso do provedor:

280 Integrando Dados a Aplicativos Externos

Page 287: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

v Uma interação de criação permite que o usuário crie dados de recurso noaplicativo provedor OSLC e vincule esses dados de recurso a um registro deaplicativo.

v Uma interação de seleção permite que o usuário selecione dados de recursoexistentes no aplicativo provedor OSLC e vincule esses dados de recurso a umregistro de aplicativo.

v Uma interação de consulta permite que o usuário selecione uma consultapredefinida no aplicativo provedor OSLC e recupere dados de recurso.

Os registros a seguir devem estar em vigor antes que seja possível projetar umainteração:v Um registro de terminal de integração OAuth ou HTTP para o aplicativo do

provedor deve existir no aplicativo Terminais.v Um registro para o aplicativo provedor OSLC deve ser definido no aplicativo

Provedores OSLC .v Um ou mais tipos de recursos do provedor devem estar disponíveis. Inclua tipos

de recursos na janela Incluir/Modificar Tipos de Recursos no aplicativoProvedores OSLC.

O assistente Criar Interação OSLC no aplicativo Provedores OSLC lhe conduz pelastrês etapas para projetar uma interação de seleção OSLC. O assistente inclui umaetapa extra para uma interação de criação do OSLC e duas etapas extra para umainteração de consulta do OSLC.

Exemplo: Projetando uma Interação de Criação ou Seleção do OSLC:

Você deseja projetar uma interação do OSLC para que os usuários do aplicativoService Requests possam criar um defeito no Rational Team Concert, o provedordo aplicativo. O defeito que é criado é vinculado a uma solicitação de serviço noaplicativo Service Requests.

Serviço Preparatório

No aplicativo Provedores OSLC , crie um registro do provedor para o RationalTeam Concert. Especifique o terminal OAuth e o URI público para o Rational TeamConcert e especifique como o provedor de serviços está identificado.

Usando a ação Incluir/Modificar Tipos de Recurso, você inclui o tipo ou os tiposde recurso que são suportados no Rational Team Concert e especifica que osusuários podem se vincular a partir do aplicativo Service Requests.

Definir a Interação e Selecionar URI de Uso: Etapa 1

Você seleciona a ação Criar Interação do OSLC.

Você especifica Criar Defeito como o nome da interação do OSLC para o registrodo Rational Team Concert. Selecione CREATIONDIALOG como o tipo deinteração.

Selecione um tipo de recurso, como solicitação de mudança, na lista de valores. Alista é preenchida com um ou mais tipos de recursos criados anteriormente.

A página de login do Rational Team Concert é exibida porque você deve efetuarlogin no Rational Team Concert para continuar.

Integrando Dados a Aplicativos Externos 281

Page 288: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Após você efetuar login, a lista de valores URI de Uso é preenchida a partir doRational Team Concert com os tipos de uso de recurso para o tipo de recursoselecionado. Selecione o tipo de uso de defeito. Opcionalmente, é possívelespecificar um URI de uso.

Selecionar o Provedor de Serviços e a Propriedade de Associação: Etapa 2

Na etapa 2, especifique se todos os provedores de serviço do Rational TeamConcert estão disponíveis para a interação ou se apenas um único provedor deserviços está disponível. Também é possível identificar uma propriedade deassociação, de forma que um link possa ser estabelecido do aplicativo do provedor,Rational Team Concert, para o aplicativo consumidor Solicitações de Serviço.

Use a seleção padrão, que é a que todos os provedores de serviços estãodisponíveis. Quando um usuário do aplicativo Service Requests inicia a interaçãono aplicativo Service Requests e vários provedores de serviços suportam acombinação selecionada de recurso e uso, uma janela de seleção é aberta. Porexemplo, a janela de seleção pode mostrar uma lista de projetos do Rational TeamConcert que suportam defeitos. O usuário pode selecionar o provedor de serviçosou contêiner no qual criar o defeito.

A outra opção é especificar um URI do provedor de serviços individual. Nessecaso, o aplicativo Service Requests conecta-se diretamente ao provedor de serviçosque especificar.

Para ativar um link do Rational Team Concert com o aplicativo Service Requests,você deve especificar a propriedade de associação. A propriedade de associação éligada ao recurso do Rational Team Concert. Se um documento de formatos estiverassociado ao tipo de recurso, os valores que puderem ser escolhidos para apropriedade de associação serão provenientes do documento de formatos. Senenhum documento de formato estiver associado ao tipo de recurso, é possívelespecificar uma propriedade de associação. A propriedade de associação é exibidana interface com o usuário do Rational Team Concert e a propriedade é preenchidacom um link para a solicitação de serviço. Um usuário do Rational Team Concertpode clicar no link para abrir o aplicativo Solicitações de Serviço e visualizar asolicitação de serviço relacionada no Rational Team Concert.

Selecionar Aplicativo Consumidor para Interação do OSLC: Etapa 3

Na etapa 3, especifique o aplicativo consumidor que interagirá com o aplicativo doprovedor, Rational Team Concert. O aplicativo consumidor é o Service Request.

A configuração padrão é que as mudanças da interface com o usuário no aplicativoconsumidor sejam geradas automaticamente pelo assistente. Se mantiver aconfiguração padrão, você deverá especificar a guia do aplicativo na qual a tabelade interação e o botão são incluídos.

Especifique que a guia, a janela de tabela e o botão devem ser incluídos na guiaRegistros Relacionados do aplicativo Solicitações de Serviço. Por padrão, o nomedo botão de comando é o nome que você especificou para a interação: CriarDefeito. É possível alterar o nome do botão.

Para que o botão seja visível para os usuários, você deve especificar os grupos desegurança que estão autorizados a executar a interação. Apenas usuários nosgrupos que você autorizar poderão ver o botão e criar um defeito no RationalTeam Concert.

282 Integrando Dados a Aplicativos Externos

Page 289: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Alternativamente, é possível limpar a caixa de seleção Criar Guia de Interação eusar o Application Designer para criar todas as mudanças da interface com ousuário no aplicativo Service Requests.

Especificar Mapeamentos de Campo de Interação: Etapa 4

A Etapa 4 está disponível apenas para interações de criação. É possível, comoopção, mapear dados do aplicativo consumidor para campos de destino noaplicativo do provedor. Quando o usuário clica no botão para criar um recurso, oscampos são mapeados para a janela do provedor que é exibida no aplicativoconsumidor. Por exemplo, você deseja que os usuários do Service Requests vejam onúmero de solicitação de serviço e a descrição que é previamente preenchida noscampos na janela Rational Team Concert Criar Recurso. É possível fornecer maismapeamentos de campo ou revisar o mapeamento de campo, mesmo após concluira interação.

O documento de formatos do recurso identifica atributos que suportam links. Noseu aplicativo, selecione apenas campos que contiverem links para seremmapeados para os campos de destino que suportarem links. Assegure-se de que ocampo de destino seja um campo visível na interface com o usuário da janela deaplicativo do provedor para que os dados mapeados fiquem visíveis.

Você deseja mapear a descrição da solicitação de serviço para a descrição dodefeito na janela do Rational Team Concert. Especifique :description como aexpressão de mapeamento de origem e descrição como a propriedade do recursode destino.

Criar Diversas Interações

É possível criar diversas interações para um aplicativo consumidor. Por exemplo,você também pode desejar criar uma interação de seleção para o aplicativo ServiceRequests. Na janela de seleção, um usuário pode clicar em um botão paraselecionar um recurso existente, como um defeito, no Rational Team Concert. Sevocê criar várias interações para a mesma combinação de uso e tipo de recurso namesma guia de aplicativo, os botões de comando serão incluídos na mesma guia ejanela da tabela.

Se você também projetar uma interação de seleção para o aplicativo ServiceRequests, os usuários terão as opções a seguir:v Criar um defeito e vincular a solicitação de serviço ao novo defeito.v Selecionar um defeito existente e vincular a solicitação de serviço para ele.

Também é possível projetar uma interação de criação adicional para um tipo derecurso suportado ou tipo de uso, como uma tarefa. Uma combinação de tipo e deuso de recurso diferente gera uma guia e uma janela de tabela separadas para obotão de interação adicional.

Revise Novas Interações no Aplicativo Consumidor

Após concluir a interação, você deverá efetuar login novamente. O novo loginconcederá o acesso de segurança atualizado que você especificou na etapa 3. Apósefetuar login, você navega para o aplicativo Service Requests para revisar asmudanças da interface com o usuário. A qualquer momento, é possível usar oaplicativo Application Designer para refinar ou incluir as mudanças da interfacecom o usuário que foram geradas automaticamente no aplicativo Service Requests.

Integrando Dados a Aplicativos Externos 283

Page 290: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

É possível testar o botão ou botões para assegurar que a janela do Rational TeamConcert seja mostrada no aplicativo Service Request conforme esperado. Se a janelanão for mostrada, ou se os dados estiverem em campos inesperados, ummapeamento de dados com falha pode ser a causa. É possível rever e revisar omapeamento de dados para a interação na tabela Mapeamento do registro doprovedor OSLC.

Se os usuários do aplicativo Service Request não puderem ver os botõesrecém-incluídos que vinculam ao Rational Team Concert, assegure-se de que osusuários tenham efetuado login novamente e pertençam aos grupos de segurançaque você autorizou. Assegure-se também de que os usuários tenham credenciais delogin válidas do Rational Team Concert.

Modificação das Interações de Criação ou Seleção do OSLC

Após você concluir o design da interação do OSLC, as mudanças que podem serfeitas nele são limitadas. É possível atualizar a propriedade de associação e revisaro mapeamento de campo.

Especificar uma nova propriedade de associação estabelece um novo nome depropriedade que fornece um link do aplicativo do provedor para o aplicativoconsumidor.

Na tabela de Mapeamentos de Interação, é possível revisar qualquer mapeamentoexistente, excluir um mapeamento ou incluir mapeamento. O documento deformatos do recurso identifica atributos que suportam links. No aplicativoconsumidor, você seleciona apenas os campos que contêm links para mapear paracampos de destino que suportam links. Assegure-se de que o campo de destinoseja um campo visível na interface com o usuário da janela de aplicativo doprovedor, de modo que os dados mapeados fiquem visíveis.

Também é possível especificar uma classe Java para usar como parte da lógica demapeamento. É possível usar uma classe Java quando as definições demapeamento de campo fornecidas não forem suficientes. Especifique a classe Javano campo Classe de Mapeamento de Interação. Uma classe de mapeamentopoderá ser fornecida independentemente se o mapeamento de campo existir ounão.

Exclusão das Interações de Criação ou Seleção do OSLC

A exclusão da interação só será possível se não houver links existentes dentro doaplicativo consumidor que referencia a interação. Todos os links do aplicativorelacionados devem ser excluídos antes de uma interação poder ser excluída de umregistro do provedor OSLC.

Quando você exclui uma interação, as mudanças na interface com o usuáriocorrespondentes que foram feitas quando a interação foi projetada são atualizadas.O botão para a interação é removido do aplicativo. A janela da tabela e a guiatambém são removidas, mas somente se a guia criada pelo assistente e a janela detabela em que o botão existia não contiverem botões para outras interações. Orelacionamento e a opção de assinatura que foram criados para a interação tambémsão excluídos.

Se você configurou manualmente as mudanças na interface com o usuário para ainteração, será necessário usar o Application Designer para remover essasmudanças.

284 Integrando Dados a Aplicativos Externos

Page 291: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Links Órfãos

Links que são gerados entre o registro de objeto para o aplicativo consumidor e orecurso de aplicativo do provedor são armazenados na tabela de banco de dadosOSLCLINK.

Se você excluir um registro de objeto que contém links, a tabela OSLCLINKconterá um ou mais links órfãos associados ao registro de objeto excluído.

A tarefa Cron OSLCDeleteLinks exclui links órfãos. Por padrão, a tarefa CronOSLCDeleteLinks é configurada para executar uma vez por dia. É possívelvisualizar e editar a tarefa Cron no aplicativo de Configuração da Tarefa Cron

Exemplo: Projetando uma Interação de Consulta do OSLC:

Você deseja projetar uma interação do OSLC para que os usuários do aplicativoAtivos possam executar uma consulta e recuperar dados de recurso de umprovedor, como IBM Tivoli Application Dependency Discovery Manager.

Serviço Preparatório

No aplicativo Provedores OSLC , o Resource Registry é o provedor padrão parainterações de consulta. O terminal PROVIDERREGISTRY é especificado como partedas configurações padrão, mas você deve configurar as propriedades de terminal eespecificar o URI público para o Resource Registry. Você também deve especificarcomo o provedor de serviços é identificado.

Usando a ação Incluir/Modificar Tipos de Recurso, você inclui o tipo ou tipos derecurso que são suportados no Resource Registry e associa um documento deformato ao tipo de recurso se disponível. Também é possível especificar que osusuários possam vincular ao Resource Registry a partir do aplicativo Ativos.

Definir a Interação e Selecionar URI de Uso: Etapa 1

Você seleciona a ação Criar Interação do OSLC.

Você especifica COMPUTER como o nome da interação do OSLC e selecionaQUERYCAPABILITY como o tipo de interação.

Selecione um tipo de recurso, como COMPUTERSY, a partir da lista de valores. Alista é preenchida com um ou mais tipos de recursos criados anteriormente.

Opcionalmente, é possível especificar um URI de uso. A lista de valores URI deUso é preenchida a partir do Resource Registry com o tipo ou tipos de uso derecurso para o tipo de recurso selecionado. Se você não especificar um URI de uso,o tipo de uso padrão para o tipo de recurso será usado.

Selecione o provedor de serviços e propriedade de link: etapa 2

Na etapa 2, você especifica se todos os provedores de serviços estão disponíveispara a interação ou se apenas um único provedor de serviços está disponível.Também é possível identificar uma propriedade de link e um rótulo de link, paraque um link possa ser estabelecido do aplicativo do provedor, Resource Registry,para o aplicativo consumidor, Assets.

Integrando Dados a Aplicativos Externos 285

Page 292: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Use a seleção padrão, que é a que somente o provedor de serviços ResourceRegistry está disponível. Quando um usuário do aplicativo Ativos inicia ainteração executando uma consulta e vários provedores de serviços suportam acombinação selecionada de recurso e uso, uma janela de seleção é aberta. Porexemplo, a janela de seleção pode mostrar uma lista de provedores de serviços quecontêm dados que estão no recurso especificado. O usuário pode selecionar oprovedor de serviços no qual basear a consulta.

A outra opção é especificar um URI do provedor de serviços individual. A consultaé executada com base no provedor de serviços que especificar. A propriedade delink é usada para recuperar os dados de recurso do Resource Registry para oprovedor. O link e o rótulo do link são exibidos ao usuário no aplicativoconsumidor quando os resultados da consulta são fornecidos.

Para ativar um link do Resource Registry para o aplicativo Ativos, o aplicativoprovedor deve suportar o uso de uma propriedade de link. A propriedade de linké vinculada ao recurso no Resource Registry. Se um documento de formato estiverassociado ao tipo de recurso, os valores que pode escolher para a propriedade delink vêm do documento de formato. Se nenhum documento de formato estiverassociado ao tipo de recurso, é possível especificar uma propriedade de link e umrótulo de link.

Selecionar Aplicativo Consumidor para Interação do OSLC: Etapa 3

Na etapa 3, você especifica o aplicativo do produto que interage com o aplicativoprovedor, Resource Registry. O aplicativo consumidor pode ser qualquer aplicativono produto, mas esse exemplo usa o aplicativo Ativos.

A configuração padrão é que o botão de comando é gerado automaticamente noaplicativo especificado. Se mantiver a configuração padrão, você deve especificar aguia do aplicativo na qual o botão de interação está incluído para suportar ainteração de consulta.

Você especifica que o botão deve ser incluso na guia Principal do aplicativoAtivos. Por padrão, o rótulo do botão de comando é o mesmo que o nome quevocê especificou para a interação: Computador. É possível alterar o rótulo dobotão.

Para que o botão seja visível para os usuários, você deve especificar os grupos desegurança que estão autorizados a executar a interação. Apenas usuários nosgrupos autorizados podem ver o botão e executar a consulta para recuperar osdados de recurso.

Especificar Consultas e Parâmetros de Consulta: Etapa 4

Na etapa 4, construa as consultas para a interação. As consultas são usadas paraconsultar os dados de recurso no Resource Registry. A cláusula Select identifica osatributos selecionados a partir do recurso. É possível especificar um asterisco (*)para recuperar todos os valores ou especificar uma lista separada por vírgula deatributos de recurso a partir do documento de formato para filtrar a lista devalores a ser recuperada.

É possível definir a condição WHERE da consulta usando um dos métodos aseguir:v Implemente uma classe Java para definir a condição WHERE.

286 Integrando Dados a Aplicativos Externos

Page 293: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

v Preencha a condição WHERE.v Configure a condição WHERE usando os valores de parâmetro. Os valores de

parâmetro são selecionados no objeto principal do aplicativo e comparados comos atributos dos dados de recurso no aplicativo provedor.

As consultas são executadas na ordem especificada na tabela de consultas. Se aprimeira condição não for atendida, todas as consultas subsequentes sãoprocessadas na sequência até que a condição de consulta seja atendida. Quandouma condição for atendida, os dados de recurso serão recuperados e retornados aousuário no aplicativo consumidor. Também é possível identificar o parâmetro deconsulta orderby que ordena os dados retornados na resposta da consulta.

Consultas que são criadas durante o design da interação não são validadas.Portanto, você pode criar consultas que geram mensagens durante o tempo deexecução. Por exemplo, é possível criar a condição de consulta a seguir:Query Query Type Property Operand Mapped Expression Is Literal?10 Parameter http://open-services.net/ns/crtv#%7Dmanufacturer IN IBM, Dell Checked

Porém, durante o tempo de execução, um erro é gerado porque a consulta estáprocurando um atributo "IBM, Dell" em vez de dois atributos "IBM","Dell". Oexemplo a seguir mostra o formato de atributo correto:Query Query Type Property Operand Mapped Expression Is Literal?10 Parameter http://open-services.net/ns/crtv#%7Dmanufacturer IN "IBM","Dell" Checked

Especifique o Grupo de Interação: Etapa 5

Na etapa 5, é possível como opção incluir a interação de consulta em um grupo deinteração e especificar uma condição para o grupo se não existir.

Um grupo de interação permite agrupar várias consultas relacionadas sob umúnico controle de interface com o usuário. Ao especificar um grupo de interação,você permite que o usuário execute diversas interações em diferentes provedorescom base na condição associada à interação no grupo.

Todas as interações no grupo são baseadas no mesmo objeto principal e tipo derecurso. Se incluir uma interação de consulta em um grupo de interação, essainteração será executada somente como parte do grupo. A interação de consultanão é executada de forma independente. A ordem das interações no grupodetermina a sequência na qual a consulta para o grupo de interação é executada.

Especifique o grupo de interação CICOMPUTERSY e a condição XYZ. Se tiver criadoum grupo de interação, poderá especificar detalhes extra para o grupo de interaçãousando a ação Incluir/Modificar Grupos de Interação. No aplicativo Ativos,quando o usuário clica no botão para executar uma consulta e uma condição éatendida, os resultados da consulta são exibidos na janela Visualização.

Revise Novas Interações no Aplicativo Consumidor

Após você criar a interação da consulta, é necessário efetuar login novamente. Onovo login concede o acesso de segurança atualizado que você especificou na etapa3. Após você efetuar login, é possível navegar para o aplicativo Ativos para revisaras mudanças da interface com o usuário.

É possível testar o botão para assegurar que ele seja mostrado no aplicativo Ativosconforme esperado. É possível executar a consulta para verificar que a consulta éválida e que os dados de recurso sejam retornados. Se nenhum resultado for

Integrando Dados a Aplicativos Externos 287

Page 294: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

retornado, os parâmetros de consulta podem estar incorretos. Revise os parâmetrosde consulta no aplicativo Provedores OSLC e atualize-os conforme a necessidade.

Se os usuários não puderem ver o botão recém-incluído após efetuarem loginnovamente, assegure-se de que os usuários pertençam aos grupos de segurançaque você autorizou.

Modificação de Interações de Consulta do OSLC

Após você concluir o design da interação de consulta do OSLC, as mudanças quepodem ser feitas nele são limitadas. É possível atualizar a propriedade de link,atualizar os parâmetros de consulta e revisar o mapeamento de campo.

Especificar uma nova propriedade de link estabelece um novo nome depropriedade que fornece um link do aplicativo provedor para o aplicativoconsumidor.

Na tabela Mapeamentos de Consulta, é possível revisar qualquer mapeamentoexistente, excluir mapeamentos ou incluir mapeamentos. O documento de formatosdo recurso identifica atributos que suportam links. No aplicativo consumidor, vocêseleciona apenas os campos que contêm links para mapear para campos de destinoque suportam links. Assegure-se de que o campo de destino seja um campo visívelna interface com o usuário da janela de aplicativo do provedor, de modo que osdados mapeados fiquem visíveis.

Também é possível especificar uma classe Java para usar como parte da lógica demapeamento. É possível usar uma classe Java quando as definições demapeamento de campo fornecidas não forem suficientes. Especifique a classe Javano campo Consultar Classe de Mapeamento. Uma classe de mapeamento poderáser fornecida independentemente se o mapeamento de campo existir ou não.

A cláusula SELECT da interação de consulta pode ser atualizada após a interaçãoser criada.

Exclusão de Interações de Consulta do OSLC

A exclusão da interação de consulta só é possível se a interação não estivervinculada a um grupo de interações. Você deve remover a interação de um grupoantes de excluir a interação.

Quando você exclui uma interação, as mudanças na interface com o usuáriocorrespondentes que foram feitas quando a interação foi projetada são atualizadas.O botão para a interação é removido do aplicativo. O relacionamento e a opção deassinatura que foram criados para a interação também são excluídos.

Criando Grupos de InteraçãoÉ possível usar grupos de interações para intercalar várias interações de consultasob um único controle de interface com o usuário, como um botão. Essasinterações de consulta podem ser para um único provedor ou diversos provedores.

Antes de Iniciar

Antes de poder criar um grupo de interações, você deve criar uma ou maisinterações de consulta.

288 Integrando Dados a Aplicativos Externos

Page 295: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Sobre Esta Tarefa

Cada interação de consulta no grupo é executada e retorna dados ao usuáriobaseado em suas condições. Se uma interação de consulta contiver uma condiçãoque esteja baseada nos dados do aplicativo atuais, o grupo de interação usará essesdados para executar somente as consultas apropriadas. Os resultados de consultade diversas consultas são combinados e exibidos na visualização resultante.

Para criar uma interação do OSLC, você deve estar no idioma de base. Também épossível criar um grupo de interações no assistente de interação de consulta.

Procedimento1. No aplicativo Provedores OSLC, selecione a ação Incluir/Modificar Grupos de

Interação.2. Inclua uma nova linha e especifique um nome para o grupo de interações e o

objeto principal que deseja associar ao grupo.3. Opcional: Se desejar associar o grupo de interação a diversos provedores,

selecione a caixa de opção Suportar a Visualização Combinada de DiversosProvedores.

4. Na guia Interações, especifique pelo menos uma interação a ser executadacomo parte do grupo. As interações que estão disponíveis para seleção sãobaseadas no objeto principal que está especificado para os grupos de interação.

5. Na guia Aplicativos, especifique o aplicativo no qual você deseja incluir ogrupo de interação.

6. Opcional: Se o objeto principal do grupo de interação não for um objetoprincipal do aplicativo que está especificado, você deverá especificar umrelacionamento. Se um relacionamento não existir entre o aplicativo e o objetoprincipal que você especificou para o grupo de interação, você deverá criar oumodificar um relacionamento na guia Relacionamentos no aplicativo deConfiguração do Banco de Dados.

7. Especifique um rótulo para um botão, um item de Menu Detalhe ou ambosdependendo de onde você deseja que a interação esteja disponível no aplicativoconsumidor.

8. Na guia Grupos de Segurança, selecione o grupo de segurança que se aplica aoaplicativo e ao grupo de interação.

9. Para incluir um grupo de interação em um item de Menu Detalhe, selecione aguia Menu do Aplicativo, especifique o local no aplicativo consumidor no qualo grupo será incluído, clique em OK e salve o grupo. Os campos existentes noaplicativo consumidor são mostrados na caixa de diálogo Selecionar Menu deDetalhe.

Exemplo: Executando uma Interação do OSLCComo um usuário do aplicativo, você pode executar interações do OSLC entreaplicativos que foram integrados por um designer de integração. Você inicia ainteração do OSLC clicando em um botão no aplicativo consumidor. Dependendodo tipo de interação, é possível criar um registro de recurso no aplicativo doprovedor externo ou vincular a um recurso existente no aplicativo do provedor.

Neste exemplo, seu aplicativo é o consumidor e o Rational Team Concert é o provedor.Entretanto, esse processo também pode funcionar com qualquer provedor OSLC.

Use o aplicativo Solicitações de Serviço para inserir solicitações de correções nosoftware que sua equipe está desenvolvendo. O designer de integração usa oaplicativo Provedores OSLC para integrar o aplicativo Solicitações de Serviço com

Integrando Dados a Aplicativos Externos 289

Page 296: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

o aplicativo Rational Team Concert. Duas interações do OSLC foram criadas. Noaplicativo Solicitações de Serviço, há uma guia rotulada Defeitos na guia RegistrosRelacionados. A guia tem uma janela Defeitos e dois botões de comando na janela:Criar Defeito e Selecionar Defeito.

Agora é possível inserir uma solicitação de serviço e criar um defeito associado emRational Team Concert ao mesmo tempo, sem sair do aplicativo Solicitações deServiço. Ou então, é possível associar a solicitação a um recurso existente noRational Team Concert usando o botão Selecionar Defeito.

Criando um Defeito

No aplicativo Solicitações de Serviço, crie uma solicitação de serviço, forneça umadescrição e outras informações e salve a solicitação. Abra a guia RegistrosRelacionados e clique no botão Criar Defeito na guia Defeitos.

Como você está criando um registro de recurso em um aplicativo externo, RationalTeam Concert, você deve conectar-se ao Rational Team Concert. A janela de logindo Rational Team Concert é exibida. Após fornecer seu ID do usuário e senha, ajanela Criar Recurso será exibida. A janela Criar Recurso é uma janela do RationalTeam Concert, agora disponível para você no aplicativo Service Requests comoresultado da integração do OSLC.

Especifique o tipo de recurso para criar um defeito. Você também deve fornecerinformações no campo Resumo e especificar o projeto ou o contêiner com relaçãoao qual o defeito será arquivado.

O designer de integração mapeou o campo Descrição da Solicitação de Serviçopara a propriedade Descrição do Rational Team Concert quando a interação foicriada. Como resultado, a descrição de solicitação de serviço está no campoDescrição na janela Criar de Recursos. É possível editar a descrição, se necessário.

Visualizando Dados do Registro de Recurso do Aplicativo do Provedor

A criação do registro no Rational Team Concert também cria uma linha na tabelaDefeitos no aplicativo Solicitações de Serviço. O campo Descrição contéminformações sobre o recurso vinculado no Rational Team Concert. A linha da tabelatambém mostra a URL do registro de recurso vinculado.

O campo Descrição tem um ícone de informações, um pequeno círculo azul comum “i” nele. É possível passar o cursor sobre o ícone de informações para exibiruma janela que mostra dados do registro de defeito no Rational Team Concert. (Sevocê não estiver conectado ao aplicativo provedor e passar o mouse sobre o íconede informações, será exibida uma mensagem, além de um link para você seconectar.Se o aplicativo provedor não suportar visualizações OSLC, um segundo íconeaparecerá, no qual você poderá clicar para abrir uma visualização.)

É possível usar a janela de visualização para verificar o status e outras informaçõessobre o registro de defeito do Rational Team Concert a partir do aplicativoSolicitações de Serviço.

Selecionando um Defeito

No aplicativo Solicitações de Serviço, insira uma segunda solicitação de serviço.Essa solicitação é para corrigir uma instância de um problema que foianteriormente relatado e para o qual um defeito existe no Rational Team Concert.

290 Integrando Dados a Aplicativos Externos

Page 297: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Para a segunda solicitação, você deseja vincular-se ao defeito existente ao invés decriar um registro de defeito. Na tabela Defeitos da guia Registros Relacionados,clique em Selecionar Defeito.

Pode ser necessário selecionar o contêiner, como o projeto do Rational TeamConcert, para o defeito, se o aplicativo do provedor suportar diversos contêineres.

Na janela Selecionar Recurso, especifique Defeito como o tipo de recurso quedeseja selecionar. Forneça informações de procura, como o número ou a descriçãodo defeito, para exibir o defeito ou defeitos que correspondem aos seus critérios deprocura. Ao selecionar um defeito e clicar em OK, o link para o recurso de defeitodo Rational Team Concert é estabelecido. Uma linha para o defeito é incluída natabela Defeitos no aplicativo Solicitações de Serviço. É possível usar o ícone deinformações para exibir as informações do defeito, assim como é possível para alinha que você incluiu ao criar um defeito.

Mudanças da URI PúblicaSe um aplicativo provedor OSLC for movido para outro servidor ou se seu URIpúblico mudar por outro motivo, é possível alterar o URI público no registro doprovedor OSLC. Ao atualizar o URI público, os URIs que estiverem baseados noURI público também serão alterados, o que evita a quebra de links.

No aplicativo Provedores OSLC , você usa a ação Alterar URI Público paraespecificar o novo URI público para um provedor OSLC. Após alterar o URIpúblico, os URIs que estiverem baseados no URI público, como URIs de provedorde serviços e os URIs de recursos, também serão alterados. Atualizar os links paracorresponder ao novo URI público mantém os links como links ativos e viáveis.

Migração de Integrações do OSLCÉ possível migrar uma definição de provedor OSLC e suas interações relacionadasde uma instância do produto para outra. Por exemplo, você pode configurar umaintegração do OSLC em um ambiente de desenvolvimento ou teste. Apósestabelecer que a integração está funcionando adequadamente, será possívelmigrá-la para um ambiente de produção.

A migração de integrações do OSLC obtém vantagens dos recursos do aplicativoMigration Manager existentes e é feita em grande parte no aplicativo MigrationManager. O aplicativo Provedores OSLC tem uma ação para gerar o pacote quedeve ser migrado.

Antes de executar a ação Migrar Provedor OSLC, um serviço preparatório deve serfeito no aplicativo Migration Manager. Uma definição de pacote OSLCPROVIDERé fornecida no aplicativo Migration Manager. Para a definição de pacoteOSLCPROVIDER, especifique um banco de dados de destino ou um destino dearquivo para o pacote que for gerado no aplicativo Provedores OSLC.

Use a ação Migrar Provider OSLC no aplicativo Provedores OSLC para gerar opacote a ser gerenciado no aplicativo Migration Manager. O pacote contém oregistro do provedor OSLC, as interações associadas e as mudanças da interfacecom o usuário associadas no aplicativo ou aplicativos consumidores integrados.

Após executar a ação Migrar Provedor OSLC, uma mensagem do sistema éexibida. A linha final da mensagem de log mostra o nome do pacote. O pacote estálistado na guia Pacote da definição de pacote OSLCPROVIDER no aplicativoMigration Manager no ambiente de origem.

Integrando Dados a Aplicativos Externos 291

Page 298: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

No ambiente de destino, use o aplicativo Migration Manager para importar eimplementar o pacote.

Se você usar um arquivo de mapeamento Java customizado na integração doOSLC, o arquivo de mapeamento Java customizado não será incluído no pacote.Você deve mover manualmente o arquivo de mapeamento customizado e oarquivo de classe correspondente para o ambiente de destino ou incluí-losmanualmente no pacote.

A ação Migrar Provedor OSLC gera um pacote apenas para o registro do provedorOSLC atual. Se tiver vários registros do provedor OSLC, você deverá migrar cadaum individualmente.

O Migration Manager não suporta a migração dos grupos de interação. Paramigrar os objetos em um grupo de interação, é possível construir uma novaestrutura de objeto que usa os objetos a seguir:OSLCINTGROUPOSLCGRPAPPSOSLCGRPAPPMENU

OSLCGRPMEMBERS

Você deve incluir a nova estrutura de objeto no pacote de migraçãoOSLCPROVIDER.

Modificação Manual de UIProjetar interações do OSLC entre aplicativos requer várias mudanças na interfacecom o usuário (UI) no aplicativo consumidor. Vários cenários podem levar ao usodo aplicativo Editor de Telas para fazer ou refinar as mudanças de UI como parteda integração.

Implementação Manual de Mudanças de UI e Segurança para Interações:

Se você optar para que o assistente não gere automaticamente as mudanças dainterface com o usuário (UI) no aplicativo consumidor, você deverá modificarmanualmente a UI. A interface com o usuário deve disponibilizar a interação paraos usuários por meio de um botão de comando. Se grupos de segurança não foremselecionados no assistente, você deverá especificar os grupos de segurança quetiverem acesso à interação.

Mesmo quando você não gera automaticamente mudanças da interface com ousuário, a criação de uma interação do OSLC cria um relacionamento de link euma opção de assinatura de botão de comando. O nome do relacionamento do linkbaseia-se no tipo ou no uso de recurso especificado. O nome da opção deassinatura é baseado no nome da interação. O nome do relacionamento e o nomeda opção de assinatura são listados nos detalhes de interação na guia ProvedorOSLC. Esses dois valores serão necessários quando implementar manualmente asmudanças da UI.

Utilize o aplicativo Editor de Telas para modificar a interface com o usuário doaplicativo consumidor. Você deve criar um botão de comando para que a interaçãodo OSLC possa ser executada para criar um link. Alem disso, você deve forneceruma guia com uma tabela para manter os links para os recursos no aplicativo doprovedor. Geralmente, o botão e a tabela de link são fornecidos juntos na mesmaguia.

292 Integrando Dados a Aplicativos Externos

Page 299: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Use o aplicativo Grupos de Segurança para especificar os grupos que tiveremacesso ao botão de comando. Somente os usuários nos grupos que você autorizarpodem ver o botão e usá-lo para exibir a janela do aplicativo do provedor eexecutar a interação.

Refinamentos da Interface com o Usuário:

É possível fazer refinamentos ou inclusões na interface com o usuário (UI) doaplicativo consumidor, mesmo se as mudanças de UI forem geradasautomaticamente.

Após você projetar uma interação do OSLC que gera automaticamente mudançasda interface com o usuário, sua revisão da UI do aplicativo pode revelar que asrevisões são garantidas. Por exemplo, é possível editar os rótulos na nova guia, ajanela de tabela ou o botão de comando. Também é possível ajustar oposicionamento dos elementos da UI. Use o aplicativo Editor de Telas paramodificar ou incluir elementos da UI.

Durante o design de interação, é possível especificar que todos os provedores deserviços devem estar disponíveis para a interação no aplicativo consumidor. Nessescasos, uma janela Selecionar Contêiner é exibida quando a interação é iniciada. Ajanela é usada para especificar qual provedor de serviços ou contêiner será usadopara a interação. É possível fornecer um texto de grade de ajuda para a janelaSelecionar Contêiner. Por exemplo, é possível incluir um texto de grade da ajudapara indicar que as opções representam projetos ou bancos de dados, ou algumoutro contêiner de recurso. Também é possível rotular novamente o título da janelapara dar maior clareza àquilo que o usuário deve selecionar.

Tradução de Elementos de UI Não Traduzidos:

Use o aplicativo Editor de Telas para modificar e traduzir alguns elementos dainterface com o usuário (UI), como dicas de ferramentas para ícones, que sãoincluídos pelo design de interação.

Alguns elementos da interface com o usuário que são incluídos pelo design deuma interação do OSLC não aparecem no idioma apropriado para a interface, poisas interações devem ser criadas no idioma de base. Os elementos são incluídosdepois que os elementos da UI originais forem traduzidos e antes daimplementação do aplicativo. Para traduzir os elementos de UI para o idioma doaplicativo da UI, use o aplicativo Editor de Telas para modificar os elementos detexto não traduzidos.

Propriedades do OSLCÉ possível usar propriedades do sistema para ajudar no gerenciamento daintegração de aplicativos Open Services for Lifecycle Collaboration (OSLC).

Tabela 42. Propriedades do OSLCPropriedade Descrição Valor padrão

mxe.oslc.collectioncount Representa a contagem total da coleção OSLC. 0

mxe.oslc.defaultep Representa o terminal OSLC padrão. OSLCDEFAULT

mxe.oslc.defaultformat Representa o formato padrão para OSLC. oslcjson

mxe.oslc.dfltconsumerversion Representa a versão padrão do OSLC usada pelo consumidor. 2.0

mxe.oslc.dfltversion Representa a versão padrão do OSLC para um provedor OSLC. 2.0

mxe.oslc.enableprovider Ativa o provedor OSLC. 1

mxe.oslc.idleexpiry Representa o tempo em segundos que o sistema pode estar inativoantes de as sessões expirarem.

300

mxe.oslc.prcreateep Representa o Terminal de Criação de Registro do Provedor.

Integrando Dados a Aplicativos Externos 293

Page 300: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tabela 42. Propriedades do OSLC (continuação)Propriedade Descrição Valor padrão

mxe.oslc.preferproviderdesc Especifica se a descrição do OSLC Provider é preferencial para URIsreconciliados do registro do recurso.

true

mxe.oslc.prettyjson Representa o JSON de impressão pretty. 1

mxe.oslc.prettyrdf Representa o RDF de impressão pretty. 1

mxe.oslc.prqueryep Representa o Terminal de Consulta de Registro do Provedor. PROVIDERREGISTRY

mxe.oslc.webappurl Representa o URI Público do Provedor. http://localhost/maximo/oslc/

Consultas de IntegraçãoA estrutura de integração suporta consultas de sistemas externos. O sistemaexterno envia uma mensagem XML para consultar a estrutura de integração e aestrutura de integração retorna uma mensagem XML como resposta à consulta. Épossível executar uma consulta para a estrutura de objeto e os serviçoscorporativos usando HTTP, Chamada de Método Remoto (RMI) Java™ ou umasolicitação de Simple Object Access Protocol (SOAP) em um serviço da Web.

Suporte para consultas XML é baseado no recurso Query By Example (QBE) queestá disponível na guia Lista da maioria dos aplicativos. As consultas baseadas emXML fornecem o mesmo suporte a consultas fornecido nos aplicativos, exceto parabuscas de atributos que estão disponíveis em alguns aplicativos do sistema. Ostempos limites da consulta de integração são controlados pela propriedade desistema mxe.db.Query.Timeout.Conceitos relacionados:“API REST” na página 224A interface de programação de aplicativos (API) Representational State Transfer(REST) fornece uma maneira de aplicativos externos consultarem e atualizaremdados do aplicativo no mecanismo de automação de processo da Tivoli.

Serviços de ConsultaOs serviços de estrutura de objeto e os serviços corporativos suportam operaçõesquery. Uma origem externa pode utilizar um serviço para executar uma consulta erecuperar dados de um sistema. Nos dois casos, o esquema da estrutura de objetodefine o conteúdo XML para a solicitação de consulta e a resposta de consulta.

Para uma estrutura de objeto que possui mais de dois níveis de objetos denegócios, a estrutura da consulta suporta a utilização de atributos do objeto denegócios nos dois níveis superiores do XML de solicitação. O XML de resposta deconsulta contém todos os objetos na estrutura de objeto.

Todas as estruturas de objeto fornecidas pelo sistema com um valor Consumidopor igual a INTEGRATION suportam a operação de consulta por padrão. Épossível configurar uma estrutura de objeto para suportar somente a operação deconsulta e nenhuma outra operação que suporte atualização de objetos. É possívelusar o aplicativo Estruturas de Objetos para criar estruturas de objetos adicionaisque fornecem suporta para a operação de consulta.

Criando uma Consulta de Serviço CorporativoUma fonte externa pode usar um serviço corporativo para executar uma consulta epara recuperar dados de um sistema.

294 Integrando Dados a Aplicativos Externos

Page 301: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Sobre Esta Tarefa

Uma consulta de serviço corporativo de amostra, MXINVBALQInterface, é fornecida.É possível usar essa amostra como uma referência ao criar serviços corporativos deconsulta.

Procedimento1. Se não existir, crie uma estrutura de objeto contendo os objetos que a consulta

precisa acessar.2. Defina um serviço corporativo que implemente a estrutura de objeto que você

pretende usar para a consulta.3. Especifique Query como a operação no serviço corporativo.4. Associe o serviço corporativo a um sistema externo e ative o sistema externo e

seu serviço corporativo.

Consultas de Serviço da WebOs serviços de consulta que são criados no aplicativo Serviços Corporativos e nosaplicativos Estruturas de Objeto podem ser implementados como serviços da Web.Para suportar consulta, você deve configurar serviços da Web corporativos paraignorar as filas JMS.

Uma resposta bem-sucedida a uma consulta que é executada em um serviço daWeb retorna o conjunto de resultados da consulta. Se o conjunto de resultadosestiver vazio (ele não contém nenhum registro), o XML retornado no corpo SOAPcontém a tag MXPERSONSet a seguir vazia:<max:QueryMXPERSONResponsexmlns:max="http://www.ibm.com/maximo"

creationDateTime="2011-04-28T21:49:45"baseLanguage="EN" transLanguage="EN" messageID="12345"maximoVersion="7.5" rsStart="1" rsCount="10" rsTotal="10"></max:MXPERSONSet>

</max:QueryMXPERSONResponse>

Se ocorrer um erro, um código de resposta HTTP de 500 será retornado,juntamente com uma falha de SOAP que detalha a mensagem de erro.

Use a URL a seguir para o serviço da Web de consulta:http://hostname:port/meaweb/services/web servicename

v host:port/meaweb é o valor da propriedade da URL do aplicativo da Web deintegração.

v Web service name é o nome do serviço da Web.

Os serviços corporativo de consulta e de estrutura de objeto são implementadoscomo serviços da Web usando o aplicativo Biblioteca de Serviços da Web.

Estrutura XML de ConsultaO nome do elemento-raiz de uma consulta é a concatenação da operação (Query) edo nome da estrutura de objeto associada. Por exemplo, QueryMXPERSON, emque MXPERSON é a estrutura de objeto.

Elemento-raiz

O nome do elemento-raiz de uma consulta é a concatenação da operação e o nomeda estrutura de objeto, por exemplo, QueryMXPERSON, em que MXPERSON é aestrutura de objeto. A tabela a seguir lista os atributos que podem se aplicar

Integrando Dados a Aplicativos Externos 295

Page 302: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

especificamente ao elemento-raiz de uma consulta, uma resposta a uma consultaou ambos. Todos os atributos nesta tabela são opcionais.

Atributo Descrição Tipo Aplicável a

uniqueResult Especifica se a consulta espera um registro oudiversos registros em uma resposta.

Valor 0 (padrão): A consulta pode retornar diversosregistros.

Valor 1: A consulta pode retornar um único registro;caso contrário, um erro ocorre.

Booleano Consulta

maxItems Se a consulta puder retornar diversos registros, esseatributo limita o número de registros a ser retornadode uma vez.

Se esse atributo não for especificado, a respostacontém todo o conjunto de resultados.

PositiveInteger Consulta

rsStart Na solicitação de consulta:

Use com maxItems para especificar o primeiro registroa ser retornado em uma resposta.

Se maxItems for igual a 10 e rsStart não forespecificado, a resposta retorna resultados 0 a 9. Parareceber os resultados 10 a 19, reenvie a consulta comrsStart igual a 10.

Se rsStart não for especificado, a resposta começa como primeiro registro no conjunto de resultados. Se onúmero de registros no conjunto de resultados deconsulta for menor que o valor de rsStart, a respostanão retorna nenhum registro.

Número Inteiro Consulta

rsStart Na resposta de consulta:

Esse valor corresponde o valor de rsStart nasolicitação correspondente.

Se a solicitação correspondente contiver um valor demaxItems, o valor de rsStart em solicitações pararegistros adicionais é rsStart + rsCount + 1.

Se esse atributo não for especificado, a respostacomeça com o primeiro registro no conjunto deresultados e inclui o número de registros especificadopelo atributo rsCount.

Número Inteiro Resposta

rsCount O número de registros retornados na mensagem.

rsCount não reflete nenhuma linha que possa serignorada como parte da camada de processamento daresposta.

Número Inteiro Resposta

rsTotal O número total de registros no conjunto de resultados.

Se a consulta não especificar um valor de maxItems, ovalor de rsTotal é o mesmo que o valor de rsCount.

Número Inteiro Respostas (saída)

Por exemplo, a resposta para essa solicitação de consulta retorna registros 11 a 20do conjunto de resultados da consulta em virtude de configurar o valor de rstartpara 11 e o valor de maxItems para 10.<max:QueryMXINVBAL xmlns:max="http://www.ibm.com/maximo"

creationDateTime="2011-049-28T21:49:45"baseLanguage="EN" transLanguage="EN" messageID="12345"maximoVersion="7.5" uniqueResult="0" maxItems="10"

rsStart="11"><max:MXINVBALQuery orderby="string" operandMode="OR">

O conjunto de resultados da consulta a seguir contém um total de 35 linhas,conforme determinado por rsTotal, mas somente as linhas 11 a 20 são retornadas.<max:QueryMXINVBALResponse xmlns:max="http://www.ibm.com/maximo"

creationDateTime="2011-04-28T21:49:45"baseLanguage="EN" transLanguage="EN" messageID="12345"maximoVersion="7.5" rsStart="11" rsCount="10" rsTotal="35"><max:MXINVBALSet>

.

.

.</max:MXINVBALSet>

296 Integrando Dados a Aplicativos Externos

Page 303: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Operador Query

O tipo de dado QueryOperatorType suporta o uso de diferentes operadores. OXML da solicitação de consulta pode usar os operadores diferentes para filtrar osdados retornados à origem externa de consulta.

Elemento QueryMXPERSON

O elemento QueryMXPERSON tem os seguintes tipos:v O elemento QueryMXPERSON é do tipo QueryMXPERSONType.v QueryMXPERSONType tem o elemento MXPERSONQuery, que é o tipo

MXPERSONQueryType.v MXPERSONQueryType tem elementos para todos os atributos configurados do

objeto PERSON e todos os seus objetos-filhos (EMAIL, PHONE e SMS).

O elemento de operação QueryMXPERSON usa os seguintes atributos:v uniqueResults – É um valor booleano que quando configurado para 1

(Verdadeiro), direciona a consulta para retornar um único registro exclusivoquando o valor for configurado para 1 (Verdadeiro). Se mais de um registro forlocalizado, um erro é retornado. Quando o atributo não for fornecido, o valorpadrão será 0 (falso).

v maxItems – Quando esse valor for configurado para 10 na consulta, ele limita onúmero de registros que são retornados na consulta para 10, mesmo quando oconjunto de resultados da consulta puder ser maior que 10. Quando o atributonão for definido, todas as linhas do conjunto de resultados da consulta serãoretornados.

v rsStart – Quando esse valor for configurado para 11 na consulta, todos osregistros do conjunto de resultados são retornados começando com o registro 11.O resultado da consulta ignora os registros 1 - 10. Quando o atributo não fordefinido, os registros serão retornados começando pelo registro 1 do conjunto deresultados.

O elemento de conteúdo MXPERSONQuery usa os seguintes atributos adicionais:v orderby – Usar esse valor é equivalente a usar Order By em uma instrução SQL.

O atributo pode conter uma lista de nomes de campos separados por vírgulaque também inclui as opções ASC e DESC. Quando o atributo não é definido, aconsulta retorna registros na ordem recuperada pelo banco de dados.

v operandMode – Esse valor tem dois valores válidos, AND e OR. O sistema usaesse valor quando um ou mais campos forem usados para avaliação em umaexecução de consulta. Quando o valor AND for usado, todas as avaliações decampo devem ser verdadeiras. Quando o valor OR for usado, somente uma dasavaliações de campo deve ser verdadeira. Quando o atributo não for definido, ovalor padrão será AND.

Elemento QueryMXPERSONResponse

O elemento QueryMXPERSONResponse tem os seguintes tipos:v O elemento QueryMXPERSONResponse é do tipo

QueryMXPERSONResponseType.v O QueryMXPERSONResponseType tem o elemento MXPERSONSet, que é o tipo

MXPERSONSetType.

Integrando Dados a Aplicativos Externos 297

Page 304: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

v MXPERSONSetType tem elementos para todos os atributos configurados doobjeto PERSON e elementos para objetos-filhos definidos na estrutura de objeto(PHONE, EMAIL, XYZ e SMS).

O elemento QueryMXPERSONResponse tem os seguintes atributos:v rsStart – Esse valor contém o valor configurado a solicitação de consulta. Se o

valor não for definido na solicitação, o valor de resposta padrão será 1.v rsCount – Esse valor contém o número de registros que são retornados na

resposta da consulta.v total – Esse valor contém o número de registros no conjunto de resultados da

consulta final. O valor total pode ser mais do que o número de registrosretornados quando o atributo maxItems for usado na solicitação de consulta.

Critérios de Seleção de Consulta

O elemento de estrutura de objeto de uma solicitação de consulta contém oscritérios de seleção para a consulta. Uma consulta pode selecionar registros combase em um único valor, uma faixa de valores ou uma cláusula 'where' fornecida.A estrutura de integração suporta a utilização de operadores de consulta, como =ou >.

Os critérios de seleção se aplicam somente a atributos de objetos nos dois níveissuperiores da estrutura de objeto; ou seja, o objeto principal e seus objetos filhosimediatos. No entanto, a resposta inclui dados de todos os objetos na estrutura deobjeto.

Seleção de CampoUma consulta baseada em campo compara o valor em um campo do banco dedados com o valor no campo XML da solicitação de consulta.

A consulta de amostra a seguir procura funcionários:<QueryMXPERSON><MXPERSONQuery>

<PERSON></PERSON></MXPERSONQuery></QueryMXPERSON>

A consulta de amostra a seguir procura funcionários para os quais PERSONID éigual a ATI e STATUS é igual a ACTIVE.<QueryMXPERSON><MXPERSONQuery>

<PERSON><PERSONID operator ="=">ATI</PERSONID><STATUS operator ="=">ACTIVE</STATUS></PERSON></MXPERSONQuery></QueryMXPERSON>

O atributo operandMode do elemento MXPERSONQuery define a instrução que éexecutada com uma condição AND ou OR entre as avaliações de campo. Acondição padrão utilizada pelo sistema é a condição AND. Alem disso, o atributooperandMode pode ser fornecido no nível do campo. Nesse caso, um elemento decampo pode ter diversas ocorrências e pode ser avaliado para diferentes condições,como um campo de quantidade que está sendo avaliado como menor que 2 oumaior que 10.

A consulta de amostra a seguir procura funcionários para os quais PERSONID ésemelhante a %ATI%. O operando representa o comportamento padrão e nãorequer nenhum valor de operador.

298 Integrando Dados a Aplicativos Externos

Page 305: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

<QueryMXPERSON><MXPERSONQuery>

<PERSON><PERSONID>ATI</PERSONID></PERSON></MXPERSONQuery></QueryMXPERSON>

A consulta de amostra a seguir procura saldos de inventário nos quais o númerodo compartimento não é nulo.<QueryMXINVBAL>

<MXINVBALQuery><INVBALANCES><BINNUM operator =”!="></BINNUM></INVBALANCES ></MXINVBALQuery></QueryMXINVBAL>

A consulta de amostra a seguir procura os saldos de inventário nos quais onúmero do compartimento é nulo.<MXINVBAL><INVBALANCES><BINNUM>NULL</BINNUM></INVBALANCES ></MXINVBAL>

A consulta de amostra a seguir usa o equivalente a uma cláusula SQL IN paraprocurar os funcionários cujo status é ACTIVE ou INACTIVE.<QueryMXPERSON><MXPERSONQuery>

<PERSON><STATUS>ACTIVE,INACTIVE</STATUS></PERSON></MXPERSONQuery></QueryMXPERSON>

A consulta de amostra a seguir procura funcionários para os quais PERSONIDcomeça com a letra A.<QueryMXPERSON><MXPERSONQuery>

<PERSON><PERSONID operator ="SW">A</PERSONID></PERSON></MXPERSONQuery></QueryMXPERSON>

A consulta de amostra a seguir procura funcionários para os quais PERSONIDtermina com a letra Z.<QueryMXPERSON><MXPERSONQuery>

<PERSON><PERSONID operator ="EW">Z</PERSONID></PERSON></MXPERSONQuery></QueryMXPERSON>

Avaliação de CampoO atributo operator compara o valor de um campo do banco de dados a um oumais valores e tem o formato operator = value.

O atributo value pode ter os valores a seguir.

Valor Descrição

= igual

!= diferente

&lt; menor do que

&lt;= menor ou igual a

&gt; maior do que

&gt;= maior ou igual a

EW Termina com

SW Começa com

Use os atributos menor que e maior que somente com valores numéricos e camposde data.

Integrando Dados a Aplicativos Externos 299

Page 306: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Por exemplo, para localizar todos os funcionários com status ACTIVE, formate aconsulta da seguinte forma:<QueryMXPERSON><MXPERSONQuery><PERSON><STATUS operator ="=">ACTIVE</STATUS></PERSON></MXPERSONQuery></QueryMXPERSON>

Seleção de FaixaUma consulta pode buscar registros com um valor que esteja dentro de uma faixade valores. O formato depende do critério de seleção estar aberto-encerrado ouconter uma faixa superior e inferior.

A consulta de amostra a seguir procura ordens de compra nas quaisDEPARTMENT é maior que 1000.<QueryMXPERSON><MXPERSONQuery>

<PERSON>< DEPARTMENT operator="&gt;=">1000</DEPARTMENT></PERSON></MXPERSONQuery></QueryMXPERSON>

A consulta de amostra a seguir procura registros de pessoas nos quais PERSONIDé maior que 1000 e menor que 20000. A consulta utiliza duas instâncias de umúnico elemento de campo, a primeira com os critérios de seleção From e a segundacom os critérios de seleção To:<QueryMXPERSON><MXPERSONQuery>

<PERSON>< PERSONID operator="&gt;=">1000</PERSONID >< PERSONID operator="&lt;=">20000</PERSONID ></PERSON></MXPERSONQuery></QueryMXPERSON>

Seleção da Cláusula WhereUma consulta pode procurar registros com base em uma cláusula SQL 'Where' quepode ser fornecida como parte do XML da consulta de integração. A cláusulaWhere oferece suporte para consultas mais complexas e a consulta de dadosrelacionados à classificação.

O uso da cláusula 'Where' é mutuamente exclusivo com relação ao uso deelementos individuais. Se uma solicitação de consulta fornecer dados para oelemento Where e outros elementos no XML, somente o elemento WHERE seráusado na execução da consulta.

O elemento WHERE está localizado no mesmo nível que o objeto de nível superiorem uma estrutura de objeto (da ordem de compra), como no exemplo a seguir:<QueryMXPO xmlns="http://www.ibm.com/maximo">

<MXPOQuery><PO> </PO><WHERE> </WHERE>

</MXPOQUERY></QueryMXPO>

O elemento WHERE está disponível no esquema somente quando a operação éQuery e pode existir somente uma vez. Para juntar diversas tabelas na consulta,use 'exists' dentro da cláusula Where, da mesma maneira que a cláusula WHERE apartir da guia Lista de um aplicativo. A consulta de amostra a seguir, usando aestrutura de objeto MXPO, recupera ordens de compra que possuírem uma Linhade OC para o número de item 1002:<QueryMXPO xmlns="http://www.ibm.com/maximo"><MXPOQuery><WHERE>(siteid = ’BEDFORD’) and (exists (select 1 from maximo.poline where

300 Integrando Dados a Aplicativos Externos

Page 307: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

(i temnum=’1002’) and (ponum=po.ponum and revisionnum=po.revisionnum andsiteid=po.siteid)))</WHERE>

</MXPOQUERY></QueryMXPO>

O resultado dessa consulta recupera duas ordens de compra (nem todos oselementos estão incluídos no exemplo):<?xml version="1.0" encoding="UTF-8"?><QueryMXPOResponse xmlns="http://www.ibm.com/maximo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" creationDateTime="2012-03-21T11:20:13-04:00"transLanguage="EN" baseLanguage="EN" messageID="1332343214013260273" maximoVersion="7 5 20110413-2230 V7500-721" rsStart="0" rsTotal="2" rsCount="2">

<MXPOSet><PO>

<DESCRIPTION>Window and installation for office building</DESCRIPTION><ORDERDATE>2000-04-20T14:00:00-04:00</ORDERDATE><ORGID>EAGLENA</ORGID><PONUM>1013</PONUM><POTYPE>STD</POTYPE><VENDOR>JK</VENDOR>

.

.

.<POLINE>

<DESCRIPTION>5 ft. X 6 ft. window pane</DESCRIPTION><ITEMNUM>1002</ITEMNUM><ITEMSETID>SET1</ITEMSETID><ORDERQTY>1.0</ORDERQTY><POLINENUM>1</POLINENUM>

.

.

.<POCOST>

<COSTLINENUM>1</COSTLINENUM>...

</POCOST></POLINE><POLINE>

<DESCRIPTION>Installation of window pane</DESCRIPTION><ITEMNUM /><ITEMSETID>SET1</ITEMSETID><ORDERQTY>6.0</ORDERQTY><POLINENUM>2</POLINENUM>

.

.

.<POCOST>

<COSTLINENUM>1</COSTLINENUM>...

</POCOST></POLINE>

</PO><PO>

<DESCRIPTION>Window and installation for Office Building</DESCRIPTION><ORDERDATE>2003-02-27T10:07:24-05:00</ORDERDATE><ORGID>EAGLENA</ORGID><PONUM>1029</PONUM><POTYPE>STD</POTYPE><VENDOR>JK</VENDOR>

.

.

.<POLINE>

<DESCRIPTION>5 ft. X 6 ft. window pane</DESCRIPTION><ITEMNUM>1002</ITEMNUM><ITEMSETID>SET1</ITEMSETID><ORDERQTY>1.0</ORDERQTY><POLINENUM>1</POLINENUM>

.

.

.<POCOST>

<COSTLINENUM>1</COSTLINENUM>...

</POCOST></POLINE><POLINE>

<DESCRIPTION>Installation of window pane</DESCRIPTION><ITEMNUM /><ITEMSETID>SET1</ITEMSETID><ORDERQTY>6.0</ORDERQTY><POLINENUM>2</POLINENUM>

.

.

.<POCOST>

<COSTLINENUM>1</COSTLINENUM>...

</POCOST></POLINE>

</PO></MXPOSet>

</QueryMXPOResponse>

Integrando Dados a Aplicativos Externos 301

Page 308: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tabelas de InterfaceAs tabelas de interfaces são uma opção para a integração com sistemas queutilizam tabelas de banco de dados para troca de dados. Essa opção de integraçãose aplica somente a serviços corporativos e canais de publicação e sempre éprocessado de forma assíncrona, usando filas JMS.

Dentro de um sistema externo, pode haver um ou mais canais de publicação eserviços corporativos que estão sendo usados para integração com tabelas deinterface. Qualquer canal ou serviço que esteja usando uma tabela de interfacedeverá estar associado a uma estrutura de objeto configurada para suportararquivos simples e todos os conflitos de alias deverão ser resolvidos.

Local de Tabelas de Interface

A definição do terminal para um sistema externo ou um canal de publicaçãoaponta para o banco de dados em que suas tabelas de interfaces estãoarmazenadas. O banco de dados pode ser o banco de dados de aplicativos local ouum banco de dados remoto. O conteúdo predefinido inclui o terminal de tabela deinterface MXIFACETABLE que aponta para o banco de dados de aplicativos. Épossível incluir terminais adicionais para bancos de dados remotos.

Nomes de Tabelas de Interface

A estrutura de integração registra nomes de tabelas de interfaces em um serviçocorporativo ou um canal de publicação. Os nomes padrão para as tabelas deinterface não são fornecidos. Aplique as diretrizes a seguir ao denominar as tabelasde interface:v Canais de publicação e serviços corporativos que utilizam a mesma estrutura de

objeto podem utilizar o mesmo nome de tabela de interfaces ou nomes detabelas de interfaces diferentes.

v Canais de publicação e serviços corporativos que usam uma estrutura de objetodiferente devem usar diferentes nomes de tabelas de interface.

Tabelas de Filas de Interface

As tabelas de fila de interface identificam a sequência na qual um sistema derecebimento processa os registros nas respectivas tabelas de interfaces. Existemduas tabelas de filas, uma para transações de entrada e outra para transações desaída. Algumas transações dependem do processamento bem-sucedido de umatransação anterior, por exemplo, você deve criar um usuário antes de ser possívelincluir o usuário em um grupo de segurança. O sistema de recebimento deveprocessar os registros na mesma sequência em que o sistema de envio criou osregistros.

Tabela 43. Tabela da fila de interfaceTabela da fila de interface Direção

MXOUT_INTER_TRANS Saída

MXIN_INTER_TRANS De entrada

Aplicativos externos que puxam dados para mensagens de saída podem usar atabela de fila de interface de saída (mxout_inter_trans). No entanto, os aplicativosexternos também podem optar por usar outros métodos de consumo de mensagensde saída que atendem seus requisitos de integração.

302 Integrando Dados a Aplicativos Externos

Page 309: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Todas as transações de entrada e saída devem ter um registro inserido na tabela defilas de entrada ou saída correspondente. Esse registro contém um valor TRANSID,um identificador exclusivo que identifica a tabela de interface na qual os dados detransações são gravados. A tabela de interface correspondente usa o valorTRANSID para identificar o registro ou registros associados à transação. Você podeidentificar o conteúdo de uma transação consultando todos os registros com umvalor TRANSID especificado na tabela de interfaces correspondente.

A sequência de TRANSID identifica a sequência na qual os registros sãoprocessados pela estrutura de integração. Por exemplo, quando usuários e gruposde segurança são inseridos no sistema, os valores TRANSID para o registro dousuário devem ser menores que os valores TRANSID para os registros de gruposde segurança que fazem referência a esse usuário.

A diferença entre as tabelas de filas MXIN_INTER_TRANS eMXOUT_INTER_TRANS é a direção dos registros de tabelas de interface querastreiam. O sistema externo deve gravar na tabela de filas MXIN_INTER_TRANSe a estrutura de integração deve ler a partir dela. A estrutura de integração gravana tabela de filas MXOUT_INTER_TRANS e o sistema externo lê a partir dela.

O sistema externo utiliza a tabela MXOUT_INTER_TRANS ou recupera registrosde saída das tabelas de interfaces. As tabelas de filas de interface são geradas naprimeira vez que você cria tabelas de interface para um terminal. Cada terminaltem suas próprias tabelas de filas de interface e um contados para manter o valorTRANSID de saída.

Criação de Tabelas de InterfaceQuando um serviço corporativo e um canal de publicação usarem a mesma tabelade interface, a janela Criar tabelas de interfaces exibirá uma lista de tabelas deinterfaces com base na exclusividade do nome da tabela de interface e seu terminalcorrespondente.

Você pode criar tabelas de interfaces para serviços corporativos e canais depublicação quando as estruturas de objetos associadas são marcadas como simplessuportadas. A caixa de seleção Suportar Estrutura Simples deve estar selecionadana estrutura de objeto. Todos os conflitos de alias também deverão ser resolvidospara a estrutura de objeto antes que seja possível criar uma tabela de interface.

Você pode criar tabelas de interfaces para sincronização de dados em serviçoscorporativos e em canais de publicação. As tabelas de interfaces não suportamoperações de Consulta e Chamada. Você pode criar tabelas de interfaces para umterminal específico. Você deve identificar onde as tabelas são criadas.

O local do banco de dados que é referido pelo terminal pode ser um banco dedados local ou um banco de dados remoto. Ao criar tabelas de interfaces em umbanco de dados local, as colunas são registradas no dicionário de dados dosistema. As tabelas de interface local que utilizam uma tabela de banco de dados euma coluna de banco de dados mostram todas as atualizações (exceto inserções eexclusões) para um atributo de coluna base (como o tipo de dados) quando vocêexecuta a operação de configuração do banco de dados. Quando colunas foremincluídas ou excluídas da tabela base, você deve regenerar o serviço corporativocorrespondente e as tabelas de interfaces do canal de publicação para aplicar asalterações nas colunas. Nenhuma alteração é aplicada nos bancos de dadosremotos. Você deve regenerar tabelas de interfaces remotas para aplicar asalterações nas colunas.

Integrando Dados a Aplicativos Externos 303

Page 310: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Nova Geração de Tabelas de InterfaceQuando colunas forem incluídas ou excluídas das tabelas de banco de dados dosistema, você deverá gerar novamente todas as tabelas de interface locais e remotasassociadas a essas estruturas de objetos.

Você gera novamente tabelas de interfaces utilizando a ação Criar Tabelas deInterfaces no aplicativo Sistemas Externos. Se a caixa de seleção RenomearExistente for selecionada, o aplicativo faz backup dos dados existentes na tabela deinterface correspondente na tabela INTERFACETABLENAME_BAK.

Se necessário, será possível restaurar os dados na nova tabela. Dependendo daconfiguração do ambiente de ocupação variada, talvez seja necessário solicitar aassistência do provedor do sistema para acessar os dados que você desejarestaurar. Se você não fizer backup da tabela, a tabela será eliminada e os dadosserão perdidos durante a nova geração da tabela. Você não possível gerarnovamente uma tabela de interfaces quando a tabela de filasMXIN_INTER_TRANS contiver um registro que aponta para essa tabela deinterfaces. Quando existir uma linha nessa tabela de filas, a transação de entradacorrespondente está pronta para processamento ou a transação de entrada está emerro.

O processo de criação da tabela de interfaces não verifica registros na tabela defilas MXOUT_INTER_TRANS.

Exclusão de Tabelas de Interface e RegistrosQuando registros de transações de entrada relacionados forem processados comsucesso em uma tabela de interface, o registro correspondente é excluído da tabelade fila MXIN_INTER_TRANS. A exclusão indica que a transação foi entregue comsucesso à fila JMS de entrada.

Registros são excluídos da tabela de fila MXIN_INTER_TRANS e não das tabelasde interface individuais. O administrador do sistema determina quando e comoexcluir registros das tabelas de interface.

Para transações de saída, o sistema externo deve gerenciar a exclusão earquivamento de dados na tabela de filas e nas tabelas de interfaces. Não épossível excluir tabelas de interface na interface com o usuário nem excluir aestrutura de objeto correspondente. Um administrador deve gerenciar oarquivamento de dados nas tabelas de interface e pode eliminar a tabela, senecessário.

Formato de Tabelas de InterfaceUma tabela de interface tem o mesmo formato que sua estrutura de objetocorrespondente, incluindo colunas persistentes e não persistentes e excluindoquaisquer colunas excluídas da estrutura de objeto.

A tabela de interface inclui colunas adicionais que identificam a sequência na qualo sistema de envio grava e o sistema de recebimento processa os registros nasdiversas tabelas de interface.

Colunas-chave

Se a tabela de interfaces representa uma estrutura de objeto hierárquica comrelacionamentos de objetos pais e filhos, a tabela não inclui parte alguma das

304 Integrando Dados a Aplicativos Externos

Page 311: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

colunas-chave dos objetos filhos que já estão incluídas nas colunas-chave dosobjetos pais. Por exemplo, PERSONID é uma coluna principal nos registrosPERSON, PHONE, EMAIL e SMS. A coluna PERSONID aparece apenas no nívelpai (PERSON) na tabela de interfaces MXPERSON_IFACE.

Colunas e Aliases Duplicados

A representação XML de uma estrutura de objeto hierárquica contém nomes decolunas duplicados, mas a representação de tabela de interfaces e de arquivosimples não permite. Se uma estrutura de objeto tiver nomes de colunas nãoprincipais duplicados em um objeto-pai e um objeto-filho, ocorrerá um erro nonome de coluna duplicado quando a tabela de interfaces ou um registro dearquivos simples for gerado.

Para resolver esse problema, altere o nome do alias de um dos nomes de colunasduplicados. Cada coluna do banco de dados do sistema pode ter um nomealternativo de alias. Quando existe um alias, o sistema usa o alias quando tabelasde interface e arquivos simples são gerados. Altere o alias para eliminar o erro denome de coluna duplicado.

A maioria das colunas não tem um alias, mas algumas colunas têm aliases quesuportam os serviços corporativos predefinidos ou os canais de publicação.

Uma coluna dentro de uma estrutura de objeto pode ter um único alias. Se aestrutura de objeto for usada por diversos canais de publicação e serviçoscorporativos, uma mudança em um alias afetará cada tabela de interface associadaà estrutura de objeto.

As colunas nas estruturas de objeto predefinidas têm aliases designados pelosistema. Verifique se há duplicatas ao criar uma estrutura de objeto hierárquica ouao incluir um objeto em uma estrutura de objeto predefinida. A janelaIncluir/Modificar Alias mostra os campos e aliases para os objetos em umaestrutura de objeto selecionada e identifica quaisquer nomes de alias duplicadoscom um visto na coluna duplicada. Se um alias duplicado existir, sobrescreve seuvalor na coluna ALIASNAME.

Colunas Restritas

O campo HASLD é uma coluna do sistema interno que é excluída de todas asestruturas de objetos. Não inclua essa coluna em nenhuma estrutura de objeto queesteja associada a uma tabela de interfaces. O campo LANGCODE também éexcluído das estruturas de objetos predefinidas.

Colunas de Processamento de Integração

A tabela a seguir mostra as colunas que são utilizadas na sequência de tabelas deinterfaces, na recuperação e no processamento. Algumas colunas aparecem nastabelas de filas de interfaces ou nas tabelas de interfaces; algumas aparecem nosdois lugares.

Integrando Dados a Aplicativos Externos 305

Page 312: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tabela 44. Colunas de Processamento de Integração

Nome da coluna

Tabela dafila de

interfaceTabela deInterfaces Descrição

IFACENAME Sim Não A coluna IFACENAME contém o nome do serviço corporativo oudo canal de publicação que é usado em uma transação. A coluna épreenchida em transações de saída. Para transações de entrada, osistema externo deve preencher a coluna com o nome do serviçocorporativo ou o canal de publicação que corresponde à linhainserida em uma tabela de interface.

TRANSID Sim Sim A coluna TRANSID em uma tabela de filas de interfaces é umnúmero sequencial que identifica exclusivamente uma transação deintegração. O TRANSID e o nome da tabela de interfaces identificauma transação exclusiva. A tabela de fila de interface pode conterum registro com um valor TRANSID. A tabela de interfacescorrespondente pode ter um ou mais registros com o TRANSID,dependendo do número de registros gravados nessa tabela deinterfaces como parte desse serviço corporativo ou do canal depublicação.

Se uma transação gravar em diversas tabelas de interfaces, a tabelade filas de interfaces conterá um registro separado, com um valorTRANSID exclusivo, para cada tabela de interfaces.

Cada tabela de filas de interfaces mantém seu próprio contadorTRANSID. O valor TRANSID de saída é inicializado quando osregistros da tabela de filas de interfaces são gerados. Você devecriar e manter os contadores TRANSID que preenchem as tabelasde filas de entrada e os registros de tabelas de interfaces.

Se os sistemas externos não gerenciam corretamente os contadoresTRANSID de entrada, o processamento sequencial não serágarantido. Assegure-se de que os valores TRANSID que o sistemaexterno gera não dupliquem o valor TRANSID que é gerado.Ocorrerão erros se existirem valores TRANSID duplicados equando você processa a mesma estrutura de objetos em umadireção de entrada e de saída utilizando uma única tabela deinterfaces.

Cada terminal tem seu próprio conjunto de tabelas de filas deinterfaces e seu próprio contador TRANSID de saída.

TRANSSEQ Não Sim Quando diversos registros em uma tabela de interfacescompartilham o mesmo valor TRANSID, a coluna TRANSSEQfornece um número de sequência secundário que indica asequência na qual esses registros devem ser processados.

EXTSYSNAME Sim Não A coluna EXTSYSNAME nas tabelas de fila de interface podemconter dados de entrada ou de saída. Para transações de entrada, acoluna contém o nome de um sistema externo válido e ativadodefinido na estrutura de integração. Para transações de saída, acoluna contém o nome do sistema externo que é o destino datransação.

306 Integrando Dados a Aplicativos Externos

Page 313: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tabela 44. Colunas de Processamento de Integração (continuação)

Nome da coluna

Tabela dafila de

interfaceTabela deInterfaces Descrição

AÇÃO Sim Não A coluna ACTION contém a ação para executar no sistema externo(saída) ou na estrutura de integração (entrada). As ações a seguirpodem ser usadas:

v Incluir: Insere os dados fornecidos na mensagem.

v Excluir: Exclui os dados pai e quaisquer dados filhosrelacionados do banco de dados.

v Alterar: Atualiza o conteúdo de dados pai e filho da mensagem,mas não exclui dados filhos existentes que não sãoexplicitamente especificados na mensagem.

v Substituir: Substitui os registros existentes com o conteúdo damensagem e exclui dados filhos existentes que não são referidosna mensagem.

v Incluir/Alterar: Se o registro principal não existir, processa comouma ação de inclusão e, caso contrário, processa uma ação demudança.

v Nulo: Se o registro principal não existir, processa como umaação de inclusão e, caso contrário, processa como uma ação desubstituição.

IMPORTMESSAGE Sim(utilizada

apenasentrada)

Não A coluna IMPORTMESSAGE contém todas as mensagens de erroque foram produzidas quando a linha da tabela de interfaces foimovida para a fila de entrada.

TRANSLANGUAGE Sim Não A coluna TRANSLANGUAGE identifica o idioma da transação.Para uma transação de saída, este valor indica o idioma do usuárioque iniciou a transação. Para uma transação de entrada, este valorindica o idioma da transação. Espera-se que quaisquer atributosque suportam um ambiente com diversos idiomas estejam noidioma que o valor TRANSLANGUAGE define.

MESSAGEID Sim(utilizada

apenassaída)

Não A coluna MESSAGEID é um identificador exclusivo que o sistemadesigna a cada transação de saída.

IFACETBNAME Sim(utilizada

apenassaída)

Não A coluna IFACETBNAME é o nome da tabela de interfaces quecorresponde à coluna IFACENAME. Esta coluna se aplica apenas atransações de saída.

Colunas de Descrição Detalhada em um Oracle Database

As colunas de descrição detalhada são armazenadas em uma coluna CLOB(character large object) em um Oracle Database. As tabelas de interface contémduas versões de cada coluna CLOB, uma com tipo de dados CLOB e uma com tipode dados ALN com um comprimento de 4000 caracteres. No exemplo a seguir, onome da coluna CLOB é o alias da coluna. O nome da coluna alfanumérica é oalias da coluna com o sufixo 2.

Tabela 45. Colunas de Descrição Detalhada em um Oracle DatabaseTipo de dados Nome da coluna de descrição

CLOB PERSON_DESCRIPTION_LD

ALN PERSON_DESCRIPTION_LD2

Integrando Dados a Aplicativos Externos 307

Page 314: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

O sistema preenche as duas colunas em transações de saída. Para transações deentrada, a estrutura de integração utilizará o valor da coluna ALN se ele não fornulo; caso contrário, utilizará o valor da coluna CLOB.

Pesquisa da Tabela de InterfaceUma tarefa Cron predefinida pesquisa a tabela de fila de interface e usa os valoresIFACENAME, EXTSYSNAME e TRANSID para colocar os registroscorrespondentes na fila JMS de entrada apropriada para processamento. Oprocesso de pesquisa da interface verifica se os nomes do sistema externo e doserviço corporativo são válidos e se estão ativados.

Você deve configurar a tarefa Cron para iniciar pesquisa da tabela de interface.Também é possível executar tarefas adicionais para aprimorar o desempenhodurante a pesquisa de interface.

Tarefa Cron de Pesquisa de Tabela de InterfaceA tarefa Cron IFACETABLECONSUMER é uma tarefa Cron predefinida quepesquisa a tabela de fila de interface de entrada para novos registros a processar.

O processo de pesquisa de tabela de interface verifica se os nomes do sistemaexterno e do serviço corporativo são válidos e estão ativados atualmente. Se nãoestiverem, o registro será marcado com erro e permanecerá na tabela de interfaces.

Se você desativar a pesquisa de tabelas de interfaces, novos registros permanecemnas tabelas de interfaces. As mensagens que foram enviadas para a fila JMS deentrada são processadas.

Você deve configurar um mecanismo para recuperar transações de saída dastabelas de interfaces. É possível usar um programa de pesquisa, como o sistemafaz para transações de entrada, acionadores ou qualquer outro mecanismo.

A tarefa Cron tem os seguintes parâmetros que é possível configurar. Todos osparâmetros são opcionais.

Tabela 46. Parâmetros da Tarefa Cron de Pesquisa de Tabela de InterfaceParâmetro Descrição

EXITCLASS Classe de saída Java que permite a manipulação de dados antes deserem gravados na fila de entrada.

TERMINAL Terminal que está associado à tabela de interfaces. O valor padrãoé o valor do terminal predefinido que aponta para o banco dedados local.

ENTERPRISESERVICE Serviço corporativo a ser pesquisado. O valor (valor nulo) sãotodos os serviços corporativos. Se você especificar um valor paraesse parâmetro, deverá especificar também um valor para oparâmetro EXTSYSNAME. Os valores limitam o encadeamento depesquisas para um serviço corporativo específico em vez docomportamento padrão, que pesquisa todos os serviçoscorporativos.

TARGETENABLED Assegure-se de que o valor esteja no padrão de 0 (false). Afuncionalidade deste sinalizador é substituída pela funcionalidadedonotrun. Use o parâmetro donotrun na estrutura da tarefa Cronpara controlar em quais servidores a tarefa Cron é executada.

EXTSYSNAME Sistema externo a ser pesquisado.

QUEUETABLE Tabela de filas de serviços corporativos. O valor padrão éMXIN_INTER_TRANS.

Pesquisa da Tabela de Interface AvançadaÉ possível executar configuração avançada do processo de pesquisa de tabela deinterface para melhorar seu desempenho ao ler dados das tabelas de interface.

308 Integrando Dados a Aplicativos Externos

Page 315: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Se você enviar mensagens de entrada por meio da fila JMS contínua e não requererque mensagens sejam mantidas na sequência primeira a entrar, primeira a sair, épossível melhorar o desempenho da pesquisa de tabela de interface.

Diversas Tarefas Cron

O processo de pesquisa de tabela de interface usa uma única tarefa Cron para lertodas as mensagens de todas as tabelas de interface para todos os sistemasexternos que gravam nas tabelas. Para desempenho melhorado, é possívelconfigurar diversas instâncias da tarefa Cron IFACETABLECONSUMER comdiferentes valores de propriedades. A pesquisa multiencadeada é útil em umaconfiguração em cluster, pois diferentes encadeamentos podem ser executados emdiferentes servidores, balanceando assim a carga.

Para designar uma instância da tarefa Cron para ser executada em um servidor deaplicativos específico, no aplicativo Configuração da Tarefa Cron, defina apropriedade TARGETENABLED como 1 e, no servidor de aplicativos, configure-DIFACETBCONSUMER.instance1=1. Ao implementar diversas tarefas Cron, vocêtambém deve implementar seletores mutuamente exclusivos para evitar oprocessamento de uma mensagem mais de uma vez.

Para definir seletores, designe valores para os parâmetros EXTSYSNAME eENTERPRISESERVICE no aplicativo Configuração da Tarefa Cron. É possível, porexemplo, configurar EXTSYSNAME=EXTSYSNAME1 eENTERPRISESERVER=MXPERSONInterface. Use um delimitador de barra verticalpara incluir diversas tabelas, como SetENTERPRISESERVICE=MXPERSONInterface|MXPHONEInterface.

Se diversas instâncias de uma tarefa Cron forem configuradas, os seletores devemser mutuamente exclusivos, de forma que mensagens não sejam processadasdiversas vezes. Seletores devem recuperar todas as transações de serviçocorporativo usadas, de forma que nenhuma mensagem seja deixada nãoprocessada.

Diversas Filas

É possível melhorar o desempenho configurando diversas tabelas de fila deinterface. Por exemplo, é possível gravar cada interface em uma tabela de filaseparada e definir tarefas Cron separadas para processar as tabelas de filaindependentes umas das outras. Também é possível configurar tabelas de filaseparadas para cada sistema externo e, dentro de cada tabela de fila, definaseletores para cada interface. Dependendo da complexidade de sua integração, épossível usar diversas tabelas de fila em vez de diversos seletores. Para configurardiversas tabelas de fila, crie as tabelas de fila no mesmo banco de dados que astabelas de interface e inclua todas as colunas que estão na tabela de filaMXIN_INTER_TRANS. Você deve projetar o sistema externo para gravar nastabelas de fila apropriadas. Assegure que o sistema externo não insira umamensagem de tabela de interface em mais de uma tabela de fila, de forma que amensagem não seja processada diversas vezes.

Processando tabelas de interface em um sistema externoPara permitir que um sistema externo use tabelas de interface, você deve criartabelas de interface, definir procedimentos de backup para restaurar tabelas deinterface e configurar o arquivamento de tabelas de interface.

Integrando Dados a Aplicativos Externos 309

Page 316: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Ativando o processamento de entradaPara configurar o processamento de entrada de dados da tabela de interface apartir de um sistema externo, você deverá criar um contador TRANSID e criarregistros para a tabela de interface e a fila.

Antes de Iniciar

Para utilizar tabelas de interfaces, é necessário criar as tabelas e configurar a tarefacron IFACETABLECONSUMER.

Procedimento1. Crie e inicialize o contador TRANSID de saída.2. Crie registros para cada tabela de interface em que a transação de entrada

grava, preenchendo cada registro com as seguintes informações:a. Os dados da transaçãob. O valor TRANSID incrementadoc. Se existirem diversos registros para a mesma tabela de interfaces, o valor

TRANSSEQ incrementado3. Crie um registro de filas MXIN_INTER_TRANS com as seguintes informações:

a. O mesmo valor TRANSID que está contido no registro de tabelas deinterfaces

b. O nome do serviço corporativo que corresponde à tabela de interfaces, nacoluna IFACENAME

c. Opcional: Ao valor ACTIONd. O identificador do sistema externo, na coluna EXTSYSNAME

4. Execute uma única confirmação, para confirmar todos os registros de umatransação de uma só vez.

Ativando o processamento de saídaPara configurar processamento de saída, você deve instalar e configurar umprocesso, como um programa de pesquisa ou um acionador, para recuperartransações da tabela de fila MXOUT_INTER_TRANS.

Antes de Iniciar

Para usar tabelas de interface, você deve criar as tabelas.

Procedimento1. Configure um processo para recuperar as transações da tabela de interfaces

utilizando a tabela de filas MXOUT_INTER_TRANS. Você pode utilizar umprograma de pesquisa, um acionador ou qualquer outro mecanismo.

2. Para que o programa de pesquisa processe transações sequencialmente,configure-o para ler os registros na tabela de fila MXOUT_INTER_TRANS nasequência TRANSID.

3. Ative cada registro da tabela de filas MXOUT_INTER_TRANS:a. Acesse a tabela de interfaces recém-identificada e recupere o primeiro

registro cujo valor TRANSID corresponda ao valor TRANSID no registro defilas MXOUT_INTER_TRANS atual. Se a tabela de interfaces contiverdiversos registros com o mesmo valor TRANSID, recupere e processe-os nasequência TRANSSEQ.

b. Processe dados de acordo com o valor da coluna ACTION da tabela de filasde interfaces.

310 Integrando Dados a Aplicativos Externos

Page 317: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

4. Confirme todos os registros em uma única transação do banco de dados.5. Exclua o registro atual da tabela de filas MXOUT_INTER_TRANS.

O que Fazer Depois

Implemente o gerenciamento de erros, com base nos requisitos do sistema externo.

Módulos de integraçãoUm módulo de integração fornece um mecanismo para um produto degerenciamento de processo para chamar um produto de gerenciamento operacionalexterno. É possível configurar um módulo de integração para automatizaroperações de gerenciamento lógico, como implementação de software, usando umproduto de gerenciamento operacional.

Um produto de gerenciamento de processo pode chamar um módulo de integraçãode um aplicativo, um processo de fluxo de serviço ou um processo de escalação. Omódulo de integração chama então o produto de gerenciamento operacional. Oproduto de gerenciamento operacional automatiza um processo de gerenciamentode serviço, como uma implementação de software. A implementação retorna osresultados ao produto de gerenciamento de processo.

Se módulos predefinidos forem fornecidos com seu produto de gerenciamentooperacional, use o instalador de solução de processo para carregá-los na estruturade integração. Se estiver familiarizado com a interface de programação para oproduto de gerenciamento operacional, é possível criar módulos de integraçãoquando um não existe.

Componentes do Módulo de IntegraçãoUm módulo de integração é composto por componentes definidos da estrutura deintegração. É possível configurar o módulo de integração para ser implementadocomo uma classe Java ou como um canal de chamada.

Ao instalar um módulo de integração predefinido, são fornecidos artefatos domódulo de integração com os arquivos de classe Java e XSL. Um módulo deintegração também fornece definições de operação de gerenciamento lógico.

Definições do Módulo de IntegraçãoAo instalar um módulo de integração, as opções selecionadas são usadas paraformar as definições de módulos.

A definição do módulo de integração inclui as seguintes informações:v O nome, versão e descrição da integração.v Produto de gerenciamento operacional e versão.v Manipulador que identifica o protocolo que o módulo de integração usa para

chamar um produto de gerenciamento operacional.v Opção de implementação do módulo de integração, uma classe Java ou um

canal de chamada.

Os componentes a seguir estão contidos na definição do módulo de integração:v As operações de gerenciamento lógico que o módulo de integração suporta.v As propriedades do módulo de integração que são exclusivas do módulo de

integração. Use as propriedades para configurar o comportamento do módulo deintegração.

Integrando Dados a Aplicativos Externos 311

Page 318: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Produtos de Gerenciamento OperacionalUm produto de gerenciamento operacional automatiza processos do sistema, comoimplementação de software. Serviços do produto de gerenciamento operacional sãoexecutados em ativos, como servidores. Os ativos são referidos como itens deconfiguração.

Diversas instâncias de produtos de gerenciamento operacional podem existir emum ambiente de produção. Mais de um produto de gerenciamento operacionalpodem gerenciar um único item de configuração. Cada produto de gerenciamentooperacional tem seu próprio identificador exclusivo, um token de origem, paracada item de configuração.

O banco de dados inclui um repositório de produto de gerenciamento operacionale as informações do item de configuração. Essas informações incluemrelacionamentos entre os produtos de gerenciamento operacional e itens deconfiguração e os tokens de origem que direcionam a integração entre produtos degerenciamento de processo e produtos de gerenciamento operacional.

Operações de gerenciamento lógicoAs operações de gerenciamento lógico identificam as ações que módulos deintegração suportam, como Obter Status e Implementar Software. Uma operação degerenciamento lógico consiste em uma origem de dados, destino e atributos decampo de objetos específicos que a origem e o destino usam durante uma chamadade processo.

As operações de gerenciamento lógico agem como interfaces entre o produto degerenciamento de processo e o módulo de integração. É possível projetar edesenvolver módulos de integração e produtos de gerenciamento de processo deforma independente. É possível instalar definições de operação de gerenciamentológico com um produto e também é possível criar operações de gerenciamentológico no aplicativo Operações de Gerenciamento Lógico.

A definição de uma operação de gerenciamento lógico contém as seguintespropriedades:

Propriedade Descrição

Nome O nome da ação, como Obter Status ou Implementar Software.

Namespace Um qualificador exclusivo, como com.ibm.tivoli.deployment.

Padrão de chamadav Síncrono: O produto de gerenciamento de processo emite uma

solicitação e o módulo de integração retorna os resultados daoperação imediatamente.

v Assíncrono unidirecional: O produto de gerenciamento deprocesso emite uma solicitação e nenhuma resposta é retornada.

v Resposta assíncrona adiada: O produto de gerenciamento deprocesso emite uma solicitação e um token identifica a instânciada solicitação. O produto de gerenciamento de processo passa otoken como entrada para outra operação de gerenciamentológico, que obtém então o status da solicitação original.

v Retorno de chamada assíncrono: O produto de gerenciamento deprocesso emite uma solicitação e um token identifica a instânciada solicitação. O produto de gerenciamento operacional usa umtoken para executar um retorno de chamada para identificar epara relatar o status da solicitação original. O retorno dechamada, que é fornecido pelo módulo de integração, insere ouatualiza um objeto de negócios.

Objeto de negócios de origem O objeto de entrada para a operação de gerenciamento lógico.

Objeto de negócios de resposta A saída do objeto para a operação de gerenciamento lógico.

Atributos do Objeto de Negócios Os atributos específicos dos objetos que são necessários paraentrada ou saída e seus tipos de dados.

312 Integrando Dados a Aplicativos Externos

Page 319: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Objetos de entrada e atributos de objetos de entrada identificam os dados que oproduto de gerenciamento de processo passa ao módulo de integração. Se aoperação de gerenciamento lógico for configurada com atributos de entrada e nãocontiver um objeto de entrada, o produto de gerenciamento de processo podepassar qualquer objeto de negócios que tenha os atributos de entrada necessários.Se um objeto de entrada for especificado, o produto de gerenciamento de processodeve passar o objeto de negócios para o módulo de integração. O objeto deresposta e os atributos identificam os dados que o módulo de integração retorna.

Pré-requisitos da ImplementaçãoAntes de qualquer implementação de módulo de integração ocorrer, você deveassegurar que a operação de gerenciamento lógico esteja associada a um ou maismódulos de integração. O módulo de integração deve ter então uma associaçãocom um produto de gerenciamento operacional. Por fim, as operações degerenciamento lógico em cada produto de gerenciamento operacional deve serativado.

Associações de Operações de Gerenciamento Lógico

Geralmente, há uma comunicação de um para um entre uma operação degerenciamento lógico e uma função do produto de gerenciamento operacional. Noentanto, uma única chamada de operação de gerenciamento lógico pode causar omódulo de integração para chamar um produto de gerenciamento operacionaldiversas vezes.

Um módulo de integração que usa um canal de chamada pode executar operaçõesde gerenciamento lógico somente nas seguintes circunstâncias:v O objeto de origem definido na operação de gerenciamento lógico deve

corresponder ao objeto principal da estrutura de objeto da solicitação definidano canal de chamada.

v Se o canal de chamada não for configurado para processar uma resposta, não épossível associar um objeto de resposta à operação de gerenciamento lógico.

v O objeto de resposta definido na operação de gerenciamento lógico devecorresponder ao objeto principal da estrutura de objeto da resposta definida nocanal de chamada. A correspondência deve ocorrer quando o canal de chamadafor configurado para processar uma resposta.

Associações de Produtos de Gerenciamento Operacional

O módulo de integração pode suportar diversas operações de gerenciamento lógicopara um produto de gerenciamento operacional. Ao executar o módulo deintegração, o nome e os valores de namespace da operação de gerenciamentológico especificam a ação a executar.

As associações do produto de gerenciamento operacional e do módulo deintegração são criadas quando os valores OMPPRODUCTNAME e OMPVERSIONsão incluídos no módulo de integração. Se diversas versões do produto degerenciamento operacional forem usadas com o módulo de integração, use umvalor nulo para OMPVERSION.

Ativação de Gerenciamento de Operação Lógica

Mais de um módulo de integração pode implementar a mesma operação degerenciamento lógico em um produto de gerenciamento operacional. Use o atributoISPRIMARY para identificar o módulo de integração preferencial para a operação

Integrando Dados a Aplicativos Externos 313

Page 320: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

de gerenciamento lógico no produto de gerenciamento operacional. Somente ummódulo de integração pode ter o valor ISPRIMARY configurado para umverdadeiro para uma determinada combinação de operação de gerenciamentológico - produto de gerenciamento operacional.

Propriedades da ImplementaçãoA estrutura de integração pode processar automaticamente os dados de integraçãoquando um módulo de integração for implementado. É possível customizar aimplementação se você quiser ignorar partes do processo automático.

Parâmetros do Módulo de IntegraçãoA estrutura de integração fornece parâmetros de entrada do módulo de integração,incluindo objetos e conjuntos de objetos de origem e de resposta e nomes determinais. Esses parâmetros são passados ao executar um módulo de integraçãocomo uma classe Java ou como um canal de classe.

A tabela a seguir lista os parâmetros da interface psdi.iface.omp.IMConstants eseus nomes.

Nome Descrição

IM O objeto ServiceInvoker instanciado que pode ser um módulo deintegração Java ou um canal de chamada.

IMNAME O nome do módulo de integração.

IMVERSION A versão do módulo de integração.

LMONAME O nome da operação de gerenciamento lógico que é chamada.

LMONAMESPACE O namespace da operação de gerenciamento lógico que é chamado.

OMPGUID O identificador exclusivo global (GUID) do produto degerenciamento operacional que o módulo de integração usa.

ENDPOINTNAME O nome do terminal que o módulo de integração usa para secomunicar com o produto de gerenciamento operacional.

ENDPOINTPROP Um mapa de propriedades String.psdi.iface.mic.MaxEndPointPropInfoque substituem as propriedades de terminal.

USERNAME O nome de usuário que a estrutura de integração usa para secomunicar com o terminal.

PASSWORD A senha para USERNAME.

Fluxo de Processo do Módulo de IntegraçãoOs módulos de integração baseados em Java preenchem o objeto de resposta ouconjunto de objetos respostas da operação de gerenciamento lógico com osresultados da operação. Para canais de chamada, é possível especificar ummapeamento da resposta do produto de gerenciamento operacional para o objetoou conjunto de respostas. A estrutura de integração copia os dados para o objetoou conjunto de respostas.

Os módulos de integração devem retornar rapidamente a seus responsáveis pelaschamadas. Se o serviço externo for um serviço de longa execução, o módulo deintegração deve criar outro encadeamento. O novo encadeamento faz a chamadaao produto de gerenciamento operacional, enquanto que o encadeamentooperacional retorna ao responsável pela chamada.

Os módulos de integração executam as seguintes tarefas de processamento:1. Recuperar entrada do objeto de origem ou do conjunto de objetos de origem.2. Se aplicável, recuperar as propriedades específicas do módulo de integração.3. Executar toda a lógica de processamento que a operação de gerenciamento

lógico requer antes de chamar o produto de gerenciamento operacional.4. Chamar o produto de gerenciamento operacional.5. Se aplicável, tratar da resposta do produto de gerenciamento operacional.

314 Integrando Dados a Aplicativos Externos

Page 321: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

6. Se aplicável, preencher o objeto de resposta ou o conjunto de objetos derespostas com os dados de retorno.

7. Retornar as informações de processamento de volta ao responsável pelachamada.

TerminaisUm módulo de integração que contém um canal de chamada deve usar umterminal. Um módulo de integração de classe Java pode usar um terminal ou usaruma abordagem customizada para chamadas de serviços externos.

Terminais contêm propriedades de URL e propriedades de manipulador queespecificam o mecanismo de transporte a ser usado. Um terminal com ummanipulador de serviço da Web tem diferentes propriedades do que um terminalcom um manipulador de linha de comandos. Terminais do módulo de integração epropriedades de terminais podem ser sobrescritos no tempo de execução quando oproduto de gerenciamento de processo passa propriedades de terminais comoentrada para o módulo de integração. As propriedades USERNAME e PASSWORDque são retornadas do mapeador de credenciais também podem substituir aspropriedades de terminais.

Os módulos de integração Java podem se comunicar diretamente com um produtode gerenciamento operacional ou módulo de integração externo, sem o uso de umterminal. Se um terminal não for usado, você elimina a necessidade para o módulode integração Java para converter objetos de origem no formato XML necessário.Ao excluir o uso de terminal, é possível usar qualquer protocolo de comunicaçãoque seja suportado pelo produto de gerenciamento operacional. Os módulos deintegração não são necessários para usar terminais. É possível configurar o módulode integração para se comunicar com um produto de gerenciamento operacionalusando propriedades do módulo de integração.

A estrutura de integração fornece manipuladores predefinidos que suportamprotocolos de comunicação, como HTTP e serviços da Web. Se um manipuladorpredefinido não estiver disponível para suportar o protocolo de serviço do produtode gerenciamento operacional, implemente um módulo de integração externo. Omódulo de integração externo age como uma interface para o serviço do produtode gerenciamento operacional que pode usar um dos protocolos de manipuladordisponíveis. Uma solução alternativa é gravar um manipulador customizado quesuporte o protocolo de serviço do produto de gerenciamento operacional.

Configure um terminal diferente para cada produto de gerenciamento operacionalpara estabelecer protocolos individuais para cada produto. O manipulador definidopara o terminal deve corresponder ao manipulador configurado para o módulo deintegração.

Os módulos de integração baseados nos canais de chamada requerem um terminal.O nome de terminal é um dos parâmetros que a estrutura de integração passacomo entrada para o canal de chamada. O responsável pela chamada do módulode integração pode substituir o nome do terminal.

Independentemente de se você usa um manipulador de terminal para secomunicar com o produto de gerenciamento operacional, o módulo de integraçãodeve tratar de cenários que requerem diversas chamadas do produto degerenciamento operacional para uma única execução de operação degerenciamento lógico.

Integrando Dados a Aplicativos Externos 315

Page 322: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Implementação do Canal de Chamada ou da Classe JavaÉ possível implementar um módulo de integração como uma classe Java ou comoum canal de chamada. Antes de desenvolver um módulo de integração, revise asvantagens e desvantagens para o uso do canal de chamada ou da classe Java.

Comparação do Canal de Chamada e da Classe JavaAntes de desenvolver um módulo de integração, considere as vantagens edesvantagens de usar uma classe Java ou um canal de chamada.

Vantagens e Desvantagens de Usar um Canal de Chamada

Implementar um módulo de integração usando um canal de chamada tem asseguintes vantagens:v Um canal de chamada é útil ao passar dados complexos para o terminal.

Também é útil quando é possível definir um mapeamento claro entre os camposno objeto de origem e a entrada que o terminal requer.

v Pode suportar estruturas de objetos hierárquicas em transações de entrada esaída.

v A estrutura de integração trata da conversão de objetos para XML e de XMLpara objetos.

v Pode ser configurado para usar classes de processamento, saídas de usuário emapeamento XSL para transações de entrada e saída.

v A estrutura de integração executa a chamada de terminal.v Pode ser chamado diretamente sem uma associação a um módulo de integração

ou uma operação de gerenciamento lógico.v Uma integração simples pode ser implementada usando a configuração do

sistema que não requer o reinício do servidor de aplicativos.

Implementar um módulo de integração usando um canal de chamada tem asseguintes desvantagens:v Requer mais registro e configuração de artefatos do sistema, mesmo quando a

chamada é simples.v Diversos aplicativos não podem usar o módulo de integração com diferentes

objetos de negócios.v Requer conhecimento adicional da estrutura de integração.v Suporta somente uma única chamada do terminal configurado. Requer

codificação adicional para suportar diversas chamadas.v Requer codificação adicional para suportar um serviço de longa execução. Por

padrão, o canal de chamada espera uma resposta do terminal.

Vantagens e Desvantagens de Usar uma Classe Java

Implementar um módulo de integração usando uma classe Java tem as seguintesvantagens:v Requer menos registro e configuração de artefatos do sistema.v Pode ser usado por diferentes aplicativos enquanto diferentes objetos de

negócios são usados.v Pode ser designado para fazer diversas chamadas externas.v Pode usar diferentes protocolos de comunicação para diferentes operações de

gerenciamento lógico e produtos de gerenciamento operacional.

316 Integrando Dados a Aplicativos Externos

Page 323: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

v Suporta o uso de outro encadeamento para acomodar um serviço de longaexecução.

v Pode implementar diversas operações de gerenciamento lógico, mesmo quando aconfiguração de entrada e a configuração de saída são diferentes.

v Requer menos provavelmente o uso de um módulo de integração externo.

Implementar um módulo de integração usando uma classe Java tem as seguintesdesvantagens:v Requer que você execute mais codificação Java.v Não suporta uma estrutura de objeto com um relacionamento pai e filho como

entrada ou saída. Somente o objeto pai pode ser usado como entrada e o códigoJava deve localizar o relacionamento filho.

v Conversões de objetos para XML e de XML para objetos devem ser codificadasquando um manipulador de terminal é usado.

v A customização pode ser integrada ao design do módulo de integração. Acustomização não pode ser incluída posteriormente sem reimplementação docódigo.

v O uso de quaisquer componentes de estrutura de integração, como ummanipulador de terminal, deve ser codificado na classe Java.

Implementação do Canal de ChamadaCanais de chamada usam estruturas de objetos em suas implementações paraexpandir o conteúdo de dados da mensagem. A estrutura de objeto usa o objetoque o produto de gerenciamento de processo passa como o objeto de origem paraconstruir um registro inteiro que pode consistir em diversos objetos relacionados.

Os objetos identificados nas estruturas de objetos são usados na criação demensagem XML. Ao usar um canal de chamada, os dados devem estar emconformidade com os esquemas XML especificados para as estruturas de objetosassociadas e você deve definir um terminal para o canal de chamada.

Os canais de chamada suportam classes de saída de processamento de entrada esaída opcionais. A estrutura de integração usa classes de saída de processamentopara implementar lógica adicional. As classes de saída de processamento deentrada e saída devem ser instâncias da classe Javapsdi.iface.migexits.ExternalExit.

Para transações de saída, a estrutura de integração chama o seguinte método:public StructureData setDataOut(StructureData irData)

Para transações de entrada, a estrutura de integração chama o seguinte método:public StructureData setDataIn(StructureData erData)

Ao substituir esses métodos, é possível executar processamento adicional domódulo de integração. As propriedades que são passadas ao canal de chamadaestão disponíveis para as classes de processamento.

O código da classe de processamento de saída a seguir mostra como recuperar oidentificador globalmente exclusivo do produto de gerenciamento operacional aoexecutar um canal de chamada:import psdi.server.MXServer;import psdi.iface.omp.IMConstants;import psdi.iface.omp.OmpServiceRemote;import psdi.iface.mic.*;import psdi.iface.migexits.*;...

Integrando Dados a Aplicativos Externos 317

Page 324: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

public class OutboundCIExit extends ExternalExit implements IMConstants{public StructureData setDataOut(StructureData irData)throws MXException, RemoteException{IntegrationContext cntx = IntegrationContext.getCurrentContext();String ompGUID = cntx.getStringProperty(OMPGUID);...

}}

Recursos adicionais do canal de chamada incluem classes Java de saída de usuárioe uma camada de mapeamento XSL. É possível configurar a camada demapeamento XSL para realizar mapeamento XML ou transformação de dados.

Se a estrutura de objeto necessária para sua chamada do módulo de integração nãoexistir, é possível criar uma estrutura de objeto no aplicativo Estruturas de Objetos.Também é possível usar XML com a estrutura de objeto MXINTOBJECT para criarestruturas de objetos como parte do processo de instalação.

Implementação da Classe JavaOs módulos de integração podem ser implementados para usar arquivos da classeJava. Usar um arquivo de classe Java elimina a necessidade de registro econfiguração do componente de integração. Além disso, todas as implementaçõesde módulos de integração subjacentes são transparentes para o produto degerenciamento de processo.

Os módulos de integração de classe Java devem implementar a interface Javapsdi.iface.mic.ServiceInvoker. A interface Java do invocador de serviço estáincluída no arquivo businessobjects.jar. Inclua a classe Java do módulo deintegração no caminho da classe do sistema no tempo de execução.

A interface Java do invocador de serviço tem variações da seguinte assinatura demétodo:

public byte[] invoke(Map String,Object metaData, MboRemote sourceMbo,MboRemote targetMbo, String endPointName) throws MXException,RemoteException;

v metaData é um mapa das propriedades de nome e valor que inclui:– O nome e a versão do módulo de integração.– O nome e o namespace da operação de gerenciamento lógico.– O identificador exclusivo global do produto de gerenciamento operacional.– O nome de terminal e quaisquer propriedades de terminal que estejam sendo

sobrescritas.v sourceMbo é o objeto de origem definido na operação de gerenciamento lógico.v targetMbo é o objeto de resposta definido na operação de gerenciamento lógico.v endPointName é o nome do terminal usado para comunicação com o produto de

gerenciamento operacional.

Se tiver configurado o módulo de integração para implementar diversas operaçõesde gerenciamento lógico, o módulo de integração deve determinar qual operaçãode gerenciamento lógico está sendo chamada. No tempo de execução, o módulo deintegração recupera as propriedades LMONAME e LMONAMESPACE do mapa deentrada metaData:

318 Integrando Dados a Aplicativos Externos

Page 325: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

import psdi.iface.omp.IMConstants;...String lmoName = metaData.get(IMConstants.LMONAME);String lmoNamespace = metaData.get(IMConstants.LMONAMESPACE);

O módulo de integração pode recuperar dados da operação de gerenciamentológico do objeto de origem. O código de exemplo a seguir recupera valores daoperação de gerenciamento lógico do objeto de origem:String guid = sourceMbo.getString("GUID");int packID = sourceMbo.getInt("PACKID");boolean hasSubs = sourceMbo.getBoolean("HASSUBS");

No exemplo, a operação de gerenciamento lógico tem um atributo de entradaalfanumérico chamado de identificador exclusivo global, um atributo de booleanochamado PACKID e um atributo booleano chamado HASSUBS.

Os métodos do invocador de serviço podem aceitar um conjunto de valoresMboSetRemote como uma entrada de origem, em vez de um único valor MboRemote.Na maioria dos casos, o módulo de integração passa todos os objetos do conjuntode objetos para o produto de gerenciamento operacional. Em outros casos, omódulo de integração passa somente o primeiro objeto do conjunto. Não hánenhuma regra configurada que se aplique ao comportamento do módulo deintegração,mas você deve definir claramente o comportamento esperado nadescrição da operação de gerenciamento lógico.

Processamento do Módulo de IntegraçãoProdutos de gerenciamento de processo usam uma ação do sistema para iniciar ummódulo de integração. A ação pode ser associada a uma escalação ou um fluxo deserviço ou pode ser iniciada a partir de um menu ou um botão. O produto degerenciamento de processo fornece uma classe de ação que chama o módulo deintegração e processa a resposta que o módulo de integração retorna.

Identificação de Componentes de IntegraçãoA classe de ação de inicialização identifica os componentes necessários para aintegração, incluindo a operação de gerenciamento lógico, o produto degerenciamento operacional e o módulo de integração.

A operação de gerenciamento lógico executa um processo, como implementação desoftware, em um item de configuração usando um produto de gerenciamentooperacional. O produto de gerenciamento de processo fornece a entrada necessáriapara o módulo de integração, com base nos objetos e atributos de negócios deentrada definidos na operação de gerenciamento lógico.

A classe de ação Java identifica um produto de gerenciamento operacional queexecuta a operação de gerenciamento lógico no item de configuração selecionado.Ao instalar itens de configuração e produtos de gerenciamento operacional, osrelacionamentos de componentes também são instalados.

Um registro de módulo de integração identifica quais operações de gerenciamentológico são suportadas em um produto de gerenciamento operacional. Quando osmódulos de integração, os itens de configuração e os produtos de gerenciamentooperacional são registrados, a classe Java do produto de gerenciamento de processoexecuta uma consulta. A classe Java determina quais módulos de integração chamacom base nos itens de configuração usados.

A estrutura de integração inclui um serviço que fornece os métodos de utilitário aseguir para ajudar a classe com consultas do módulo de integração.

Integrando Dados a Aplicativos Externos 319

Page 326: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Método de utilitário Função

psdi.iface.app.omp.OmpSetRemote getOMPListForIM(String imName, String imVersion)

Recupera uma lista de produtos de gerenciamentooperacional associados ao módulo de integração.

psdi.iface.app.im.MaxIMSetRemote getIMListForLMO(String lmoName, String lmoNamespace)

Recupera uma lista dos módulos de integração queimplementam a operação de gerenciamento lógicoespecificada.

psdi.iface.app.im.MaxIMSetRemotegetIMListForLMOWithOMP (String lmoName, StringlmoNamespace)

Recupera uma lista dos módulos de integração queimplementam a operação de gerenciamento lógicoespecificada em quaisquer produtos de gerenciamentooperacional.

psdi.iface.app.im.MaxIMSetRemote getIMListForOMP(String ompGuid)

Recupera a lista dos módulos de integração queimplementam pelo menos uma operação degerenciamento lógico no produto de gerenciamentooperacional.

Collection getIMListForOMPAndLMO (String ompGUID,String lmoName, String lmoNamespace)

Recupera a lista dos módulos de integração queimplementam a operação de gerenciamento lógico noproduto de gerenciamento operacional especificado.

Retorna uma coleção de objetospsdi.iface.omp.OmpImLmoRelInfo.

Collection getIMListForOMPAndLMO (String ompHostname,String ompProductname, String ompManufacturer,String lmoName, String lmoNamespace)

Recupera a lista dos módulos de integração queimplementam a operação de gerenciamento lógico nosprodutos de gerenciamento operacional especificados.

Retorna uma coleção de objetospsdi.iface.omp.OmpImLmoRelInfo.

psdi.iface.omp.OmpImLmoRelInfo getPreferredIM(String ompGUID, String lmoName, StringlmoNamespace)

Recupera o módulo de integração preferencial queimplementa a operação de gerenciamento lógico noproduto de gerenciamento operacional especificado.

psdi.iface.omp.OmpImLmoRelInfo getPreferredIM(String ompHostname, String ompProductname, StringompManufacturer, String lmoName, StringlmoNamespace)

Recupera o módulo de integração preferencial queimplementa a operação de gerenciamento lógico noproduto de gerenciamento operacional especificado.

Chamada do Módulo de IntegraçãoOs módulos de integração podem ser implementados como classes Java ou comocanais de chamada. Instâncias do módulo de integração são chamadas deinvocadores de serviço, mas elas implementam a interface Javapsdi.iface.mic.ServiceInvoker.

A interface do invocador de serviço oculta a implementação subjacente doresponsável pela chamada. A chamada do módulo de integração pelo responsávelpela chamada é a mesma, independentemente da implementação subjacente.

Mapa de Propriedade do Invocador de Serviço:

Os métodos do utilitário de obtenção do invocador de serviço retornam um mapade pares nome e valor.

A interface Java psdi.iface.omp.IMConstants define os nomes das propriedadesque são retornadas no mapa. A propriedade IMConstants.IM contém a instância domódulo de integração que o produto de gerenciamento de processo chama.

A propriedade IMConstants.ENDPOINTNAME contém o nome do terminal ao qual estáassociado no produto de gerenciamento operacional, módulo de integração e

320 Integrando Dados a Aplicativos Externos

Page 327: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

relacionamento da operações de gerenciamento lógico. Na maioria dos casos, apropriedade de terminal é o valor que o produto de gerenciamento de processopassa para o módulo de integração. No entanto, em casos fora do comum, a classede ação sobrescreve o terminal configurado.

Se um mapeador de credenciais for configurado, os métodos do utilitário deobtenção de invocador de serviço chamam o mapeador de credencial pararecuperar USERNAME e PASSWORD usados para comunicação de terminal. Essaspropriedades são retornadas pelos métodos do utilitário em um mapa identificadopela propriedade IMConstants.ENDPOINTPROPS. O responsável pela chamada podesobrescrever quaisquer propriedades de terminal incluindo as mesmas nesse mapa.

Antes de a classe de ação chamar o módulo de integração, ela deve preencher oobjeto de origem com os campos de entrada da operação de gerenciamento lógico.A classe de ação passa então os dados do objeto de origem para o módulo deintegração com o mapeamento que é retornado pelo método do utilitário deobtenção do invocador de serviço. A classe de ação fornece o objeto de resposta daoperação de gerenciamento lógico para o módulo de integração quando necessário.

O objeto de resposta da operação de gerenciamento lógico requer atributos. Aclasse de ação deve assegurar que o objeto de resposta tenha os atributos deoperação de gerenciamento lógico. Os atributos podem ser persistentes ou nãopersistentes. O objeto de resposta geralmente contém os dados do objeto deorigem.

Métodos de Chamada:

A estrutura de integração fornece alguns métodos de chamada que o responsávelpela chamada usa para chamar um módulo de integração. Os métodos de chamadausam propriedades para determinar quais dados de objetos são retornados aoresponsável pela chamada. As propriedades também determinam qual ação éexecutada nos dados retornados e como a estrutura de integração se comunica como responsável pela chamada.

A interface do invocador de serviço tem quatro assinaturas de método dechamada:v public byte[] invoke(Map <String,Object> metaData, MboRemote sourceMbo,

MboRemote targetMbo, String endPointName)

v public byte[] invoke(Map <String,Object> metaData, MboRemote sourceMbo,MboSetRemote targetMboSet, int action, String endPointName)

v public byte[] invoke(Map <String,Object> metaData, MboSetRemotesourceMboSet, MboRemote targetMbo, String endPointName)

v public byte[] invoke(Map <String,Object> metaData, MboSetRemotesourceMboSet, MboSetRemote targetMboSet, int action, String endPointName)

A classe de ação passa às propriedades a seguir ao chamar um dos métodos dechamada no invocador de serviço instanciado.

Propriedade Descrição

metaData O mapa de propriedade que o método de utilitário de obtenção deinvocador de serviço retorna.

Objeto e conjunto de objetos de origem O objeto com os atributos de entrada definidos na operação degerenciamento lógico. Essa propriedade pode conter um valornulo.

Objeto e conjunto de objetos de destino O objeto e o conjunto de objetos que contêm os dados de retorno.Essa propriedade pode conter um valor nulo.

Integrando Dados a Aplicativos Externos 321

Page 328: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Propriedade Descrição

Ação Esse parâmetro indica se os objetos existentes em targetMboSet sãoatualizados ou novos objetos são incluídos.

Os possíveis valores para ação são:

v psdi.mbo.MboSetRemote.INSERTONLY

v psdi.mbo.MboSetRemote.UPDATEONLY

Nome do Terminal O nome do terminal que o módulo de integração usa paracomunicação.

Método de Serviço do Produto de Gerenciamento Operacional:

Use o método de serviço do produto de gerenciamento operacional quando aclasse de ação tiver um relacionamento com um item de configuração ou quantotiver um atributo de identificador exclusivo global do item de configuração(CIGUID).

Quando a classe de ação tiver um item de configuração autorizado, em vez de umitem de configuração real, é possível usar o atributo de identificador exclusivoglobal do item de configuração do item de configuração autorizado.

O método de serviço a seguir recupera uma lista dos módulos de integraçãopreferenciais (invocadores de serviço). Os módulos de integração implementam aoperação de gerenciamento lógico especificada nos produtos de gerenciamentooperacional que gerenciam o item de configuração real especificado.

public Collection Map getServiceInvokerListForCIAndLMO(String actCIGUID,String lmoName, String lmoNamespace, UserInfo userInfo)

Cada produto de gerenciamento operacional que tem um relacionamento com oitem de configuração real especificado retorna o módulo de integração preferencialpara a operação de gerenciamento lógico.

Métodos do Utilitário de Invocador de Serviço:

O utilitário getServiceInvoker inclui métodos que recuperam uma instância de ummódulo de integração para uma operação de gerenciamento lógico e um produtode gerenciamento operacional.

A tabela a seguir lista os métodos de utilitário fornecidos com o utilitáriogetServiceInvoker.

Método de utilitário Função

Map<String, Object> getServiceInvoker(psdi.iface.omp.OmpImLmoRelInfo ompImLmoRelInfo,psdi.security.UserInfo userInfo)

Recupera o invocador de serviço para o módulo deintegração especificado, a operação de gerenciamentológico e o produto de gerenciamento operacional.

Map<String, Object> getServiceInvoker(psdi.iface.app.im.OmpImLmoRelRemoteompImLmoRelRemote, psdi.security.UserInfo userInfo)

Recupera o invocador de serviço para o módulo deintegração especificado, a operação de gerenciamentológico e o produto de gerenciamento operacional.

Map<String, Object> getServiceInvoker (StringompGUID, String imName, String imVersion, StringlmoName, String lmoNamespace, psdi.security.UserInfouserInfo)

Recupera o invocador de serviço para o módulo deintegração especificado, a operação de gerenciamentológico e o produto de gerenciamento operacional.

Map<String, Object> getServiceInvoker (StringompGUID, String lmoName, String lmoNamespace,psdi.security.UserInfo userInfo)

Recupera o invocador de serviço para o módulo deintegração preferencial para o produto de gerenciamentooperacional e a operação de gerenciamento lógico.

322 Integrando Dados a Aplicativos Externos

Page 329: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Método de utilitário Função

Collection<Map> getServiceInvokerListForCIAndLMO(String actCIGUID, String lmoName, StringlmoNamespace, psdi.security.UserInfo userInfo)

Recupera uma lista dos invocadores de serviço paramódulos de integração preferenciais que implementam aoperação de gerenciamento lógico especificada nosprodutos de gerenciamento operacional.

Os produtos de gerenciamento operacional têm umrelacionamento com o item de configuração.

Processamento de Resposta do Módulo de IntegraçãoSe uma operação de gerenciamento lógico tiver um objeto de resposta, o módulode integração atualiza o objeto de resposta com os resultados de sua chamada. Aclasse de ação determina se os resultados devem ser salvos no banco de dados. Sea classe de ação não salvar os resultados, é possível salvar os dados ao visualizaros resultados da resposta na interface com o usuário.

Se o objeto de resposta for o objeto principal do aplicativo ou se o objetoatualizado for baseado em um relacionamento com o objeto principal do aplicativo,a classe de ação não salva o objeto. Em vez disso, a interface com o usuário avisaque o objeto deve ser salvo. No entanto, se o objeto atualizado não estiverrelacionado ao objeto de aplicativo principal, a classe de ação salva e confirma asmudanças.

Configurando Módulos de IntegraçãoMódulos de integração recebem solicitações de dados de produtos degerenciamento de processo e retornam os dados de resposta de produtos degerenciamento operacional.

Criando Módulos de IntegraçãoÉ possível criar um módulo de integração para passar dados entre aplicativoslocais e externos. Dependendo de suas necessidades, é possível implementar ummódulo de integração como um canal de chamada ou uma classe Java. O canal dechamada e a classe Java têm acesso ao banco de dados e todos os objetos namemória quando um produto de gerenciamento de processo chama um módulo deintegração.

Procedimento1. No aplicativo Módulos de Integração, clique em Novo Módulo de Integração.2. Nos campos Nome e Versão, insira uma combinação exclusiva de módulo e

número de versão do módulo de integração. O campo de versão deve iniciarcom um V e ser seguido por um número inteiro entre 0 e 9, inclusive. Onúmero inteiro pode, então, ser seguido por um ponto decimal (.) e até 17números inteiros adicionais. Por exemplo, V2.99. ou V9.123456.

3. Opcional: Insira valores nos campos a seguir:

Opção Descrição

Nome do Operational ManagementProduct

O produto de gerenciamento operacionalque o módulo de integração chama. Se ummódulo de integração trabalhar comdiversos produtos, um nome de produtonão é especificado.

Integrando Dados a Aplicativos Externos 323

Page 330: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Opção Descrição

Versão do Produto de GerenciamentoOpercional

O valor da versão do produto que omódulo de integração chama. Se ummódulo de integração funcionar comdiversas versões de um produto degerenciamento operacional, você nãoespecifica um valor de versão.

Nome da Rotina O protocolo que o módulo de integraçãousa para chamar um produto degerenciamento operacional. Se o canal dechamada tiver um terminal associado, nãoé possível configurar um manipuladorpara o módulo de integração.

Nome do Canal de Chamada O nome do canal de chamada que omódulo de integração executa. O módulode integração usa um canal de chamadaou uma classe Java. Especifique somenteum deles.

Nome de Classe O nome da classe Java que o módulo deintegração executa. O módulo deintegração usa um canal de chamada ouuma classe Java. Especifique somente umdeles.

4. Clique em Salvar Módulo de Integração.

O que Fazer Depois

É possível associar uma operação de gerenciamento lógico a um módulo deintegração para definir as ações que gerenciadores de processos executam. Tambémé possível associar um produto de gerenciamento operacional a um módulo deintegração para definir os aplicativos externos que podem ser chamados de umproduto de gerenciamento de processo.

Selecionando Operações de Gerenciamento Lógico paraMódulos de IntegraçãoÉ possível usar a caixa de diálogo Selecionar Operações para associar uma oumais operações de gerenciamento lógico a um registro de módulo de integração.Operações de gerenciamento lógico definem uma ação que um produto dogerenciador de processo executa em um aplicativo.

Antes de Iniciar

Você deve primeiramente associar a operação de gerenciamento lógico a umproduto de gerenciamento operacional antes de um produto de gerenciamento deprocesso poder executar uma operação de gerenciamento lógico. Os registros daoperação de gerenciamento lógico associada a um módulo de integração que usaum canal de chamada deve ter um valor de nome de objeto de origem. Esse valordeve ser o mesmo que o objeto de origem superior registrado no canal dechamada. Além disso, os registros da operação de gerenciamento lógico devem terum valor de nome de objeto de resposta quando o canal de chamada processarrespostas. Esse valor deve ser igual ao objeto superior registrado no canal dechamada. É possível definir a origem da operação de gerenciamento lógico e osvalores de objetos de resposta no aplicativo Operações de Gerenciamento Lógico.

324 Integrando Dados a Aplicativos Externos

Page 331: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Procedimento1. No aplicativo Módulos de Integração, selecione o módulo de integração que

deseja associar às operações de gerenciamento lógico.2. Na guia Operações de Gerenciamento Lógico, clique em Selecionar

Operações.3. Selecione as operações de gerenciamento lógico que você deseja associar ao

registro do módulo de integração.4. Clique em OK.5. Clique em Salvar Módulo de Integração.

O que Fazer Depois

É possível associar um produto de gerenciamento operacional a um módulo deintegração para definir os aplicativos externos que podem ser chamados de umproduto de gerenciamento de processo.

Selecionando Operações de Gerenciamento Lógico para GerenciamentoOperacional:

É possível usar a caixa de diálogo Selecionar Operações para associar uma oumais operações de gerenciamento lógico a um produto de gerenciamentooperacional. A associação feita ao produto de gerenciamento operacional ativa aoperação de gerenciamento lógico. A ativação indica que a operação degerenciamento lógico está pronta para uso.

Antes de Iniciar

Uma operação de gerenciamento lógico deve ser associada a um módulo deintegração antes de poder ser ativada em um produto de gerenciamentooperacional.

Procedimento

1. No aplicativo Módulos de Integração, selecione o módulo de integração quedeseja associar às operações de gerenciamento lógico.

2. Na subguia Produtos de Gerenciamento Operacional, selecione o produto degerenciamento operacional que deseja associar às operações de gerenciamentológico.

3. Na janela da tabela Operações de Gerenciamento Lógico para Produto deGerenciamento Operacional, clique em Selecionar Operações.

4. Selecione os produtos de gerenciamento lógico que deseja ativar para o produtode gerenciamento operacional.

5. Clique em OK.6. Clique em Salvar Módulo de Integração.

Associando uma Operação de Gerenciamento Lógico a umMódulo de IntegraçãoÉ possível associar uma operação de gerenciamento lógico a um módulo deintegração para definir as ações que são executadas em um produto degerenciamento operacional. Produtos de gerenciamento de processo, como Alterarou Implementar, chamam um módulo de integração para executar um produto degerenciamento operacional. O produto de gerenciamento operacional executa entãoo produto de gerenciamento lógico, como software de implementação, e notifica oproduto de gerenciamento de procsso sobre o status da ação.

Integrando Dados a Aplicativos Externos 325

Page 332: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Antes de Iniciar

Você deve primeiramente associar a operação de gerenciamento lógico a umproduto de gerenciamento operacional antes de um produto de gerenciamento deprocesso poder executar uma operação de gerenciamento lógico. Os registros daoperação de gerenciamento lógico associada a um módulo de integração que usaum canal de chamada deve ter um valor de nome de objeto de origem. Esse valordeve ser o mesmo que o objeto de origem superior registrado no canal dechamada. Além disso, os registros da operação de gerenciamento lógico devem terum valor de nome de objeto de resposta quando o canal de chamada processarrespostas. Esse valor deve ser igual ao objeto superior registrado no canal dechamada. É possível definir a origem da operação de gerenciamento lógico e osvalores de objetos de resposta no aplicativo Operações de Gerenciamento Lógico.

Sobre Esta Tarefa

O valor do padrão de chamada determina se a operação de gerenciamento lógico éde longa execução. Também determina como o produto de gerenciamento deprocesso espera uma resposta do produto de gerenciamento operacional.

Procedimento1. No aplicativo Módulos de Integração, selecione o módulo de integração que

deseja associar a uma operação de gerenciamento lógico.2. Na subguia Operações de Gerenciamento Lógico, clique em Nova Linha.3. Insira valores nos campos a seguir:

Opção Descrição

Nome do Logical Management Operation Identifica as ações que os módulos deintegração suportam e as ações que osprodutos de gerenciamento de processosolicitam.

Namespace Identifica o domínio para o nome daoperação de gerenciamento lógico. Umexemplo é com.ibm.mss.

4. Clique em Salvar Módulo de Integração.

O que Fazer Depois

É possível associar um produto de gerenciamento operacional a um módulo deintegração para definir os aplicativos externos que podem ser chamados de umproduto de gerenciamento de processo.

Associando um Produto de Gerenciamento Operacional a um Módulo deIntegração:

É possível associar um produto de gerenciamento operacional a um módulo deintegração para definir os aplicativos externos que podem ser chamados de umproduto de gerenciamento de processo. Produtos de gerenciamento de processo,como Alterar ou Implementar, chamam um módulo de integração para executarum produto de gerenciamento operacional. O produto de gerenciamentooperacional executa então o produto de gerenciamento lógico, como software deimplementação, e notifica o produto de gerenciamento de procsso sobre o status daação.

326 Integrando Dados a Aplicativos Externos

Page 333: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Antes de Iniciar

Antes que um produto de gerenciamento de processo possa chamar um módulo deintegração para executar uma operação de gerenciamento lógico em um produtode gerenciamento operacional, configure os seguintes componentes:v Defina e configure uma operação de gerenciamento lógicov Associe o módulo de integração com a operação de gerenciamento lógico e com

o produto de gerenciamento operacionalv Ative a operação de gerenciamento lógico para o módulo de integração no

produto de gerenciamento operacional

Sobre Esta Tarefa

É possível construir e configurar relacionamentos entre módulos de integração,produtos de gerenciamento operacional e operações de gerenciamento lógico.Também é possível executar as seguintes ações:v Associar diversos produtos de gerenciamento operacional a um módulo de

integraçãov Ativar operações de gerenciamento lógico no produto de gerenciamento

operacional para o módulo de integraçãov Especificar um módulo de integração padrão para ser usado para uma operação

de gerenciamento lógico específica em um produto de gerenciamentooperacional

v Configurar o terminal para uma combinação de módulo de integração e produtode gerenciamento operacional quando o canal de chamada não tiver nenhumterminal associado

Procedimento

1. No aplicativo Módulos de Integração, selecione o módulo de integração quedeseja associar a um produto de gerenciamento operacional.

2. Na subguia Produtos de Gerenciamento Operacional, clique em Nova Linha.3. Insira um valor nos seguintes campos:

v Produto de Gerenciamento Operacional

v Terminal

4. Na janela da tabela Operações de Gerenciamento Lógico, clique em NovaLinha.

5. Insira um valor no campo Nome do Gerenciamento de Operação Lógica.Valores padrão são exibidos nos campos Namespace e Descrição.

6. Opcional: Selecione a caixa de seleção É Principal para tornar o módulo deintegração o módulo de integração padrão para a operação de gerenciamentológico selecionada. Selecione a caixa de seleção É Principal ao ativar a operaçãode gerenciamento lógico em mais de um registro de módulo de integração.

7. Clique em Salvar Módulo de Integração.

O que Fazer Depois

É possível associar uma operação de gerenciamento lógico a um módulo deintegração para definir as ações que são executadas em um produto degerenciamento operacional.

Integrando Dados a Aplicativos Externos 327

Page 334: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Configurando Operações de Gerenciamento LógicoÉ possível criar uma operação de gerenciamento lógico para definir uma ação queum produto de gerenciamento de processo executa da estrutura de integração.Também é possível definir quais atributos de campo do objeto específico aoperação de gerenciamento lógico usa.

Criando Operações de Gerenciamento LógicoÉ possível definir o padrão de chamada em uma operação de gerenciamentológico. O valor do padrão determina se a operação de gerenciamento lógico é delonga execução e como o produto de gerenciamento de processo espera umaresposta do produto de gerenciamento operacional.

Antes de Iniciar

Você deve definir um relacionamento de operação de gerenciamento lógico paraum produto de gerenciamento operacional e módulo de integração antes dechamar quaisquer processos.

Procedimento1. No aplicativo Aplicativos de Gerenciamento Lógico, clique em Nova Operação

de Gerenciamento Lógico.2. No campo Nome, especifique um identificador de operação de gerenciamento

lógico.3. Insira valores nos campos a seguir:

Opção Descrição

Nome do Objeto de Origem O objeto de entrada para a operação degerenciamento lógico.

Padrão de Chamada O padrão de uma chamada de operaçãode gerenciamento lógico.

Espaço de Nomes O identificador secundário para o registrode operação de gerenciamento lógico.

Nome do Objeto de Resposta A saída do objeto para a operação degerenciamento lógico.

4. Clique em Salvar Operação de Gerenciamento Lógico.

Incluindo Atributos em Operações de Gerenciamento LógicoÉ possível incluir atributos em uma operação de gerenciamento lógico paraidentificar os atributos de campo do objeto específico que a origem e o destino dedados da operação de gerenciamento lógico usam. As entradas de atributosindividuais podem ser definidas para as chamadas de operação de gerenciamentológico de entrada e de saída.

Sobre Esta Tarefa

Os atributos do objeto de entrada identificam os dados que o produto degerenciamento de processo passa para o módulo de integração. Os atributos doobjeto de saída identificam os dados que o módulo de integração retorna. Somenteos atributos respectivos dos objetos de origem e de resposta selecionados estãodisponíveis para seleções de campo. Se você não definiu um objeto de origem oude resposta, todos os atributos do objeto estarão disponíveis para seleção.

328 Integrando Dados a Aplicativos Externos

Page 335: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Procedimento1. No aplicativo Aplicativos de Gerenciamento Lógico, selecione a operação de

gerenciamento lógico na qual deseja incluir um atributo.2. Na janela Atributos para LMO, clique em Nova Linha.3. Insira um valor no campo Nome.4. Opcional: Limpe a caixa de seleção Entrada para indicar que o atributo é para a

saída de uma chamada de operação de gerenciamento lógico.5. Opcional: Limpe a caixa de seleção Obrigatório para indicar que o atributo do

campo não é necessário na chamada da operação de gerenciamento lógico.

Recurso Ativar no ContextoO aplicativo Ativar no Contexto é usado para criar e modificar registros de entradaque abrem um aplicativo externo na mesma sessão de navegador ou em umadiferente. É possível abrir aplicativos de forma independente ou como parte de umcenário de integração de aplicativo.

O registro de entrada de ativação pode utilizar as seguintes opções no Editor deTelas para abrir um aplicativo externo:v Itens do menu Açãov Hyperlinksv Botões

O aplicativo Ativar no Contexto é usado para criar e atualizar entradas deativação. Uma entrada de ativação define uma URL que abre um console para umaplicativo externo. A entrada de ativação pode passar dados, referidos comocontexto, do aplicativo para o console externo. É possível configurar uma URL doconsole para qualquer aplicativo com um console baseado na Web. Além disso, épossível configurar URLs de console para consoles que usam Java™ Web Start. Nãoé possível usar uma entrada de ativação para abrir aplicativos que não estãoativados para a Web. É possível configurar um ponto de ativação de qualqueraplicativo.

Preparação do Aplicativo ExternoA maioria dos aplicativos tem um console baseado na Web que é possível abrir apartir de uma URL em um navegador da Web. O recurso de ativação em contextosuporta os tipos de console do aplicativo da Web (servlet ou JSP), portal e JavaWeb Start.

Para executar uma navegação, o console do aplicativo externo deve suportar orecurso posicionar no contexto que aceita dados que são passados a ele em umaURL. O console externo usa a URL para abrir uma janela com os dados que forampassados na URL.

Se o aplicativo externo não tiver um recurso posicionar no contexto, o recurso deativação em contexto pode abrir uma página inicial padrão dentro do console, semos dados contextuais. Se o aplicativo suportar autenticação de conexão única, osusuários do aplicativo são autenticados e direcionados ao console externo. Seautenticação de conexão única não for implementada, o console externo abra umpainel de login para autenticar o usuário do aplicativo.

Integrando Dados a Aplicativos Externos 329

Page 336: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Ativar a URL de Entrada em um Aplicativo ExternoUm valor de URL de entrada de ativação pode conter variáveis de substituição queusam dados dos objetos de negócios relacionados que estão sendo visualizados noaplicativo.

Por exemplo, para uma entrada de ativação implementada no aplicativo Pessoa, épossível substituir o valor do nome na sequência da URL usando o nome doatributo, {attributename}. A URL a seguir é uma URL para o aplicativo Pessoaque usa o atributo PERSONNAME:

https://extsyshost:9045/tcWebUI/interactionhandler?actionId=viewPerson&Person={PERSONNAME}

Também é possível fornecer um atributo de um objeto relacionado ao objeto denegócios principal, especificando o nome do relacionamento e o nome do atributo{relationshipname.attributename}. A URL a seguir inclui um atributo de cidadede um endereço. Use esta URL no aplicativo Pessoas quando o objeto ADDRESSestiver relacionado a um objeto PERSON com um relacionamento denominadoADDRESS:

https://extsyshost:9045/WebUI/interactionhandler?actionId=viewCity&cityname={ADDRESS.CITY}

Use os valores {sourcetoken} e {reportinghostname} em uma URL quando quiserativar para um console do produto de gerenciamento operacional.

Ativar a URL de Entrada em um Aplicativo de ProdutoUm valor de URL de entrada de ativação pode conter variáveis de atributo e umavariável de cláusula SQL Where.

Um aplicativo externo pode ser ativado no produto, abrir um aplicativo deproduto específico e procurar objetos de negócios específicos para exibir.

Ao ativar no produto, a tela de conexão do produto é apresentada. Após o usuárioconectar, o aplicativo especificado é aberto. Como opção, é possível incluir o nomede usuário e a senha na URL para ignorar a tela de conexão, mas somente se umaSecure Socket Layer (SSL) estiver configurada para proteger o acesso HTTP.

A URL para ativação no produto tem o seguinte formato:

http://<server>:<port>/<maximo>/ui/<product.jsp>?event=loadapp&value=<appID>

A URL de exemplo a seguir abre o aplicativo Rastreamento de Ordem de Serviço eexibe a ordem de serviço com um ID igual a 1000

http://<server>:<port>/<maximo>/ui/<maximo.jsp>?event=loadapp&value=<wotrack>&attrname1=<WONUM>&attrvalue1=<1000>:

A procura de um registro tem comportamento semelhante ao da guia Lista em umaplicativo, em que a linha do filtro tem diversos valores preenchidos nas colunas.Os nomes dos atributos são os nomes de bancos de dados do MBO principal parao aplicativo que está sendo ativado.

330 Integrando Dados a Aplicativos Externos

Page 337: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Se procura avançada for necessária, é possível incluir uma cláusula SQL WHEREna URL, no formato usado no exemplo a seguir:

http://:<server>:<port>/maximo/ui/maximo.jsp?event=loadapp&value=wotrack&sqlwhere=WONUM%3D1000

O remetente deve fornecer URLs válidas. No exemplo anterior, um valor "="inválido foi convertido para "%3D".

Se uma URL incluir parâmetros de tipo de atributo e um parâmetro de cláusulaSQL Where, o parâmetro de cláusula SQL Where é usado e os parâmetros de tipode atributo são ignorados.

Ativando Ativação em ContextoPara abrir uma janela do navegador em um aplicativo externo que pode conterdados contextuais, um usuário deve ser capaz de ativar a ativação no aplicativo deorigem. O usuário também deve ter direitos de segurança para visualizar o item demenu ou o botão da barra de ferramentas. O aplicativo de destino deve estarconfigurado para aceitar a solicitação da janela de um aplicativo remoto e acordosdevem estar em vigor para proteção da transação.

Criando uma Entrada de AtivaçãoÉ possível criar uma entrada de ativação para abrir um aplicativo externo namesma sessão de navegador ou em uma nova. Registros de entradas de ativaçãocriam links baseados no Web site entre aplicativos e produtos de gerenciamentooperacional externos ou Web sites.

Procedimento1. No aplicativo Ativar no Contexto, clique em Nova Entrada de Ativação.2. No campo Nova Entrada de Ativação, especifique um identificador de

entrada de ativação.3. No campo da URL do console, especifique a URL para um Web site ou o

console de um produto de gerenciamento operacional que você deseja abrirem uma sessão do navegador.

4. No campo Janela do Navegador de Destino, especifique um dos valores aseguir:v O valor _usecurrent (padrão) abre um aplicativo ou Web site na sessão do

navegador atual.v O valor _blank abre um aplicativo ou Web site em uma nova sessão do

navegador.5. Opcional: Se o destino da entrada de ativação for um console para um

produto de gerenciamento operacional, especifique seu nome e versão noscampos Nome do Produto OMP e Versão do OMP.

6. Na tabela Contextos de Ativação, clique em Nova Linha.7. No campo Nome do Objeto de Recurso, é possível especificar um objeto de

negócios que restringe o uso do registro de entrada de ativação a aplicativosque suportam esse objeto. Uma entrada de ativação pode suportar um oudiversos objetos e negócios. Nenhuma restrição se aplica ao uso da entrada deativação se você não selecionar nenhum objeto de negócios. Atributos de valorde classificação de entrada de ativação. O valor de classificação pode restringiras entradas de ativação exibidas. Diversos objetos de negócios suportam oatributo de classificação. A restrição de classificação é implementada no tempode execução quando condições do sistema são usadas. Condições prontas

Integrando Dados a Aplicativos Externos 331

Page 338: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

estão disponíveis para controlar o comportamento da entrada de ativação.Também é possível criar suas próprias condições. Por exemplo, se vocêespecificar PERSON nesse campo, é possível usar a entrada de ativação somenteno aplicativo Pessoas. É possível usar o registro de entrada de ativação emqualquer aplicativo quando o valor do campo for nulo.

8. No campo Classificação de Recurso, se atributos de classificação foremdefinidos para o objeto de recurso especificado, é possível selecionar atributosque restringem a exibição de entradas de ativação. Muitos objetos de negóciossuportam atributos de classificação. A restrição de classificação éimplementada no tempo de execução quando condições do sistema sãousadas. Condições predefinidas estão disponíveis para controlar ocomportamento da entrada de ativação. Também é possível criar suas própriascondições.

9. Selecione a caixa de seleção Inclui Classificações Filhas para incluirclassificações de recursos para objetos-filhos no registros de entrada e ativação.

10. Clique em Salvar Entrada de Ativação.

O que Fazer Depois

É possível associar registros de entrada de ativação com opções de assinatura noaplicativo Editor de Telas. Essas associações definem e controlam as ações de menupara uso de entrada de ativação.

Propriedades Específicas de Produtos de Gerenciamento Operacional:

Ao criar um registro de entrada de ativação, algumas propriedades sãoespecificamente para o uso com produtos de gerenciamento operacional.

Ao associar um produto de gerenciamento operacional a uma entrada de ativação,a estrutura procura o nome do produto nos servidores de produtos degerenciamento operacional no banco de dados que gerencia o item deconfiguração. Se a versão do produto de gerenciamento operacional for fornecida,a estrutura procura a versão especificada. Os dados do servidor preenchem asvariáveis {sourcetoken} e {reportinghostname} na URL de ativação.

Para determinar com qual item de configuração está trabalhando, a estrutura deintegração procura um atributo identificador exclusivo global do item deconfiguração (CIGUID) no objeto de negócios que está visualizando. Se estivervisualizando o objeto de negócios do item de configuração, o atributo identificadorexclusivo global (GUID) é usado.

O token de origem é um atributo do item de configuração e relacionamento doservidor do produto de gerenciamento operacional. O console do produto degerenciamento operacional aceita o token de origem como o identificador do itemde configuração. Ao incluir um {sourcetoken} na URL da ativação, a estrutura osubstitui por um token de origem correspondente para o servidor do produto degerenciamento operacional.

O nome do host de relatório é o nome do host o servidor do produto degerenciamento operacional selecionado. Quando o valor {reportinghostname} estána URL para a entrada de ativação, a estrutura o substitui pelo nome do host doproduto de gerenciamento operacional selecionado. As informações de token deorigem e de nome do host são carregadas do mecanismo de descoberta. Se as

332 Integrando Dados a Aplicativos Externos

Page 339: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

informações de nome do host não forem carregadas do mecanismo de descoberta,você deve incluir as informações do servidor do produto de gerenciamentooperacional em seu banco de dados.

Configurando uma Opção de Assinatura para um Ponto deAtivaçãoAo criar uma opção de assinatura para um ponto de ativação, ela fica disponívelpara uso nos controles da interface com o usuário.

Procedimento1. No Editor de Telas, selecione o aplicativo no qual deseja configurar um ponto

de ativação.2. Selecione a ação Incluir/Modificar Opções de Assinatura.3. Na janela Incluir/Modificar Opções de Assinatura, clique em Nova Linha.4. Especifique valores nos campos Opção e Descrição.5. Na tabela Opções de Assinatura Avançada, selecione a opção Associar à

Entrada de Ativação para Ativar a Ativação em Contexto. Para acessar a tabelaOpções de Assinatura Avançada, role até o final da janela Incluir/ModificarOpções de Assinatura e clique em Maximizar para mostrar as opçõesdisponíveis.

6. No campo Nome da Entrada de Ativação, especifique o nome da entrada deativação.

7. Clique em OK para retornar ao Editor de Telas.8. Clique em Salvar Definição do Aplicativo para confirmar as modificações no

aplicativo no banco de dados.

Incluindo um Ponto de Ativação em um Menu de AplicativoApós configurar uma opção de assinatura para um ponto de ativação, é possívelincluir a opção em um menu de aplicativo. O procedimento é semelhante a incluiro ponto de ativação para uma ação ou para um menu da barra de ferramentas.

Procedimento1. No Editor de Telas, escolha uma das ações a seguir:

v Incluir/Modificar Menu Selecionar Ações

v Incluir/Modificar Menu da Barra de Ferramentas

2. Clique em Nova Linha.3. No campo Tipo de Elemento, especifique o valor OPTION.4. No campo Valor da Chave, especifique o nome da opção de assinatura

configurado para o ponto de ativação.5. No campo Posição, especifique um número para indicar a posição relativa do

item no menu.6. No campo Guias, selecione um dos valores a seguir:

v Selecione o valor MAIN se a URL de ativação contiver variáveis desubstituição.

v Selecione o valor ALL se a URL de ativação não contiver variáveis desubstituição.

7. Especifique valores em outros campos opcionais, conforme apropriado.8. Clique em OK para retornar ao Editor de Telas.9. Clique em Salvar Definição do Aplicativo para confirmar as modificações no

aplicativo no banco de dados.

Integrando Dados a Aplicativos Externos 333

Page 340: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

O que Fazer Depois

Antes que os usuários possam ver o novo item de menu ou o botão da barra deferramentas, você deve conceder privilégios de acesso de usuário e grupo a ele.Conceda os privilégios na seção Opções da guia Aplicativos no aplicativo Gruposde Segurança.

Incluindo um Botão como um Ponto de AtivaçãoPara incluir um botão em um aplicativo que age como um ponto de ativação,configure um botão para usar a opção de assinatura para o ponto de ativação.

Procedimento1. No Editor de Telas, clique em Paleta de Controle.2. Arraste um controle de botão de comando para a área de serviço do aplicativo.3. Abra a janela Propriedades para o controle do botão de comando.4. No campo Rótulo, especifique o nome que você deseja que apareça no botão.5. No campo Evento, especifique o nome da opção de assinatura.6. Clique em OK para retornar ao Editor de Telas.7. Clique em Salvar Definição do Aplicativo para confirmar as modificações no

aplicativo no banco de dados.

Incluindo uma Condição em um Ponto de AtivaçãoÉ possível criar uma condição e, em seguida, associar a condição à opção deassinatura para o ponto de ativação. Ao associar uma condição a uma opção deassinatura, o comportamento da interface com o usuário é alterado com base nacondição e nos dados que estão sendo visualizados.

Procedimento1. No aplicativo Grupos de Segurança, selecione o grupo ao qual deseja aplicar

uma condição.2. Na guia Aplicativo, selecione o aplicativo ao qual deseja aplicar a condição.3. Na tabela Opções, selecione o valor da condição criado.4. Clique em Salvar Grupo.

Condições da Opção de Assinatura:

É possível aplicar condições para controlar o comportamento da interface com ousuário com base nos dados que estão sendo visualizados.

A estrutura de integração fornece uma classe de condição predefinida,psdi.iface.app.launch.LaunchCICondition, para ocultar itens do menu de entradade ativação quando a classificação do objeto atual não corresponder ao valor declassificação da entrada de ativação. Essa condição se aplica a qualquer objeto quetenha um atributo de classificação.

Os itens de menu de entrada de item de ativação também podem ser ocultadosquando o produto de gerenciamento operacional configurado na entrada deativação não gerencia o item de configuração. Essa condição se aplica a entradas deativação associadas a um objeto de item de configuração ou objeto de item deconfiguração real.

334 Integrando Dados a Aplicativos Externos

Page 341: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

É possível configurar uma condição para usar a classe de condição predefinida.Também é possível configurar uma condição para implementar uma condiçãocustomizada usando o aplicativo Gerenciador de Expressão Condicional.

O ponto de ativação está disponível a partir do aplicativo, independentemente dosdados que estão sendo visualizados, quando uma condição não é usada. Os dadosvisualizados são restringidos às configurações de segurança da opção de assinaturapara um grupo de usuários. Também é possível configurar suas configurações desegurança para ocultar um ponto de ativação, com base nos privilégios de acessodo grupo configurados.

Se você usar uma classe de condição Java, você deve alterar o atributoEXPRESSION da condição para o nome da entrada de ativação. A classe Java podeidentificar qual entrada de ativação ser executada. O valor de atributo daexpressão deve ser uma correspondência exata do nome da entrada de ativação evalores fazem distinção entre maiúsculas e minúsculas.

Informações de Referência de IntegraçãoAs informações de referência incluem um guia para estruturas e esquemas XMLusados pela estrutura de integração, as propriedades do sistema que é possívelconfigurar e comutadores de colaboração predefinidos fornecidos com aplicativos.

Propriedades de Sistema de IntegraçãoAs propriedades do sistema definem o comportamento e as características daestrutura de integração. Para revisar ou alterar as propriedades da estrutura deintegração, filtre as propriedades no aplicativo Propriedades do sistema.

Propriedades de integração gerais

Para ver uma lista de propriedades de integração gerais, especifique mxe.int comoum termo de filtro no aplicativo Propriedades de sistema. Para propriedadesbooleanas (true/false), um valor igual a 0 significa false e um valor igual a 1significa true.

Tabela 47. Propriedades de integração geraisPropriedade Descrição Valor padrão

mxe.int.containerdeploy Implementar serviços da Web para o contêiner do servidor deaplicativos. Quando configurado para 0 (falso), os serviços da Web sãoimplementados no contêiner do produto.

0

mxe.int.credentialmapperclassname O nome de classe do mapeador de credenciais é um arquivo de classeque pode ser usado para mapear informações de credenciais quando ummódulo de integração é implementado.

mxe.int.genboolasbool Gerar booleano como booleano de esquema. 1

mxe.int.globaldir Especifica o Diretório global de integração. 1

mxe.int.queueusercachesize Número de usuários que são armazenados em cache para mensagens dafila de entrada.

10

mxe.int.resolveschema Resolve todas as inclusões do esquema para conter definição deesquema sequencial.

1

mxe.int.servicedeployer A classe do implementador de serviços da Web é uma classe Javacustomizada para implementação de serviço da Web quando a classe doimplementador padrão não é usada.

mxe.int.uddiinqurl Representa a URL de consulta do registro UDDI de integração.

mxe.int.uddiname Representa a ID do usuário do registro UDDI de integração.

mxe.int.uddipassword Senha do registro UDDI de integração.

mxe.int.uddipuburl URL de publicação do registro UDDI de integração.

Integrando Dados a Aplicativos Externos 335

Page 342: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tabela 47. Propriedades de integração gerais (continuação)Propriedade Descrição Valor padrão

mxe.int.validatedbupdates Valida as atualizações do banco de dados concluídas por integração.Quando configurado como 1 (true), a exclusão de objetos de negócios,atributos, índices e relacionamentos por um usuário por meio doaplicativo de configuração de Banco de dados é validada com relação aoconteúdo de integração. A validação assegura que os dados excluídosnão sejam referenciados por um componente de integração. Se umareferência existir, o usuário não poderá concluir a ação de exclusão.

1

mxe.int.validatemmpackage Valida as atualizações do banco de dados Migration Manager porintegração.

0

mxe.int.verifywebappurl Verifica a URL do aplicativo da web quando arquivos de esquema estãosendo gerados.

1

mxe.int.webappurl Representa a URL de aplicativo da web de integração. Configure essapropriedade para conter o nome do host e o número da porta corretos.

http://localhost:9998/meaweb

mxe.int.wsdlcurrentschema Mostra a definição de esquema atual no WSDL. 1

mxe.int.wsdlincludesschema Inclui o esquema diretamente no WSDL. 1

mxe.int.wsdlnamespace Representa o namespace do WSDL de integração. http://www.ibm.com/maximo/wsdl

mxe.int.xmlnamespace Representa o namespace do XML de integração. http://www.ibm.com/maximo

mxe.int.binarytext Converter um valor de texto no valor codificado em base 64. 10

mxe.int.defaultaction A ação padrão para a importação do arquivo simples. Adic.Alt.

mxe.int.defaultoperation A operação padrão para a exportação do aplicativo. Sincronizar

mxe.int.dfltuser Representa o usuário de login padrão de Integração. mxintadm

mxe.int.doclink.maxfilesize Representa o tamanho máximo do arquivo (MB) para anexos incluídoscomo parte de uma mensagem de integração.

10

mxe.int.enabledatemillis Ativa datas com a parte de milissegundos. 0

mxe.int.expupdatesender Atualiza o campo SENDERSYSID no objeto principal durante aexportação de dados.

0

mxe.int.extracttrycount A Contagem de novas tentativas de extração de arquivo é o número devezes que uma mensagem de erro é tentada novamente durante aimportação de dados quando o gerenciamento de erro baseado emarquivo é usado.

0

mxe.int.flatfiledelimiter O delimitador de texto de arquivo simples de integração é o valor dodelimitador padrão usado para ativação de importação de aplicativo epara importação de dados.

,

mxe.int.flatfilenewline Retém caractere de nova linha em arquivos simples. Para campos, comodescrições, que podem conter caracteres de nova linha, os caracteres sãoretidos nas mensagens de integração quando o valor da propriedade for1 (true).

0

mxe.int.interactiveimport Executa a importação de aplicativos como interativa. 0

mxe.int.keyresponse Fornece conteúdo de resposta para mensagens de integração de entradapara todas as operações. Quando configurado para 1 (true), o conteúdoda resposta, que inclui os valores de chaves de objetos principais, éfornecido para todas as operações de serviço. Quando configurado para0 (falso), o conteúdo da resposta é fornecido somente para as operaçõesConsultar e Criar.

1

mxe.int.maxextractdocs Representa o número de documentos de erro que são gravados em cadaarquivo temporário quando um arquivo de extração está sendoconstruído.

1000

mxe.int.mdbdelay Representa o tempo de espera, em milissegundos, antes que umamensagem na fila de erros seja processada.

-1

mxe.int.propagateuser Propagar o usuário autenticado por meio de uma fila de entrada.Quando configurado como 1 (true), o usuário da mensagem deintegração é salvo com a mensagem da fila e usado durante oprocessamento da mensagem porque ele é processado a partir da filapara os objetos de negócios.

0

mxe.int.savemessage Indica a mensagem JMS salva. 0

mxe.int.setclobasaln Controla o truncamento dos caracteres que são enviados para as tabelasde interface.

0

mxe.int.textqualifier O qualificador de texto do arquivo simples é o valor padrão doqualificador de texto na ativação da importação de aplicativo e naimportação de dados.

"

mxe.int.updatecoafromglcomp Atualiza o Plano de Contas que contém um componente identificado.Quando configurado para 1 (true), o processamento dos dados docomponente contábil de entrada inicia atualizações relacionadas aquaisquer dados do plano de contas que façam referência aocomponente contábil.

1

mxe.int.usescientific Usa anotação científica para valores duplos. 1

mxe.int.validatexmltext Valida o valor do elemento XML para caracteres XML inválidos. Quandoconfigurado para 1 (true), uma mensagem de saída é validada paraassegurar que todos os dados da mensagem usem caracteres XMLválidos. Se mensagens contiverem caracteres inválidos, a operação parae nenhuma mensagem de saída é entregue.

0

mxe.int.whereclausepolicy Configura a política da cláusula where para uma consulta de integração. analisar

336 Integrando Dados a Aplicativos Externos

Page 343: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tabela 47. Propriedades de integração gerais (continuação)Propriedade Descrição Valor padrão

mxe.int.adminfromemail O endereço de email DE administração de integração, que é usado comoo endereço de email De, quando a integração inicia um email. Deve serum formato de endereço de email válido, como [email protected].

mxe.int.admintoemail O endereço de email PARA administração de integração, que é usadocomo o endereço de email Para, quando a integração inicia um email.Deve ser um formato de endereço de email válido, [email protected]. É possível fornecer mais de um endereço de email emuma lista separada por vírgula.

Tabela 48. Propriedades de integração gerais.

Propriedade Descrição Valor padrãoQuem pode editar apropriedade?

mxe.int.containerdeploy

Implementar serviços da Web para o contêiner doservidor de aplicativos. Quando configurado para 0(falso), os serviços da Web são implementados nocontêiner do produto.

0 Administrador global

mxe.int.credentialmapperclassname

O nome de classe do mapeador de credenciais é umarquivo de classe que pode ser usado para mapearinformações de credenciais quando um módulo deintegração é implementado.

Administrador global

mxe.int.genboolasbool

Gerar booleano como booleano de esquema.1 Administrador global

mxe.int.globaldir

Especifica o Diretório global de integração.1 Administrador global

mxe.int.queueusercachesize

Número de usuários que são armazenados em cache paramensagens da fila de entrada.

10 Administrador global

mxe.int.resolveschema

Resolve todas as inclusões do esquema para conterdefinição de esquema sequencial.

1 Administrador global

mxe.int.servicedeployer

A classe do implementador de serviços da Web é umaclasse Java customizada para implementação de serviçoda Web quando a classe do implementador padrão não éusada.

Administrador global

mxe.int.uddiinqurl

Representa a URL de consulta do registro UDDI deintegração.

Administrador global

mxe.int.uddiname

Representa a ID do usuário do registro UDDI deintegração.

Administrador global

mxe.int.uddipassword

Senha do registro UDDI de integração.Administrador global

mxe.int.uddipuburl

URL de publicação do registro UDDI de integração.Administrador global

mxe.int.validatedbupdates

Valida as atualizações do banco de dados concluídas porintegração. Quando configurado como 1 (true), a exclusãode objetos de negócios, atributos, índices erelacionamentos por um usuário por meio do aplicativode configuração de Banco de dados é validada comrelação ao conteúdo de integração. A validação asseguraque os dados excluídos não sejam referenciados por umcomponente de integração. Se uma referência existir, ousuário não poderá concluir a ação de exclusão.

1 Administrador global

mxe.int.verifywebappurl

Verifica a URL do aplicativo da web quando arquivos deesquema estão sendo gerados.

1 Administrador global

mxe.int.webappurl

Representa a URL de aplicativo da web de integração.Configure essa propriedade para conter o nome do host eo número da porta corretos.

http://localhost:9998/meaweb Administrador global

mxe.int.wsdlcurrentschema

Mostra a definição de esquema atual no WSDL.1 Administrador global

mxe.int.wsdlincludesschema

Inclui o esquema diretamente no WSDL.1 Administrador global

mxe.int.wsdlnamespace

Representa o namespace do WSDL de integração.http://www.ibm.com/maximo/wsdl Administrador global

mxe.int.xmlnamespace

Representa o namespace do XML de integração.http://www.ibm.com/maximo Administrador global

Integrando Dados a Aplicativos Externos 337

Page 344: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tabela 48. Propriedades de integração gerais (continuação).

Propriedade Descrição Valor padrãoQuem pode editar apropriedade?

mxe.int.binarytext

Converter um valor de texto no valor codificado em base64.

10 Administrador Global,administrador de locatário

mxe.int.defaultaction

A ação padrão para a importação do arquivo simples.Adic.Alt. Administrador Global,

administrador de locatário

mxe.int.defaultoperation

A operação padrão para a exportação do aplicativo.Sincronizar Administrador Global,

administrador de locatário

mxe.int.dfltuser

Representa o usuário de login padrão de Integração.mxintadm Administrador Global,

administrador de locatário

mxe.int.doclink.maxfilesize

Representa o tamanho máximo do arquivo (MB) paraanexos incluídos como parte de uma mensagem deintegração.

10 Administrador Global,administrador de locatário

mxe.int.enabledatemillis

Ativa datas com a parte de milissegundos.0 Administrador Global,

administrador de locatário

mxe.int.expupdatesender

Atualiza o campo SENDERSYSID no objeto principaldurante a exportação de dados.

0 Administrador Global,administrador de locatário

mxe.int.extracttrycount

A Contagem de novas tentativas de extração de arquivo éo número de vezes que uma mensagem de erro é tentadanovamente durante a importação de dados quando ogerenciamento de erro baseado em arquivo é usado.

0 Administrador Global,administrador de locatário

mxe.int.flatfiledelimiter

O delimitador de texto de arquivo simples de integração éo valor do delimitador padrão usado para ativação deimportação de aplicativo e para importação de dados.

, Administrador Global,administrador de locatário

mxe.int.flatfilenewline

Retém caractere de nova linha em arquivos simples. Paracampos, como descrições, que podem conter caracteres denova linha, os caracteres são retidos nas mensagens deintegração quando o valor da propriedade for 1(verdadeiro).

0 Administrador Global,administrador de locatário

mxe.int.interactiveimport

Executa a importação de aplicativos como interativa.0 Administrador Global,

administrador de locatário

mxe.int.keyresponse

Fornece conteúdo de resposta para mensagens deintegração de entrada para todas as operações. Quandoconfigurado para 1 (true), o conteúdo da resposta, queinclui os valores de chaves de objetos principais, éfornecido para todas as operações de serviço. Quandoconfigurado para 0 (falso), o conteúdo da resposta éfornecido somente para as operações Consultar e Criar.

1 Administrador Global,administrador de locatário

mxe.int.maxextractdocs

Representa o número de documentos de erro que sãogravados em cada arquivo temporário quando umarquivo de extração está sendo construído.

1000 Administrador Global,administrador de locatário

mxe.int.mdbdelay

Representa o tempo de espera, em milissegundos, antesque uma mensagem na fila de erros seja processada.

-1 Administrador Global,administrador de locatário

mxe.int.propagateuser

Propagar o usuário autenticado por meio de uma fila deentrada. Quando configurado como 1 (true), o usuário damensagem de integração é salvo com a mensagem da filae usado durante o processamento da mensagem porqueele é processado a partir da fila para os objetos denegócios.

0 Administrador Global,administrador de locatário

mxe.int.savemessage

Indica a mensagem JMS salva.0 Administrador Global,

administrador de locatário

mxe.int.setclobasaln

Controla o truncamento dos caracteres que são enviadospara as tabelas de interface.

0 Administrador Global,administrador de locatário

mxe.int.textqualifier

O qualificador de texto do arquivo simples é o valorpadrão do qualificador de texto na ativação daimportação de aplicativo e na importação de dados.

" Administrador Global,administrador de locatário

mxe.int.updatecoafromglcomp

Atualiza o Plano de Contas que contém um componenteidentificado. Quando configurado para 1 (verdadeiro), oprocessamento dos dados do componente contábil deentrada inicia atualizações relacionadas a quaisquer dadosdo plano de contas que façam referência ao componentecontábil.

1 Administrador Global,administrador de locatário

338 Integrando Dados a Aplicativos Externos

Page 345: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tabela 48. Propriedades de integração gerais (continuação).

Propriedade Descrição Valor padrãoQuem pode editar apropriedade?

mxe.int.usescientific

Usa anotação científica para valores duplos.1 Administrador Global,

administrador de locatário

mxe.int.validatexmltext

Valida o valor do elemento XML para caracteres XMLinválidos. Quando configurado para 1 (verdadeiro), umamensagem de saída é validada para assegurar que todosos dados da mensagem usem caracteres XML válidos. Semensagens contiverem caracteres inválidos, a operaçãopara e nenhuma mensagem de saída é entregue.

0 Administrador Global,administrador de locatário

mxe.int.whereclausepolicy

Configura a política da cláusula where para uma consultade integração.

analisar Administrador Global,administrador de locatário

mxe.int.adminfromemail

O endereço de email DE administração de integração, queé usado como o endereço de email De, quando aintegração inicia um email. Deve ser um formato deendereço de email válido, como [email protected].

Administrador do locatário

mxe.int.admintoemail

O endereço de email PARA administração de integração,que é usado como o endereço de email Para, quando aintegração inicia um email. Deve ser um formato deendereço de email válido, como [email protected]. Épossível fornecer mais de um endereço de email em umalista separada por vírgula.

Administrador do locatário

Propriedades de integração do REST

Para ver uma lista de propriedades de integração da API REST, especifiquemxe.rest como um termo de filtro no aplicativo Propriedades do sistema. Parapropriedades booleanas (true/false), um valor igual a 0 significa false e um valorigual a 1 significa true.

Tabela 49. Propriedades de integração de API RESTPropriedade Descrição Valor padrão

mxe.rest.format.json.mimetypes Os tipos MIME suportados pelo REST paraJSON.

aplicativo/json

mxe.rest.format.xml.mimetypes Os tipos MIME suportados pelo REST paraJSON.

aplicativo/xml,texto/xml

mxe.rest.handler.mbo O manipulador de recursos de MBO doREST.

com.ibm.tivoli.maximo.rest.MboResourceRequestHandler

mxe.rest.handler.os O manipulador de recursos de estrutura deobjeto REST.

com.ibm.tivoli.maximo.rest.OSResourceRequestHandler

mxe.rest.handler.ss O manipulador de recursos de serviçopadrão do REST.

com.ibm.tivoli.maximo.rest.MaxServiceResourceRequestHandler

mxe.rest.serializer.mbo.imglib.image

O serializador REST para imagelib MBOpara o formato de imagem.

com.ibm.tivoli.maximo.rest.ImageLibSerializer

mxe.rest.serializer.mbo.json O serializador REST para MBO para oformato JSON.

com.ibm.tivoli.maximo.rest.MboJSONSerializer

mxe.rest.serializer.mbo.xml O serializador REST para MBO para oformato XML.

com.ibm.tivoli.maximo.rest.MboXMLSerializer

mxe.rest.serializer.os.json O serializador REST para estruturas deobjeto para o formato JSON.

com.ibm.tivoli.maximo.rest.OSJSONSerializer

mxe.rest.serializer.os.xml O serializador REST para estruturas deobjeto para formatos XML.

com.ibm.tivoli.maximo.rest.OSXMLSerializer

mxe.rest.serializer.ss.json O serializador REST para serviços padrãopara o formato JSON.

com.ibm.tivoli.maximo.rest.ServiceMethodResponseJSONSerializer

mxe.rest.serializer.ss.xml O serializador REST para serviços padrãopara o formato xml.

com.ibm.tivoli.maximo.rest.ServiceMethodResponseXMLSerializer

mxe.rest.webappurl Autenticação de token na URL do aplicativoda web.

mxe.rest.mbo.blockaccess Bloqueia acesso à lista separada por vírgulade MBOs.

mxe.rest.mbo.defaultformat O formato padrão do REST para todos osMBOs.

xml

mxe.rest.mbo.imglib.defaultformat O formato padrão do REST para o MBOimglib.

imagem

mxe.rest.os.blockaccess Bloqueia o acesso à lista separada deestruturas de objeto.

10

Integrando Dados a Aplicativos Externos 339

Page 346: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tabela 49. Propriedades de integração de API REST (continuação)Propriedade Descrição Valor padrão

mxe.rest.os.defaultformat O formato padrão do REST para todas asestruturas de objeto.

xml

mxe.rest.ss.defaultformat O formato REST padrão para todas asrespostas do serviço padrão

xml

mxe.rest.supportedformats Os formatos suportados pelo REST parauma resposta.

xmljsonimagem

mxe.rest.whereclausepolicy Configura a política da cláusula where paraconsulta REST.

analisar

Propriedades de integração de OSLC

Para ver uma lista das propriedades de integração do OSLC, especifique mxe.oslccomo um termo de filtro no aplicativo Propriedades do sistema. Para propriedadesbooleanas (true/false), um valor igual a 0 significa false e um valor igual a 1significa true.

Tabela 50. Propriedades de integração de OSLCPropriedade Descrição Valor padrão

mxe.oslc.dfltconsumerversion A versão do OSLC padrão que o consumidor usa. 2

mxe.oslc.dfltversion A versão do OSLC padrão para um provedor OSLC. 2

mxe.oslc.enableprovider Ativa o provedor OSLC. 1

mxe.oslc.idleexpiry Indica o tempo de validação inativo. 300

mxe.oslc.webappurl A URL pública do provedor. http://localhost/maximo/oslc/

mxe.oslc.collectioncount Inclui a contagem total na coleção de OSLC. 0

mxe.oslc.defaultep O Terminal OSLC padrão. OSLCDEFAULT

mxe.oslc.defaultformat O formato padrão para OSLC. oslcjson

mxe.oslc.errorresponse O formato de resposta de erro de OSLC. 1

mxe.oslc.preferproviderdesc Prefere a descrição de provedor OSLC para URLsreconciliadas de registro de recurso

falso

mxe.oslc.prefersmallpreview Prefere a visualização pequena do consumidor de OSLC. falso

mxe.oslc.prettyjson JSON com impressão elegante. 0

mxe.oslc.prettyrdf RDF com impressão elegante. 0

mxe.oslc.prqueryep O terminal de consulta de registro do Provedor. PROVIDERREGISTRY

mxe.oslc.prcreateep Representa o Terminal de Criação de Registro doProvedor.

XML de IntegraçãoA maioria das mensagens XML de integração é baseada em uma estrutura deobjeto e uma operação que um canal ou serviço executa. Serviços padrão, noentanto, não suportam estruturas de objeto e esquemas XML predefinidos sãousados para construir essas mensagens XML.

Visão geralAo configurar estruturas de objetos, a estrutura de integração especifica umesquema XML apropriado que define o conteúdo e a estrutura de mensagens deintegração.

Conteúdo da Mensagem

Os canais e serviços a seguir podem ser usados para mensagens XML com base emuma estrutura de objeto:v Canal de chamadav Canal de publicaçãov Serviço Corporativov Serviço de estrutura de objeto

340 Integrando Dados a Aplicativos Externos

Page 347: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

As operações a seguir são suportadas:v Criarv Exclusãov Chamarv Publicarv Consultav Sincronizarv Atualizar

Os valores de operação fazem distinção entre maiúsculas e minúsculas.

Estrutura da Mensagem

O formato padrão para uma mensagem XML de integração começa com umelemento raiz que contém um elemento de estrutura de objeto. O elemento deestrutura de objeto contém elementos para o objeto principal e seus campos e paraquaisquer objetos filhos definidos para a estrutura de objeto. O exemplo a seguir ébaseado na estrutura de objeto PERSON, onde o objeto principal e seus camposprecedem objetos filhos e seus campos.<?xml version="1.0" encoding="UTF-8"?><max:SyncMXPERSON xmlns:max="http://www.ibm.com/maximo"> (Rootelement)

<max:MXPERSONSet> (Sets the object structure element)<max:PERSON> (Object element for primary object)

<max:PERSONID>Value</max:PERSONID> (Object fieldelement)

<max:EMPLOYEETYPE>Value</max:EMPLOYEETYPE> (Objectfield element)...

<max:PHONE> (Child object element)<max:PHONENUM>Value</max:PHONENUM> (Child object

field element)<max:TYPE>Value</max:TYPE> (Child object field

element)</max:PHONE><max:EMAIL> (Child object element)

<max:EMAILADDRESS>New value toupdate</max:EMAILADDRESS>

<max:TYPE>Value</max:TYPE> (Child object fieldelement)

</max:EMAIL>...

</max:PERSON></max:MXPERSONSet>

</max:SyncMXPERSON>

O nome do elemento-raiz é uma concatenação da operação especificada para ocanal ou serviço e o nome da estrutura de objeto. Neste exemplo, o elemento-raizSyncMXPERSON combina a operação Sync e a estrutura de objeto MXPERSON.

Cada elemento pode conter um ou mais atributos. Nessa mensagem XML deexemplo, o elemento-raiz inclui o atributo namespace.

Geração de Esquema

Para gerar o esquema e visualizar o XML gerado, filtre um registro específico eselecione a ação Gerar Esquema/Visualizar XML em qualquer um dos aplicativos aseguir:v Serviços Corporativosv Canais de Chamadav Estruturas de Objetov Publicar Canaisv Biblioteca de Serviços da Web

Integrando Dados a Aplicativos Externos 341

Page 348: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Estrutura XMLUma mensagem XML de integração típica tem um elemento-raiz, um elemento deestrutura de objeto e elementos para os objetos definidos para a estrutura deobjeto. Elementos de objeto contêm elementos para campos de objetos e elementospodem conter um ou mais atributos. Os nomes e valores de atributos fazemdistinção entre maiúsculas e minúsculas.

Elemento-raiz e Atributos:

O elemento-raiz de uma mensagem XML é baseada em uma estrutura de objeto euma operação especificada para o canal ou serviço usado para a comunicação. Oelemento-raiz pode conter um ou mais atributos.

A tabela a seguir mostra os atributos que podem se aplicar a elementos-raiz. Osnomes e valores de atributos fazem distinção entre maiúsculas e minúsculas. Todosos atributos são opcionais.

Atributo Descrição Tipo Aplicável a

baselanguage O idioma de base no qualos valores de conteúdo sãoaplicados.

sequência Todas as operações deentrada e saída

creationDateTime Data e hora quando oconteúdo é gerado.

dateTime Todas as operações deentrada e saída

maximoVersion A versão principal, a versãosecundária, a construção e aconstrução do banco dedados geradas para todoXML publicado.

MaximoVersionType Todas as operações deentrada e saída

messageID Identificador exclusivogerado para todas asmensagens.

sequência Todas as operações deentrada e saída

transLanguage O idioma no qual osvalores para camposativados para diversosidiomas são fornecidos.

sequência Todas as operações deentrada e saída

evento A origem de umamensagem XML de saída.Valores válidos são:

v 0 (falso), indica que amensagem é gerada pelorecurso de exportação dedados.

v 1 (true), indica que amensagem é gerada porum listener de evento deintegração de saída (ouseja, a entrada de dadosem um aplicativo).

eventType Todas as operações de saída

342 Integrando Dados a Aplicativos Externos

Page 349: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Atributo Descrição Tipo Aplicável a

uniqueResult Especifica se uma consultaespera um registro oudiversos registros em umaresposta. Se o valor for 0 ouo atributo não forespecificado, a consultapode retornar diversosregistros. Se o valor for 1, aconsulta pode retornar umúnico registro somente e,caso contrário, ocorre umerro.

Booleano Consultas (entrada)

maxItems Se uma consulta puderretornar diversos registros,esse atributo limita onúmero de registros a serretornado de uma vez. Seesse atributo não forespecificado, a respostacontém todo o conjunto deresultados.

positiveInteger Consultas (entrada)

rsStart Especifica o primeiroregistro a ser retornado naresposta. Se nãoespecificado, a respostainicia com o primeiroregistro no conjunto deresultados. Se o número deresultados no conjunto deresultados for inferior aovalor de rsStart, a respostanão retorna nenhumregistro.

Se um valor de maxItemsfor especificado, a respostaretorna o número deregistros especificado,começando pelo valor dersStart, se um forconfigurado.

Por exemplo, semaxItems=10 e rsStart nãofor especificado, a respostaretorna resultados 1 a 10.Para receber resultados 11 a20, reenvie a consulta comrsStart=11.

integer Consultas (entrada)

Integrando Dados a Aplicativos Externos 343

Page 350: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Atributo Descrição Tipo Aplicável a

rsStart Esse valor corresponde ovalor de rsStart naconsulta correspondente.

Se a consulta contiver umvalor de maxItems, o valorde rsStart em solicitaçõespara registros adicionais érsStart + rsCount + 1.

Se esse atributo não forespecificado, a respostacomeça com o primeiroregistro no conjunto deresultados e inclui onúmero de registrosespecificado pelo atributorsCount.

integer Respostas (saída)

rsCount O número de registrosretornados em umamensagem. Se a consultaoriginal especificar umvalor de maxItems, o valorde rsStart para asolicitação subsequentepara registros adicionais érsStart + rsCount + 1.

integer Respostas (saída)

rsTotal O número total de registrosno conjunto de resultados.Se a consulta nãoespecificar um valor demaxItems, o valor dersTotal é o mesmo que ovalor de rsCount.

integer Respostas (saída)

Elemento de Estrutura de Objeto:

O elemento de estrutura de objeto contém um elemento para o objeto principal eelementos para quaisquer objetos filhos definidos para a estrutura de objeto. Esseelemento pode suportar diversas ocorrências do objeto principal e seusobjetos-filhos.

O elemento de objeto principal contém elementos para cada campo de objeto.Elementos de objetos filhos, contendo elementos para seus campos de objetos, sãolistados após o objeto principal.

Elementos e Atributos de Objeto:

Um elemento de objeto contém elementos para os campos de objetos. Cadaelemento de objeto pode conter um ou mais atributos.

A tabela a seguir lista os atributos que podem se aplicar a um elemento de objeto.Os nomes e valores de atributos fazem distinção entre maiúsculas e minúsculas.Todos os atributos são opcionais.

344 Integrando Dados a Aplicativos Externos

Page 351: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Atributo Descrição Tipo Aplicável a

action Esse valor é derivado doatributo de ação do objetoprincipal dentro damensagem. Para mensagensde saída, esse atributo ésomente para propósitosinformativos.

Para mensagens de entrada,a lógica de processamentosomente usará esse valorpara a operaçãoSincronizar. Para outrasoperações, esse valor éignorado.

ProcessingActionType Todas as operações deentrada e saída

relacionamento Identifica o relacionamentoque o sistema usa pararecuperar o objeto usando oobjeto-pai.

sequência Todas as operações deentrada e saída

deleteForInsert Identifica um objeto-filhoque deve ser excluído antesda reinserção. Esse atributosomente se aplicará amensagens de entradaquando a operação forSincronizar e a ação forAlterar.

sequência Todas as operações deentrada e saída

Referências relacionadas:“Atributos de Ação” na página 347Um atributo de ação é um atributo opcional que especifica para o sistema derecebimento o tipo de processamento a executar em uma mensagem XML.Atributos de ação se aplicam a mensagens XML de entrada que sincronizamdados, usando a operação Sync, e a mensagens XML de saída que usam canais depublicação.

Elementos e Atributos de Campo do Objeto:

Se o mesmo campo estiver incluído na chave para um objeto-pai e um objeto-filhoem uma estrutura de objeto, o campo está contido somente no objeto-pai. Cadacampo do objeto pode incluir um ou mais atributos.

Atributo de Campo Alterado:

Um valor booleano pode ser configurado para 1 (Verdadeiro) nas mensagens XMLde saída para indicar que o valor do campo foi alterado. O atributo alterado não éconfigurado em XML gerado pelo recurso de exportação de dados.

O atributo alterado é configurado nas mensagens XML de saída somente quando atransação satisfizer todas as condições a seguir:v Uma transação de saída, baseada em evento cria a mensagem.v O atributo de ação Alterar ou o atributo de ação Substituir é configurado no

objeto principal.v A estrutura de objeto de envio tem o mesmo relacionamento de objeto pai-filho

que o aplicativo de recebimento.

Integrando Dados a Aplicativos Externos 345

Page 352: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

No exemplo a seguir, o atributo de ação Substituir é configurado para o objeto paie o atributo alterado é configurado para 1 para o campo ADDRESSLINE.<MXPERSON>

<PERSON action="Replace"><PERSONID>123</PERSONID><ADDRESSLINE1 changed="1" >1 Main Street</ADDRESSLINE1>

Para campos do tipo contábil, o atributo alterado sempre é configurado noelemento de nome, que é GLDEBITACCT no exemplo a seguir:<GLDEBITACCT changed="1">

<VALUE>6600-800-SAF</VALUE><GLCOMP glorder="0">6600</GLCOMP><GLCOMP glorder="1">800</GLCOMP><GLCOMP glorder="2">SAF</GLCOMP>

</GLDEBITACCT>

Atributo de Campo Contábil:

O atributo glorder é configurado nos elementos GLCOMP nos campos queidentificam contas contábeis, como o campo GLDEBITACCT. Cada elementoGLCOMP contém parte do número da conta e o atributo glorder identifica comocombinar esses elementos para construir o valor contábil.

Nas mensagens XML de saída, o valor de um campo do tipo contábil, incluindodelimitadores, é configurado no elemento filho VALUE dentro do campo. Oscomponentes do valor, com base na definição de banco de dados dos componentes,são incluídos em elementos GLCOMP. O atributo glorder de cada elementoGLCOMP identifica a ordem do componente, começando por zero 0 (zero) até nomáximo 20. No exemplo a seguir, o número da conta tem três componentescontábeis<GLDEBITACCT>

<VALUE>6600-800-SAF</VALUE><GLCOMP glorder="0">6600</GLCOMP><GLCOMP glorder="1">800</GLCOMP><GLCOMP glorder="2">SAF</GLCOMP>

</GLBDEBITACCT>

As mensagens XML de entrada podem configurar um número de conta contábil noelemento VALUE ou em elementos GLCOMP com atributos glorder associados. Sea mensagem incluir elementos GLCOMP, o número da conta é recriado com basenos delimitadores definidos na tabela GLCONFIGURE. Se ambos os elementosVALUE e GLCOMP forem incluídos na mensagem, o elemento VALUE é usado eos elementos GLCOMP são ignorados.

Atributo de Campo Traduzível:

O atributo langenabled é configurado para 1 (true) em cada campo que pode sertraduzido nas mensagens XML de saída.

Atributo de Campo Sinônimo:

Para mensagens de saída, campos associados a um domínio de tipo de sinônimoespecificam o valor interno correspondente usando o atributo maxvalue. Esse valorestá disponível para customização ou processamento de saída, conformenecessário. O atributo é somente informativo e não é usado para processamento demensagens de entrada.

No exemplo a seguir, um maxvalue igual a NOLOT é configurado para o campoLOTTYPE.<MXITEM><ITEM><ITEMNUM>560-00</ITEMNUM><DESCRIPTION>Tubing, Copper-1 In ID X .030 In Wall Test</DESCRIPTION><LOTTYPE maxvalue="NOLOT">NOLOT</LOTTYPE>

346 Integrando Dados a Aplicativos Externos

Page 353: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Atributo de Campo Criptografado:

Quando os dados de uma campo, como um campo de senha, são criptografados, oatributo booleano, maxencrypted, é configurado para 1 (true). Sistemas externosusam esse valor para determinarem se devem aplicar um processo dedecriptografia às informações do campo.

O exemplo a seguir usa a estrutura de objeto MXPERSUSER para fornecerinformações sobre o usuário, incluindo uma senha, e o atributo maxencrypted éconfigurado no campo PASSWORD no objeto MAXUSER.<MXPERUSER><PERSON action="Replace"><PERSONID>123</PERSONID><MAXUSER><MAXUSERID>10</MAXUSERID><PASSWORD maxencrypted=”1”> dmFzdG8=</PASSWORD><MAXUSER><PERSON><MXPERUSER>

Atributos de Ação:

Um atributo de ação é um atributo opcional que especifica para o sistema derecebimento o tipo de processamento a executar em uma mensagem XML.Atributos de ação se aplicam a mensagens XML de entrada que sincronizamdados, usando a operação Sync, e a mensagens XML de saída que usam canais depublicação.

A descrição a seguir descreve o processamento para mensagens de entrada usandoa operação Sync. O sistema externo deve avaliar o código de ação que é fornecidocom mensagens de saída e determinar o processamento apropriado para esseaplicativo externo.

Os atributos de ação podem se aplicar ao conteúdo do objeto-pai e objetos filhosem uma estrutura de objeto. Um atributo de ação aplicado ao objeto-pai especificaa ação de processamento geral para registros pai e filhos. Aplicado a umobjeto-filho, uma ação indica processamento que é específico desse registro. Umatributo fornecido para um objeto-filho é avaliado somente quando o objetoprincipal tiver um valor de ação igual a Alterar. Quando a ação para o objetoprincipal não for Alterar, ações no objeto-filho são ignoradas.

As regras de negócios têm prioridade com relação a atributos de ação. Se umaregra de negócios proibir uma ação especificada em uma mensagem XML deentrada, um erro ocorre. Por exemplo, uma transação de entrada que tentaatualizar uma ordem de compra fechada gera um erro.

Se uma mensagem XML contiver diversas instâncias de uma estrutura de objeto,cada instância da estrutura de objeto pode especificar um atributo de açãodiferente. No exemplo a seguir, o registro COMPANIES tem diversos registrosCOMPCONTACT filhos e cada instância tem seu próprio atributo de ação.<MXVENDOR>

<COMPANIES action="Change"><COMPANY>TEST4

<NAME>test</NAME><ADDRESS1>100 Main Str</ADDRESS1><COMPCONTACT action="Add"><NAME>SMITH</NAME><TITLE>MANAGER</TITLE>

</COMPCONTACT><COMPCONTACT action="Change"><NAME>JONES</NAME><TITLE>ENGINEER</TITLE>

</COMPCONTACT></COMPANY>

</COMPANIES></MXVENDOR>

Integrando Dados a Aplicativos Externos 347

Page 354: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

O atributo de ação pode ter os valores a seguir, que fazem distinção entremaiúsculas e minúsculas:v Incluirv Exclusãov Alterarv Substituirv Adic.Alt.v Nulo

Valor Descrição

Incluir Incluir registros no banco de dados no sistema de recebimento.

Exclusão Excluir registros do banco de dados no sistema de recebimento.

Alterar Atualizar registros existentes no banco de dados no sistema derecebimento.

Substituir Incluir registros ou substituir registros no sistema de recebimento,dependendo de se o registro principal existe no banco de dados.

Adic.Alt. Incluir ou atualizar registros existentes no banco de dados nosistema de recebimento.

Nulo Incluir registros ou substituir registros no sistema de recebimento,dependendo de se o registro principal existe no banco de dados.

Processamento de Ação Padrão

Quando uma mensagem XML de entrada não contém um atributo de ação, amensagem é processada da seguinte forma:v Se o registro principal não existir no banco de dados, a ação Incluir é aplicada.v Se o registro principal existir no banco de dados, a ação Substituir é aplicada.

Para uma mensagem originada de um arquivo simples ou uma tabela de interface,somente é possível fornecer um código de ação para o objeto primário. Não hánenhum suporte para fornecer códigos de ação para objetos-filhos.

Ação Incluir

A ação Incluir inclui registros no banco de dados no sistema de recebimento.

Para transações de entrada, ocorre um erro se os dados já existirem. Se a açãoIncluir for configurada em um objeto pai, a ação é estendida para objetos filhos enão é necessário especificar a ação no nível do objeto filho. As transações de saídacontêm uma ação Incluir quando a inserção de um objeto gera a transação.

Ação Excluir

A ação Excluir exclui registros do banco de dados no sistema de recebimento.

Se a ação Excluir for configurada em um objeto pai, a ação é estendida paraobjetos filhos e não é necessário especificar a ação no nível do objeto filho.

Se a ação Excluir for configurada no objeto pai na mensagem XML de saída quenão inclui os objetos filhos, o sistema de recebimento é responsável por identificare excluir objetos filhos.

Se a ação Excluir for configurada no objeto pai em uma mensagem XML deentrada, a estrutura de integração exclui os objetos filhos relacionados. Se o objetopai não existir no banco de dados, nenhum erro é relatado para o sistema deenvio.

348 Integrando Dados a Aplicativos Externos

Page 355: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Ação Alterar

A ação Alterar atualiza registros existentes no banco de dados no sistema derecebimento.

Uma ação Alterar no objeto principal em uma mensagem XML indica que amensagem contém um ou mais registros pai ou filho incluídos, alterados ouexcluídos. A mensagem sempre contém o pai de qualquer registro filho a seratualizado, mesmo se o pai estiver inalterado.

A ação Alterar no objeto principal é o único caso em que é possível fornecer umaação a um objeto-filho. Quando o objeto principal de uma mensagem XML deentrada ou saída contiver uma ação Alterar, cada objeto filho da mensagem podeconter uma das seguintes ações.

Atributo de ação de objeto-filho Ação processamento

Incluir Incluir o registro filho. Se o registro filho já existir, um erro égerado.

Exclusão Excluir o registro filho. Se o registro filho não existir, um erro égerado.

Alterar Atualizar o registro filho. Se o registro filho já existir, um erro égerado.

Nulo ou nenhuma ação especificada Se o registro filho existir, atualize-o. Se o registro filho não existir,inclua-o.

Ação Substituir

A ação Substituir atualiza registros existentes no banco de dados no sistema derecebimento.

Uma ação Substituir no objeto principal em uma mensagem XML indica que amensagem contém um conjunto completo de objetos que representa o resultado deinclusões, mudanças e exclusões na estrutura de objeto. Esses objetos substituem osregistros do banco de dados existentes e qualquer registro que não seja referido namensagem XML é excluído.

Para processamento de saída, a ação Substituir sempre é usada, não a ação Alterar.

Para processamento de entrada, qualquer registro filho existente que não sejaexplicitamente mencionado na mensagem é excluído. Sistemas externos tambémdevem excluir quaisquer registros filhos não incluídos na mensagem XML.

A ação Substituir pode se aplicar somente ao objeto principal de uma mensagemXML. Se um registro filho de uma mensagem XML de entrada contiver uma açãoSubstituir quando o objeto principal contiver uma ação Alterar, a mensagem nãoserá processada. Se um registro no nível filho contiver uma ação Substituir quandoo pai contiver qualquer ação diferente de Alterar, a ação no registro filho éignorada.

Ação Incluir/Alterar

A ação Incluir/Alterar inclui ou atualiza registros existentes no banco de dados nosistema de recebimento. A ação Incluir/Alterar é como a ação Substituir, excetopelo fato da ação Incluir/Alterar não se aplicar a objetos filhos.

Uma ação Incluir/Alterar no objeto principal inclui o registro principal e todos ossub-registros especificados na mensagem, se o registro principal não existir nobanco de dados. Se o registro principal existir, ele será atualizado e qualquer

Integrando Dados a Aplicativos Externos 349

Page 356: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

registro filho incluído na mensagem. Registros filhos existentes não especificadosna mensagem de entrada não são excluídos.

A ação Incluir/Alterar é útil quando uma estrutura de objeto inclui elementos quenão existem no sistema externo. Por exemplo, um sistema externo pode manterinformações do fornecedor, mas informações de contato são armazenadas somenteno banco de dados. Uma mensagem de entrada com um registro de fornecedorque tenha um valor de ação NULL exclui as informações de contatos do banco dedados. Se a ação estiver configurada para Incluir/Alterar para essa transação, asinformações de fornecedor são atualizadas e as informações de contatopermanecem as mesmas.

Comparação das Ações Alterar, Substituir e Incluir/Alterar

As ações Alterar, Substituir e Incluir/Alterar diferem nas informações que elasincluem na mensagem XML e no processamento que requerem do sistema derecebimento.

Combinações de Atributos de Ação

A tabela a seguir mostra as combinações de atributos de ação que é possível incluirem registros principal e filhos.

RegistroFilho Incluir Exclusão Alterar Substituir Adic.Alt.

NenhumValor Observações

RegistroPrincipal

Incluir N/A N/A N/A N/A N/A N/A Todos osvalores filhosignorados

Exclusão N/A N/A N/A N/A N/A N/A Todos osvalores filhosignorados

Alterar Sim Sim Sim Não Não Sim (inserir,atualizar)

Substituir eIncluir/Alterar nãopermitidasno nível dofilho

Substituir N/A N/A N/A N/A N/A N/A Todos osvalores filhosignorados

Adic.Alt. N/A N/A N/A N/A N/A N/A Todos osvalores filhosignorados

Nenhumvalor

N/A N/A N/A N/A N/A N/A Todos osvalores filhosignorados

Referências relacionadas:“Elementos e Atributos de Objeto” na página 344Um elemento de objeto contém elementos para os campos de objetos. Cadaelemento de objeto pode conter um ou mais atributos.

350 Integrando Dados a Aplicativos Externos

Page 357: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tipos de Valor do Campo:

A estrutura de integração especifica o comportamento do processo para os tipos edados diferentes usados para formatar valores de campo.

Colunas Booleanas

Em transações de entrada, um elemento que representa um campo booleano deveconter um valor igual a 0 (falso) ou 1 (true). Se o elemento não contiver um 0 ouum 1, um erro será gerado. Se o XML não incluir um elemento para um campobooleano, o valor do banco de dados correspondente é atualizado com o valorpadrão (0 ou 1) definido para essa coluna.

Campos Criptografados

Em transações de entrada, o atributo que representa o campo maxencrypted deveconter um valor 0 (false) ou 1 (true). Quando o valor de atributo for 1, umprocesso de decriptografia é aplicado aos dados recebidos. Quando o valor deatributo for 0, os dados recebidos não são decriptografados.

Se o atributo não contiver um 0 ou um 1, os dados recebidos não sãodecriptografados. Se o campo XML não incluir um elemento para um campocriptografado, os dados recebidos não são decriptografados.

Codificação de Caracteres

O XML de integração utiliza a codificação UTF-8. Se uma transação de entradaespecificar qualquer outra codificação, toda a mensagem deverá utilizar essacodificação. Se for encontrado um erro durante o processamento de uma transaçãode entrada que utiliza codificação diferente de UTF-8, todo o XML de erro gravadoserá codificado como UTF-8.<?xml version="1.0" encoding="ISO-8859-2"?>

Formato de Data

O XML de integração suporta o formato de data ISO 8601 a seguir:2011-04-06T10:11:58-05:00

Colunas Nulas

Se um elemento em uma transação de entrada não contiver nenhum valor, acoluna do banco de dados correspondente é atualizada com um valor nulo. Se oXML não incluir um elemento para um campo específico, esse campo não éatualizado no banco de dados.

Para dados de entrada originados de um arquivo simples ou uma tabela deinterface, é possível configurar um campo para nulo fornecendo ~NULL~ para ovalor do campo no arquivo simples ou na tabela de interface. O processamento deintegração cria uma tag vazia na mensagem XML correspondente para quaisquervalores ~NULL~ fornecidos. Esse recurso não suporta campos numéricos nem dedata de uma origem de tabela de interface.

Formato de Número

Independentemente da configuração do código de idioma do servidor deaplicativos ou do banco de dados, todos os campos decimais devem utilizar um

Integrando Dados a Aplicativos Externos 351

Page 358: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

ponto (.) como o marcador decimal. Não formate números à esquerda domarcador. Este formato aplica-se a dados de entrada e saída.

$ 1.738.593.64 deve estar no seguinte formato: 1738593,64

Esquemas XML de IntegraçãoEsquemas XML para canais e serviços, excluindo serviços padrão, são baseados naconfiguração dos objetos incluídos na estrutura de objeto. É possível geraresquemas nos aplicativos de integração.

Visão Geral de Esquemas XML:

Um esquema de estrutura de integração inclui um componente de esquemapredefinido para metadados, assim como componentes do esquema baseados emobjetos configurados, estruturas de objetos e serviços padrão

Esquemas podem ser gerados para suportar cenários de integração baseados emXML nos quais os componentes a seguir são usados:v Serviço de estrutura de objetov Canal de publicaçãov Canal de chamadav Serviço Corporativov Serviço padrão

Campos-chave

A anotação do esquema XML identifica os campos-chave para um serviço ou canalda definição de estrutura de objeto e as definições de dicionário de dados para oobjeto correspondente.

No exemplo a seguir, o elemento ITEMNUM é identificado como um campo-chaveno esquema para a estrutura de objeto MXITEM.<xsd:elementname="ITEMNUM" minOccurs="0" type="MXString">

<xsd:annotation><xsd:documentation>ITEMNUM is a key

field</xsd:documentation></xsd:annotation>

</xsd:element>

Validação de XML

Transações XML de entrada e saída não são validadas com relação ao esquemaXML correspondente. As regras de negócios de integração se aplicam a dados deentrada independentemente de validação de esquema. Para serviços de estruturade objeto e corporativos, a integração deve estar em conformidade com o formatodo esquema no ponto em que a mensagem é processada pela camada da estruturade objeto.

Propriedade Namespace

É possível alterar a designação de namespace XML atualizando a propriedademxe.int.xmlnamespace no aplicativo Propriedades do Sistema. O valor dapropriedade namespace padrão é http://www.ibm.com/maximo . Se a propriedadenamespace for alterada, o arquivo MXMeta.xsd é gerado novamente. Esse arquivocontém as informações do esquema de metadados que são usadas para construirtodos os outros esquemas. A estrutura de integração valida o namespace fornecidocom mensagens XML de entrada.

352 Integrando Dados a Aplicativos Externos

Page 359: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Geração de Esquema

Sempre que uma estrutura de objeto ou o dicionário de dados for alterado, vocêdeve gerar novamente os esquemas afetados. Você também deve gerar novamenteos esquemas após as mudanças a seguir:v Tornar um campo do banco de dados obrigatório ou opcionalv Alterar o tipo de dado de um campo do banco de dadosv Incluir ou remover campos de uma estrutura de objetov Alteração da estrutura de uma estrutura de objeto

Esquemas são gerados automaticamente quando um serviço da Web forimplementado.

É possível gerar esquemas manualmente selecionando um registro e selecionando aação Gerar Esquema/Visualizar XML nos seguintes aplicativos:v Serviços Corporativosv Canais de Chamadav Estruturas de Objetov Publicar Canaisv Biblioteca de Serviços da Web

Diretório e Arquivos de Esquema

Os arquivos de esquema gerados estão localizados nos subdiretórios relevantes nodiretório de esquema no servidor.

Grupo Subdiretório Descrição

Metadata <root>/schema/common/meta Arquivo de esquema de metadados,MXMeta.xsd

Estrutura de Objeto <root>/schema/common/mos Arquivos de esquema da estrutura deobjeto

Objeto <root>/schema/common/mbo Arquivos de esquema do objeto

Serviço <root>/schema/service Arquivos de esquema de serviçocorporativo e de serviço de estrutura deobjeto

Serviço padrão <root>/schema/service/ss Arquivos de esquema de serviço padrão

Estruturas de Esquema:

As estruturas de esquema incluem o componente de esquema Metadadospredefinido e componentes para objetos, estruturas de objetos, serviços e serviçospadrão, sendo que todos são gerados no momento da criação do esquema

Esquema de Metadados:

O arquivo MXMeta.xsd contém as informações de metadados usadas para construirtodos os outros esquemas. Não modifique o arquivo MXMeta.xsd, pois mudançaspodem resultar em esquemas incorretos e problemas com serviços da Web. Osistema gera esse esquema novamente quando alguém altera a propriedadeNamespace.

Além de conteúdo de dados, o arquivo de esquema de metadados adicional asseguintes informações adicionais sobre mensagens:v Grupos de atributos

Integrando Dados a Aplicativos Externos 353

Page 360: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

v Tipos de conteúdov Tipos de dados de consultav Tipos de dados de apoio

Grupos de atributos

A tabela a seguir lista atributos por grupo.

Grupo Atributos Aplica-se a

CommonContentGroup v baseLanguage

v creationDateTime

v maximoversion

v messageID

v transLanguage

O elemento-raiz de todos os tipos deesquemas de entrada e saída.

ObjectStructurePropertyGroup v ação

v relacionamento

v deleteForInsert

O elemento de objeto de todos ostipos de esquemas de entrada esaída.

PublishingContentGroup v evento O elemento-raiz de todos os tipos deesquemas de saída.

QueryContentGroup v maxItems

v rsStart

v uniqueResult

O elemento-raiz de todos os tipos deesquemas de entrada.

ResponseContentGroup v rsCount

v rsStart

v rsTotal

O elemento-raiz de todos os tipos deesquemas de saída de resposta.

Tipos de conteúdo

A tabela a seguir lista os tipos de conteúdo no esquema de metadados.

Tipo Descrição Atributos

MaximoVersionType Sequência concatenada que identifica:

v versão principal

v versão secundária

v construção

v construção de banco de dados

Identifica a versão do software

MXBooleanType Extensão de integer changed

MXDateTimeType Extensão de dateTime changed

MXDomainType Extensão de sequência; identifica oMaxvalue correspondente para umvalor de domínio.

changed

maxvalue

MXDoubleType Extensão de double changed

MXFloatType Extensão de float changed

354 Integrando Dados a Aplicativos Externos

Page 361: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Tipo Descrição Atributos

MXGLAccountType Tipo complexo com 2 valores,VALUE e GLCOMP; identificacomponentes contábeis individuais esua ordem sequencial para umaconta.

changed

MXGLComponentType Extensão de sequência; identifica aordem sequencial do componentecontábil dentro da estrutura do planode contas.

glorder

MXIntType Extensão de integer changed

MLLangStringType Extensão de MXString changed

languageEnabled

MXLongType Extensão de long changed

MXStringType Extensão de sequência changed

Tipos de Consultas

A tabela a seguir lista os tipos de consultas no esquema de metadados.

Tipo Descrição Atributo

MXBooleanQueryType Extensão de integer operator

MXDateTimeQueryType Extensão de dateTime operator

MXDomainQueryType Extensão de sequência operator

maxvalue

MXDoubleQueryType Extensão de double operator

MXFloatQueryType Extensão de float operator

MXGLAccountQueryType Tipo complexo com um valor igual aVALUE

operator

MXGLComponentQueryType Extensão de sequência operator

MXIntQueryType Extensão de integer operator

MXLongQueryType Extensão de long operator

MXStringQueryType Extensão de sequência operator

Tipos de Dados

A tabela a seguir lista os tipos de dados no esquema de metadados.

Tipo Descrição Valores Restritos

BooleanType Indica se o resultado de um testelógico é verdadeiro ou falso.

v 0 (falso)

v 1 (true)

ChangeIndicatorType Indica se um campo tem um novovalor.

Aplica-se somente a estruturas deobjeto geradas por um evento.

1 (true)

Integrando Dados a Aplicativos Externos 355

Page 362: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

EventType Indica se uma estrutura de objetopublicada é o resultado de umevento. Se o valor for 1, a estruturapublicada é o resultado de umevento.

EventType é uma extensão deBooleanType.

v 0 (falso)

v 1 (true)

ProcessingActionType Ações de processamento que osserviços de integração suportam.

v Incluir

v Alterar

v Substituir

v Exclusão

v Adic.Alt.

QueryOperatorType Identifica a ação Consultar porExemplo a ser executada no campocorrespondente.

v =

v !=

v &lt

v &lt;=

v &gt

v &gt;=

v SW

v EW

Esquemas de Estrutura de Objeto:

Os esquemas de estrutura de objeto definem o conteúdo de uma estrutura deobjeto. Cada estrutura de objeto tem seu próprio esquema que inclui todos oscampos persistentes e não persistentes definidos para cada objeto da estrutura. Osesquemas de estrutura de objeto são usados para definir tipos de entrada e saída enão são usados diretamente como entrada ou saída para qualquer serviço.

Nomes e Local de Arquivos

A convenção de nomenclatura para esquemas de estrutura de objeto é o nome daestrutura de objeto, por exemplo, MXPERSON.xsd. Todos os esquemas de estrutura deobjeto incluem o arquivo de esquema MXMeta.xsd. Os esquemas gerados estãolocalizados no diretório schema/common/mos.

Geração de Esquema

Ao gerar os componentes a seguir, os esquemas de estrutura de objeto são geradosnovamente:v O esquema de estrutura de objeto usando uma ação no aplicativo Estruturas de

Objetov O esquema de serviço corporativo, no qual a estrutura de objeto é referida pelo

serviçov O esquema de canal de publicação, no qual a estrutura de objeto é referida pelo

canal

Conteúdo da Estrutura de Objeto do Esquema

Um esquema de estrutura de objeto tem os seguintes elementos:v Objeto

356 Integrando Dados a Aplicativos Externos

Page 363: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

v Conjunto de objetosv Consulta de objeto

Por exemplo, o esquema para a estrutura de objeto MXPERSON tem os seguinteselementos:

Elemento Nome de elemento Tipo

Objeto MXPERSON MXPERSONType

Conjunto de objetos MXPERSONSet MXPERSONSetType

Consulta de objeto MXPERSONQuery MXPERSONQueryType

Conteúdo do Objeto do Esquema

O elemento de objeto tem o seguinte conteúdo:v O elemento MXPERSON tem um tipo MXPERSONType.v O MXPERSONType é um tipo complexo e tem o elemento PERSON, que tem

um tipo MXPERSON_PERSONType.v O tipo complexo MXPERSON_PERSONType tem elementos para todos os

atributos configurados do objeto PERSON e elementos para os objetos filhos naestrutura de objeto.

v Objetos adicionais no esquema têm um tipo complexo correspondente, como oMXPERSON_PERSONType, que define o objeto PERSON.

Elemento Tipo

PERSON (objeto principal) MXPERSON_PERSONType

PHONE (objeto-filho) MXPERSON_PHONEType

EMAIL (objeto-filho) MXPERSON_EMAILType

SMS (objeto-filho) MXPERSON_SMSType

O exemplo a seguir mostra a estrutura do XML correspondente:<MXPERSON>

<PERSON><PHONE></PHONE>

.

.

.<EMAIL></EMAIL>

.

.

.<SMS></SMS>

.

.

.</PERSON>

</MXPERSON>

Conteúdo do Conjunto de Objetos

Para o exemplo MXPERSON, o elemento MXPERSONSet substitui o elementoMXPERSON e MXPERSONSetType substitui o tipo complexo MXPERSONType.Todo o restante permanece igual. O elemento configura atos como um wrapperpara diversas ocorrências do objeto principal (MXPERSON) e seus objetos filhos.

Conteúdo da Consulta de Objetos

É possível usar elementos de consulta somente dentro do contexto de um esquemade nível de serviço.

O formato de conteúdo a seguir está no elemento de consulta de objetos:

Integrando Dados a Aplicativos Externos 357

Page 364: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

v O elemento MXPERSONQuery é do tipo MXPERSONQueryType.v O MXPERSONQueryType é um tipo complexo e tem elementos para todos os os

atributos configurados do objeto principal (PERSON) da estrutura de objeto.

A consulta de objetos e o conjunto de objetos diferem das seguintes maneiras:v O elemento de consulta inclui somente o objeto principal da estrutura.v O elemento de consulta não inclui colunas não persistentes.v O elemento de consulta pode incluir duas ocorrências dos elementos para

suportar uma consulta em um intervalo, como um intervalo de data.

Como a consulta inclui somente o objeto superior da estrutura, não é possível, porexemplo, consultar uma pessoa por número do telefone. O número do telefoneexiste no objeto filho PHONE.

Esquemas de Objetos:

Os esquemas de objetos definem o conteúdo de objetos. Cada objeto tem umesquema distinto, o que inclui todos os campos persistentes para um objetopersistente e todos os campos não persistentes para um objeto não persistente. Osesquemas de objetos são usados para definirem tipos de entrada e saída e não sãousados diretamente como entrada ou saída para qualquer serviço.

Nomes e Local de Arquivos

A convenção de nomenclatura para os esquemas de objetos é o nome do objeto,por exemplo, PERSON.xsd, e os arquivos estão localizados no diretórioschema/common/mbo.

Geração de Esquema

Arquivos de esquema de objeto são gerados quando os seguintes componentes sãogerados:v Um esquema de estrutura de objeto que contém o objetov Um serviço de estrutura de objeto ou um esquema de serviço corporativo que

faz referência a uma estrutura de objeto que inclui o objetov Um esquema de serviço padrão que contém o objeto

Todos os esquemas de objeto incluem o arquivo de esquema MXMeta.xsd.

Conteúdo de Esquema

O esquema tem os seguintes elementos (usando MXPERSON como um exemplo)

Elemento Tipo Comentários

PERSONMbo PERSONMboType Esse tipo contém uma instância doelemento PERSONMbo.

PERSONMboSet PERSONMboSetType Esse tipo contém diversas instâncias doelemento PERSONMbo.

358 Integrando Dados a Aplicativos Externos

Page 365: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Elemento Tipo Comentários

PERSONMboKey PERSONMboKeyType Esse tipo contém uma única instância doelemento PERSON que é PERSONKeyType.O PERSONKeyType contém o atributo queé a chave primária do objeto PERSON,PERSONID.

Se diversos atributos formarem a chaveprimária de um objeto, o objectKeyTypecontém os atributos que formam a chaveprimária.

Esse elemento é incluído na resposta deuma operação Create.

PERSONMboKeySet PERSONMboKeySetType Esse tipo contém diversas instâncias doelemento PERSON que é PERSONKeyType.

O PERSONKeyType contém o atributo queé a chave primária do objeto PERSON,PERSONID.

Se diversos atributos formarem a chaveprimária de um objeto, o objectKeyTypecontém os atributos que formam a chaveprimária.

Esse elemento é incluído na resposta deuma operação Create.

PERSONMboQuery PERSONMboQueryType Esse tipo contém duas instâncias doelemento PERSON. Duas instânciaspermitem que uma consulta especifiqueuma faixa, por exemplo, Data Inicial e DataFinal.

Mensagens com Diversos Substantivos:

Uma mensagem XML pode conter diversos substantivos.<MXPERSON>

<MXPERSONSET><PERSON>..<SMS></SMS></PERSON><PERSON>..<SMS></SMS></PERSON>

</MXPERSONSET></MXPERSON>

Esquemas de Nível de Serviço:

Os esquemas em nível de serviço se aplicam a serviços corporativos, a serviços deestrutura de objeto e a serviços padrão. O mesmo esquema descreve serviçoscorporativos e serviços de estrutura de objeto. Um esquema diferente descreve osserviços padrão.

Os serviços corporativos, serviços de estrutura de objeto e serviços padrão utilizamobjetos e estruturas de objeto como entrada e saída para as operações que elessuportam. Diversos serviços podem executar a mesma operação utilizando amesma entrada e saída.

Entrada e saída predefinidas para canais de publicação e canais de chamada sãousadas para implementar esses canais para chamar serviços externos ou paramapear para outros formatos de saída.

Integrando Dados a Aplicativos Externos 359

Page 366: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Nomes e Local de Arquivos

A convenção de nomenclatura para esquemas de estrutura de objeto e esquemas deserviços corporativos é nome do serviço de aplicativo + Service, por exemplo,PERSONService.xsd, em que PERSON é o nome do serviço de aplicativo.

A convenção de nomenclatura para esquemas de nível de serviço é estrutura deobjeto + Service, por exemplo, MXPERSONService.xsd.

Os arquivos de esquema estão localizados no diretório /schema/service.

Os arquivos de esquema estão localizados no diretório <root>/schema/common/service.

Geração de Esquema

Arquivos de esquema de nível de serviço predefinidos não são fornecidos. Aoimplementar um serviço da Web, um arquivo de esquema de nível de serviço égerado para a estrutura de objeto associada, se um não existir. Também é possívelgerar um esquema de nível de serviço usando uma ação no aplicativo Biblioteca deServiços da Web

Todos os esquemas em nível de serviço incluem o arquivo de esquema demetadados e a estrutura de objeto e os arquivos de esquema de objeto aplicáveis.

Conteúdo de Esquema

Um arquivo de esquema é gerado para cada estrutura de objeto com diversos tiposde dados dentro de cada arquivo. Cada tipo de dados correspondem a cadaoperação de entrada e saída que pode ser implementada ou processada como umserviço. Diferentes serviços reutilizam os tipos de dados nestes esquemas. Nenhumserviço utiliza todos os tipos de dados em um único esquema.

Esquemas de nível de serviço contêm os seguintes tipos, usando o exemploMXPERSON:v CreateMXPERSONv CreateMXPERSONResponsev DeleteMXPERSONv InvokeMXPERSONv InvokeMXPERSONResponsev PublishMXPERSONv QueryMXPERSONv QueryMXPERSONResponsev SyncMXPERSONv UpdateMXPERSON

Entrada e Saída de Esquemas de Serviço-padrão:

Os serviços-padrão são fornecidos por aplicativos para executar operaçõesespecíficas em objetos e podem expor diversos métodos como serviços da Web.Serviços-padrão estão disponíveis somente para métodos anotados de formaapropriada dentro do serviço.

360 Integrando Dados a Aplicativos Externos

Page 367: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Os esquemas de nível de serviço gerados para serviços-padrão são usados somentepelas ações correspondentes.

Entrada e Saída de Estrutura de Objeto e Serviço Corporativo:

A estrutura de objeto contém o conteúdo para ambos os esquemas de serviço deestrutura de objeto e serviços corporativo. Um serviço de estrutura de objetosuporta todas as operações definidas, mas um serviço corporativo suporta somenteuma operação específica. Diversos serviços corporativos devem ser criados parasuportar diversas operações mesmo quando fazem referência à mesma estrutura deobjeto e usar o mesmo esquema.

Esquemas de estrutura de objeto e de serviço corporativo identificam o seguinte:v Os tipos de entrada e saída para estrutura de objeto e serviços corporativosv A entrada e saída de um canal de chamadav A saída fornecida por um canal de publicação

Todas as operações suportam um tipo de saída:v As saídas para as operações Criar, Atualizar, Excluir e Sincronizar são as chaves

de objetos principais, o campo de ID interno e os valores de chave automática.v A saída de uma operação Query é um conjunto de resultados de estruturas de

objetos.

Os exemplos a seguir, baseados na estrutura de objeto MXPERSON, descrevem oconteúdo de estrutura de objeto e serviços corporativos.

Elemento CreateMXPERSON

O elemento CreateMXPerson tem as seguintes definições:v O elemento CreateMXPERSON é do tipo CreateMXPERSONType.v O CreateMXPERSONType tem o elemento MXPERSONSet, que é o tipo

MXPERSONSetType. MXPERSONSet é derivado do esquema de estrutura deobjeto.

v MXPERSONSetType tem elementos para todos os atributos configurados doobjeto PERSON e elementos para os objetos-filhos (PHONE, EMAIL e SMS)definidos na estrutura de objeto.

As definições dos elementos e tipos a seguir são comparáveis ao elemento e tipoCreateMXPERSON:

Elemento Tipo

UpdateMXPERSON UpdateMXPERSONType

SyncMXPERSON SyncMXPERSONType

InvokeMXPERSON InvokeMXPERSONType

InvokeMXPERSONResponse InvokeMXPERSONResponseType

Criar Elemento MXPERSONResponse

O elemento CreateMXPERSONResponse tem as seguintes definições:v O elemento CreateMXPERSONResponse é do tipo

CreateMXPERSONResponseType.v CreateMXPERSONResponseType tem o elemento PERSONMboKeySet, que é o

tipo PERSONMboKeySetType.

Integrando Dados a Aplicativos Externos 361

Page 368: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

v PERSONMboKeySetType tem o elemento PERSON, que é o tipoPERSONKeyType.

v PERSONKeyType contém somente o atributo PERSONID do objeto PERSON,que é a chave primária do objeto PERSON.

Elemento PublishMXPERSON

O elemento PublishMXPERSON tem as seguintes definições:v O elemento PublishMXPERSON é do tipo PublishMXPERSONType.v PublishMXPERSONType tem o elemento MXPERSONSet, que é do tipo

MXPERSONSetType. MXPERSONSet é derivado do esquema de estrutura deobjeto.

v MXPERSONSetType tem elementos para todos os atributos configurados doobjeto PERSON e para os objetos-filhos (PHONE, EMAIL e SMS) definidos naestrutura de objeto.

O elemento Publish é como o elemento Create, mas usa um atributo adicional,evento, definido em PublishingContentGroup no esquema de metadados.

Elemento DeleteMXPERSON

O elemento DeleteMXPERSON tem as seguintes definições:v O elemento DeleteMXPERSON é do tipo DeleteMXPERSONType.v DeleteMXPERSONType tem o elemento MXPERSONDelete, que é do tipo

MXPERSONDeleteType.v MXPERSONDeleteType tem elementos para todos os atributos configurados do

objeto PERSON. Delete suporta somente o objeto superior (principal) daestrutura de objeto.

Elemento QueryMXPERSON

O elemento QueryMXPERSON tem as seguintes definições:v O elemento QueryMXPERSON é do tipo QueryMXPERSONType.v QueryMXPERSONType tem o elemento MXPERSONQuery, que é do tipo

MXPERSONQueryType.v MXPERSONQueryType tem elementos para todos os atributos configurados do

objeto PERSON. Query suporta somente consulta com relação ao objeto superior(principal) da estrutura de objeto.

O elemento Query usa os atributos uniqueResults, maxItems e rsStart adicionais,que são definidos em QueryContentGroup no esquema de metadados.

Elemento QueryMXPERSONResponse

O elemento QueryMXPERSONResponse tem as seguintes definições:v O elemento QueryMXPERSONResponse é do tipo

QueryMXPERSONResponseType.v O QueryMXPERSONResponseType tem o elemento MXPERSONSet, que é o tipo

MXPERSONSetType.v MXPERSONSetType tem elementos para todos os atributos configurados do

objeto PERSON e elementos para objetos-filhos definidos na estrutura de objeto(PHONE, EMAIL e SMS).

362 Integrando Dados a Aplicativos Externos

Page 369: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

v Apesar de o elemento QueryMXPERSON restringir consultas ao objeto superiorda estrutura de objeto (PERSON), a resposta pode conter objetos-filhos (PHONE,EMAIL e SMS).

O elemento Query Response usa os atributos rsStart, rsCount e Total adicionais,que são definidos no ResponseContentGroup no esquema de metadados.

Comutadores de ColaboraçãoComutadores de colaboração usam um conceito de propriedade para ajudarusuários a gerenciarem a sincronização de dados de entrada entre a estrutura deintegração e um sistema externo. Os comutadores fornecem a capacidade decontrolar subprocessos específicos dentro de um aplicativo, com base napropriedade de diferentes objetos de dados dentro de uma transação.

O objeto principal da estrutura de objeto para a maioria dos objetos de integraçãode dados e documentos principais inclui um atributo OWNERSYSID. Por padrão, oprocessamento de integração de entrada não especifica nenhum valor no campoOWNERSYSID e serviços corporativos são processados de maneira padrão.

Formato de Comutadores de ColaboraçãoOs comutadores de colaboração fornecem uma maneira flexível definida pelousuário de controlar o processamento de algumas transações de entrada por meiode ignorar o processamento padrão para determinados tipos de transações.Comutadores de colaboração estão localizados na tabela MXCOLLAB.

Elementos do Comutador

Cada disjuntor de colaboração contém quatro elementos, três dos quais sãocombinados para criar uma chave exclusiva. A tabela a seguir lista esses elementose os elementos que formam a chave exclusiva estão marcados com um asterisco (*).

Elemento Campo MXCOLLAB correspondente

ID de Controle de Processo* PCID

ID do Sistema 1* OWNER1SYSID

ID do Sistema 2* OWNER2SYSID

Valor de controle de processo PCVALUE

ID de controle de processo

O ID de controle de processo identifica um processo de negócios em um aplicativo,como a validação de uma correspondência de fatura, a criação de uma liberação deOC geral e a atualização de uma contagem de inventário físico.

A tabela a seguir mostra o prefixo do ID de controle de processo e indica oaplicativo ao qual se aplica.

Prefixo do ID de Controle de Processo Aplicativo Correspondente

INV Fatura

ITM Item

IV Inventário

LT Mão de Obra

OC Ordem de compra

RC Requisição de compra

OS Ordem de serviço

Integrando Dados a Aplicativos Externos 363

Page 370: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Por exemplo, os disjuntores de colaboração IVRC, IVRCY e IVWO estãorelacionados ao processamento de inventário.

Valores de IDs de Sistema

O ID do Sistema 1 e o ID do Sistema 2 identificam os sistemas internos e externos.Os valores nestes campos variam, dependendo da transação e dos objetos natransação. Em geral, o ID do Sistema 1 identifica o sistema que cria um objeto e oID do Sistema 2 identifica o sistema que cria o registro que está sendo referido ouatualizado.

Valor de controle de processo

O valor de controle de processo especifica se os componentes de negócios ignoramo processamento padrão para o tipo de transação indicado pelo ID de controle deprocesso, o ID do Sistema 1 e o ID do Sistema 2. O valor do controle de processopode ser 0 (falso) ou 1 (true) e pode ter os seguintes significados:

Valor do controle de processo Descrição

0 Executa o processamento padrão

1 Ignora o processamento padrão

Recuperando um Comutador de ColaboraçãoCada ID de controle de processo está associado a pelo menos três comutadores decolaboração, os comutadores padrão e quaisquer comutadores que o usuárioincluir. A estrutura de integração fornece a lógica que determina quais valores deID do sistema configurar ao recuperar um comutador de colaboração da tabelaMXCOLLAB.

Procedimento1. A estrutura de integração determina os valores para ID do Sistema 1 e ID do

Sistema 2 com base no ID do controle de processo em uma transação deentrada. Por exemplo,se o ID do controle de processo for PRDEL, o ID doSistema 1 é THISMX e o ID do Sistema 2 é o sistema que possui a RC.

2. Se o valor no ID do Sistema 1 estiver em branco, for nulo ou igual ao valor dalinha MXSYSID da tabela MAXVARS, o ID do Sistema 1 é configurado paraTHISMX .

3. Se o valor no ID do Sistema 2 estiver em branco, for nulo ou for igual aovalor da linha MXSYSID da tabela MAXVARS e o ID do controle de processonão for PRPAB, o ID do Sistema 2 é configurado para THISMX .

4. Se o ID do controle de processo for PRPAB, o valor no ID do Sistema 2 éconfigurado para nulo após a etapa 1 e o ID do Sistema 2 é confogurado paraEXT (se uma OC geral não existir).

5. Se o ID do Sistema 1 e o ID do Sistema 2 agora estiverem configurados paraTHISMX, o processamento padrão é usado e a lógica restante não é aplicada.

6. A tabela MXCOLLAB é verificada para identificar se contém um registro coma chave. Se o registro existir, o valor do controle de processo para o registroindica se o processamento padrão deve ser usado ou ignorado e a lógicarestante não é aplicada.

7. Se um registro correspondente não existir no banco de dados, a chave émodificada da seguinte maneira:v Se o ID do Sistema 1 for igual a THISMX e o ID do Sistema 2 não for igual

a THISMX, EXT é configurado como o valor para o ID do Sistema 2.

364 Integrando Dados a Aplicativos Externos

Page 371: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

v Se o ID do Sistema 1 não for igual a THISMX e o ID do Sistema 2 for iguala THISMX, EXT é configurado como o valor para o ID do Sistema 1.

8. A tabela MXCOLLAB é vericada novamente para identificar se contém umregistro com a chave modificada. Se o registro existir, o valor do controle deprocesso para o registro indica se o processamento padrão deve ser usado ouignorado e a lógica restante não é aplicada.

9. EXT é configurado como o valor para o ID do Sistema 1 e o ID do Sistema 2.10. O registro com a chave modificada é recuperado da tabela MXCOLLAB. Esse

registro sempre existe, pois cada valor de controle de processo tem umcomutador de colaboração padrão com ambos os IDs do sistema configuradospara EXT.

11. O valor do controle de processo para o registro indica se o processamentopadrão deve ser usado ou ignorado.

Configurando Comutadores de ColaboraçãoÉ possível usar comutadores de colaboração predefinidos e é possível configurarnovos, se necessário.

Visualizando Comutadores de Colaboração:

Use qualquer ferramenta de banco de dados para executar uma consulta SQL paraver os valores na tabela MXCOLLAB ou gere um relatório para visualizar seuconteúdo.

Procedimento

1. Para visualizar os comutadores de colaboração para um único ID de controlede processo, use a consulta SQL a seguir:select pcid, owner1sysid, owner2sysid, pcvaluefrom mxcollabwhere pcid = ’PCID’order by pcid, owner1sysid, owner2sysid;

2. Para visualizar todos os comutadores de colaboração, use a consulta SQL aseguir:select pcid, owner1sysid, owner2sysid, pcvaluefrom mxcollaborder by pcid, owner1sysid, owner2sysid;

3. Para visualizar uma descrição curta dos IDs de controle de processo, use aconsulta SQL a seguir:select * from mxcollabref order by pcid;

Modificando um Comutador de Colaboração:

Usuários autorizados podem modificar o valor do controle de processo de umcomutador de colaboração. Não altere o valor de PCID, OWNER1SYSID ouOWNER2SYSID em comutadores de colaboração existentes.

Sobre Esta Tarefa

Os valores na tabela MXCOLLAB fazem distinção entre maiúsculas e minúsculas.

Procedimento

1. Use uma ferramenta de banco de dados para conectar ao banco de dados doMaximo.

2. Use a instrução SQL a seguir para alterar o valor do controle de processo emum comutador de colaboração:

Integrando Dados a Aplicativos Externos 365

Page 372: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

update mxcollabset pcvalue = PCVALUEwhere pcid = 'PCID'and owner1sysid = 'OWNER1SYSID'and owner2sysid = 'OWNER2SYSID';

3. Reinicie o servidor de aplicativos para atualizar os valores em cache paracomutadores de colaboração.

Incluindo um Comutador de Colaboração no Banco de Dados:

Usuários autorizados podem incluir comutadores de colaboração na tabelaMXCOLLAB. Os novos disjuntores devem utilizar um ID de controle de processoexistente, mas podem utilizar novos IDs do sistema.

Sobre Esta Tarefa

Apenas os disjuntores de colaboração padrão podem utilizar os valores THISMX eEXT nos campos de ID do sistema.

Procedimento

1. Use uma ferramenta de banco de dados para conectar ao banco de dados doMaximo.

2. Use a instrução SQL a seguir para incluir um comutador de colaboração:insert into mxcollab(pcid, owner1sysid, owner2sysid, pcvalue)values ('PCID', 'OWNER1SYSID', 'OWNER2SYSID', PCVALUE);

Exemplo

Por exemplo, é possível configurar a estrutura de integração para integração a umsistema Oracle Financials e a outros aplicativos. Quando o Oracle Financials emiteinventário de propriedade do sistema, a estrutura de integração aceita a transaçãoe atualiza saldos de inventário e custos no banco de dados do Maximo. Quandooutros aplicativos emitem inventário de propriedade do sistema, a estrutura deintegração aceita a transação, mas não atualiza saldos ou custos de inventário nobanco de dados do Maximo.

Antes de modificar a tabela MXCOLLAB para refletir essas condições, oscomutadores de colaboração INV têm os seguintes valores:

ID de Controle deProcesso ID do Sistema 1 ID do Sistema 2

Valor de Controle deProcesso

INV THISMX EXT 1

INV EXT THISMX 0

INV EXT EXT 1

Para modificar a tabela MXCOLLAB para suportar este cenário:1. Para atualizar o disjuntor de colaboração, utilize a seguinte instrução SQL:

update mxcollabset pcvalue = 1where pcid = ’INV’and owner1sysid = ’EXT’and owner2sysid = ’THISMX’;

Essa instrução altera o valor dos comutadores de colaboração INV/ EXT/THISMX para 1 para ignorar processamento de atualização normal.

2. Use a instrução SQL a seguir para incluir um novo comutador de colaboraçãopara transações do sistema Oracle Financials:

366 Integrando Dados a Aplicativos Externos

Page 373: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

insert into mxcollab(pcid, owner1sysid, owner2sysid, pcvalue)values (’INV’, ’ORC’, ’THISMX’, 0);

O novo comutador de colaboração configura ORC como o ID do sistema econfigura o valor de controle de processo para 0, de forma que oprocessamento normal seja aplicado para emitir transações recebidas do OracleFinancials. Se o OWNERSYSID estiver em branco, o valor do controle deintegração DEFEXTSYS é usado.

Após executar esse procedimento, os comutadores de colaboração INV têm osseguintes valores.

ID de Controle deProcesso ID do Sistema 1 ID do Sistema 2

Valor de Controle deProcesso

INV THISMX EXT 1

INV EXT THISMX 1

INV EXT EXT 1

INV ORC THISMX 0

Por exemplo, ao configurar o valor do controle de integração ISUIN para 1,transações de emissão são aceitas de um sistema externo. O disjuntor decolaboração INV controla a atualização de saldo e custo do inventário relacionadosàs emissões. É possível ajustar a configuração desse comutador, se necessário, paraignorar esse processo de atualização.

O comutador de colaboração INV/EXT/THISMX controla o processamento deinventário (em que Process Control ID = INV) que é emitido no sistema externo(System ID 1 = EXT) e propriedade do sistema (System ID 2 = THISMX).

Se o valor do comutador de colaboração INV/EXT/THISMX for 0, oprocessamento padrão se aplica e os valores de saldo e custo de inventário sãoatualizados.

Se o valor do comutador de colaboração INV/EXT/THISMX for 1, oprocessamento padrão é ignorado e os valores de saldo e custo de inventário nãosão atualizados.

No exemplo, ISUIN aceita quaisquer emissões no sistema. O comutador decolaboração INV/EXT/THISMX determina como o componente de negócios deinventário processa um tipo de emissão específico.

Comutadores de Colaboração PredefinidosÉ possível usar os comutadores de colaboração padrão e os comutadores decolaboração predefinidos fornecidos.

Comutadores de Colaboração Padrão:

Três comutadores de colaboração padrão são criados com diferentes combinaçõesde valores de ID do sistema para cada ID de controle de processo. Os usuáriosautorizados podem criar disjuntores adicionais conforme necessário.

Os comutadores padrão usam várias combinações dos seguintes valores noscampos ID do Sistema 1 e ID do Sistema 2:

Integrando Dados a Aplicativos Externos 367

Page 374: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Valor do ID doSistema Significado

THISMX O sistema identificado em MAXVARS.MXSYSID

Os comutadores de colaboração não usam o valor real em MXSYSID.

EXT Qualquer sistema diferente do identificado em MAXVARS.MXSYSID

Os usuários autorizados podem atualizar apenas o valor de controle de processonos disjuntores de colaboração padrão. Excluir um comutador de colaboraçãopadrão ou modificar um campo diferente do valor de controle de processo poderesultar em uma falha de sistema.

Comutadores de Colaboração de Inventário:

Comutadores de colaboração predefinidos são fornecidos para o aplicativoInventário.

ID de controle deprocesso Descrição Valor e ação

Derivação de IDdo sistema 1

Derivação de IDdo sistema 2

INV Atualizar inventário.

Utilizado ao criaremissões, devoluções ouvários recebimentos ouajustes. O inventário deveexistir neste sistema.

0

1

Atualizarinventário.

Não atualizarinventário.

INVTRANS ouMATUSETRANS

INVENTÁRIO

INVDEL Excluir inventário.

Utilizado ao excluir oinventário de proprietárioexterno. Se o valor for 1, oalmoxarifado de itensainda existirá em RCs,OCs, RFQs, ordens deserviço, etc. abertasrelacionadas. Isto poderesultar em problemas aoreceber/aprovar estaslinhas.

0

1

Excluir item se elefor aprovado nasvalidações normaisdo sistema.

Excluir inventáriosem validações eexcluir o registroINVBALANCESpara o item.

“THISMX” INVENTÁRIO

INVISS Inserir emissões do item.

Utilizado ao consumirmaterial.

0

1

Permitir emissõesde material para oinventário.

Não permitiremissões dematerial para oinventário.

MATUSETRANS INVENTÁRIO

INVISSR Inserir devoluções deemissões de itens.

Utilizado ao devolvermaterial.

0

1

Permitirdevoluções dematerial.

Não permitirdevoluções deemissões para omaterial.

MATUSETRANS INVENTÁRIO

368 Integrando Dados a Aplicativos Externos

Page 375: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

ID de controle deprocesso Descrição Valor e ação

Derivação de IDdo sistema 1

Derivação de IDdo sistema 2

INVISSWO Atualizar custo real daordem de serviço,INVCOSTs deequipamento.

Utilizado ao processaremissões ou devoluções.Destina-se a manipularcasos de sistema parasistema em que estasatualizações ficarãoprontas separadamente.

0

1

Atualizar custo dematerial real daordem de serviço,INVCOST deequipamento.

Não atualizarcusto de materialreal da ordem deserviço, INVCOSTde equipamento.

MATUSETRANS WORKORDER

INVPHY Inserir contagens físicasexternas.

Utilizado ao criarcontagens físicas.

0

1

Permitir contagemfísica para oinventário.

Não permitircontagem físicapara o inventário.

INVTRANS INVENTÁRIO

INVTR Atualizar campo DoAlmoxarifado em umatransferência ou norecebimento de OCinterna.

Utilizado ao criartransferências ou ao criarum recebimento para umaOC interna.

0

1

AtualizarINVBALANCESno campo DoAlmoxarifado.

Não atualizarINVBALANCESno campo DoAlmoxarifado.

MATRECTRANS LOCATIONS(almoxarifadoparatransferência;fornecedor paraOC interna)

ITMDEL Excluir itens.

Utilizado ao excluir itensque este sistema nãoreconhece.

Atenção: Se o valor for 1,o item ainda existirá emRCs, OCs, RFQs, ordensde serviço, etc. abertasrelacionadas. Isto poderesultar em problemas aoreceber/aprovar estaslinhas.

0

1

Excluir item se elefor aprovado nasvalidações normaisdo sistema.

Excluir item semnenhumavalidação. Excluirtambém osregistrosINVENTORY,INVBALANCES eINVVENDOR parao item.

“THISMX” ITEM

Comutadores de Colaboração de Fatura:

Comutadores de colaboração predefinidos são fornecidos para o aplicativo Fatura.

ID de controle deprocesso Descrição Valor e ação

Derivação de IDdo sistema 1

Derivação de IDdo sistema 2

IVILC Atualizar últimocusto do inventário.

Utilizado aoaprovar faturas.

0

1

Atualizar últimocusto do inventário.

Não atualizarúltimo custo doinventário.

FATURA INVENTÁRIO

Integrando Dados a Aplicativos Externos 369

Page 376: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

ID de controle deprocesso Descrição Valor e ação

Derivação de IDdo sistema 1

Derivação de IDdo sistema 2

IVINV Atualizar customédio doinventário.

Utilizado aoaprovar faturas.

0

1

Atualizar customédio doinventário.

Não atualizar customédio doinventário.

FATURA INVENTÁRIO

IVMATCH Utilizar e validarcorrespondência defaturas.

Utilizado aoaprovar faturas.

Se configuradocomo 1, IVPOtambém deverá serconfigurado como1.

0

1

Validarcorrespondência.

Não validarnenhumacorrespondênciafornecida.

“THISMX” FATURA

IVPO Atualizar OCs erecebimentos.

Utilizado aoaprovar faturas.

0

1

Atualizar status erecebimentos deOC.

Não atualizar statusde OC ourecebimentos.

FATURA OC

IVPRO Verificar e dividiras diferenças entrecabeçalhos e linhasda fatura.

Utilizado aoaprovar faturas.

0

1

Dividir asdiferenças entre ocabeçalho e o totalde linhas.

Não dividir adiferença entre ocabeçalho e o totalde linhas.

“THISMX” FATURA

IVRC Criar recebimentosde serviço paralinhas de faturasem uma referênciade OC.

Utilizado aoaprovar faturas quecontêm uma linhasem uma referênciade OC.

0

1

Gerar recebimentosde serviço paralinhas de fatura quenão possuem umareferência de OC.

Não gerar umrecebimento deserviço para linhasde fatura que nãopossuem umareferência de OC.

“THISMX” FATURA

370 Integrando Dados a Aplicativos Externos

Page 377: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

ID de controle deprocesso Descrição Valor e ação

Derivação de IDdo sistema 1

Derivação de IDdo sistema 2

IVRCY Criar recebimentosde serviço paralinhas de faturacom uma referênciade OC eRECEIPTREQD =N.

Utilizado aoaprovar faturascontendo uma linhacom uma referênciade OC, quando oPOLINEcorrespondente forum serviço eRECEIPTREQD =N.

0

1

Gerar umrecebimento deserviço para a linhade fatura.

Não gerar umrecebimento deserviço para a linhade fatura.

FATURA OC

IVTOL Executar validaçãode verificação detolerância de fatura.

Utilizado aoaprovar faturas.

0

1

Executar todas asverificações detolerância na fatura.

Não executarverificações detolerância na fatura.

“THISMX” FATURA

IVVLC Atualizar últimocusto dofornecedor.

Utilizado aoaprovar faturas.

0

1

Atualizar últimocusto dofornecedor.

Não atualizarúltimo custo dofornecedor.

FATURA INVVENDOR

IVWO Atualizar ordens deserviço.

Utilizado aoaprovar fatura.

0

1

Atualizar ordem deserviço.

Não atualizarordem de serviço.

FATURA WORKORDER

Comutadores de Colaboração de Transação de Mão de Obra:

Comutadores de colaboração predefinidos são fornecidos para as transações demão de obra.

ID deControle deProcesso Descrição Valor e Ação

Derivação deID doSistema 1

Derivação deID doSistema 2

LTSRC Gerar recebimentos deserviço para OCs.

Utilizado ao criartransações de mão deobra ou ao alterar ostatus. A OC deveexistir neste sistema.

0

1

Permitir valor de configuraçãoLABTRANS. GENAPPRSERVRECEIPT paraS; configurável na Configuração doAplicativo.

Deixar valor de LABTRANS.GENAPPRSERVRECEIPT como N.

TRANSMÃO OC

Integrando Dados a Aplicativos Externos 371

Page 378: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Comutadores de Colaboração de Ordem de Compra:

Comutadores de colaboração predefinidos são fornecidos para ordens de compra.

ID decontrole deprocesso Descrição Valor e ação

Derivação deID do sistema1

Derivação deID do sistema2

PODEL Excluir OCs.

Utilizado ao excluirOCs. Utilizado apenasao excluir e,subsequentemente,incluir novamente umaOC devido a alteraçõesna OC.

Se algum PRLINEScontiver uma referênciaà OC, limpe-a. Senecessário, reabra a RC.Quando a OC forincluída novamente, osPRLINEs serãoestabelecidos outra vez.

0

1

Não excluir OC.

Excluir OC e PRLINEs; não excluirPOSTATUS.

“THISMX” OC

POINV Não permitir inventárioexterno sem referênciapara OCs internas.

Utilizado ao incluir ouatualizar linhas de OC eao alterar o status deOCs internas.

0

1

Se a combinação de item-fornecedornão estiver na tabela INVENTORY,isto indica um erro.

Se a combinação item-tabela não forlocalizada na tabela INVENTORY(em que PO.VENDOR =LOCATIONS.LOCATION), ignore o erro.

OC LOCATIONS,em quefornecedor é oalmoxarifado

POIVM Criar informações dofornecedor de inventáriopara inventário.

Utilizado ao aprovarOCs.

0

1

Atualizar ou criar registroINVVENDOR.

Não criar registro INVVENDOR.

OC ITEM dePOLINE

POPR Atualizar status de RCs.

Utilizado ao copiarlinhas de RC para OCs,criando OCs a partir deRCs, reabrindo RCs.

0

1

Alterar status de RC (fechamentoautomático com base naconfiguração de MAXVAR) oureabrir quando o POLINE contendoa referência de RC for excluído ououtras instâncias de reabrir.

Não alterar status de RC.

OC RC

POREL Cria liberações para OCsgerais.

Utilizado ao aprovar RCe as linhas de RCcontiverem referênciasgerais, e quando forcriada uma liberaçãodiretamente de uma OCsem uma RC.

0

1

Gerar liberação de OC. (Se PRLINE.AGREEMENTPONUM não estiver na OC,não gere a liberação da OC.)

Não gerar liberações de OC.

RC OC do geral

372 Integrando Dados a Aplicativos Externos

Page 379: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

ID decontrole deprocesso Descrição Valor e ação

Derivação deID do sistema1

Derivação deID do sistema2

PORES Processar reservas dematerial.

Utilizado ao alterar ostatus de OCs internas.

0

1

Gerar reservas de inventário. Se acombinação de item-fornecedor (emque o fornecedor é o almoxarifadointerno) não estiver na tabelaINVENTORY, não gerar reservas deOC. Isto pode acontecer se POINVfor 0.

Não gerar reservas de inventário.

OC INVENTÁRIO

Comutadores de Colaboração de Requisição de Compra:

Comutadores de colaboração predefinidos são fornecidos para requisições decompra.

ID de controlede processo Descrição Valor e ação

Derivação deID do sistema1

Derivação deID do sistema2

PRDEL Excluir RCs.

Utilizado aoexcluir RCs.Utilizadoapenas aoexcluir e,subsequentemente,incluirnovamenteuma RC devidoa alterações naRC.

Se WPMATERIALou MRLINEcontiverreferências àRC, limpe-as.Elas serãorestabelecidasquando a RCfor lida.

0

1

Não excluir RC.

Excluir RC e PRLINES; não excluirPRSTATUS.

“THISMX” RC

Integrando Dados a Aplicativos Externos 373

Page 380: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

ID de controlede processo Descrição Valor e ação

Derivação deID do sistema1

Derivação deID do sistema2

PRINV Não permitirinventárioexterno semreferência emRCs internas.

Utilizadoquandoalmoxarifadossão mantidosem um sistemaexterno. Itensestão no ITEMprincipal nosistema;almoxarifado édefinido comoumLOCATION;INVENTORYnão é definidopara acombinaçãoitem-almoxarifado,pois não épropriedade dosistema.

O proprietárioda RC é oMXSYSID dosistema quecria a RC. Avalidaçãoocorre quandoumitem-almoxarifado(INVENTORY)é validado noPRLINE. OOWNERSYSIDdoalmoxarifado écomparadocom oOWNERSYSIDda RC e osinalizadordetermina se acombinação épermitida.

0

1

Se a combinação item-fornecedor nãoestiver na tabela INVENTORY, erro.

Se a combinação item-fornecedor(fornecedor é o almoxarifado interno)não estiver na tabela INVENTORY, emque

PR.VENDOR = LOCATIONS.LOCATION,ignore erro. LOCATIONS deve existir; ouseja, passar validação padrão para olocal.

RC LOCATIONS,em quefornecedor é oalmoxarifadointerno

374 Integrando Dados a Aplicativos Externos

Page 381: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

ID de controlede processo Descrição Valor e ação

Derivação deID do sistema1

Derivação deID do sistema2

PRPAB Não permitircontratos /gerais decompraexternos nãoreferidos.

Utilizado aoincluir ouatualizar linhasda RC e aoalterar o statusde RCs.

0

1

Se PRLINE.AGREEMENTPONUM não estiverna OC, erro.

Se PRLINE.AGREEMENTPONUM não estiverna OC, ignore erro.

RC “EXT”

Normalmente,isto seria daOC do geralmas, neste caso,a OC do geralnão existe

Comutadores de Colaboração de Recebimento:

Comutadores de colaboração predefinidos são fornecidos para recebimentos.

ID de controle deprocesso Descrição Valor e ação

Derivação de IDdo sistema 1

Derivação de IDdo sistema 2

RC Inserirrecebimentos deOC.

Utilizado ao criarrecebimentos.

0

1

Permitirrecebimento naOC.

Não permitirrecebimento naOC.

MATRECTRANSouSERVRECTRANS

OC

RCILC Atualizar últimocusto doinventário.

Utilizado aoaprovarrecebimentos.

0

1

Atualizar últimocusto doinventário.

Não atualizarúltimo custo doinventário.

MATRECTRANS INVENTÁRIO

RCINV Atualizarinventário.

Utilizado aoreceber ouaprovarrecebimentos.

0

1

Atualizarinventário, se eleexistir.

Não atualizarinventário.

MATRECTRANS INVENTÁRIO

RCIV Gerar faturaspara recebimentosde OC.

Utilizado aoaprovarrecebimentos.

0

1

Gerar fatura se ovalor dePayOnReceiptestiverconfigurado.

Não gerar fatura,mesmo que ovalor dePayOnReceiptestejaconfigurado.

MATRECTRANSouSERVRECTRANS

OC

Integrando Dados a Aplicativos Externos 375

Page 382: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

ID de controle deprocesso Descrição Valor e ação

Derivação de IDdo sistema 1

Derivação de IDdo sistema 2

RCPO Atualizar OCexterna.

Utilizado aoaprovarrecebimento.

0

1

Atualizar OC.

Não atualizar OC.

MATRECTRANSouSERVRECTRANS

OC

RCR Inserir devoluçãode recebimentode OC.

Utilizado ao criardevolução derecebimento.

0

1

Permitirdevoluções derecebimento paraa OC.

Não permitirdevoluções derecebimento paraa OC.

MATRECTRANSouSERVRECTRANS

OC

RCVLC Atualizar últimocusto dofornecedor.

Utilizado aoaprovarrecebimento dalinha de OC.

0

1

Atualizar últimocusto dofornecedor.

Não atualizarúltimo custo dofornecedor.

MATRECTRANS INVVENDOR

RCWO Atualizar ordensde serviço.

Utilizado aoaprovarrecebimentos.

0

1

Atualizar ordemde serviço.

Não atualizarordem de serviço.

MATRECTRANSouSERVRECTRANS

WORKORDER

Comutadores de Colaboração de Ordem de Serviço:

Comutadores de colaboração predefinidos são fornecidos para ordens de serviço.

ID de controle deprocesso Descrição Valor e ação

Derivação de IDdo sistema 1

Derivação de IDdo sistema 2

WORES Processar reservasde material.

Utilizado aoalterar o status deuma ordem deserviço. Oinventário deveexistir nestesistema.

0

1

Gerar reserva deinventário.

Não gerar reservade inventário.

WORKORDER INVENTÁRIO

376 Integrando Dados a Aplicativos Externos

Page 383: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Avisos

Estas informações foram desenvolvidas para produtos e serviços oferecidos nosEstados Unidos.

É possível que a IBM não ofereça os produtos, serviços ou recursos discutidosnesta publicação em outros países. Consulte um representante IBM local para obterinformações sobre produtos e serviços disponíveis atualmente em sua área.Qualquer referência a produtos, programas ou serviços IBM não significa queapenas produtos, programas ou serviços IBM possam ser utilizados. Qualquerproduto, programa ou serviço funcionalmente equivalente, que não infrinjanenhum direito de propriedade intelectual da IBM poderá ser utilizado emsubstituição a este produto, programa ou serviço. Entretanto, a avaliação everificação da operação de qualquer produto, programa ou serviço não IBM são deresponsabilidade do Cliente.

A IBM pode ter patentes ou solicitações de patentes pendentes relativas a assuntostratados nesta publicação. O fornecimento desta publicação não lhe garante direitoalgum sobre tais patentes. Pedidos de licença devem ser enviados, por escrito,para:

Gerência de Relações Comerciais e Industriais da IBM BrasilAv. Pasteur, 138-146BotafogoRio de Janeiro, RJCEP 22290-240

Para pedidos de licença relacionados a informações de DBCS (Conjunto deCaracteres de Byte Duplo), entre em contato com o Departamento de PropriedadeIntelectual da IBM em seu país ou envie pedidos de licença, por escrito, para:

Intellectual Property LicensingLegal and Intellectual Property LawIBM Japan Ltd.1623-14, Shimotsuruma, Yamato-shiKanagawa 242-8502 Japan

O parágrafo a seguir não se aplica a nenhum país em que tais disposições nãoestejam de acordo com a legislação local: A INTERNATIONAL BUSINESSMACHINES CORPORATION FORNECE ESTA PUBLICAÇÃO "NO ESTADO EMQUE SE ENCONTRA", SEM GARANTIA DE NENHUM TIPO, SEJA EXPRESSAOU IMPLÍCITA, INCLUINDO, MAS A ELAS NÃO SE LIMITANDO, ASGARANTIAS IMPLÍCITAS DE NÃO INFRAÇÃO, COMERCIALIZAÇÃO OUADEQUAÇÃO A UM DETERMINADO PROPÓSITO. Alguns países não permitema exclusão de garantias expressas ou implícitas em certas transações; portanto, essadisposição pode não se aplicar ao Cliente.

Essas informações podem conter imprecisões técnicas ou erros tipográficos. Sãofeitas alterações periódicas nas informações aqui contidas; tais alterações serãoincorporadas em futuras edições desta publicação. A IBM pode, a qualquermomento, aperfeiçoar e/ou alterar os produtos e/ou programas descritos nestapublicação, sem aviso prévio.

© Copyright IBM Corp. 2008, 2014 377

Page 384: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Referências nestas informações a websites não IBM são fornecidas apenas porconveniência e não representam de forma alguma um endosso a esses websites. Osmateriais contidos nesses websites não fazem parte dos materiais deste produtoIBM e a utilização desses websites é de inteira responsabilidade do Cliente.

A IBM pode utilizar ou distribuir as informações fornecidas da forma que julgarapropriada sem incorrer em qualquer obrigação para com o Cliente.

Os licenciados deste programa que desejarem obter informações sobre este assuntocom o propósito de permitir: (i) a troca de informações entre programas criadosindependentemente e outros programas (incluindo este) e (ii) o uso mútuo dasinformações trocadas, deverão entrar em contato com:

Av. Pasteur, 138-146Av. Pasteur, 138-146Av. Pasteur, 138-146BotafogoRio de Janeiro, RJCEP 22290-240

Tais informações podem estar disponíveis, sujeitas a termos e condiçõesapropriadas, incluindo em alguns casos o pagamento de uma taxa.

O programa licenciado descrito nesta publicação e todo o material licenciadodisponível são fornecidos pela IBM sob os termos do Contrato com o Cliente IBM,do Contrato Internacional de Licença do Programa IBM ou de qualquer outrocontrato equivalente.

As informações relativas a produtos não IBM foram obtidas junto aos fornecedoresdos respectivos produtos, de seus anúncios publicados ou de outras fontesdisponíveis publicamente. A IBM não testou estes produtos e não pode confirmar aprecisão de seu desempenho, compatibilidade nem qualquer outra reivindicaçãorelacionada a produtos não IBM. Dúvidas sobre os recursos de produtos não IBMdevem ser encaminhadas diretamente a seus fornecedores.

Estas informações contêm exemplos de dados e relatórios utilizados nas operaçõesdiárias de negócios. Para ilustrá-los da forma mais completa possível, os exemplosincluem nomes de indivíduos, empresas, marcas e produtos. Todos estes nomes sãofictícios e qualquer semelhança com os nomes e endereços utilizados por umaempresa real é mera coincidência.

LICENÇA DE COPYRIGHT:

Estas informações contêm programas de aplicativos de amostra na linguagemfonte, ilustrando as técnicas de programação em diversas plataformas operacionais.O Cliente pode copiar, modificar e distribuir estes programas de amostra sem anecessidade de pagar à IBM, com objetivos de desenvolvimento, uso, marketing oudistribuição de programas aplicativos em conformidade com a interface deprogramação de aplicativo para a plataforma operacional para a qual os programasde amostra são criados. Esses exemplos não foram testados completamente emtodas as condições. Portanto, a IBM não pode garantir ou implicar a confiabilidade,manutenção ou função destes programas. Os programas de amostra são fornecidos"NO ESTADO EM QUE SE ENCONTRAM", sem garantia de nenhum tipo. A IBMnão deve ser responsabilizado por quaisquer danos oriundos do uso dosprogramas de amostra.

378 Integrando Dados a Aplicativos Externos

Page 385: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

Marcas comerciaisIBM, o logotipo IBM e ibm.com são marcas comerciais ou marcas registradas daInternational Business Machines Corp., registradas em vários países no mundotodo. Outros nomes de produtos e serviços podem ser marcas comerciais da IBMou de outras empresas. Uma lista atual de marcas comerciais da IBM estádisponível na web em “Copyright and trademark information” emwww.ibm.com/legal/copytrade.shtml.

Java e todas as marcas registradas e logotipos baseados em Java são marcas oumarcas registradas da Oracle e/ou suas afiliadas.

Linux é uma marca registrada de Linus Torvalds nos Estados Unidos e/ou emoutros países.

Microsoft, Windows e o logotipo Windows são marcas comerciais da MicrosoftCorporation nos Estados Unidos e/ou em outros países.

UNIX é uma marca registrada do The Open Group nos Estados Unidos e emoutros países.

Avisos 379

Page 386: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

380 Integrando Dados a Aplicativos Externos

Page 387: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas
Page 388: Integrando Dados a Aplicativos Externos - IBM...Suporte ao Idioma Bidirecional .....215 Formatos de Idiomas Bidirecionais ....215 Configurando Suporte ao Idioma Bidirecional para Sistemas

����

Impresso no Brasil