integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (http) y java...

420
IBM Maximo Asset Management Versión 7 Release 6 Integración de datos con aplicaciones externas

Upload: others

Post on 17-Mar-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

IBM Maximo Asset ManagementVersión 7 Release 6

Integración de datos con aplicacionesexternas

���

Page 2: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

NotaAntes de utilizar esta información y el producto al que da soporte, lea la información del apartado “Avisos” en la página409.

Esta edición se aplica a la versión 7, release 5, modificación 0 de IBM Maximo Integration Framework y a todos losreleases y modificaciones posteriores hasta que se indique lo contrario en nuevas ediciones.

© Copyright IBM Corporation 2008, 2014.

Page 3: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Contenido

Integración de datos con aplicacionesexternas . . . . . . . . . . . . . . 1Descripción general de la infraestructura deintegración . . . . . . . . . . . . . . . 1

Arquitectura . . . . . . . . . . . . . 2Infraestructura para el intercambio de datos . . 2Infraestructura para la integración de productosde gestión de operaciones . . . . . . . . 4Infraestructura para la integración de lainterfaz de usuario . . . . . . . . . . 5

Habilitación de la exportación y la importación dedatos . . . . . . . . . . . . . . . . . 5

Preparación del sistema. . . . . . . . . . 5Configuración de colas JMS . . . . . . . 5Configuración de las propiedades deintegración . . . . . . . . . . . . . 5Activación de la tarea cron para colas JMS . . 6Exportación de datos a un archivo de prueba . 6Importación de datos de un archivo de prueba 7

Componentes de integración . . . . . . . . . 7Estructuras de objetos . . . . . . . . . . 7

Identificación de objetos . . . . . . . . 8Teclas alternativas . . . . . . . . . . 8Campos de objeto . . . . . . . . . . 9Consideraciones sobre las tablas de interfaz ylos archivos sin formato . . . . . . . . 10Modificación de una estructura de objetopredefinida . . . . . . . . . . . . 10Configuración de una estructura de objeto . . 10

Canales y servicios . . . . . . . . . . . 15Canales de publicación . . . . . . . . 15Canales de invocación . . . . . . . . . 17Servicios de estructura de objeto . . . . . 20Servicios empresariales . . . . . . . . 20Servicios estándar . . . . . . . . . . 24

Puntos finales y manejadores . . . . . . . 24Configuración de un punto final . . . . . 25Manejadores de punto final predefinidos . . 27

Servicios web de integración. . . . . . . . 41Orígenes de servicios web . . . . . . . 41Opciones de despliegue de servicios Web . . 42Acciones de despliegue de servicio web . . . 43Generación de esquemas . . . . . . . . 43Generación de un archivo de idioma dedescripción de servicios web. . . . . . . 44Registro de UDDI . . . . . . . . . . 44Creación y despliegue de servicios web . . . 45Vista general de las interacciones de servicioweb . . . . . . . . . . . . . . . 47

Sistemas externos . . . . . . . . . . . 49Configuración de un sistema externo . . . . 49

Contenido de integración predefinido . . . . 63Objetos de datos maestros . . . . . . . 64Objetos de parte y de inventario . . . . . 74Objetos de documentos . . . . . . . . 79

Objetos de la interfaz de transacciones . . . 91Objetos del sistema . . . . . . . . . 101Orden de carga de datos. . . . . . . . 115

Procesamiento de datos de integración . . . . . 116Planificación para procesar los datos para laintegración . . . . . . . . . . . . . 116Procesamiento de datos entrantes. . . . . . 117

Proceso asíncrono de mensajes entrantes . . 117Proceso síncrono de mensajes entrantes. . . 118Iniciación del proceso asíncrono de los datosde entrada . . . . . . . . . . . . 118Iniciación del proceso síncrono de los datosde entrada . . . . . . . . . . . . 120Secuencias de proceso . . . . . . . . 122

Procesamiento de datos salientes . . . . . . 124Integración asíncrona con un canal depublicación . . . . . . . . . . . . 124Integración síncrona con un canal deinvocación . . . . . . . . . . . . 126

Configuración del proceso de integración . . . 127Configuración del proceso asíncrono demensajes entrantes mediante serviciosempresariales . . . . . . . . . . . 128Configuración del proceso asíncrono demensajes de salida mediante canales depublicación . . . . . . . . . . . . 129

Personalización basada en reglas . . . . . . 130Definiciones de reglas para objetos yregistros . . . . . . . . . . . . . 130Definiciones de regla de proceso . . . . . 130Condiciones y evaluaciones . . . . . . 135Controles de integración. . . . . . . . 139Configuración de reglas de proceso . . . . 141

Personalización basada en código . . . . . 156Personalización de clases y métodos Java . . 157Personalización con scripts deautomatización . . . . . . . . . . . 163Correlación XSL . . . . . . . . . . 180Clase de salida de usuario de tabla deinterfaz . . . . . . . . . . . . . 181

Configuración de la infraestructura de integración 182Propiedades del sistema de integración. . . . 182Configuración de colas JMS . . . . . . . 189

Creación y configuración de una cola . . . 190Colas secuenciales . . . . . . . . . . 191Colas continuas . . . . . . . . . . 192Formato de mensaje de cola . . . . . . 196Selectores de colas. . . . . . . . . . 198Visualización y supresión de mensajes en unacola JMS . . . . . . . . . . . . . 199Configuración de colas con WebSphere MQ 200

Gestión de errores . . . . . . . . . . . 201Gestión de errores que no son de cola . . . 201Gestión de errores basada en cola . . . . 201Configuración de la gestión de errores . . . 202Notificación de errores . . . . . . . . 203

© Copyright IBM Corp. 2008, 2014 iii

Page 4: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Nuevo proceso de mensajes . . . . . . 204Gestión de errores de la importación dedatos basada en archivo . . . . . . . . 207Gestión de errores de tablas de interfaz. . . 210Causas habituales de errores . . . . . . 211Búsqueda de errores . . . . . . . . . 212Seguimiento de mensajes . . . . . . . 213

Configuración de clústeres . . . . . . . . 218Colas JMS en un clúster de servidores . . . 218Configuración de la tarea cron. . . . . . 221Configuración de un servidor deprocesamiento de mensajes . . . . . . . 221Configuración del directorio global . . . . 221Acceso de los mensajes entrantes a losservicios . . . . . . . . . . . . . 221

Seguridad de integración . . . . . . . . 223Seguridad de autenticación . . . . . . . 223Seguridad de autorizaciones . . . . . . 230

Soporte de idiomas . . . . . . . . . . 231Procesamiento predeterminado de variosidiomas . . . . . . . . . . . . . 231Atributos multilingües . . . . . . . . 232Soporte para idiomas bidireccionales . . . 232Formatos de idiomas bidireccionales. . . . 233Configuración del soporte de idiomabidireccional para los sistemas externos . . 233

Exportación e importación de datos basados enarchivo . . . . . . . . . . . . . . . 233

Exportación e importación de datos en laaplicación Sistemas externos . . . . . . . 234

Exportación de datos basados en archivo . . 234Importación de datos basados en archivo . . 235

Tareas cron para procesar datos entrantes . . . 236Tarea cron XMLFILECONSUMER . . . . 236Tarea cron FLATFILECONSUMER . . . . 237

Configuración de una aplicación para laexportación y la importación de datos . . . . 239

Definición del contenido de una estructurade objeto . . . . . . . . . . . . . 239Habilitación de la importación y exportaciónde datos en una aplicación . . . . . . . 240Iniciación de la exportación y la importaciónde datos en una aplicación . . . . . . . 241

API de REST . . . . . . . . . . . . . 243Infraestructura de la API de REST . . . . . 243Representaciones soportadas . . . . . . . 244Manejadores de recursos y URI . . . . . . 245Método GET . . . . . . . . . . . . 245

Parámetros de consulta y operadores . . . 248Parámetro _opmodeor . . . . . . . . 250Parámetros _rsStart y _maxItems . . . . . 251Parámetro _orderbyasc . . . . . . . . 252Parámetros _includecols y _excludecols. . . 253Parámetro _dropnulls . . . . . . . . 253Parámetros _format y _compact . . . . . 254Negociación de contenido derepresentaciones . . . . . . . . . . 255Desplazamiento dentro de la sesión . . . . 256Almacenamiento en memoria caché desolicitudes GET. . . . . . . . . . . 257

Métodos PUT, POST y DELETE . . . . . . 259

método PUT. . . . . . . . . . . . 259Método POST . . . . . . . . . . . 260Método DELETE . . . . . . . . . . 261simultáneo simultáneas de recursos . . . . 261

Actualizaciones y consultas de métodos deservicios . . . . . . . . . . . . . . 262

Métodos de servicios que utilizan HTTPPOST para actualizar recursos . . . . . . 262Métodos de servicios que utilizan HTTP GETpara consultar recursos . . . . . . . . 264Métodos de servicios que utilizan HTTP GETpara consultar datos del sistema . . . . . 265

Propiedades de la cabecera HTTP . . . . . 266Códigos de respuesta. . . . . . . . . . 267Seguridad en la API de REST . . . . . . . 268Personalización de la API de REST . . . . . 270Parámetros de consulta REST . . . . . . . 271Propiedades del sistema REST. . . . . . . 275Llamadas de servicios externos . . . . . . 278

integración de OSLC . . . . . . . . . . . 279Implementación de OSLC en Maximo AssetManagement . . . . . . . . . . . . 279Configuración de OSLC . . . . . . . . . 281

Especificación de recursos OSLC . . . . . 281Proveedores de servicios de dominio . . . 282Consultas guardadas . . . . . . . . . 284Seguridad de OSLC . . . . . . . . . 285Registro de OSLC . . . . . . . . . . 287

Transacciones HTTP . . . . . . . . . . 287Consultas de recursos OSLC . . . . . . 288Creación de una instancia de recursos . . . 292Modificación de recursos . . . . . . . 293Cabeceras HTTP . . . . . . . . . . 296Códigos de respuesta HTTP . . . . . . 298

Integración como consumidor de OSLC . . . 299Creación de registros de proveedor de OSLC 299Diseño de una interacción de OSLC . . . . 304Creación de grupos de interacciones. . . . 312Ejemplo: Ejecución de una interacción deOSLC . . . . . . . . . . . . . . 313Cambios en el URI público . . . . . . . 315Migración de integraciones de OSLC . . . 315Modificación manual de la interfaz deusuario . . . . . . . . . . . . . 316Propiedades de OSLC . . . . . . . . 317

Consultas de integración . . . . . . . . . 318Servicios de consulta . . . . . . . . . . 318Creación de una consulta de servicioempresarial . . . . . . . . . . . . . 319Consultas de servicios web . . . . . . . . 319Estructura XML de consulta . . . . . . . 320Criterios de selección de consultas . . . . . 323

Selección de campo . . . . . . . . . 323Evaluación de campos . . . . . . . . 325Selección de rango. . . . . . . . . . 325Selección de la cláusula Where . . . . . 326

Tablas de interfaz . . . . . . . . . . . . 328Creación de tablas de interfaz . . . . . . . 329Regeneración de las tablas de interfaz . . . . 330Supresión de tablas de interfaz y registros . . . 330Formato de las tablas de interfaz . . . . . . 331

iv Integración de datos con aplicaciones externas

Page 5: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Sondeo de tablas de interfaz . . . . . . . 334Tarea cron de sondeo de la tabla de interfaz 334Sondeo de tablas de interfaz avanzado . . . 335

Proceso de tablas de interfaz en un sistemaexterno . . . . . . . . . . . . . . 336

Habilitación del proceso de entrada . . . . 336Habilitación del proceso de salida . . . . 337

Módulos de integración . . . . . . . . . . 337Componentes de módulo de integración . . . 338

Definiciones de módulos de integración . . 338Productos de gestión operativos . . . . . 338Operaciones de gestión lógica . . . . . . 338

Requisitos previos para la implementación . . 340Propiedades de implementación . . . . . . 341

Parámetros del módulo de integración . . . 341Flujo de procesos de módulos de integración 341Puntos finales . . . . . . . . . . . 342

Canal de invocación o implementación de claseJava . . . . . . . . . . . . . . . 343

Comparación entre los canales de invocacióny las clases Java . . . . . . . . . . 343Implementación de canales de invocación 344Implementación de clases Java . . . . . 345

Procesamiento de módulos de integración . . . 346Identificación de los componentes deintegración . . . . . . . . . . . . 346Invocación del módulo de integración . . . 347Procesamiento de respuestas de módulos deintegración . . . . . . . . . . . . 350

Configuración de módulos de integración . . . 350Creación de módulos de integración. . . . 350Selección de operaciones de gestión lógicapara módulos de integración . . . . . . 352Asociación de una operación de gestiónlógica con un módulo de integración . . . 353

Configuración de operaciones de gestión lógica 355Creación de operaciones de gestión lógica 355

Adición de atributos a operaciones degestión lógica . . . . . . . . . . . 356

Función de Inicio contextual . . . . . . . . 356Preparación de la aplicación externa . . . . . 357URL de entrada de ejecución en una aplicaciónexterna . . . . . . . . . . . . . . 357URL de entrada de ejecución en una aplicacióndel producto . . . . . . . . . . . . 357Habilitación del inicio contextual . . . . . . 358

Creación de una entrada de ejecución . . . 358Configuración de una opción de firma paraun punto de ejecución . . . . . . . . 360Adición de un punto de ejecución a un menúde aplicación . . . . . . . . . . . 360Adición de un botón como un punto deejecución . . . . . . . . . . . . . 361Adición de una condición a un punto deejecución . . . . . . . . . . . . . 361

Información de referencia de integración . . . . 362Propiedades del sistema de integración. . . . 362XML de integración . . . . . . . . . . 370

Descripción general . . . . . . . . . 370Estructura XML . . . . . . . . . . 371Esquemas de XML de integración . . . . 382

Conmutadores de colaboración . . . . . . 394Formato de los conmutadores decolaboración. . . . . . . . . . . . 395Recuperación de un conmutador decolaboración. . . . . . . . . . . . 396Configuración de conmutadores decolaboración. . . . . . . . . . . . 397Conmutadores de colaboración predefinidos 399

Avisos . . . . . . . . . . . . . . 409Marcas registradas. . . . . . . . . . . . 411

Contenido v

Page 6: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

vi Integración de datos con aplicaciones externas

Page 7: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Integración de datos con aplicaciones externas

La infraestructura de integración le ayuda a integrar datos de aplicación con otrasaplicaciones, ya sea dentro de su empresa o con sistemas externos. Lainfraestructura incluye contenido predefinido que permite la integración condiversos objetos de negocios y un kit de herramientas que puede utilizar paraampliar el contenido de integración predefinido y desarrollar puntos de integraciónnuevos.

Descripción general de la infraestructura de integraciónLa infraestructura de integración le ayuda a integrar datos de aplicación con otrasaplicaciones, ya sea dentro de su empresa o con sistemas externos. Lainfraestructura incluye contenido predefinido que permite la integración condiversos objetos de negocios y un kit de herramientas que puede utilizar paraampliar el contenido de integración predefinido y desarrollar puntos de integraciónnuevos.

La infraestructura de integración incluye los componentes y las funcionessiguientes:v Contenido de integración predefinidov Aplicaciones para crear y configurar componentes de integraciónv Soporte para múltiples modalidades de comunicación incluidos servicios web,

protocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS)v Soporte para distintos formatos de datos, incluidos tablas de interfaz de base de

datos, mensajes XML y JSON (JavaScript Object Notation), y archivos sinformato, como archivos de texto separados por comas

v Procesamiento basado en eventos, por lotes, iniciado por un programa e iniciadopor el usuario y ejecución basada en el contexto de aplicaciones externas

v Soporte para la integración de productos de gestión de operaciones (PGO)v Soporte para entornos en clústerv Soporte para la interacción con aplicaciones que soportan la aplicación de

integración OSLC (Open Services for Lifecycle Collaboration). La infraestructurade integración puede habilitar a una aplicación para que sea una aplicación deconsumidor de OSLC que se pueda integrar con una aplicación externa que hayaimplementado prestaciones de proveedor de OSLC.

La infraestructura de integración proporciona varias opciones para enviar y recibirdatos. Evalúe qué enfoque es el más eficiente para sus necesidades cuandoplanifique una integración. Entre algunos escenarios de integración típicos seencuentran los siguientes:v Cargar archivos con datos heredados durante una implementación.v Sincronizar datos maestros entre una aplicación de producto y una aplicación

ERP externa.v Utilizar servicios web para habilitar la consulta en tiempo real de datos de

aplicación de producto por parte de una aplicación externa.v Llamar a una aplicación externa para validar datos entrados en una aplicación

de producto.

© Copyright IBM Corp. 2008, 2014 1

Page 8: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Si desea importar un gran número de registros de un sistema externo, importe losdatos en archivos de proceso por lotes o utilice tablas de interfaz. Este enfoquesepara los datos de modo que varios mensajes se procesen como transaccionesdistintas. Con una sola transacción que procese de forma síncrona, como unallamada de servicio web, limite el número de mensajes en una sola transacciónpara garantizar que la transacción se procese en un margen de tiempo aceptable.Cuando planifique una integración, evalúe qué opción de integración es la másapropiada para sus necesidades.

El contenido de integración predefinido incluye soporte para varios objetos denegocios y las funciones de inserción, actualización y supresión sobre estos objetosde negocios está habilitado. Cuando se utiliza contenido predefinido, hay ciertaslimitaciones que pueden afectar a la implementación. Si existen reglas de negocioen el objeto de negocios que no permiten una función, como por ejemplo lafunción de supresión, la función no está disponible para la integración. Además delsoporte para las operaciones insertar, actualizar y suprimir, las aplicaciones delproducto soportan otras funciones que están disponibles como acciones. Elcontenido de integración predefinido no soporta todas las acciones que estándisponibles. En la mayor parte de casos, la acción Cambiar estado está soportadamediante la integración.Conceptos relacionados:“Contenido de integración predefinido” en la página 63La infraestructura de integración proporciona contenido de integración predefinido,que incluye estructuras de objeto, canales de publicación y servicios empresarialesque soportan la importación de datos de un sistema externo o la exportación dedatos un sistema externo.

ArquitecturaLa arquitectura de la infraestructura de integración incluye los datos, el transporte,la comunicación y los componentes de seguridad necesarios para intercambiarinformación entre aplicaciones y sistemas distintos.

Infraestructura para el intercambio de datosLa infraestructura para el intercambio de datos incluye los componentes y lasherramientas que se utilizan para implementar los distintos tipos de escenarios deintegración.

Componentes

La infraestructura incluye componentes de integración predefinidos y aplicacionesque puede utilizar para configurar los componentes. En la siguiente tabla sedescriben los principales componentes.

Tabla 1. Componentes de intercambio de datos de la infraestructura de integración

Componente Descripción

Estructuras de objetos Una estructura de objeto es la capa de datos común que utilizanlos componentes de la infraestructura de integración para losprocesos de mensajes de aplicaciones entrantes y salientes. Unaestructura de objeto consta de uno o varios objetos de negociorelacionados que definen el contenido de un mensaje XML(esquema).

Objetos de negocio Los objetos de negocio de aplicación están disponibles comorecursos REST (Representational State Transfer) para consultas yactualizaciones utilizando el componente API de REST de lainfraestructura de integración.

2 Integración de datos con aplicaciones externas

Page 9: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 1. Componentes de intercambio de datos de la infraestructura deintegración (continuación)

Componente Descripción

Canales depublicación

Un canal de publicación se utiliza para enviar mensajes asíncronos,a través de una cola JMS, a un sistema externo. Los mensajes delcanal de publicación pueden iniciarse utilizando un evento omediante la función Exportación de datos.

Canales de invocación Los canales de invocación se utilizan para enviar mensajessíncronos a un sistema externo y procesar el contenido de larespuesta. El canal admite la implementación de la lógica deprocesos y la correlación de la solicitud y la respuesta. Un canal deinvocación también permite utilizar los datos de la respuesta paraactualizar objetos de negocio y mostrarlos a los usuarios de laaplicación.

Serviciosempresariales

Un servicio empresarial es una interconexión para consultar eimportar datos de un sistema externo. Un servicio empresarialpuede procesar datos de forma síncrona (sin una cola) o asíncrona(con una cola). Los servicios empresariales pueden utilizar variosprotocolos como, por ejemplo, los servicios web y HTTP.

Sistemas externos Se define un sistema externo para la aplicación externa con la quetiene previsto integrarse. El sistema externo identifica el protocolode comunicación que se utiliza y qué servicios empresariales,canales de publicación y colas JMS se implementan para dichosistema externo.

Puntos finales ymanejadores

Un punto final y su manejador asociado direccionan los mensajessalientes a un sistema externo. La combinación del punto final y elmanejador especifica el protocolo de transporte, por ejemplo, HTTPo servicio web, y proporciona los datos de comunicación necesariospara alcanzar el destino, por ejemplo, un URL.

Servicios web Puede desplegar los servicios de la infraestructura de integracióncomo, por ejemplo, servicios empresariales o de estructura deobjeto, como servicios web que pueden invocar los sistemasexternos.

Importación yexportación de datos

Puede cargar datos desde archivos XML o archivos sin formato,por ejemplo, un archivo de texto separado por comas. Puedeiniciar la importación y la exportación de los datos desde unaaplicación de producto y programar un proceso por lotes paraejecutar la importación como un proceso en segundo plano. Puedeexportar uno o varios registros a un archivo utilizando un Canalde publicación, donde pueden aplicarse condiciones de filtro paracontrolar el contenido de los datos que se exportan.

Contenido La infraestructura de integración proporciona un contenidopredefinido que incluye estructuras de objetos, los serviciosempresariales y los canales de publicación correspondientes, unsistema externo y manejadores predefinidos que admiten distintosprotocolos de comunicación.

Proceso

Cuando los mensajes de integración fluyen de entrada y salida, la infraestructuraproporciona opciones como, por ejemplo, clases Java, reglas de proceso y lacorrelación XSL para proporcionar la lógica de transformación de los mensajes yreglas de negocio que se adapten a sus requisitos de integración.

Integración de datos con aplicaciones externas 3

Page 10: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Comunicación

La infraestructura de integración facilita el intercambio de datos síncrono yasíncrono. Los mensajes asíncronos se procesan utilizando colas JMS (Java MessageService). Las colas JMS pueden procesar mensajes por orden de prioridad(secuencialmente) o de modo multihebra (continuo). Los mensajes síncronos querequieren una respuesta al remitente no se procesan utilizando colas JMS yrequieren una conexión directa entre la infraestructura de integración y laaplicación externa.

Puede configurar varios protocolos de comunicación como, por ejemplo, HTTP,servicios web y mensajería JMS.

Cuando se integra con varias aplicaciones externas, puede configurar distintoscanales y servicios para utilizar distintos protocolos de comunicación como, porejemplo, HTTP, servicios web y mensajería JMS, según las prestaciones de cadaaplicación externa individual.

Seguridad

La infraestructura de integración utiliza el soporte del producto de la seguridad deautenticación J2EE, para que pueda configurar Enterprise Java Beans (EJB), HTTP yservicios web. Puede configurar la seguridad de autorización de las aplicaciones,los objetos y los métodos de servicios estándar.Conceptos relacionados:“API de REST” en la página 243La API (interfaz de programación de aplicaciones) de REST (Representational StateTransfer) proporciona una manera para que las aplicaciones externas consulten yactualicen datos de aplicación en motor de automatización de procesos de Tivoli.

Infraestructura para la integración de productos de gestión deoperacionesLos productos de gestión de procesos pueden integrarse con productos de gestiónde operaciones en una modalidad automatizada utilizando módulos deintegración. Los productos de gestión de procesos pueden utilizar la función deinicio contextual para integrarse con productos de gestión de operaciones enmodalidad asistida.

El producto de gestión de procesos proporciona una clase Java de acción que iniciala llamada a un módulo de integración y, posteriormente, al producto de gestiónde operaciones. El producto de gestión de procesos procesa luego la respuesta delproducto de gestión de operaciones.

Una operación de gestión lógica define la acción que el producto de gestión deprocesos realiza sobre el producto de gestión de operaciones. La operación degestión lógica identifica las propiedades siguientes:v El nombre y la descripción de la acción a la que da soportev Si el procesamiento es síncrono o asíncronov Los objetos de entrada (origen) y salida (destino) y los campos para la

transacción

El módulo de integración proporciona un mecanismo para que un producto degestión de procesos llame a un producto de gestión de operaciones externo.Cuando lo inicia un producto de gestión de procesos, el módulo de integraciónutiliza datos proporcionados por el producto de gestión de procesos para ayudar a

4 Integración de datos con aplicaciones externas

Page 11: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

llamar al servicio del producto de gestión de operaciones. El módulo deintegración también puede devolver cualquier dato de respuesta al producto degestión de procesos.

Los productos de gestión de operaciones proporcionan servicios a los que losmódulos de integración pueden llamar para iniciar acciones de productos degestión de operaciones.

Infraestructura para la integración de la interfaz de usuarioPuede configurar la infraestructura de integración para que abra una ventana enuna aplicación externa y proporcione datos para incluirlos en el contexto de dichaventana.

Puede configurar un URL de consola para cualquier aplicación con una consolabasada en la web y puede configurar URL para consolas que utilicen Java WebStart. No puede utilizar una entrada de ejecución para abrir aplicaciones que noestén habilitadas para la web. Puede configurar un punto de ejecución desdecualquier aplicación del producto. Puede proporcionar acceso a puntos de iniciocomo acciones, hiperenlaces y en botones de aplicación.

Puede utilizar el mismo procedimiento para abrir una ventana de una aplicacióndel producto desde una aplicación externa.

Habilitación de la exportación y la importación de datosAntes de utilizar la infraestructura de integración para intercambiar datos con unaaplicación externa, debe configurar los componentes necesarios para lacomunicación entrante y saliente. Estos procedimientos describen los pasos deconfiguración mínimos necesarios para validar que pueda exportar datos a unarchivo e importar datos de un archivo.

Preparación del sistemaPara habilitar la integración, debe realizar algunas tareas de configuraciónrelacionadas con propiedades del sistema, colas JMS y tareas cron.

Configuración de colas JMSLas colas JMS se configuran en el servidor de aplicaciones. La configuración decolas JMS puede ser automática o manual en WebSphere Application Server. Laconfiguración de colas JMS siempre es un procedimiento manual en WebLogicServer.

Procedimiento1. Confirme que las colas JMS están configuradas.2. Confirme que los beans controlados por mensaje estén habilitados para la cola

continua.

Configuración de las propiedades de integraciónAntes de habilitar la infraestructura de integración, modifique los valorespredeterminados para las propiedades de integración con valores apropiados parasu entorno.

Procedimiento1. En la aplicación Propiedades del sistema, filtre las propiedades que desee

configurar. Si filtra mxe.int en el campo Propiedad, aparecerán en la lista todaslas propiedades de integración.

Integración de datos con aplicaciones externas 5

Page 12: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

2. Seleccione la propiedad mxe.int.dfltuser y verifique que la cuenta de usuarioespecificada sea una cuenta de usuario del sistema válida. Modifique el valorde la propiedad si es necesario. La propiedad especifica el ID de inicio desesión predeterminado que se utiliza para todas las transacciones de integraciónprocesadas por una cola JMS entrante.

3. Opcional: Puede configurar un directorio global en el que una única ubicaciónde archivo pueda contener archivos relacionados con la integración en elsistema de archivos. Los servidores de Maximo Asset Management deben teneracceso al directorio global del sistema de archivos. Por ejemplo, cuando seutiliza un punto final basado en archivo que no tiene configurada unaubicación de archivo, el archivo generado por el punto final se coloca en undirectorio predeterminado del directorio global. Puede configurar el nombre deldirectorio global en la propiedad del sistema mxe.int.globaldir.

Activación de la tarea cron para colas JMSPara el procesamiento asíncrono, los mensajes de integración se colocan en colasJMS. Las tareas cron sondean las colas JMS frecuentemente y luego procesan losmensajes encontrados en las colas.

Procedimiento1. En la aplicación Configuración de tarea cron, busque la tarea cron

JMSQSEQCONSUMER.2. Verifique que la tarea cron esté configurada para sondear tanto la cola SEQQIN

como la cola SEQQOUT.3. Establezca la casilla de verificación Activa para cada cola.4. Pulse Guardar.5. Haga clic en la acción Recargar solicitud.

Exportación de datos a un archivo de pruebaPara validar que el proceso de salida se ha configurado y habilitado correctamente,ejecute una exportación de prueba.

Acerca de esta tarea

Para probar el proceso de salida, esta tarea utiliza la función de exportación dedatos para exportar un registro de persona a un archivo. La tarea utiliza lossiguientes componentes de integración predefinidos:v Sistema externo: EXTSYS1v Canal de publicación: MXPERSONInterface, que utiliza la estructura de objeto

MXPERSONv Punto final: MXXMLFILE

Procedimiento1. En la ficha Sistemas, asegúrese de que la casilla de verificación Habilitado esté

seleccionada para el sistema externo EXTSYS1.2. En la ficha Canales de publicación, filtre para el canal de publicación

MXPERSONInterface.3. En la sección Detalles del canal de publicación MXPERSONInterface,

especifique MXXMLFILE en el campo Punto final.4. Pulse en Exportación de datos.5. En la ventana Exportación de datos, especifique 1 en el campo Recuento para

limitar la exportación un solo registro.

6 Integración de datos con aplicaciones externas

Page 13: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Resultados

Si no se especifica una ubicación en la propiedad FILEDIR, el archivo XML seexporta a la ubicación que ha especificado en la propiedad mxe.int.globaldir.

Importación de datos de un archivo de pruebaPara validar que el proceso de entrada esté correctamente configurado y habilitado,ejecute una importación de prueba.

Procedimiento1. Abra el archivo de prueba que haya exportado en un editor de texto y realice

las modificaciones siguientes:a. Cambie la etiqueta <PublishMXPERSON> por <SyncMXPERSON> para

cambiar la operación para el proceso de entrada.b. Agregue un sufijo al valor LASTNAME, como por ejemplo

LASTNAME_TEST, para facilitar la verificación del cambio cuandoimporte el archivo de prueba.

c. Guarde el archivo.2. En la ficha Sistema de la aplicación Sistemas externos, asegúrese de que la

casilla de selección Habilitado esté seleccionada para el sistema externoEXTSYS1.

3. En la ficha Servicios empresariales, filtre el servicio empresarialMXPERSONInterface.

4. Seleccione la fila MXPERSONInterface y deseleccione Usar cola continua.5. Pulse Guardar.6. Seleccione la fila MXPERSONInterface y pulse Importar datos.7. En la ventana Importar datos, especifique los valores siguientes:

a. Seleccione la opción Archivo XML.b. En el campo Especificar archivo de importación, navegue al archivo de

prueba modificado y selecciónelo.8. Pulse Aceptar.9. En la aplicación Personas, filtre el registro de prueba y verifique que el valor

del campo Apellido incluya el sufijo que haya añadido.10. Suprima el sufijo para restaurar el registro a su valor original y pulse en

Guardar.

Componentes de integraciónSegún el ámbito y los requisitos de su implementación, puede crear componentesnuevos o copiar, modificar o ampliar los componentes predefinidos.

La duplicación de un componente de integración y la modificación de la copiaofrece varias ventajas. La copia de un componente de integración se convierte enuna entidad definida por el usuario y las restricciones de modificación que seaplican al componente predefinido no se aplican a la copia. La versión original delcomponente no se modifica. Para evitar la modificación de un componente seutiliza para el procesamiento de transacciones, realice todas las modificaciones enmodalidad de administrador.

Estructuras de objetosUna estructura de objeto es la capa de datos común que utilizan los componentesde la infraestructura de integración para enviar y recibir datos en Maximo Asset

Integración de datos con aplicaciones externas 7

Page 14: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Management. Una estructura de objeto está formada por uno o varios objetos denegocio relacionados que definen el contenido de un mensaje de integración.

Una estructura de objeto proporciona el contenido del mensaje de los canales y losservicios, y habilita la importación y la exportación basada en aplicaciones.Asimismo, una estructura de objeto, por si sola, puede invocarse como un servicio,para dar soporte a las operaciones Crear, Actualizar, Suprimir, Sincronizar yConsultar.

Identificación de objetosPara identificar los datos que se deben incluir en una estructura de objeto esnecesario conocer las aplicaciones y sus objetos asociados. Revise el modelo dedatos de una aplicación para determinar qué objetos, tablas de base de datos yvistas contienen los datos que debe transferir a un sistema externo y desde éste.

Debe averiguar qué objetos llenan las tablas de base de datos. Generalmente, existeuna relación unívoca entre un objeto y una tabla de base de datos. No obstante, enalgunos casos, varios objetos graban datos en una tabla individual.

Se proporciona una estructura de objeto predefinida para intercambiar datos en elobjeto de persona con un sistema externo. Si no existe ninguna estructura de objetopredefinida, para crear una, determina que los datos que necesita se encuentran enlas tablas PERSONA, TELÉFONO, CORR. ELECT. y SMS. Las tablas de base dedatos tienen el mismo nombre que los objetos correspondientes. Incluya estosobjetos en la estructura de objeto que cree. El nombre de la estructura de objetodebe empezar por un carácter alfabético.

Cuando una estructura de objeto contiene varios objetos, la estructura de objeto seorganiza como una jerarquía, con un objeto raíz (el objeto superior o principal) yobjetos hijo. Una estructura de objeto puede dar soporte a cualquier cantidad deniveles de objetos en su jerarquía. Debe especificar como relación una relaciónpadre-hijo válida para todos los objetos bajo el nivel superior de la jerarquía y nopuede hacer referencia al mismo objeto más de una vez en la misma ramificaciónde la jerarquía. Cuando cree una estructura de objeto, empiece añadiendo el objetoprincipal (nivel superior). A continuación, puede añadir más objetos como objetoshijo del objeto padre.

Teclas alternativasEl proceso de mensajes entrantes se basa en los campos de clave de un objeto paraencontrar un registro existente en el sistema para dar soporte a las actualizacionesy las supresiones. El proceso predeterminado se basa en la clave primaria pararecuperar los registros existentes. A veces, una clave primaria resulta desconocidapara una aplicación externa y se define una clave alternativa (conocida por elsistema externo) para permitir la actualización y la supresión de registros por partedel sistema externo.

Un mensaje entrante suele utilizar la clave primaria de un objeto para buscar yprocesar registros que ya existen en el sistema. No obstante, a veces una claveprimaria es un valor generado internamente que no está disponible para el sistemaexterno. En estos casos, puede definir una clave alternativa para un objeto y elsistema externo pasa los campos de clave alternativa que utiliza la infraestructurade integración, en lugar de los campos de clave primaria, para recuperar los datosde dicho objeto.

Puede especificar una clave alternativa para un objeto a nivel de objeto o a nivelde estructura de objeto. Si especifica una clave alternativa a nivel de objeto, todas

8 Integración de datos con aplicaciones externas

Page 15: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

las estructuras de objeto que incluyen el objeto utilizan la misma clave alternativa.Si especifica una clave alternativa a nivel de estructura de objeto, puede utilizarestructuras de objeto diferentes para especificar una clave alternativa diferente paracada origen de datos externo que utiliza el objeto. Debe definir el índice queconstituye una clave alternativa para un objeto en la aplicación Configuración debase de datos. Después de crear el índice, puede seleccionarlo como clavealternativa para el objeto.

Durante el proceso entrante, la infraestructura de integración procesa la clavealternativa y la clave primaria en el orden siguiente:v Procesa la clave alternativa de la estructura de objeto, si hay una configurada.v Procesa la clave alternativa del objeto, si hay una configurada y no hay una

clave alternativa configurada para la estructura de objeto.v Utiliza la clave primaria del objeto si no hay una clave alternativa configurada

para la estructura de objeto ni para el objeto.

Después de especificar una clave alternativa, los mensajes entrantes pueden fallarsi se cambia o se descarta el índice de la clave alternativa.

Campos de objetoLa infraestructura de integración y el sistema externo intercambian un subconjuntode las columnas de datos en los objetos de la estructura de objeto. Con ciertasrestricciones, puede controlar el contenido de los campos de objeto del mensajeincluyendo columnas persistentes y no persistentes de objetos individuales.

Un objeto de negocio puede tener varios campos, la mayor parte de los cuales esposible que no sean necesarios en un escenario de integración. Cuando configureuna estructura de objeto, puede seleccionar qué campos se deben incluir en losmensajes de integración y mejorar el rendimiento de la transferencia de mensajesentre aplicaciones. De forma predeterminada, los objetos de una estructura deobjeto incluyen todas las columnas persistentes de los objetos. Una columnapersistente es un campo de datos que un objeto utiliza para escribir datos en unatabla de base de datos como parte de su proceso. Para controlar el tamaño delcontenido, puede excluir las columnas persistentes que no intercambia con lasaplicaciones externas. Sólo las columnas persistentes incluidas forman parte delmensaje XML para los mensajes salientes. Para los mensajes entrantes, sólo seactualizan las columnas de objeto incluidas en la estructura de objeto. No excluyaninguna columna que forme parte de una clave primaria o alternativa.

De forma predeterminada, una estructura de objeto excluye la mayor parte de lascolumnas no persistentes de los objetos componentes. Una columna no persistentees un campo de datos temporal que un objeto utiliza para los cálculos o elalmacenamiento temporal. Puede incluir columnas no persistentes adicionales en laestructura de objeto. Por ejemplo, los objetos que contienen la columna persistenteDESCRIPTION también contienen la columna no persistenteDESCRIPTION_LONGDESCRIPTION. La mayoría de las estructuras de objetopredefinidas incluyen esta columna no persistente porque muchos escenarios deintegración requieren campos de descripción detallada. Si este campo no seincluye, no forma parte de los mensajes de integración.

Si cambia el contenido del mensaje de una estructura de objeto que se estáutilizando para una tabla de interfaz, se debe volver a generar la tabla de interfazpara reflejar el contenido actualizado de la estructura de objeto.

Integración de datos con aplicaciones externas 9

Page 16: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Consideraciones sobre las tablas de interfaz y los archivos sinformatoSi utiliza una estructura de objeto para cambiar datos con tablas de interfaz oarchivos sin formato, debe garantizar que la estructura de objeto no contenganombres de columna duplicados.

Debe seleccionar la casilla de verificación Admitir estructura plana para cualquierestructura de objeto que piense utilizar para escenarios de integración de tabla deinterfaz o de archivo sin formato. Cuando esta opción está establecida, secomprueban los mensajes para garantizar que cada columna para cada objeto de laestructura de objeto tenga un nombre exclusivo. Si existen nombres de columnaduplicados, puede crear un nombre de campo de alias para los nombresduplicados. La modificación del alias garantiza que todos los nombres de columnasean exclusivos y que el sistema pueda generar la tabla de interfaz o el archivo sinformato sin errores. Las tablas de interfaz requieren que todas las columnasincluidas en el objeto correspondiente tengan un nombre de alias de 18 caracteres omenos.

Modificación de una estructura de objeto predefinidaExisten determinadas restricciones si modifica una estructura de objeto predefinida.

Puede añadir objetos a una estructura de objeto predefinida, pero no puedesuprimir objetos predefinidos de la estructura de objeto. Para evitar esta restricción,realice un duplicado de la estructura de objeto predefinida para crear unaestructura de objeto definida por el usuario y suprima los objetos de la versiónduplicada.

Puede incluir y excluir columnas persistentes y no persistentes, sujetas a lasvalidaciones estándar que se aplican durante el procesamiento de integración. Losmensajes salientes incluyen las columnas para los objetos que añade a unaestructura de objeto. Pruebe los mensajes entrantes para garantizar que lascolumnas que añade se procesen correctamente. Si las columnas de objetoadicionales no se procesan correctamente, añada una clase de procesamiento deestructura de objeto para manejar el proceso entrante.

Si utiliza la estructura de objeto en tablas de interfaz o archivos sin formato,compruebe los conflictos de alias. Puede producirse un conflicto de alias si dosobjetos de una estructura de objeto que da soporte a archivos sin formato tienencolumnas con el mismo nombre. Cuando comprueba si hay conflictos de alias, seidentifican los nombres duplicados y puede asignar nombres de alias parautilizarlos como sustitutos para alterar temporalmente el conflicto. Si utiliza tablasde interfaz, vuelva a generar la tabla para cada servicio empresarial o canal depublicación que utilice la estructura de objeto modificada.

Configuración de una estructura de objetoPuede crear estructuras de objeto nuevas y, en este proceso, generar archivos deesquema, incluir o excluir campos y resolver conflictos de alias. También puedeespecificar restricciones de configuración entrante, establecer propiedades deconfiguración avanzadas y configurar la autorización de aplicaciones.

Creación de una estructura de objeto:

Al crear una estructura de objeto, define un grupo de objetos relacionados paraque formen parte de un mensaje de integración que intercambia con aplicacionesexternas. Puede identificar campos de datos para cada objeto de negocio quedetermine el contenido de los mensajes de integración.

10 Integración de datos con aplicaciones externas

Page 17: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Acerca de esta tarea

Durante la configuración, puede definir clases Java, si es necesario, que procesenlos mensajes entrantes y salientes. También puede definir una aplicación queproporcione reglas de autorización para los mensajes de integración procesados através de la estructura de objeto. Si la estructura de objeto únicamente estápensada para la creación de consultas y no desea utilizarla para fines deactualización, seleccione la opción Sólo consulta. Si el objeto principal de laestructura de objeto tiene una relación con él mismo como objeto de nivel inferior,establezca la opción Autoreferencia.

Procedimiento

1. En la aplicación Estructuras de objetos, pulse en Nueva estructura de objeto.2. En el campo Estructura de objeto, especifique un identificador de estructura de

objeto.3. Opcional: Si va a utilizar la estructura de objeto para operaciones de consulta,

marque la casilla de verificación Sólo consulta.4. Opcional: Si utiliza tablas de interfaz o archivos planos para intercambiar datos

entre la infraestructura de integración y un sistema externo, marque la casillade verificación Admitir estructura plana.

5. En el campo Consumido por, especifique el módulo que utiliza la estructura deobjeto.

Opción Descripción

INTEGRACIÓN Infraestructura de integración

GESTORMIGRACIÓN Gestor de migración

INFORMES Informes

OSLC OSLC

6. En la ventana de tabla Objetos de origen, pulse en Fila nueva.7. Especifique valores en los campos siguientes para crear una jerarquía de objetos

de negocio:v Objeto

v Objeto de nivel superior

v Descripción de informes

v Relación

v Orden de objeto

8. Pulse Guardar estructura de objeto.

Qué hacer a continuación

Si la casilla de verificación Conflicto de alias está seleccionada en el registro deestructura de objeto, puede agregar o modificar un alias para corregir los nombresde campo duplicados en los objetos de origen. También puede especificar loscampos persistentes y no persistentes que desee excluir e incluir en la estructurade objeto.

Configuración de una clave alternativa:

Para configurar una clave alternativa, cree un índice exclusivo en la aplicación deconfiguración de base de datos y haga referencia a este índice como la clavealternativa de una estructura de objeto o de un objeto específico.

Integración de datos con aplicaciones externas 11

Page 18: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Acerca de esta tarea

Si establece la clave alternativa al nivel de objeto, la clave se aplica a todos los usosdel objeto en una estructura de objeto. Si establece la clave alternativa en laestructura de objeto, la clave se aplica al objeto sólo cuando se accede a ella através de la estructura de objeto seleccionada.

Procedimiento

1. Identifique el campo o los campos de un objeto para utilizarlos como clavealternativa.

2. Seleccione el objeto en la aplicación Configuración de la base de datos.3. Cree un índice exclusivo para el campo o los campos en la ficha Índices.4. Especifique este índice en el campo Clave alternativa en una de las fichas

siguientes:a. En la ficha Objeto de la aplicación Configuración de la base de datos, si

desea aplicar la clave alternativa al objeto para todos los orígenes de datosexternos.

b. En la ficha Estructuras de objetos de la aplicación Configuración de la basede datos, si desea aplicar la clave alternativa a este uso específico del objeto.

Inclusión de campos no persistentes en la estructura de objeto:

Los objetos de negocios utilizan campos no persistentes para los cálculos o elalmacenamiento temporal de datos. De forma predeterminada, los campos nopersistentes en un objeto de negocio se excluyen de la definición de la estructurade objeto. Puede incluir datos de campos no persistentes en los mensajes deintegración.

Antes de empezar

Si desea cambiar una estructura de objeto predefinida, realice un duplicado de esaestructura de objeto para crear una versión definida por el usuario que puedamodificarse.

Procedimiento

1. En la aplicación Estructuras de objeto, seleccione la estructura de objeto quedesee actualizar.

2. Seleccione el objeto de negocio que contiene el campo no persistente que deseaincluir.

3. Seleccione la acción Excluir/Incluir campos.4. Pulse la ficha Campos no persistentes para visualizar los campos no

persistentes del objeto de negocio.5. Especifique si desea que el campo no persistente se incluya o se excluya.

Opción Incluido

Incluir el campo Seleccionado

Excluir el campo Sin seleccionar

6. Pulse Aceptar.

12 Integración de datos con aplicaciones externas

Page 19: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Exclusión de campos persistentes de la estructura de objeto:

Los objetos de negocio utilizan campos persistentes para grabar datos de procesoen una base de datos. De forma predeterminada, los campos persistentes estánincluidos en la definición de la estructura de objeto. Puede excluir los datos decampos persistentes que no desee correlacionar con un mensaje de integración.

Antes de empezar

Si desea cambiar una estructura de objeto predefinida, realice un duplicado de esaestructura de objeto para crear una versión definida por el usuario que puedamodificarse.

Acerca de esta tarea

No puede excluir un campo que forme parte de una clave primaria. Si excluye uncampo persistente de una estructura de objeto predefinida, el objeto asociadopuede que no funcione correctamente durante el proceso de los mensajes entrantes.Compruebe los mensajes entrantes para asegurarse de que un campo persistenteexcluido no afecte al proceso de objetos.

Procedimiento

1. En la aplicación Estructuras de objeto, seleccione la estructura de objeto quedesee actualizar.

2. Seleccione el objeto de negocio que contiene el campo persistente que deseaexcluir.

3. Seleccione la acción Excluir/Incluir campos.4. Pulse la ficha Campos persistentes para visualizar los campos persistentes del

objeto de negocio.5. Especifique si desea que el campo persistente se excluya o se incluya.

Opción Excluido

Excluir el campo Seleccionado

Incluir el campo Sin seleccionar

6. Pulse Aceptar.

Resolución de conflictos de alias:

Una estructura de objeto que contenga varios objetos y soporte archivos sinformato o tablas de interfaz no puede tener nombres de campo duplicados paracualquiera de los campos de sus objetos. Deberá resolver cualquier conflicto denombre de campo (alias) para poder generar tablas de interfaz y registros dearchivo sin formato.

Acerca de esta tarea

Si existe un conflicto de alias, se selecciona la casilla de verificación Conflicto dealias en el registro de estructura de objeto. Sólo puede cambiar un alias si la casillade verificación Admitir estructura plana está seleccionada en el registro, indicandoque los datos se procesan mediante tablas de interfaz o archivos sin formato.

Integración de datos con aplicaciones externas 13

Page 20: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Procedimiento

1. Cuando exista un conflicto de alias, seleccione un objeto de negocios en la tablaObjetos de origen.

2. Seleccione la acción Agregar/modificar alias. Si en un campo existe un aliasduplicado, la casilla de verificación Duplicado correspondiente estáseleccionada.

3. Para actualizar un alias duplicado:a. Pulse en Ver detalles del alias duplicado.b. Especifique un valor nuevo en el campo Alias.c. Pulse Aceptar.

Qué hacer a continuación

Después de resolver todos los conflictos de alias, puede generar tablas de interfazy registros de archivo sin formato. Si utiliza tablas de interfaz, deberá volver agenerar todas las tablas que utilicen la estructura de objeto actualizada. Para volvera generar tablas de interfaz, seleccione la opción Crear tablas de interfaz en laaplicación Sistemas externos.

Establecimiento de restricciones sobre campos en mensajes entrantes:

El procesamiento de integración estándar establece los valores en campos de objetocon los valores correspondientes de un mensaje entrante. Puede establecer uncampo como restringido si no desea que el valor se actualice con los mensajesentrantes, por ejemplo, para un campo con un ID interno o en el que una clase deprocesamiento proporciona la lógica para establecer el campo.

Procedimiento

1. Seleccione la acción Restricciones de configuración entrante.2. En la ventana Restricciones de configuración entrante, seleccione el objeto al

que desee aplicar restricciones de configuración. La tabla Restricciones deconfiguración entrante se renueva con una lista de los campos configuradospara el objeto seleccionado.

3. Seleccione el recuadro de selección Restringido para cualquier campo que nodesee que se actualice con los valores en los mensajes entrantes.

4. Puede seleccionar el recuadro de selección Alterar temporalmente paraeliminar las restricciones establecidas para un campo. No puede alterartemporalmente la restricción establecida en algunos campos, por ejemplo, paraun campo con un ID generado por el sistema.

5. Pulse Aceptar.

Establecimiento de configuraciones avanzadas para una estructura de objeto:

Puede establecer configuraciones avanzadas para una estructura de objeto paracambiar el comportamiento de proceso predeterminado de los mensajes deintegración. Las configuraciones avanzadas incluyen la configuración de cómo seprocesan los campos de clave para los objetos hijo, si un evento en un objeto hijoactiva un evento correspondiente en el objeto padre, y si se suprimen los datosgenerados automáticamente.

Procedimiento

1. Seleccione la acción Configuración avanzada.

14 Integración de datos con aplicaciones externas

Page 21: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

2. Deseleccione el recuadro de selección Excluir atributos de clave padre paratodo objeto donde desee que se incluyan estos atributos para los objetos hijo.Cuando se selecciona (el valor predeterminado), los campos de clave queexisten en un objeto hijo no se incluyen en la sección del mensaje para el objetohijo si el mismo campo forma parte de la clave del objeto padre. Si deseleccionaesta opción, los campos de clave para un objeto hijo siempre se incluyen y elcampo se incluye en la sección de objeto hijo del mensaje y en la sección delobjeto padre.

3. Deseleccione el recuadro de selección Suprimir datos autogenerados para todoobjeto en el que desee retener estos datos. Cuando se selecciona (el valorpredeterminado), el proceso de integración siempre suprime los datos de nivelhijo que crea automáticamente la lógica de objetos de negocio cuando se crea elobjeto padre. Si deselecciona esta opción, se mantienen los datos adicionalesque se generan automáticamente.

4. Seleccione la opción Sucesos de propagación para los objetos en los que deseaque un evento en un objeto hijo desencadene un evento en el objeto principal.Cuando configura un canal de publicación para enviar mensajes basándose enun evento de objeto, se configura el escucha de eventos para el objeto principalde la estructura de objeto. En algunos casos, una actualización de un objeto hijono desencadena un evento en el objeto principal y no se inicia ningún mensaje.Seleccione esta opción si desea que una actualización del objeto hijodesencadene un evento en el objeto principal sin actualizar el objeto principal.Si un objeto hijo incluye una lógica que desencadena un evento en su objetopadre, no puede habilitarlo ni inhabilitarlo con esta configuración.

Canales y serviciosLos canales y los servicios hacen referencia a una estructura de objeto para sucontenido de mensaje y habilitan el intercambio sincrónico y asíncrono de datoscon sistemas externos. Dos tipos de canales procesan los mensajes salientes: loscanales de publicación y los canales de invocación. Tres tipos de servicio procesanlos mensajes entrantes: servicios de estructura de objeto, servicios empresariales yservicios estándar.

Canales de publicaciónUn canal de publicación se utiliza para enviar mensajes asíncronos a través de unacola JMS a un sistema externo. Los mensajes del canal de publicación puedeniniciarse utilizando un evento o mediante la función Exportación de datos.

La infraestructura de integración incluye canales de publicación predefinidos opuede configurar sus propios canales de publicación. Cuando configura un canalde publicación, debe asociarlo con una estructura de objeto y, de manera opcional,habilitar un escucha de eventos. También debe configurar el canal de publicacióncon un sistema externo para determinar dónde se entrega el mensaje.

También puede configurar reglas de proceso, clases de proceso Java o unacorrelación XSL para personalizar el proceso de transacción del canal depublicación.

Configuración de un canal de publicación:

Para utilizar un canal de publicación para la exportación de datos, debe crear elcanal de publicación, asociarlo con una estructura de objeto y habilitar un escuchade eventos. También debe configurar un punto final que direcciona la transacción a

Integración de datos con aplicaciones externas 15

Page 22: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

un sistema externo especificado. También puede configurar reglas de publicación,clases de proceso Java o correlación de XSL para personalizar el procesamiento detransacciones.

Creación de canales de publicación:

Puede crear un canal de publicación para enviar mensajes de integración a unsistema externo.

Antes de empezar

Antes de crear y configurar un canal de publicación, utilice la aplicaciónEstructuras de objetos para configurar la estructura de objeto que desea asociar conel canal de publicación.

Procedimiento

1. En la aplicación Canales de publicación, pulse en Nuevo canal de publicación.2. En el campo Canal de publicación, especifique el nombre del canal de

publicación.3. En el campo Estructura de objeto, especifique la estructura de objeto que desea

utilizar con el canal de publicación. La sección Subregistros de estructura deobjeto se actualiza con detalles de los objetos incluidos en esta estructura deobjeto.

4. Opcional: Si desea utilizar una tabla de interfaz como origen de datos,especifique su nombre en el campo Tabla de interfaz. La estructura de objetodebe estar configurada para admitir que se utilicen archivos sin formato con lastablas de interfaz.

5. Opcional: Si desea personalizar la lógica de proceso saliente, especifique lasrutas para las clases Java y la hoja de estilo XSL en los campos siguientes:a. Clase de proceso

b. Clase de salida de usuario

c. Mapa XSL

d. Clase de filtro de eventos

Cualquier clase Java que especifique debe formar parte del archivo EAR de laaplicación. Un archivo XSL puede encontrarse en el archivo EAR o en unsistema de archivos accesible.

6. Opcional: Puede configurar reglas de proceso para el canal de publicación.7. Opcional: Si es necesario, deseleccione la casilla de verificación Retener objetos

para evitar que el canal de publicación procese reglas basadas en objetos denegocios.

8. Pulse en Guardar canal de publicación.

Qué hacer a continuación

Puede habilitar un escucha de canal de publicación para indicar a la infraestructurade integración que cree y procese el canal de publicación seleccionado. Tambiénpuede utilizar la aplicación Sistemas externos para asociar el canal de publicacióncon un sistema externo e identificar un punto final para la entrega de mensajesdesde el canal de publicación.

16 Integración de datos con aplicaciones externas

Page 23: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Habilitación de escuchas de canal de publicación:

Habilite un escucha de eventos en un canal de publicación para supervisar laactividad de los procesos en los objetos de canal de publicación asociados. Elproceso del canal de publicación se inicia cuando se produce un evento en elobjeto principal de la estructura de objeto asociada.

Procedimiento

1. En la aplicación Canales de publicación, seleccione el canal de publicación quedesea configurar con un escucha de eventos.

2. Seleccione la acción Habilitar escucha de eventos.3. Pulse Aceptar para habilitar el escucha del canal de publicación. Los detalles

del canal de publicación se actualizan y se selecciona la casilla de verificaciónEscucha de eventos.

Qué hacer a continuación

Seleccione la acción Inhabilitar escucha de eventos si desea inhabilitar la escuchade eventos en algún momento.

Canales de invocaciónLos canales de invocación definen la lógica de procesamiento y la correlación dedatos de entrada y salida, lo que permite a la infraestructura de integración llamara aplicaciones externas y procesar respuestas. No se suministran canales deinvocación predefinidos.

Creación de canales de invocación:

Puede crear un registro de canal de invocación para enviar datos de salida desdeuna estructura de objeto a un sistema externo y para procesar las respuestas desdeel sistema externo.

Antes de empezar

Debe incluir la clase de proceso definida, la clase de salida del usuario y losarchivos de correspondencia XSL en el archivo EAR de la aplicación. También debedefinir una ruta de archivo de correspondencia XSL a la que el servidor deaplicaciones pueda acceder.

Procedimiento

1. En la aplicación Canales de invocación, pulse en Nuevo canal de invocación.2. En el campo Canal de invocación, especifique un identificador de canal de

invocación.3. Especifique valores en los campos siguientes:

v Adaptador

v Punto final

4. Opcional: Si este canal de invocación procesa respuestas desde una aplicaciónexterna, seleccione la casilla de verificación Respuesta de proceso.

5. En la ventana de tabla Configuración de petición de servicio, especifiquevalores en los campos siguientes:

Integración de datos con aplicaciones externas 17

Page 24: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Opción Descripción

Estructura de objeto de solicitud La estructura de objeto utilizada paradefinir el contenido para el proceso dedatos de salida.

Clase de proceso de solicitud El archivo de clase Java que se utilizacuando el canal de invocación requierelógica de proceso de salida predefinida.

Salida de usuario de solicitud El archivo de clase que utiliza el canal deinvocación para personalizar la lógica deproceso de salida predefinida.

Archivo XSL de solicitud El archivo XSL que se utiliza parapersonalizar la correlación de canales deinvocación de salida predefinidos.

6. Opcional: Si ha seleccionado la casilla de verificación Respuesta de proceso,especifique valores en los campos siguientes en la ventana de tablaConfiguración de respuesta de servicio:

Opción Descripción

Estructura de objeto de respuesta La estructura de objeto que se utiliza paradefinir el contenido para la respuesta.

Clase de proceso de respuesta El archivo de clase Java que se utilizacuando el canal de invocación requierelógica de proceso de entrada predefinidapara la respuesta.

Clase de salida de usuario de respuesta El archivo de clase que utiliza el canal deinvocación para personalizar la lógica deproceso de entrada predefinida para larespuesta.

Archivo XSL de respuesta El archivo XSL que se utiliza parapersonalizar la correlación de canales deinvocación de entrada predefinidos para larespuesta.

7. Pulse en Guardar canal de invocación.

Qué hacer a continuación

Puede ver el esquema XML de la estructura de objeto utilizando un URL con elformato siguiente:

http://localhost:puerto/meaweb/schema/service/nombre_estructura_objeto

Configuración de una acción para llamar a un canal de invocación:

La infraestructura de integración proporciona una clase de acción predeterminadaque se puede configurar como una acción del sistema. Al proporcionar esta clasede acción, puede configurar un control de interfaz de usuario, una escalabilidad oun flujo de trabajo para invocar un servicio externo utilizando un canal deinvocación.

Procedimiento

1. Cree un canal de invocación en la aplicación Canales de invocación.2. Cree una acción en la aplicación Acciones.

18 Integración de datos con aplicaciones externas

Page 25: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

3. Especifique un objeto para la acción. Este objeto debe ser el mismo que elobjeto principal de la estructura de objeto de solicitud del canal de invocación yel objeto principal de la aplicación, el flujo de trabajo o la escalabilidad queinvoca la acción.

4. Especifique Clase personalizada en el campo Tipo.5. Especifique el nombre de la clase personalizada en el campo Variable. Puede

utilizar el nombre de la clase predeterminada proporcionada para este fin,psdi.iface.action.InvokeCustomClass, o un nombre de clase alternativo si hacreado su propia clase personalizada para invocar un sistema externo.

6. Especifique valores en el campo Parámetros/Atributos. Especifique los valoresen el orden siguiente y separe cada valor con una coma:a. Necesario: El nombre del canal de invocación que se debe utilizar. EL valor

debe ser exactamente el mismo que el nombre del canal de invocación.b. Opcional: El nombre de la relación que se debe utilizar si el objeto principal

de la estructura de objeto de respuesta es diferente del objeto principal de laestructura de objeto de solicitud en el canal de invocación. Si el objeto derespuesta es el mismo que el objeto de solicitud, no se requiere ningunarelación.

c. Opcional: Si ha especificado una relación, especifique la acción que se debeaplicar. La acción predeterminada es Agregar, que crea registros. Paraactualizar registros existentes, especifique Cambiar como acción. Si lasestructuras de objeto de respuesta y solicitud coinciden, los objetos seactualizan si los campos actualizados están correlacionados en la estructurade objeto de respuesta.

7. Especifique si hay que aplicar la acción a todas las aplicaciones, a flujos detrabajo o a aplicaciones.

8. Guarde la acción.

Qué hacer a continuación

Asocie una aplicación, un flujo de trabajo o una escalabilidad con la acción. Elobjeto principal se pasado a la clase de acción y luego a la estructura de objeto delcanal de invocación para formar el XML de la solicitud.

Invocación de un sistema externo desde una aplicación:

Después de configurar una clase de acción para invocar un sistema externo(mediante un canal de invocación), puede configurar un botón en una aplicaciónpara desencadenar la acción de invocación. También puede ampliar la clase deacción para visualizar los resultados de la transacción en cuadro de diálogo deaplicación.

Antes de empezar

Debe crear un canal de invocación y una clase de acción antes de añadir la acciónde invocación a una aplicación. Si desea mostrar los resultados de la invocación,cree previamente una ventana Resultados (diálogo).

Procedimiento

1. Abra la aplicación en la aplicación Diseñador de aplicaciones. El objetoprincipal de esta aplicación debe ser el mismo que el objeto principal para elcanal de invocación y la acción que desea invocar desde la aplicación.

Integración de datos con aplicaciones externas 19

Page 26: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

2. Agregue un control Grupo de botones al espacio de trabajo desde la paleta decontrol. El control Grupo de botones añade automáticamente un control Botónal espacio de trabajo.

3. Pulse Propiedades para abrir la ventana Propiedades del botón.4. Especifique un nombre para el botón en el campo Valor, por ejemplo, Invocar

sistema externo.5. Especifique el ID de control para la ventana Resultados en el campo ID de

destino.6. Especifique un método en el campo Valor que invoque el canal de invocación y

redirija los resultados a la ventana Resultados. Por ejemplo:InvokeChannelCache.getInstance().getInvokeChannel(channelName).invoke(metaData, mbo, mbo.getMboSet(rel), action, null);

Donde:v El valor de channelName es el nombre del canal de invocación.v El valor de mbo es el nombre del objeto.v El valor de rel es el nombre de la relación (si resulta aplicable).v El valor de action es Añadir.

Servicios de estructura de objetoAl configurar una estructura de objeto, no es necesario realizar tareas deconfiguración adicionales para que esté disponible como servicio o recurso REST.Conceptos relacionados:“API de REST” en la página 243La API (interfaz de programación de aplicaciones) de REST (Representational StateTransfer) proporciona una manera para que las aplicaciones externas consulten yactualicen datos de aplicación en motor de automatización de procesos de Tivoli.

Servicios empresarialesUn servicio empresarial es un conducto para consultar datos externos e importardatos desde un sistema externo. Un servicio empresarial puede procesar datos deforma síncrona (sin una cola) o asíncrona (con una cola). Los serviciosempresariales pueden utilizar múltiples protocolos como, por ejemplo, serviciosweb y HTTP.

Un servicio empresarial tiene capas de proceso de datos que transforman datos yaplican reglas de proceso empresarial a los datos antes de que alcanzar los objetosde destino. Cuando el mensaje de entrada alcanza la capa de la estructura deobjeto, el mensaje XML debe tener el formato del esquema de objetos. Lainfraestructura de integración puede entonces procesar el mensaje correctamente.

Puede configurar un servicio empresarial para que implemente el siguiente procesode transacciones:v Reglas de procesov Clase de proceso de salida de usuariov Clase de proceso de servicio empresarialv Correlación XSL

El gateway es el punto de acceso para los mensajes de servicio empresarial,excluidos los que se entregan directamente a la cola de integración desde una colaexterna. Para algunos escenarios de integración, puede resultar útil configurarpropiedades de pasarela, por ejemplo, si se proporcionan propiedades como los IDdel sistema dentro del mensaje XML, en lugar de en la información de cabecera.

20 Integración de datos con aplicaciones externas

Page 27: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Puede configurar una clase Java de intérprete para cambiar el ID del sistemaexterno, el ID de servicio empresarial u otras propiedades de la cabecera demensajes JMS proporcionadas en un mensaje de entrada. Alternativamente, puedeconfigurar las propiedades de pasarela en la aplicación Servicios empresariales.

Configuración de un servicio empresarial:

Al crear un servicio empresarial, lo asocia con una estructura de objeto. Tambiénpuede configurar propiedades de pasarela que se agregan a los datos de cabecerade los mensajes entrantes.

Creación de un servicio empresarial:

Puede crear un registro de servicio empresarial para recibir datos entrantes de unsistema externo. En el servicio empresarial, puede identificar la transformación dedatos y las normas de proceso que la infraestructura de integración utiliza pararecibir datos entrantes de un sistema externo.

Antes de empezar

Antes de crear y configurar un servicio empresarial, utilice la aplicaciónEstructuras de objetos para configurar una estructura de objeto que asocie alservicio empresarial.

Acerca de esta tarea

Cuando la casilla de verificación Usar esquema externo está seleccionada, loscampos Rótulo de división, Archivo de esquema externo y Elemento de esquemaexterno se pueden editar. Los valores de esquema externo identifican la ubicacióndel esquema y el nombre del elemento de raíz externo.

Procedimiento

1. En la aplicación Servicios empresariales, pulse en Nuevo servicio empresarial.2. En el campo Servicio empresarial, especifique un identificador de servicio

empresarial.3. Especifique valores en los campos siguientes:

v Estructura de objeto

v Adaptador

4. Opcional: Especifique valores en los campos siguientes:

Opción Descripción

Operación Determina de qué manera procesa losdatos el servicio empresarial. Por ejemplo,puede sincronizar objetos o crear objetosnuevos.

También puede actualizar, suprimir oconsultar los objetos existentes.

Control de multiplicación Determina el control de referencia cruzadaque el servicio empresarial utilizará paramultiplicar los mensajes entrantes paravarias organizaciones o plantas.

Tabla de interfaz Refleja el contenido de las estructuras deobjeto de servicio empresarial.

Integración de datos con aplicaciones externas 21

Page 28: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Opción Descripción

Rótulo de división Identifica si el mensaje recibido contienevarias instancias de un documento.

Por ejemplo, un único mensaje puedecontener diez órdenes de compra. Elproceso de división maneja cada una deestas instancias de manera individual. Laaplicación escribe varios archivos en lacola de entrada.

La sintaxis que se utiliza para identificarestos valores del nodo debe tener unaexpresión XPATH completa.

5. Opcional: Para utilizar un esquema externo, seleccione la casilla de verificaciónUsar esquema externo.

6. Opcional: Puede personalizar la lógica del proceso del servicio empresarialentrante efectuando los pasos siguientes:a. En el campo Clase de proceso, especifique un valor de clase si el servicio

empresarial necesita la lógica del proceso entrante predefinido.b. En el campo Clase de salida de usuario, especifique un valor de clase que

el servicio empresarial utilice para personalizar la lógica del procesoentrante predefinido.

c. En el campo Mapa XSL, especifique un valor para personalizar lacorrelación de servicios empresariales entrantes predefinida.

7. Pulse en Guardar servicio empresarial.

Qué hacer a continuación

Puede utilizar la aplicación Sistemas externos para asociar el servicio empresarialcon un sistema externo.

Configuración de estructuras de objeto adicionales para un servicio empresarial:

Un servicio empresarial debe estar asociado a una estructura de objeto principal.Puede añadir estructuras de objeto adicionales a un servicio empresarial para darsoporte a la actualización de datos adicionales que no están incluidos en laestructura de objeto principal del servicio empresarial. Según el orden pedido deprocesamiento definido, el servicio empresarial procesa estructuras de objetoadicionales antes de procesar su estructura de objeto principal.

Procedimiento

1. En la aplicación Servicios empresariales, visualice el servicio al que deseeagregar una estructura de objeto.

2. Seleccione la acción Agregar/modificar estructura de objeto adicional y pulseFila nueva.

3. Especifique valores en los campos siguientes:v Estructura de objeto

v Orden de proceso

4. Opcional: Puede personalizar la lógica del proceso del servicio empresarialentrante efectuando los pasos siguientes:a. En el campo Clase de proceso, especifique un valor de clase si el servicio

empresarial necesita la lógica del proceso entrante predefinido.

22 Integración de datos con aplicaciones externas

Page 29: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

b. En el campo Clase de salida de usuario, especifique un valor de clase queel servicio empresarial utilice para personalizar la lógica del procesoentrante predefinido.

c. En el campo Mapa XSL, especifique un valor para personalizar lacorrelación de servicios empresariales entrantes predefinida.

d. En el campo Control de multiplicación, especifique un valor para definir lareferencia cruzada que el servicio empresarial utiliza para multiplicar unmensaje entrante para varias organizaciones o plantas.

5. Pulse Aceptar.

Adición de propiedades de gateway a un servicio empresarial:

El gateway es el punto de acceso para los mensajes de servicio empresarial,excluidos los que se entregan directamente a la cola de integración desde una colaexterna. Se puede implementar una clase Java de intérprete que puede cambiar elsistema externo (remitente) o el servicio empresarial (interfaz) y puede establecerotras propiedades de cabecera JMS según sea necesario. En la aplicación Serviciosempresariales, puede definir propiedades de gateway, ya sea como valores nomodificables o especificando rótulos XML.

Antes de empezar

Revise los puntos siguientes sobre la configuración en las Propiedades de gatewayantes de configurarlas:v Si selecciona la casilla de verificación Rótulo XML y deja como nulo el campo

Valor, el gateway utilizará el nombre del elemento raíz del mensaje XML comovalor de la propiedad correspondiente.

v Si selecciona la casilla de verificación Rótulo XML y especifica un nombre derótulo en el campo Valor, el gateway utilizará el valor de dicho rótulo comovalor de la propiedad correspondiente.

v Si el rótulo aparece varias veces en el mensaje XML, el adaptador utiliza el valorde la primera aparición del rótulo. Si deja sin seleccionar la casilla deverificación Rótulo XML y especifica un valor de datos en el campo Valor, elgateway utiliza dichos datos como valor para la propiedad correspondiente.

Procedimiento

1. En la aplicación Servicios empresariales, visualice el servicio al que deseaagregar una propiedad de gateway.

2. Seleccione la acción Propiedades de gateway.3. En la ventana de tabla Propiedades de gateway para servicio empresarial, pulse

en Fila nueva.4. En el campo Propiedad, especifique el nombre de la propiedad que desea

incluir en el mensaje.5. En el campo Valor, teclee los datos que desea utilizar como valor de la

propiedad.6. Opcional: Especifique si desea utilizar el elemento raíz XML como el valor de la

propiedad correspondiente.

Opción Rótulo XML

Utilizar el elemento raíz XML Seleccionado

No utilizar el elemento raíz XML Sin seleccionar

Integración de datos con aplicaciones externas 23

Page 30: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

7. Pulse Aceptar.

Servicios estándarUn servicio estándar se basa en un método anotado en una aplicación. Un servicioestándar es específico del método anotado para un objeto y no es reutilizable paraotros objetos. Puede desplegar un servicio estándar como un servicio web. Puedeacceder a un servicio estándar utilizando la API de REST.

Un servicio estándar es un servicio que proporciona una aplicación para realizaruna operación específica en un objeto. Los servicios estándar sólo están disponiblespara los métodos que se han anotado correctamente en el servicio. Los esquemasde servicio generados para los servicios estándar sólo se utilizan en las accionescorrespondientes.Conceptos relacionados:“API de REST” en la página 243La API (interfaz de programación de aplicaciones) de REST (Representational StateTransfer) proporciona una manera para que las aplicaciones externas consulten yactualicen datos de aplicación en motor de automatización de procesos de Tivoli.

Puntos finales y manejadoresUn punto final y su manejador asociado direccionan los mensajes salientes a unsistema externo. Con la combinación de un punto final y un manejador, seespecifica el protocolo de transporte que se debe utilizar, como HTTP o servicioweb, y se proporcionan los datos de comunicación necesarios para llegar aldestino, como un URL.

Para exportar datos con un canal de publicación, la tarea cron de la cola salienteinvoca el manejador. Para exportar datos con un canal de invocación, el canal deinvocación invoca el manejador directamente. El manejador utiliza las propiedadesde los metadatos del mensaje para determinar el sistema externo (para unatransacción de canal de publicación) y los valores de sustitución configurados paralas propiedades de punto final. A continuación, el manejador envía los datos aldestino especificado por el punto final con el que está asociado. Un únicomanejador puede tener diversos puntos finales, cada uno de ellos con parámetrosdistintos.

Los puntos finales y los manejadores solo se utilizan para la integración saliente.Sin embargo, el punto final y el manejador de tabla de interfaz también dansoporte a la creación de tablas de interfaz, necesarias para la integración entrante.

Los puntos finales proporcionan los valores de parámetro de ejecución que elmanejador utiliza para llevar a cabo su función. En el momento de la ejecución, elmanejador utiliza los metadatos que se incluyen en la definición del punto final,además del mensaje de integración saliente. Algunos manejadores, (aunque notodos ellos, tienen puntos finales predefinidos. Los puntos finales predefinidos sepueden modificar, y se pueden configurar puntos finales nuevos, con la aplicaciónde puntos finales. En la tabla siguiente se listan los puntos finales predefinidos.

Punto final Manejador Descripción

MXFLATFILE FLATFILE Escribe los mensajes de integración salientesen un archivo sin formato en una ubicaciónde directorio específica.

MXIFACETABLE IFACETABLE Escribe los mensajes de integración salientesen tablas de integración.

24 Integración de datos con aplicaciones externas

Page 31: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Punto final Manejador Descripción

MXXMLFILE XMLFILE Escribe los mensajes de integración salientesen un archivo XML en una ubicación dedirectorio específica.

MXCMDLINE CMDLINE Implementa el manejador CMDLINE. Tomaun mandato y un punto final como entraday utiliza el protocolo SSH para invocar elmandato en el sistema de destino ydevolver los resultados.

Se proporcionan varios manejadores predefinidos. Para muchos de estosmanejadores, se han configurado las definiciones de punto final correspondientes.La definición de punto final ofrece los valores de metadatos para los parámetros demanejador, como el nombre del directorio para el manejador FLATFILE.

Configuración de un punto finalEn la aplicación Puntos finales puede crear un punto final que especifica cómo seentregan las transacciones de salida y cómo el manejador las enruta.

Creación de puntos finales:

Cree un punto final para identificar una ubicación de destino y el mecanismo detransporte que la infraestructura de integración o el gestor de despliegue utilizapara publicar datos o invocar un servicio.

Procedimiento

1. En la aplicación Puntos finales, pulse en Nuevo punto final.2. En el campo Punto final, especifique un identificador para el punto final.3. En el campo Manejador, especifique un valor. El campo Consumido por

muestra la información asociada con el manejador de punto final especificado.4. En la ventana Propiedades de punto final, pulse Ver detalles para el campo de

propiedad de punto final y realice las acciones siguientes:a. Añada un valor exclusivo al campo Valor para identificar la propiedad de

punto final.b. Añada un valor a Valor cifrado para identificar si la propiedad de punto

final necesita seguridad adicional para almacenamiento y visualización.Puede actualizar un valor cifrado solo en un punto final con una propiedadde contraseña.

c. Seleccione la casilla Permitir anulación para indicar si puede sobrescribir elcódigo de la propiedad de punto final. Seleccione esta casilla cuando utiliceuna clase de proceso de canal de invocación.

5. Pulse Guardar punto final.

Qué hacer a continuación

Puede añadir un manejador para especificar cómo dirigir datos de salida hacia unaubicación de punto final específica en un formato específico. Puede utilizar elpunto final en las aplicaciones de infraestructura de integración siguientes:v Sistemas externosv Canales de publicaciónv Canales de invocaciónv Módulos de integración

Integración de datos con aplicaciones externas 25

Page 32: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

v Operaciones de gestión lógica

Adición de un manejador a un punto final:

Puede agregar un manejador a un registro de punto final para especificar cómodireccionar datos salientes a una ubicación de punto final específica. Tambiénpuede agregar un manejador para definir el formato de datos que se utilizará enlas transferencias de datos. Al crear un manejador, debe identificar el archivo declase Java™ específico que contiene la lógica de procesamiento que necesita para lastransferencias de datos.

Acerca de esta tarea

No se puede modificar ni suprimir un manejador predefinido.

Procedimiento

1. En la aplicación Puntos finales, seleccione el punto final que desea actualizarcon información de manejador.

2. Seleccione la acción Agregar/Modificar manejadores.3. Pulse Fila nueva.4. Especifique valores en los campos siguientes:

v Manejador

v Nombre de clase de manejador

v Consumido por

5. Pulse Aceptar.

Escritura de manejadores personalizados:

Puede escribir un manejador personalizado y asociarlo con un punto final, porejemplo para dar soporte a la comunicación con un servidor FTP.

Acerca de esta tarea

La clase de manejador muestra las propiedades para las que se deben especificarvalores. El archivo FTPHandler.java del directorio psdi.iface.samples contiene unejemplo de manejador de FTP.

Procedimiento

1. Para escribir un manejador personalizado implemente la interfazRouterHandler.

2. Especifique el método siguiente para devolver una lista de propiedades que elmanejador utiliza para enviar datos al punto final:getParameter()

El método devuelve una lista de objetos RouterPropsInfo. El atributo isCryptodel objeto RouterPropsInfo indica si hay que cifrar el valor de la propiedad alalmacenar datos. Para las propiedades de contraseña, el valor de este atributoes verdadero (True).

3. Especifique el método siguiente para enviar datos al punto final especificado:sendData(Map metaData, byte[] data, Map destinationMap)

El método devuelve la información siguiente:

26 Integración de datos con aplicaciones externas

Page 33: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

v Los metadatos proporcionan información acerca del sistema externo y lainterfaz.

v Data son los datos XML.v DestinationMap especifica el punto final.

Manejadores de punto final predefinidosSe proporcionan manejadores predefinidos que puede asociar con un punto final.Además, puede crear y registrar manejadores personalizados cuando sea necesario.

Manejador de enterprise bean:

El manejador de Enterprise Java Bean (EJB) es un componente Java que consiste enclientes de enterprise bean. El manejador publica un conjunto de propiedades queun cliente utiliza para comunicarse con un cliente de destino y entregarle unmensaje de integración. El cliente de destino se puede ejecutar en el servidor deaplicaciones local o en un servidor de aplicaciones remoto.

Para establecer una conexión, la clase Java remota y la clase Java inicial deben estardisponibles en la ruta de clase del manejador. Si el cliente está en un servidor deaplicaciones remoto diferente del servidor de aplicaciones del manejador, lareferencia de archivo jar del cliente debe estar en la ruta de clase del manejador. Elmanejador obtiene el nombre de la clase de fábrica de contexto del servidor deaplicaciones local cuando el cliente de enterprise bean está en un servidor deaplicaciones remoto que coincide con el servidor de aplicaciones del manejador.

Propiedad CONTEXTFACTORY

Esta propiedad necesaria especifica un nombre de clase de fábrica de contextoJ2EE. La documentación de su servidor de aplicaciones contiene el nombre de lafábrica de contexto predeterminada que se debe utilizar.

CONTEXTFACTORY utiliza la propiedad siguiente cuando el cliente de destino seejecuta en un IBM WebSphere Application Server:com.ibm.websphere.naming.WsnInitialContextFactory

Propiedad EJBEXIT

Esta propiedad opcional se utiliza para la personalización y especifica el nombrecompleto de una clase Java personalizada que implementa la interfaz EJBExit.

Si no especifica un valor para esta propiedad, la interfaz DefaultEJBExit se ejecutae intenta resolver la firma y los parámetros del método de enterprise bean.

Si el cliente de enterprise bean tiene su propia firma de método y parámetros, creeuna clase Java que contenga su versión de la interfaz EJBExit e implementacionesde los métodos siguientes:public Class[] getClassParams()

El método getClassParams() devuelve la firma de método en forma de matriz declases Java.

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

Integración de datos con aplicaciones externas 27

Page 34: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

El método getObjectParams() devuelve los parámetros del método empresarial enforma de matriz de objetos Java.public void responseOk(Object response)throws MXException

Se llama al método responseOk() tras una invocación correcta del enterprise bean.public void responseError(Exception e)throws MXException

Se llama al método responseError() con la excepción inicial como parámetro si seencuentra un error durante la invocación del enterprise bean.

El código siguiente ilustra el aspecto de su implementación de getClassParams()cuando el cliente de enterprise bean tiene un método empresarial con una matrizde bytes y una serie:Class[] classParams = {byte[].class, String.class};return classParams;

El código siguiente ilustra el aspecto de su implementación de getObjectParams ()cuando el cliente de enterprise bean tiene un método empresarial con una matrizde bytes y una serie:byte[] data = ...;String ifaceType = ...;

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

Complete una de las acciones siguientes para identificar la ubicación de laestructura de paquete para el archivo de clase EJBExit:v Coloque la clase en la estructura de paquete de Java en el directorio

applications/maximo/businessobjects/classes.v Modifique la ruta de clases de mboweb\webmodule\META-INF\MANIFEST.MF para

que incluya la estructura de paquete.v Vuelva a crear el archivo EAR de la aplicación e incluya el archivo de clase

EJBExit.

Propiedad JNDINAME

Esta propiedad necesaria especifica el nombre con el cual está registrado el clientede enterprise bean en el árbol JNDI (Java Naming and Directory Interface) enWebSphere Application Server. El nombre de archivo es ibm-ejb-jar-bnd.xml y lapropiedad se establece en<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>

Propiedad METHODNAME

Esta propiedad necesaria especifica el método empresarial público expuesto por elcliente de enterprise bean invocado por este manejador.

28 Integración de datos con aplicaciones externas

Page 35: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Propiedad PROVIDERURL

Esta propiedad necesaria especifica el URL del servidor de aplicaciones de destinoen el que se ejecuta el enterprise bean. Luego, el sistema establece una correlacióncon la propiedad java.naming.provider.url y crea el objeto InitialContext.

El ejemplo siguiente es un URL de proveedor de IBM WebSphere ApplicationServer.corbaloc:iiop:nombre_host:puerto_iiop

Si el manejador y el enterprise bean de destino se ejecutan en la misma instanciadel servidor de aplicaciones, no especifique esta propiedad porque tiene comovalor predeterminado el URL del servidor local.

Propiedades USERNAME y PASSWORD

Las propiedades de nombre y contraseña corresponden a las propiedadesjava.naming.security.principal (USERNAME) yjava.naming.security.credentials (PASSWORD) que se utilizan para crear elobjeto InitialContext.

Manejador de archivos sin formato:

El manejador FLATFILE convierte un mensaje de integración saliente en un archivosin formato y lo graba en un directorio que tiene una ubicación configurable. Losarchivos sin formato contienen datos ASCII en forma de filas y columnas. Cadalínea del texto constituye una fila y un carácter de separador separa cada columnade la fila. El manejador FLATFILE codifica archivos sin formato salientes enformato UTF-8 estándar.

El manejador FLATFILE sólo se puede utilizar con canales de publicación, no concanales de invocación. La estructura de objeto asociada al canal de publicacióndebe estar configurada para admitir archivos sin formato. Debe resolver todos losconflictos de alias para la estructura de objeto y dar formato al mensaje XMLsegún el esquema de estructura de objeto antes de grabar el mensaje en un archivosin formato.

Convenios de denominación

Los nombres de archivo requieren el formato siguiente.

nombresistemaexterno_nombrecanalpublicación_identificadorexclusivo.dat

v nombresistemaexterno es el identificador del sistema (el valor deMAXVARS.MXSYSID).

v nombrecanalpublicación es el nombre del canal de publicación.v identificadorexclusivo es un número basado en la hora actual del sistema.

El nombre de archivo del ejemplo siguiente indica que el archivo va al sistemaexterno EXTSYS1 y se publicó mediante al canal de publicaciónMXASSETInterface:

EXTSYS1_MXASSETInterface_10971102668641498.dat

Las dos primeras líneas del archivo contienen la información de cabecera. Laprimera línea tiene el formato siguiente:

Integración de datos con aplicaciones externas 29

Page 36: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

nombresistemaexterno <separador> nombre canal publicación<separador>[acción] <separador> códigoidioma

La segunda línea del archivo contiene los nombres de las columnas, separados porel carácter de separador. Los nombres de las columnas coinciden con los nombresde la tabla de interfaz correspondiente.

Formato de archivo sin formato

Si los datos del archivo sin formato contienen el carácter delimitador de archivo sinformato, los datos agregan el calificador de texto, que es " (comillas). Si los datoscontienen comillas, el manejador escapa las comillas. No se pueden utilizarcomillas como carácter delimitador.

Los datos del ejemplo siguiente utilizan una coma (,) como delimitador. El valor deINVOICEDESC, (Parte personalizada rotativa, n. 71), contiene una coma.Cuando se graba el archivo sin formato, el valor de INVOICEDESC se incluyeentre comillas.EXTSYS1,MXINVOICEInterface,AddINVOICENUM,INVOICEDESC,PONUM,VENDOR,CONTACT,PAYMENTTERMS1071,"Parte personalizada rotativa, n. 71",1000,A0001,,

Los datos del ejemplo siguiente utilizan una coma (,) como delimitador. El valor deINVOICEDESC (Parte "personalizada" rotativa n. 71) contiene comillas.Cuando se graba el archivo sin formato, las comillas del final de los datos deINVOICEDESC terminan con comillas y la serie entera se incluye entre comillas.EXTSYS1,MXINVOICEInterface,AddINVOICENUM,INVOICEDESC,PONUM,VENDOR,CONTACT,PAYMENTTERMS1071,"Parte ""personalizada"" rotativa n. 71",1000,A0001,,

Los datos del ejemplo siguiente utilizan una coma (,) como delimitador. Los datosde INVOICEDESC (Parte "personalizada" rotativa, n. 71) contienen el carácterdelimitador y comillas. Cuando se graba el archivo sin formato, el valor deINVOICEDESC aparece en el código.EXTSYS1,MXINVOICEInterface,AddINVOICENUM,INVOICEDESC,PONUM,VENDOR,CONTACT,PAYMENTTERMS1071,"Parte ""personalizada"" rotativa, n. 71",1000,A0001,,

Propiedades del archivo sin formato

La propiedad FLATFILEDIR es una propiedad opcional que especifica la ubicacióndel archivo sin formato. La ubicación debe existir en el servidor local donde latarea CRON de JMS para la cola saliente se está ejecutando, o en una unidad dered compartida accesible. El valor predeterminado señala al directorio/archivos sinformato globales. Para especificar una ubicación para el directorio global, configurela propiedad mxe.int.globaldir en la aplicación Propiedades del sistema.

La propiedad FLATFILESEP es una propiedad necesaria que especifica el carácterque separa las columnas de cada fila.

Manejador HTTP:

El manejador HTTP es un componente Java que consta de propiedades. Elmanejador entrega un mensaje de integración de salida como un documento XMLa un URL utilizando los protocolos HTTP o HTTPS. El manejador HTTP tambiénevalúa el código de respuesta recibido desde el sistema externo.

30 Integración de datos con aplicaciones externas

Page 37: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Propiedad HTTPEXIT

Esta propiedad opcional se utiliza para la personalización y especifica el nombretotalmente calificado de una clase Java que interpreta la respuesta HTTP. Estapropiedad también ayuda a implementar el código necesario para que un sistemaexterno interprete la respuesta HTTP.

La clase Java debe estar disponible en el archivo EAR de la aplicación y debe estaren la ruta de clases del manejador.

Propiedad Valor

Clase Java DefaultHTTPExit.java

Paquete psdi.iface.router

PropiedadHTTPEXIT

psdi.iface.router.DefaultHTTPExit

Si no especifica un valor para esta propiedad, se ejecuta la clase de salidaDefaultHTTPExit e implementa la interfaz psdi.iface.router.HTTPExit. La claseJava tiene los siguientes métodos clave:v processResponseData()

Este método tiene la firma siguiente:public void processResponseData(int responseCode, String responseMsg,byte[] msgBodyData) throws MXException

La implementación predeterminada compara el código de respuesta del sistemaexterno en un rango de códigos válidos (los valores de 200 a 299). Si el códigode respuesta está fuera de dicho rango, el sistema presupone que el mensaje nose ha entregado al sistema externo. Se produce una excepción y el mensajepermanece en la cola.Si necesita proceso adicional para una implementación específica, amplíe laimplementación predeterminada y altere temporalmente el métodoprocessResponseData (). Como alternativa, puede implementar la interfazpsdi.iface.router.HTTPExit. Si la respuesta que se recibe del sistema externono pasa la validación de esta clase, el método de alteración temporal debe emitiruna excepción.Si no define un valor para esta propiedad, se ejecuta la implementaciónpredeterminada HTTPExit.

v getURLProperties()Este método tiene la firma siguiente:public Map String, String getURLProperties(Map String,? metaData, byte[]data, Map String,MaxEndPointPropInfo httpInfo)

Este método devuelve la correlación de las propiedades de URL añadidas alURL con el formato url?prop1=value1&... La implementación predeterminadadevuelve un valor nulo.

v getHeaderProperties()Este método tiene la firma siguiente:public Map String, String getHeaderProperties(Map String,? metaData,byte[] data, Map String,MaxEndPointPropInfo httpInfo)

Este método devuelve una correlación de las propiedades de cabecera HTTPpara la solicitud. La implementación predeterminada devuelve un valor nulo amenos que la correlación de propiedades de cabecera esté asociada a lacorrelación de metadatos que tiene la clave HEADERPROPS.

Integración de datos con aplicaciones externas 31

Page 38: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

v transformPayloadToFormData()Este método tiene la firma siguiente:public Map String, String transformPayloadToFormData(Map String,?metaData, byte[] data,Map String,MaxEndPointPropInfo destinationMap)

Este método convierte la carga útil XML en datos. La implementaciónpredeterminada devuelve un valor nulo.

Propiedad CONNECTTIMEOUT

Esta propiedad opcional especifica el valor de tiempo de espera de conexión enmilisegundos.

Propiedad READTIMEOUT

Esta propiedad opcional especifica el valor de tiempo de espera de lectura enmilisegundos.

Propiedad HTTPMETHOD

Esta propiedad obligatoria especifica un método HTTP válido que es ejecutado porel punto final. Los métodos HTTP válidos son GET, POST, PUT y DELETE.

Propiedad HTTPHEADER

Esta propiedad opcional puede añadir una lista separada por comas de nombres yvalores a la sección de cabecera de mensajes HTTP. La lista incluye información denombre y valor con el formato NombreCabecera1:ValorCabecera1,NombreCabecera2:ValorCabecera2. Si no se proporciona ningún valor en lapropiedad, el código personalizado puede inyectar los valores en el contexto detransacción durante el proceso del canal de invocación.

Propiedad URL

Esta propiedad opcional especifica un URL válido al que se pueden enviar losdatos XML o donde se puede realizar una operación HTTP GET.

Propiedades USERNAME y PASSWORD

Si el URL solicita la autenticación básica, estas propiedades especifican los valoresnecesarios. Los dos valores tienen codificación MIME y se pasan al URL.

Manejador IFACETABLE:

El manejador IFACETABLE consta de varias propiedades. Este manejador escribeun mensaje de integración saliente en una tabla de interfaz de una base de datoslocal o remota. No hay clases de salida Java para este manejador.

Sólo los canales de publicación puede utilizar el manejador IFACETABLE. Loscanales de invocación no pueden utilizar este manejador.

Propiedad ISREMOTE

Esta propiedad necesaria es un valor booleano que especifica si las tablas deinterfaz están disponibles en la base de datos local o en una base de datos remota.Un valor de 0 (falso) indica que las tablas de interfaz están disponibles en la base

32 Integración de datos con aplicaciones externas

Page 39: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

de datos local en el esquema del sistema. No es necesario especificar ninguna otrapropiedad del manejador. En el manejador predefinido MAXIFACETABLE, el valorde esta propiedad es 0. Un valor de 1 (verdadero) indica que las tablas de interfazestán en una base de datos remota. Si es necesario, especifique valores para todaslas propiedades del manejador.

Propiedad DRIVER

Esta propiedad especifica el controlador JDC para conectarse a una base de datosremota que contiene las tablas de interfaz. Esta propiedad sólo se aplica cuando elvalor de la propiedad ISREMOTE es 1.

Propiedad URL

Esta propiedad especifica el URL JBDC y sólo se aplica cuando el valor de lapropiedad ISREMOTE es 1. El ejemplo siguiente contiene la ubicación, el númerode puerto y el nombre de la base de datos:

jdbc:db2://nombre_host:puerto/bdmaximo

Propiedades USERNAME y PASSWORD

Si el acceso a la base de datos remota requiere un nombre de usuario y unacontraseña, estas propiedades especifican estos valores. Estas propiedades sólo seaplican cuando el valor de la propiedad ISREMOTE es 1.

Manejador JMS:

El manejador JMS entrega los mensajes de integración salientes a un sistema demensajería compatible con JMS que da soporte a una cola o un tema JMS.

Los modelos de mensajería tienen las siguientes características:v Mensajería punto a punto (unívoca): un remitente genera mensajes y los coloca

en una cola. Sólo un destinatario puede obtener el mensaje de la cola.v Publicación/suscripción (uno a varios): una aplicación de publicación genera

mensajes y los coloca en un tema. Varios suscriptores pueden recuperar mensajesdel tema.

El sistema de mensajería representa una cola o un tema que está disponible en elservidor de aplicaciones local, en un servidor de aplicaciones remoto o en unsistema de colas dedicado remoto como, por ejemplo, IBM® WebSphere MQ. Parapoder utilizar este manejador, habilite los sistemas de mensajería utilizando JMS. Elsistema de mensajería es distinto de las colas internas estándar que residen en elservidor de aplicaciones local.

Propiedad CONFACTORYJNDINAME

Esta propiedad necesaria especifica un objeto Java que se utiliza para crearconexiones con un proveedor JMS. Para que el sistema pueda conectarse a una colao un tema, primero debe obtener una referencia a una fábrica de conexiones.

Propiedad DESTINATIONTYPE

Esta propiedad opcional especifica el tipo de destino JMS: cola o tema. En la tablasiguiente se muestran las opciones de DESTINATIONTYPE y sus valoresasociados.

Integración de datos con aplicaciones externas 33

Page 40: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Destino Valor

Tema javax.jms.Topic

Cola javax.jms.Queue

Propiedad DESTJNDINAME

Esta propiedad necesaria especifica el nombre con el que se registra el tema o lacola JMS en el árbol JNDI (Java Naming and Directory Interface) del servidor deaplicaciones.

Propiedad CONTEXTFACTORY

Esta propiedad especifica el nombre de clase de la fábrica de contexto inicial. Lapropiedad no es necesaria cuando el manejador JMS se comunica con unproveedor JMS que comparte la misma fábrica de contexto inicial que el servidorde aplicaciones del manejador. Cuando el manejador y el proveedor JMScomparten un WebSphere Application Server, comparten la clase de fábrica decontexto inicial. El valor de propiedad de contexto es necesario cuando elmanejador y el proveedor JMS no comparten un WebSphere Application Server.

Propiedad ISCOMPRESS

Esta propiedad necesaria especifica si el mensaje se comprime antes de colocarseen una cola o un tema. La compresión es una técnica de optimización queproporciona mensajes más pequeños a un tema o una cola. En la tabla siguiente semuestran las opciones de ISCOMPRESS y sus valores asociados.

Opción Valor

No comprimir datos 0

Comprimir datos 1

Los mensajes comprimidos deben extraerse después de recibirse. Para extraer losmensajes, cree el componente de suscriptor o destinatario JMS correspondiente ycoloque la lógica de descompresión Java en el suscriptor o el destinatario. Utilice laclase Inflater() Java estándar que forma parte del paquete java.util.zip. Lacompresión predeterminada utiliza la clase Deflator() Java estándar.

propiedad ISTEXT

Esta propiedad opcional especifica si el manejador JMS entregará mensajes a otracola en formato de texto.

Opción Valor

Entregar mensajes en formatopredeterminado (bytes)

0

Entregar mensajes en formato de texto 1

Propiedad JMSEXIT

En un entorno de multitenencia, la personalización mediante clases Java se puedeimplementar solo a través del proveedor del sistema y puede no estar soportadaen su entorno.

34 Integración de datos con aplicaciones externas

Page 41: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Esta propiedad opcional se utiliza en la personalización y especifica el nombrecompleto de la clase Java que ejecuta la interfaz JMSExit. La clase Java debeimplementar el método getMessageProperties() que se ha definido en la interfazJMSExit. La clase Java debe estar en la ruta de clase del servidor de aplicaciones oen el archivo EAR de la aplicación.

Puede utilizar esta opción para cambiar o agregar propiedades en el mensaje JMS.Si esta propiedad no contiene un valor, los atributos de cabecera del mensaje no secambian cuando se entrega el mensaje a la cola o el tema externo.

Propiedad PROVIDERURL

Esta propiedad necesaria especifica un URL local o remoto donde puede accederseal proveedor JMS. Si el proveedor JMS de destino es local para el servidor deaplicaciones del manejador, la propiedad no es necesaria. La siguiente propiedad esun ejemplo de un valor de PROVIDERURL en un WebSphere Application Server:corbaloc:iiop:nombrehost:puertoiiop

Propiedades PROVIDERUSER y PROVIDERPASWORD

Estas propiedades se utilizan para la autenticación del proveedor JMS. Laspropiedades se correlacionan con la APIconnectionFactory.createConnection(provideruser,providerpassword) en JMS.

Propiedades USERNAME y PASSWORD

Estas propiedades se corresponden con las propiedadesjava.naming.security.principal (USERNAME) y java.naming.security.credentials(PASSWORD) que se utilizan para crear el objeto InitialContext.

Manejador de servicios web:

El manejador de servicios web es un cliente Java que puede invocar cualquierservicio web literal de documento compatible con WS-I BP 1.1. El mensaje deintegración de salida forma la carga útil (el cuerpo SOAP) y el manejadorproporciona las cabeceras SOAP y el sobre. Este manejador opera de formaindependiente del contenedor.

Este manejador de servicio web soporta una implementación temprana de serviciosweb y se proporciona para mantener la compatibilidad con versiones anteriorescon servicios web existentes. Si está implementando nuevos servicios web,configúrelos para utilizar el manejador de servicio web para JAX-WS.

Propiedad MEP

Esta propiedad opcional especifica el patrón de intercambio de mensajes para elservicio web. La propiedad admite los valores siguientes. Si no proporciona unvalor, se utiliza el valor predeterminado, el valor sendreceive.

Valor Tipo de operación de servicio web

sendreceive Solicitud y respuesta

sendrobust Solicitud con respuesta vacía o anómala

fireandforget Sólo solicitud, sin respuesta o anomalía

Integración de datos con aplicaciones externas 35

Page 42: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Propiedad ENDPOINTURL

Esta propiedad necesaria especifica un URL de servicio web en el que invocar unservicio web. Puede utilizar la clase WSEXIT para alterar temporalmente el valorespecificado mediante la interfaz de usuario justo antes de que se invoque elservicio web.

Propiedad SERVICENAME

Esta propiedad necesaria especifica el nombre del servicio web desplegado en elURL.

Propiedad SOAPACTION

Esta propiedad opcional especifica el valor de la cabecera HTTP SOAPAction paraque se use al invocar el servicio web. El valor predeterminado es una serie vacía.Para definir un valor para la propiedad, consulte el archivo WSDL para un servicioweb para determinar la acción y especifique este valor. Puede utilizar la claseWSEXIT para alterar temporalmente el valor especificado en la interfaz de usuarioantes de invocar el servicio web.

Propiedad SOAPVERSION

Esta propiedad opcional especifica la versión de la especificación SOAP utilizadadurante la llamada a servicio web. Los valores válidos son SOAP11 y SOAP12.

Propiedad HTTPVERSION

Esta propiedad opcional especifica la versión del protocolo HTTP para lasinvocaciones de servicio web. Los valores válidos son HTTP/1.0 y HTTP/1.1. Si noproporciona un valor, el sistema utiliza el valor predeterminado, HTTP/1.1.

Propiedad HTTPCONNTIMEOUT

Esta propiedad opcional especifica el valor de tiempo de espera de conexión enmilisegundos. El valor predeterminado de esta propiedad es de 60000milisegundos.

Propiedad HTTPREADTIMEOUT

Esta propiedad opcional especifica el valor de tiempo de espera de lectura enmilisegundos. El valor predeterminado de esta propiedad es de 60000milisegundos.

Propiedades USERNAME y PASSWORD

Si el servicio web especificado está protegido (si se ha habilitado la autenticaciónbásica HTTP), especifique un nombre de usuario y contraseña.

Propiedad WSEXIT

En un entorno de multitenencia, la personalización mediante clases Java se puedeimplementar solo a través del proveedor del sistema y puede no estar soportadaen su entorno.

36 Integración de datos con aplicaciones externas

Page 43: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Esta propiedad opcional se utiliza para personalización. Especifica el nombrecalificado al completo de una clase Java personalizada que implementa la interfazpsdi.iface.router.WSExit. La propiedad define los métodos siguientes:

El método responseOk() se invoca después de una invocación correcta del servicioweb externo.public void responseError(Exception e)throws MXException

Si se produce un error cuando se invoca el servicio web, se invoca el métodoresponseError() con la excepción de origen como un parámetro.

La implementación predeterminada de la interfaz WSExit espsdi.iface.router.DefaultWSExit.

Manejador de servicios web (JAX-WS):

El manejador WEBSERVICE-JAX-WS es un cliente Java que puede invocarcualquier servicio web literal de documento compatible con WS-I BP 1.1. Elmensaje de integración de salida forma la carga útil (el cuerpo SOAP) y elmanejador proporciona las cabeceras SOAP y el sobre.

Este manejador de servicio web soporta la implementación actual de servicios web.Si está implementando servicios web nuevos, configúrelos para utilizar estemanejador de servicio web.

Propiedad MEP

Esta propiedad opcional especifica el patrón de intercambio de mensajes para elservicio web. La propiedad admite los valores siguientes. Si no proporciona unvalor, se utiliza el valor predeterminado sendreceive.

Valor Tipo de operación de servicio web

sendreceive Solicitud y respuesta

sendrobust Solicitud con respuesta vacía o anómala

fireandforget Sólo solicitud, sin respuesta o anomalía

Propiedad ENABLEAPPCONTEXT

Establezca esta propiedad en 1 (true) cuando implemente el soporte de las políticasWS-*.

Propiedad ENDPOINTURL

Esta propiedad necesaria especifica un URL de servicio web en el que invocar unservicio web. Puede utilizar la clase WSEXIT para alterar temporalmente el valorespecificado mediante la interfaz de usuario justo antes de que se invoque elservicio web.

Propiedad SERVICENAME

Esta propiedad necesaria especifica el nombre del servicio web de destino queinvoca el manejador.

Integración de datos con aplicaciones externas 37

Page 44: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Propiedad SOAPACTION

Esta propiedad opcional especifica el valor de la cabecera HTTP SOAPAction paraque se use al invocar el servicio web. El valor predeterminado es una serie vacía.Para definir un valor para la propiedad, consulte el archivo WSDL para un servicioweb para determinar la acción y especifique este valor. Puede utilizar la claseWSEXIT para alterar temporalmente el valor especificado en la interfaz de usuarioantes de invocar el servicio web.

Propiedad SOAPVERSION

Esta propiedad opcional especifica la versión de la especificación SOAP utilizadadurante la llamada a servicio web. Los valores válidos son SOAP11 y SOAP12.

Propiedad HTTPCONNTIMEOUT

Esta propiedad opcional especifica el valor de tiempo de espera de conexión enmilisegundos. El valor predeterminado de esta propiedad es de 60000milisegundos.

Propiedad HTTPREADTIMEOUT

Esta propiedad opcional especifica el valor de tiempo de espera de lectura enmilisegundos. El valor predeterminado de esta propiedad es de 60000milisegundos.

Propiedad HTTPHEADER

Esta propiedad opcional puede añadir una lista separada por comas de nombres yvalores a la sección de cabecera de mensajes HTTP. La lista incluye información denombre y valor con el formato NombreCabecera1:ValorCabecera1,NombreCabecera2:ValorCabecera2. Si no se proporciona ningún valor en lapropiedad, el código personalizado puede inyectar los valores en el contexto detransacción durante el proceso del canal de invocación.

Propiedades USERNAME y PASSWORD

Si el servicio web especificado está protegido (si se ha habilitado la autenticaciónbásica HTTP), especifique un nombre de usuario y contraseña.

Propiedad WSEXIT

En un entorno de multitenencia, la personalización mediante clases Java se puedeimplementar solo a través del proveedor del sistema y puede no estar soportadaen su entorno.

Esta propiedad opcional se utiliza para personalización. Especifica el nombrecalificado al completo de una clase Java personalizada que implementa la interfazpsdi.iface.router.WSExit. La propiedad define los métodos siguientes:

El método responseOk() se invoca después de una invocación correcta del servicioweb externo.public void responseError(Exception e)throws MXException

38 Integración de datos con aplicaciones externas

Page 45: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Si se produce un error cuando se invoca el servicio web, se invoca el métodoresponseError() con la excepción de origen como un parámetro.

La implementación predeterminada de la interfaz WSExit espsdi.iface.router.DefaultWSExit.

Propiedad CFGXMLPATH

Esta propiedad está obsoleta. No la utilice.

Manejador de archivos XML:

El manejador de archivos XML es un componente de Java que escribe un mensajede integración saliente en un archivo en formato XML.

Propiedad FILEDIR

Esta propiedad opcional especifica dónde crea los archivos XML el manejador. Elvalor predeterminado es mxe.int.globaldir/xmlfiles. La tarea CRON de JMS debepoder acceder a la ubicación de archivo para la cola saliente para los mensajes delcanal de publicación. Para los mensajes del canal de invocación, cualquier servidorMaximo Asset Management debe poder acceder a la ubicación del archivo cuandose puede iniciar un canal de invocación.

Propiedad PRETTYPRINT

Esta propiedad obligatoria especifica si el manejador da formato al archivo XML.Los valores válidos son 0 y 1. El valor 1 hace que el manejador que dé un formatode impresión con sangría al archivo xml. Los nombres de archivo de los canales depublicación, los canales de invocación y las API de invocación tienen los formatossiguientes:nombresistemaexterno_nombrecanalpublicación_identificadorexclusivo.xml

nombrecanalinvocación_identificadorexclusivo.xml

v nombresistemaexterno es el identificador del sistema (el valor deMAXEXTSYSTEM.EXTSYSNAME).

v nombrecanalpublicación es el nombre del canal de publicación.v identificadorexclusivo es un número basado en la hora actual del sistema.

Por ejemplo, el nombre de archivo MX_MXASSETInterface_10971102668641398.xmlindica que el archivo se generó para enviar datos al sistema externo EXTSYS1. Elnombre de archivo también indica que el archivo contiene el canal de publicaciónMXASSETInterface.

Manejador de línea de mandatos.:

El manejador CMDLINE toma un mandato y un punto final como entrada. Elmanejador CMDLINE utiliza el protocolo SSH para ejecutar el mandato en elsistema de destino y devolver los resultados.

Se pasa un parámetro de metadatos durante una invocación del sistema cuando sellama al manejador. El parámetro es una correlación que contiene el nombre delpunto final que representa el sistema de destino. El interlocutor puede asignarcomo destino cualquier sistema en tiempo de ejecución y pasar el punto final almanejador de mandatos. El interlocutor utiliza cualquier configuración que elpunto final tenga en el momento de la invocación.

Integración de datos con aplicaciones externas 39

Page 46: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Propiedades del manejador CMDLINE

El manejador CMDLINE tiene las propiedades siguientes:v CMDTIMEOUT – El valor de tiempo de espera para la ejecución del mandatov CONNTIMEOUT – El valor de tiempo de espera para la conexiónv USERNAME – El nombre de usuario para la conexiónv PASSWORD – La contraseña para el nombre de usuario correspondientev HOST – El nombre de host del destino en el que se ejecuta el mandatov PORTNO – El número de puerto del destino donde se ejecuta el mandatov IGNORESETUPERR – Un valor booleano que indica si se debe ignorar un error

al ejecutar el mandato de configuraciónv RETRYINTERVAL – El tiempo que se debe esperar entre reintentos de un

mandatov MAXRETRY – El número de intentos de ejecutar un mandato antes de devolver

una excepciónv SSHEXIT – La clase de salida de Java que se puede implementar para

personalizar el procesamiento del manejador

Parámetros de datos del mandato

El parámetro de datos es una representación de matriz de bytes de un documentoXML. El parámetro de datos contiene la información siguiente:v Los códigos correspondientes al mandato de configuraciónv El directorio de trabajov El mandato que se debe ejecutarv Cualquier parámetro de sustitución

Códigos disponibles

Están disponibles los códigos siguientes:v CLWORKINGDIR – Un directorio al que se debe cambiar (cd) en el sistema

remoto antes de ejecutar el mandato.v CLSSETUPCMD – Un mandato de configuración que se debe ejecutar antes del

mandato principal. Utilice este código para cualquier configuración de entornoque se deba producir en el sistema remoto antes de que se emita el mandatoprincipal.

v CLCMDPATTERN - Una serie que define el patrón del mandato que se debeejecutar. El formato de este patrón es similar al de la clasejava.text.MessageFormat. Un ejemplo es ls -l {0}, donde {0} representa unparámetro que se sustituye.

v CLSUB0 - El valor que se debe sustituir en las posiciones marcadas por {0} enCLCMDPATTERN.

v CLSUB1 - El valor que se debe sustituir en las posiciones marcadas por {1} enCLCMDPATTERN.

v CLSUBn - El valor que se debe sustituir en las posiciones marcadas por {n} enCLCMDPATTERN. Un código CLSUBn debe equivaler a cada posición desubstitución en el código CLCMDPATTERN.

40 Integración de datos con aplicaciones externas

Page 47: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Resultados del mandato

La representación de matriz de bytes de retorno de un documento XML contienelos resultados del mandato. El documento XML contiene códigos que correspondenal valor de retorno, salida estándar y error estándar.

Están disponibles los códigos siguientes:v CLRETURNCODE – El código de retorno del mandato remoto.v CLRESPONSEOUT – Los datos devuelve el mandato remoto en el código de

salida estándar (STDOUT).v CLRESPONSEERR – Los datos devuelve el mandato remoto en el código de

error estándar (STDERR).

Servicios web de integraciónLos sistemas externos pueden utilizar servicios web de infraestructura deintegración para enviar mensajes o consultas a la base de datos Maximo. Puedeutilizar un servicio de infraestructura de integración como origen para un servicioweb y luego desplegar este servicio para comunicarse con sistemas externos.

Orígenes de servicios webEl origen de un servicio web puede ser un servicio de estructura de objeto, unservicio estándar o un servicio empresarial.

Servicios de estructura de objeto

Puede crear un servicio web de estructura de objeto desde un servicio deestructura de objeto predefinido o definido por el usuario. Los servicios web de laestructura de objeto dan soporte a las operaciones de crear, suprimir, sincronizar yconsultar. Las operaciones de crear y consultar también dan soporte a lasrespuestas. La respuesta para la operación de crear puede estar basada en la claveprimaria o alternativa del objeto principal definido en la estructura de objeto. Larespuesta a la operación de consulta se proporciona en el formato de esquemaXML de la estructura de objeto.

Servicios estándar

Puede crear un servicio web estándar a partir de los métodos anotados en losservicios de aplicación. Para utilizar métodos como servicios, deben existir métodosanotados como, por ejemplo, el método ChangeStatus, en una aplicación. Se creaun servicio web estándar para cada servicio de aplicación y todos los métodosanotados dentro del servicio son las operaciones de servicio web. Los parámetrosde entrada y salida de los métodos se asocian con los parámetros de entrada ysalida del servicio web estándar.

Servicios empresariales

Puede crear un servicio web de estructura empresarial desde un servicioempresarial predefinido o definido por el usuario. Los servicios web empresarialesdan soporte a procesos de salida adicional, reglas de negocio y transformaciones.Existe un servicio para cada operación contenida en un registro de servicioempresarial (un servicio por operación). Con la capa de proceso de salida, puedecorrelacionar un XML de esquema con el XML de la estructura de objeto para lainvocación y la respuesta. Los servicios web empresariales proporcionan contenidode respuesta para las operaciones de crear y consulta que se procesan en la cola.La definición de servicio empresarial tiene un distintivo ProcessResponse que

Integración de datos con aplicaciones externas 41

Page 48: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

indica si el servicio da soporte a una respuesta.

Valores de cola JMS para servicios web empresariales:

Los servicios web empresariales pueden utilizar la cola JMS (Java Message Service)para procesar mensajes XML o puede especificar que el servicio ignore la cola JMS.

El proceso basado en la cola JMS proporciona el proceso de mensajes asíncrono.Para los servicios empresariales que dan soporte a los procesos síncronos, debeespecificar el proceso de mensajes no basados en cola. La infraestructura deintegración procesa los mensajes XML desde las aplicaciones externas basadas enlos valores de cola definidos para el servicio web de empresa:

Proceso de mensajes basado en colasUn servicio web empresarial basado en colas procesa mensajes XML y losgraba en la cola JMS de entrada configurada. Cuando se coloca el mensajeen la cola JMS, la aplicación externa queda libre de la invocación. Lainfraestructura de integración procesa los mensajes y los guarda en la basede datos Maximo.

Un servicio web empresarial no puede utilizar la cola JMS si el servicioincluye las operaciones de crear o consultar que requieren una respuestade la aplicación externa.

Proceso de mensajes no basado en colasUn servicio web empresarial no basado en colas procesa mensajes desde lainfraestructura de integración hacia la capa de proceso de objetos y guardala información en la base de datos Maximo, si corresponde. Después deque el servicio web empresarial completa el proceso del mensaje, lainfraestructura de integración envía una respuesta a la aplicación externa.Debe especificar un proceso no basado en cola si el servicio webempresarial soporta las operaciones de consultar o crear que requieren unarespuesta de la aplicación externa.

Opciones de despliegue de servicios WebDespués de crear un servicio web, puede seleccionar entre las opciones dedespliegue. Si despliega un servicio web en el contenedor de servicios web delproducto, el despliegue es automático. Si despliega un servicio web en uncontenedor de servicio web de servidor de aplicaciones, el despliegue es manual.

Puede desplegar servicios web en un solo tipo de contenedor. No puede desplegaralgunos servicios web en un contenedor de servicio web de producto y desplegarotros servicios web en un contenedor de servicio web de servidor de aplicaciones.Desplegar el contenedor de servicios web para el producto es la opción más rápidadebido a que el despliegue es automático. Este tipo de despliegue no requiere quese vuelvan a desplegar los archivos EAR de Maximo o reiniciar el servidor deaplicaciones.

Para invocar un servicio web en el servidor de aplicaciones, debe desplegar elservicio en el contenedor de servicio web de servidor de aplicaciones. Laintegración con un servidor de aplicaciones puede permitir que un servicio webacceda a servicios adicionales, como políticas de seguridad mejoradas. Si seleccionaeste tipo de despliegue, la información se añade al archivo deplmodule.dar. Debeagregar este archivo el directorio de despliegue del servidor de aplicaciones,vuelva a compilar los archivos EAR y reinicie el servidor de aplicaciones.

42 Integración de datos con aplicaciones externas

Page 49: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Puede convertir los servicios web existentes desplegados en el contenedor deservicios web del producto para volverlos a desplegar en el contenedor deservicios web del servidor de aplicaciones.

Acciones de despliegue de servicio webCuando se despliega un servicio web, se producen varios eventos, incluida lageneración del esquema XML y el archivo WSDL (Web Services DescriptionLanguage) para el servicio web.

Cuando despliega un servicio web, se produce uno de los siguientes eventos:v El esquema XML pasa a estar disponible para un nuevo servicio web o se vuelve

a generar el esquema para un servicio web existente.v El archivo WSDL pasa a estar disponible para la interfaz de servicio.v El servicio web se despliega para el servicio seleccionado.v Si las propiedades del registro UDDI (Universal Description Discovery and

Integration ) están configuradas, se registra el servicio web en el registro UDDI.

El servicio web desplegado está disponible en el URL siguiente:http://nombrehost:puerto/meaweb/services/nombre servicio web

v host:puerto/meaweb es el valor de la propiedad de URL de la aplicación web deintegración.

v nombre servicio web es el nombre del servicio para el que se despliega elservicio web.

La lista de servicios web desplegados está disponible en la aplicación Biblioteca deservicios web.

Generación de esquemasPuede generar el esquema y ver el XML para cualquier servicio web en laaplicación Biblioteca de servicios web. También puede volver a generar el esquemapara asegurarse de que se actualiza el esquema para reflejar los cambios querealice en el servicio.

Una estructura de datos de servicios web se basa en la estructura de objetoasociado (para los servicios de la estructura de objeto y los servicios empresariales)o la firma de método (para los servicios web estándar). La estructura de datos deservicio web se proporciona en una representación XML estándar, como unesquema. Este esquema se utiliza para crear el archivo WSDL para el servicio.

Si cambia la estructura de datos que está asociada a un servicio web, vuelva agenerar el esquema para actualizar su esquema y el archivo WSDL. Los cambiossiguientes del diccionario de datos cambian la estructura de objeto:v Agregar nuevos campos a una tablav Cambiar el tipo de un campov Eliminar campos de una tablav Cambiar un campo de opcional a necesario

El XML no contiene campos que se han marcado para exclusión en la estructura deobjeto.

Antes de desplegar un servicio web, debe volver a generar el esquema paraproporcionar información del esquema actualizado al archivo WSDL. Cuandogenera un esquema, se muestran los elementos de entrada en la ventana DatosXML y los elementos de salida en la ventana XML de respuesta.

Integración de datos con aplicaciones externas 43

Page 50: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Puede ver el esquema generado en los URL siguientes:v Para los esquemas de servicio empresarial y de estructura de objeto, utilice el

URL http://localhost:port/meaweb/schema/service/MXSRService.xsd, dondeMXSR es el nombre de la estructura de objeto que está asociada al servicio.

v Para los esquemas de servicio estándar, utilice el URL http://localhost:port/meaweb/schema/service/ss/ITEMService.xsd, donde ITEM es el nombre delservicio.

Si establece la propiedad global mxe.int.resolveschema en true en la aplicaciónPropiedades del sistema, se resuelven todos los archivos include. El contenidocompleto del esquema reside en un solo archivo.

Generación de un archivo de idioma de descripción de servicioswebSe genera un archivo WSDL durante el despliegue de un servicio web. El archivoWSDL describe el servicio web, proporciona su ubicación y especifica lasoperaciones que el servicio permite que estén disponibles.

El archivo WSDL especifica la estructura XML de la entrada y mensajes de salidapara la operación, basados en el esquema XML. El archivo también especifica elURL del servicio de web y las operaciones que el servicio de web permite queestén disponibles.

Un programa de cliente necesita definiciones de esquema y un archivo WSDL paragenerar apéndices de cliente. El programa de cliente utiliza un lenguaje deprogramación, como Java o C#, para invocar el servicio web.

Puede ver un archivo WSDL generado en un navegador en http://hostlocal:puerto/meaweb/wsdl/nombre_servicio?wsdl, donde nombre_servicio es elnombre del servicio como, por ejemplo, MXASSET.

Registro de UDDIPuede registrar los servicios web desplegados en un registro UDDI. UDDI es unregistro basado en XML para publicar y localizar archivos WSDL que describenaplicaciones de servicios web.

Puede registrar servicios web desplegados en un registro UDDI configurando lassiguientes propiedades globales en la aplicación Propiedades del sistema:

Propiedad del sistema Descripción

mxe.int.uddipuburl URL de publicación del registro UDDI

mxe.int.uddiinqurl URL de consulta del registro UDDI

mxe.int.uddiname ID de usuario del registro UDDI

mxe.int.uddipassword Contraseña del registro UDDI

Si especifica valores para la propiedad de URL de publicación y la propiedad deURL de consulta, se registra el servicio web en el registro UDDI. Para omitir elregistro UDDI, no especifique valores para estas propiedades. Solamente se registrael modelo para el archivo WSDL en el registro UDDI. Los valores debusinessEntity, businessService y bindingTemplate no se registran. La entrada delregistro UDDI contiene el URL para el archivo WSDL.

44 Integración de datos con aplicaciones externas

Page 51: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Creación y despliegue de servicios webPuede crear un servicio web basado en cualquier servicio de la estructura deobjeto, servicio estándar o servicio empresarial definido para el sistema. Puededesplegar el servicio web en el contenedor del servicio web del producto o en elcontenedor de servicio web de la aplicación.

Creación de un servicio web:

Cuando crea un servicio web, un sistema externo puede enviar consultas ymensajes basados en web al servicio asociado sin necesidad de configurar servicioso protocolos de comunicación adicionales.

Antes de empezar

Realice las comprobaciones siguientes para verificar que el servicio que deseautilizar está disponible para crear un servicio web:v Para un servicio de estructura de objeto, compruebe que el campo Consumido

por esté establecido en INTEGRACIÓN en la aplicación Estructuras de objetos.v Para un servicio estándar, asegúrese de que se haya anotado un método en el

servicio de aplicaciones para cada operación que desee utilizar en el servicioweb. Solo se puede acceder a aquellos métodos que se han anotadocorrectamente en la aplicación de biblioteca de servicios web

v Para un servicio empresarial, asegúrese de que el servicio esté asociado con unaaplicación externa en la aplicación Sistemas externos.

Procedimiento

1. En la aplicación de biblioteca de servicios web, seleccione la acción Crearservicio web apropiada.

2. Elija el servicio que desee utilizar seleccionando la casilla de verificaciónNombre de origen correspondiente.

3. Opcional: En el campo Nombre, especifique un identificador para el servicioweb.

4. Para un servicio web basado en un servicio empresarial, especifique si deseaque el servicio web esté basado en cola o que omita la cola JMS.

5. Pulse Crear.

Qué hacer a continuación

Debe desplegar el servicio web previamente para poder utilizarlo para procesarconsultas y mensajes entrantes. También puede generar el esquema y ver lasestructuras XML de cualquier servicio web seleccionado.

Despliegue de un servicio web al contenedor de servicios web del producto:

Después de crear un servicio web, debe desplegarlo antes para que puede empezara procesar mensajes XML. Al desplegar un servicio web al contenedor de serviciosweb del producto, el proceso de despliegue se produce automáticamente y norequiere un reinicio del servidor.

Procedimiento

1. En la aplicación Biblioteca de servicios web, seleccione el servicio web quedesee desplegar.

Integración de datos con aplicaciones externas 45

Page 52: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

2. Seleccione la acciónDesplegar en contenedor de servicio web de producto >Desplegar servicio web.

3. Pulse Aceptar.

Despliegue de un servicio web al contenedor de servicios web del servidor deaplicaciones:

Se genera un archivo de despliegue cuando despliega un servicio web en elcontenedor de servicios web del servidor de aplicaciones. Debe volver a compilarel archivo EAR de Maximo para que incluya el archivo de despliegue y reiniciar elservidor de aplicaciones para activar el servicio web.

Acerca de esta tarea

El archivo de despliegue deplmodule.dar está en el directorio especificado por lapropiedad del sistema mxe.int.globaldir.

Procedimiento

1. En la aplicación Biblioteca de servicios web, seleccione el servicio web quedesee desplegar.

2. Seleccione la acción Desplegar en contenedor de servicio web de servidor deaplicaciones > Generar entradas de archivo de despliegue. Esta acción generauna entrada en el archivo de despliegue, deplmodule.dar.

3. Pulse Aceptar.4. Copie el archivo deplmodule.dar del directorio global de la infraestructura de

integración en el directorio de despliegue del producto.5. En el directorio de despliegue, ejecute el archivo buildmaximoear.cmd.6. En la consola administrativa del servidor de aplicaciones, despliegue todos los

servicios web en el archivo deplmodule.dar:a. Detenga el servidor de aplicaciones.b. Vuelva a desplegar el archivo maximo.ear.c. Reinicie el servidor de aplicaciones.

Actualización de la información del esquema:

Si cambia la estructura de datos de un servicio de integración, actualice lainformación del esquema del archivo WSDL para actualizar el servicio web. Si novuelve a generar el esquema, el esquema utilizado por el servicio web puede serdiferente de la estructura definida por el servicio de integración asociado.

Procedimiento

1. Después de modificar la estructura de datos de un servicio web, pulse Generaresquema, WSDL y ver XML. Si no vuelve a generar el esquema, el servicioweb no detecta los cambios realizados.

2. Para los servicios web desplegados en el contenedor web del servidor deaplicaciones, puede automatizar las actualizaciones del esquema en laaplicación Propiedades del sistema.a. Establezca el valor de la propiedad mxe.int.containerdeploy en 1 para

desplegar los servicios web en el contenedor de servicios web del servidorde aplicaciones.

b. Establezca el valor de la propiedad mxe.int.wsdlincludeschema en 1 paraasegurarse de que la información del esquema se incluye como parte de losarchivos WSDL.

46 Integración de datos con aplicaciones externas

Page 53: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

c. Establezca el valor de la propiedad mxe.int.resolveschema en 1 paraasegurarse de que el sistema resuelve todos los campos incluidos en un soloarchivo.

d. Establezca el valor de la propiedad mxe.int.wsdlcurrentschema en 1 paraproporcionar contenido del esquema actualizado como parte de un archivoWSDL.

Vista general de las interacciones de servicio webUna interacción puede iniciar un servicio web y enviar datos al mismo desde unaaplicación. La interacción puede visualizar los datos devueltos desde el servicioweb y guardar estos datos en la base de datos de la aplicación.

Para implementar las interacciones es necesario tener conocimientos acerca de:v Esquemas XMLv Servicios webv La infraestructura de integraciónv Personalización de aplicaciones e interfaces de usuario de aplicación

Una interacción puede gestionar los siguientes procesos:v Preparar una solicitud para un servicio web.v Invocar un servicio web desde una aplicación.v Recuperar resultados desde el servicio web con formato de respuesta.v Visualizar los resultados en una aplicación.v Opcionalmente, aplicar los datos de respuesta a la base de datos del sistema.v Informar acerca de errores que se producen durante los procesos de solicitud o

respuesta.

Se proporcionan dos aplicaciones para ayudarle a crear y gestionar interacciones:v Cree y configure interacciones en la aplicación Crear interacción.v Revise, modifique y suprima interacciones en la aplicación Interacciones.

Después de crear una interacción, los usuarios pueden realizar las siguientes tareasdesde la interfaz de usuario de la aplicación:v Iniciar la interacción.v Ver y, si está configurado, cambiar los parámetros de solicitud para el servicio

web.v Invocar el servicio web enviando la solicitud.v Opcionalmente, ver los datos recibidos desde el servicio web y comprometer

estos datos en la base de datos.

Creación de interacciones:

La aplicación del asistente Crear interacciones le guía por todos los pasosnecesarios para crear y configurar una interacción. Cuando haya completado elproceso del asistente y haya probado la interacción, los usuarios podrán comenzara trabajar con la misma inmediatamente sin que sea necesaria una configuración oun despliegue adicionales.

Integración de datos con aplicaciones externas 47

Page 54: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Antes de empezar

Antes de ejecutar la aplicación Crear interacciones, asegúrese de que tiene toda lainformación necesaria para la configuración. Durante el proceso, debe especificar elservicio web, definir la estructura de los mensajes y correlacionar los datos entre laaplicación y el servicio web.

Se proporciona una herramienta de registro para registrar la actividad deconfiguración y mantener un archivo de registro de los elementos que estánconfigurados. Para generar un registro detallado de la configuración, en laaplicación Registro, establezca el registrador de interacciones en la modalidadDEBUG.

Procedimiento

1. Para configurar el servicio web para la interacción, en el paso 1 del proceso:a. Especifique el URL del archivo WSDL para el servicio web.b. Cuando se renueve la pantalla con la información del archivo WSDL,

especifique un puerto para la interacción.c. Especifique una operación para la interacción y seleccione Respuesta de

proceso si desea que el servicio web devuelva datos a la aplicación durantela interacción.

2. Revise el contenido de la solicitud para el servicio web en el paso 2 ymodifique la estructura de objeto de solicitud eliminando cualquier elementoinnecesario.

3. Opcional: Revise el contenido de la respuesta del servicio web en el paso 3 ymodifique la estructura de objeto de respuesta eliminando cualquier elementoinnecesario. Este paso se incluye solamente si ha seleccionado la opciónProcesar respuesta del paso 1.

4. Para configurar la aplicación para las interacciones, en el paso 4 del proceso:a. Especifique la aplicación que utiliza la interacción.b. Configure el vínculo de la aplicación para la interacción, incluyendo el

objeto principal, la opción de firma, la modalidad de interacción y loscomponentes de interfaz de usuario.

c. Especifique los grupos de seguridad que tienen autorización para iniciar lainteracción.

5. Configure la ficha Solicitud de la ventana Interacciones del paso 5,especificando los campos que pueden ver los usuarios y si pueden editarlos.

6. Opcional: Configure la ficha Respuesta de la ventana Interacciones del paso 6,especificando los campos que pueden ver los usuarios y si pueden editarlos.Este paso se incluye solamente si ha seleccionado la opción Procesar respuestadel paso 1.

7. Puede correlacionar información desde la aplicación al servicio web del paso 7.La información correlacionada se especifica automáticamente en la solicitudcuando los usuarios inician la interacción.

8. Opcional: Puede correlacionar la información desde el servicio web a laaplicación en el paso 8. si selecciona la opción Confirmar respuesta, lainformación correlacionada se guarda automáticamente en la base de datos.

9. Revise las configuraciones del paso final del proceso.

48 Integración de datos con aplicaciones externas

Page 55: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Qué hacer a continuación

Para supervisar el tiempo que tarda en ejecutarse la interacción, en la aplicaciónRegistro, establezca el registrador de integración en la modalidad INFO o DEBUG.

Puede ver la interacción y modificar la información de correlación en la aplicaciónInteracciones. Si tiene previsto modificar una interacción, selecciona la acciónDesactivar interacción antes de realizar cambios y reactivarla una vez completadala modificación.

Sistemas externosPuede configurar el sistema externo con el que se comunica la infraestructura deintegración. Puede configurar sistemas externos para las aplicaciones externasdentro o fuera de la empresa. Si copia un sistema externo predefinido, copia loscanales y servicios que tiene configurados. Puede configurar un nuevo sistemaexterno para utilizar las colas JMS existentes.

Configuración de un sistema externoPara configurar un sistema externo, identifique el sistema externo y asócielo con elcanal o servicio utilizado para procesar las transacciones. También debe configurarlas colas JMS que utiliza el sistema externo y puede configurar controles deintegración para dar soporte a la personalización con reglas de proceso.

Creación de un sistema externo:

Cree un sistema externo para intercambiar datos con aplicaciones externas. Cuandose crea un sistema externo, la aplicación copia los controles de integracióndefinidos para los canales de publicación y los servicios empresarialescorrespondientes. A continuación, puede especificar valores de controlpredeterminados que se aplican a un sistema externo particular.

Antes de empezar

Antes de crear un sistema externo, defina las colas y el punto final que el sistemaexterno utiliza.

Procedimiento

1. En la aplicación Sistemas externos, pulse en Nuevo sistema externo.2. En el campo Sistema, especifique un identificador de sistema externo.3. Opcional: Si el sistema externo envía mensajes salientes, siga estos pasos:

a. Especifique un valor en el campo Cola secuencial saliente.b. Especifique un valor en el campo Punto final.

4. Opcional: Si el sistema externo recibe mensajes entrantes, siga estos pasos:a. Especifique un valor en el campo Cola secuencial entrante.b. Especifique un valor en el campo Cola continua entrante.

5. Pulse Guardar sistema externo.

Qué hacer a continuación

Debe habilitar al menos un canal de publicación o servicio empresarial para que sepuede producir el procesamiento de mensajes.

Integración de datos con aplicaciones externas 49

Page 56: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Habilitación de un sistema externo:

Puede habilitar un sistema externo después de configurar el registro del sistemaexterno y cuando esté preparado para comenzar el procesamiento de mensajes dela infraestructura de integración. También puede inhabilitar un sistema externopara detener todo el procesamiento de mensajes entrantes y salientes.

Antes de empezar

Debe habilitar al menos un canal de publicación o servicio empresarial para que sepuede producir el procesamiento de mensajes.

Acerca de esta tarea

Cuando se inhabilita un sistema externo, la infraestructura de integración noacepta mensajes entrantes ni envia mensajes salientes. Además, no se puedenutilizar las funciones de exportación de datos a un sistema externo e importaciónde datos de un sistema externo. Sólo se procesan los mensajes que están en lascolas.

Procedimiento

1. En la aplicación Sistemas externos, seleccione el sistema que desea actualizar.2. Especifique si desea que el sistema externo esté habilitado o inhabilitado:

Opción Habilitado

Habilitado Seleccionado

Inhabilitado Sin seleccionar

3. Pulse Guardar sistema externo.

Habilitación de un canal de publicación:

Debe habilitar un canal de publicación asociado con un sistema externo para quese pueda utilizar para publicar mensajes basados en eventos a un sistema externo.De forma predeterminada, los registros de canal de publicación asociados con unsistema externo se inhabilitan. Un canal de publicación inhabilitado impide alsistema externo procesar mensajes de infraestructura de integración salientes.

Procedimiento

1. En la aplicación Sistemas externos, seleccione el sistema que desea actualizar.2. En la ficha Canales de publicación, especifique si desea que el canal de

publicación esté habilitado o inhabilitado.

Opción Habilitado

Habilitado Seleccionado

Inhabilitado Sin seleccionar

3. Pulse Guardar sistema externo.

50 Integración de datos con aplicaciones externas

Page 57: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Asociación de un canal de publicación con un sistema externo:

Puede asociar un canal de publicación con un sistema externo para sincronizar losdatos de objetos de gestión de activos con los datos de la aplicación externa. Loscanales que crea y asocia al sistema externo contienen la lógica de procesamientode mensajes de salida.

Acerca de esta tarea

Puede definir el punto final que el canal utiliza. Si no define un punto final alnivel del canal de publicación, los datos se moverán a la ubicación del punto finaldefinida al nivel del sistema externo. También puede habilitar el canal depublicación asociado cuando esté listo para realizar el procesamiento de mensajesde infraestructura de integración salientes.

Procedimiento

1. En la aplicación Sistemas externos, seleccione el sistema externo que deseaactualizar.

2. En la ficha Canales de publicación pulse en Fila nueva.3. En el campo Canal de publicación, especifique un valor.4. Opcional: En el campo Punto final, especifique un valor.5. Opcional: Especifique si desea que el canal de publicación esté habilitado o

inhabilitado:

Opción Habilitado

Habilitado Seleccionado

Inhabilitado Sin seleccionar

6. Pulse Guardar sistema externo.

Selección de canales de publicación para el sistema externo:

Puede asociar varios canales de publicación con un sistema externo parasincronizar los datos de objetos de gestión de activos con los datos de la aplicaciónexterna. Los canales que crea y asocia al sistema externo contienen la lógica deprocesamiento de mensajes de salida.

Procedimiento

1. En la aplicación Sistemas externos, seleccione el sistema que desea actualizar.2. En la ficha Canales de publicación, pulse en Seleccionar canal.3. Elija uno o más canales de publicación seleccionando las casillas de verificación

Canal de publicación correspondientes.4. Pulse Aceptar.5. Pulse Guardar sistema externo.

Qué hacer a continuación

Puede definir los puntos finales que los canales utilizan. Si no define un puntofinal al nivel del canal de publicación, los datos se moverán a la ubicación delpunto final definida al nivel del sistema externo. Debe habilitar los canales depublicación asociados para poder realizar el procesamiento de mensajes de lainfraestructura de integración.

Integración de datos con aplicaciones externas 51

Page 58: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Adición de un punto final a un canal de publicación:

Puede definir el punto final que un canal de publicación utiliza para determinardónde se publican los datos de salida. Los puntos finales identifican una ubicaciónde destino y el mecanismo de transporte para la publicación de datos de salida. Sino define un punto final al nivel del canal de publicación, los datos se moverán ala ubicación del punto final definida al nivel del sistema externo.

Antes de empezar

Debe asociar un canal de publicación a un sistema externo.

Procedimiento

1. En la aplicación Sistemas externos, seleccione el sistema externo que deseaactualizar.

2. En la ficha Canales de publicación, seleccione el canal de publicación para elque desea agregar un punto final.

3. En el campo Punto final, especifique un valor.4. Pulse Guardar sistema externo.

Qué hacer a continuación

Puede habilitar el canal de publicación asociado cuando esté listo para realizar elprocesamiento de mensajes de infraestructura de integración salientes.

Importación de datos basados en archivo:

Puede utilizar la función de importación de datos para cargar datos de archivoXML o archivos sin formato delimitados para actualizar la base de datos deMaximo. Puede obtener una vista previa y validar los datos antes de cargar yconfirmarlos en la base de datos. Puede optar por gestionar errores con laaplicación Nuevo proceso de mensajes o extrayendo errores en un formato dearchivos que es el mismo que el formato de archivo importado.

Antes de empezar

Para importar datos, si piensa importar datos desde un archivo plano como unarchivo .csv, la estructura de objeto del servicio empresarial debe dar soporte a lasestructuras de archivos planos. Asegúrese de que se haya seleccionado la casilla deverificación Admitir estructura plana en el registro de estructura de objetoasociado de la aplicación Estructuras de objetos. También debe habilitar el sistemaexterno y el servicio empresarial para poder importar los datos.

Acerca de esta tarea

Los datos que importe deben estar en un formato de archivo plano delimitado,como separado por comas o XML. El proceso de importación de datos puedeutilizar un servicio empresarial predefinido o definido por el usuario.

Procedimiento

1. En la aplicación Sistemas externos, visualice el sistema que contiene el servicioempresarial desde el que desea importar datos.

2. En la ficha Servicios empresariales, seleccione el servicio empresarial desde elque desea importar los datos.

52 Integración de datos con aplicaciones externas

Page 59: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

3. Pulse Importar datos.4. Opcional: Seleccione la casilla de verificación Presentación preliminar de

importación para examinar los datos antes de importar y confirmar los datosen la base de datos. Utilice la opción de vista preliminar para el muestreo deregistros de datos. Esta función no está diseñada para dar soporte a un archivogrande que contiene cientos de registros. El proceso síncrono procesa el archivopara los objetos empresariales y devuelve los mensajes de error encontrados sinconfirmar las actualizaciones en la base de datos.

5. Especifique el tipo de archivo que desea utilizar para la importación dearchivos.

Opción Descripción

Archivo XML Los datos importados tienen el formatoXML.

Archivo plano Los datos importados tienen el formato deun archivo plano delimitado. Si esnecesario, modifique los valoresDelimitador y Calificador de texto.

6. En el campo Especificar archivo de importación, escriba la ruta del nombre dearchivo que utiliza el archivo importado para fines de identificación yalmacenamiento.

7. Seleccione la casilla de verificación Gestión de errores basada en archivos sidesea gestionar errores que encuentra mediante un archivo con el mismoformato que el archivo que se está importando. Esta opción es una alternativa ala gestión de errores con la aplicación Nuevo proceso de mensajes.

8. Pulse Aceptar para iniciar el proceso de importación de datos.

Qué hacer a continuación

Cuando se ejecuta la importación de datos, al archivo que se selecciona paraimportar se le da el formato de varios mensajes y se deja en la cola de entradaconfigurada para el servicio empresarial y su sistema externo correspondiente. Acontinuación, se procesan los mensajes desde la cola de entrada a los objetos deaplicación para actualización. El proceso de mensajes desde una cola de entradarequiere la habilitación de la tarea cron JMS cuando se utiliza la cola secuencial ola habilitación de beans controlados por mensajes para la cola continua. Si seproduce un error durante el proceso de un archivo, puede gestionar y ver losmensajes de importación de datos que se han etiquetado con un error en laaplicación Nuevo proceso de mensajes.

Habilitación de un servicio empresarial:

Debe habilitar un servicio empresarial asociado con un sistema externo para que sepueda utilizar para recibir datos de aplicaciones externas entrantes. De formapredeterminada, los registros de servicio empresarial asociados con un sistemaexterno se inhabilitan. Un servicio empresarial inhabilitado impide al sistemaexterno procesar mensajes de aplicaciones externas entrantes.

Procedimiento

1. En la aplicación Sistemas externos, visualice el sistema que desea actualizar.2. En la ficha Servicios empresariales, especifique si desea que el servicio

empresarial esté habilitado o inhabilitado.

Integración de datos con aplicaciones externas 53

Page 60: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Opción Habilitado

Habilitado Seleccionado

Inhabilitado Sin seleccionar

3. Pulse Guardar sistema externo.

Asociación de un servicio empresarial con un sistema externo:

Puede asociar un servicio empresarial con un sistema externo para sincronizardatos de entrada de la aplicación externa con objetos de gestión de activos. Losservicios que crea y asocia al sistema externo contienen la lógica de procesamientode mensajes de entrada.

Acerca de esta tarea

Puede especificar si los servicios empresariales asociados reciben datos de la colasecuencial o continua. También puede habilitar el servicio empresarial asociadocuando esté listo para realizar el procesamiento de mensajes de infraestructura deintegración entrantes.

Procedimiento

1. En la aplicación Sistemas empresariales, visualice el sistema que deseaactualizar.

2. En la ficha Servicios empresariales, pulse en Fila nueva.3. En el campo Servicio empresarial, especifique un valor.4. Opcional: Especifique si desea que el servicio empresarial esté habilitado o

inhabilitado:

Opción Habilitado

Habilitado Seleccionado

Inhabilitado Sin seleccionar

5. Especifique si desee que los mensajes de servicio reciban datos de la colacontinua o secuencial.

Opción Usar cola continua

Cola continua Seleccionado

Cola secuencial Sin seleccionar

6. Pulse Guardar sistema externo.

Selección de servicios empresariales para el sistema externo:

Puede asociar varios servicios empresariales con un sistema externo parasincronizar datos de entrada de la aplicación externa con objetos de gestión deactivos. Los servicios que crea y asocia al sistema externo contienen la lógica deprocesamiento de mensajes de entrada.

Procedimiento

1. En la aplicación Sistemas externos, visualice el sistema que desea actualizar.2. En la ficha Servicios empresariales, pulse en Seleccionar servicio.

54 Integración de datos con aplicaciones externas

Page 61: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

3. Elija uno o más servicios empresariales, seleccionando las casillas deverificación Servicio empresarial correspondientes.

4. Pulse Aceptar.5. Pulse Guardar sistema externo.

Qué hacer a continuación

Debe habilitar los servicios empresariales asociados para poder realizar elprocesamiento de mensajes de la infraestructura de integración. También debeespecificar si los servicios empresariales reciben datos de las colas secuenciales ocontinuas.

Selección de un tipo de cola de servicio empresarial:

Puede especificar si el servicio empresarial asociado al sistema externo recibirádatos de la cola continua o secuencial. La selección de cola que realiza para elservicio empresarial determina la forma en la que la cola Java Message Service(JMS) procesa los mensajes entrantes.

Antes de empezar

Debe asociar un servicio empresarial a un sistema externo.

Acerca de esta tarea

La cola continua sigue procesando los mensajes que se encuentran en la colak,incluso cuando se produce un error en el proceso de los mensajes. Por el contrario,la cola secuencial deja de procesar los mensajes que se encuentran en la cola hastaque se borra el error de proceso. Una cola secuencial también procesa los mensajesbajo una norma estricta de primero en entrar, primero en salir.

Procedimiento

1. En la aplicación Sistemas externos, seleccione el sistema externo que deseaactualizar.

2. En la ficha Servicios empresariales, seleccione el servicio empresarial para elque desea seleccionar una cola.

3. Especifique si desee que los mensajes de servicio reciban datos de la colacontinua o secuencial.

Opción Usar cola continua

Cola continua Seleccionado

Cola secuencial Sin seleccionar

4. Pulse Guardar sistema externo.

Qué hacer a continuación

Puede habilitar el servicio empresarial asociado cuando esté listo para realizar elproceso de mensajes de infraestructura de integración entrantes.

Integración de datos con aplicaciones externas 55

Page 62: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Exportación de datos basados en archivo:

Con la función de exportación de datos, puede realizar una exportación masiva dedatos de mensaje desde un archivo a un sistema externo. Puede iniciar el procesode exportación para cada canal de publicación asociado con un sistema externo.

Antes de empezar

En un entorno multitenencia, puede utilizar la función de exportación de datossólo si el proveedor del sistema le proporciona acceso a un servidor de archivosque sea accesible para el servidor de aplicaciones. A continuación, deberáconfigurar un punto final basado en archivo para que apunte a la ubicación de esteservidor de archivos.

Debe habilitar tanto el sistema externo como el canal de publicación para poderexportar datos. Los datos para exportar deben estar en un formato de archivo XMLque cumpla con el esquema de estructura de objeto, o en un archivo sin formato ydelimitado, por ejemplo, separado por comas, que sea una versión plana delformato de esquema de la estructura de objeto.

Acerca de esta tarea

La consulta SQL opcional que el usuario proporciona en el campo Condición deexportación, puede afectar al tamaño del mensaje XML exportado. Puede filtrar elcontenido para limitar la cantidad de datos que se exportan. El proceso deexportación lleva a cabo el proceso estándar de salida sobre el conjunto deresultados de la consulta correspondiente al canal de publicación seleccionado.

Procedimiento

1. En la aplicación Sistemas externos, pulse en la ficha Canales de publicación yseleccione el canal de publicación que desee exportar.

2. En el campo Punto final, especifique un manejador de punto final basado enarchivo, en formato de archivo XML o de archivo sin formato.

3. Pulse en Exportación de datos.4. Opcional: Especifique una consulta SQL en el campo Condición de

exportación. La consulta debe ser para el objeto primario o el objeto de nivelsuperior de la estructura de objeto del canal de publicación.

5. Opcional: Especifique un valor entero en el campo Recuento de exportaciónpara limitar el número de registros contenidos en el archivo exportado. Si elresultado de la consulta contiene más registros que el número que hayaespecificado, dichos registros no se incluyen en el archivo exportado.

6. Pulse en Aceptar para iniciar el proceso de exportación de datos.

Qué hacer a continuación

Al ejecutar la exportación de datos, los datos seleccionados forman un mensaje yse incluyen en la cola saliente configurada para el canal de publicación y susistema externo correspondiente. A continuación, el mensaje se procesa de la colasaliente al punto final configurado. Si se produce un error durante la entrega de unmensaje a un punto final, puede gestionar y ver los mensajes de exportación dedatos señalados con un error en la aplicación Nuevo proceso de mensajes.

56 Integración de datos con aplicaciones externas

Page 63: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Agregación de colas a un sistema externo:

Puede utilizar las colas de Java Message Service (JMS) para intercambiar datos deservicio empresarial y datos de canal de publicación con una aplicación externa.Cuando se reciben o se envían mensajes, se graban en la cola JMS. Estos mensajespermanecen en las colas hasta que se procesan o suprimen satisfactoriamente.

Antes de empezar

Antes de agregar una cola a un sistema externo, debe crear la cola en el servidorde aplicaciones. Si agrega una cola secuencial, debe configurar una tarea cron parasondear periódicamente la cola en busca de mensajes.

Acerca de esta tarea

Cada sistema externo puede tener sus propias colas entrantes y salientes, o puedeconfigurar varios sistemas para compartir colas. Puede añadir sus propias colas demensajes definidas por el usuario o modificar las colas existentes cuando las colasde mensajes entrantes y salientes predefinidas no se adapten a sus necesidades.

Procedimiento

1. En la aplicación Sistemas externos, seleccione el sistema para el que deseeagregar una cola JMS.

2. Seleccione la acción Agregar/Modificar colas.3. Pulse Fila nueva.4. Especifique valores en los campos siguientes:

Opción Descripción

Nombre JNDI de cola El nombre de la cola JMS.

Fábrica de conexión de cola La fábrica de conexión que se utiliza paraacceder a la cola. El valor predeterminado esjms/mro/int/queues/sqin.

Recuento de intentos máximo El número de veces que se procesa unmensaje antes de grabarse en el registro deerrores y de que se envíe una notificación decorreo electrónico al administrador delsistema.

5. Opcional: Especifique valores en los campos siguientes:

Opción Descripción

Fábrica de contexto inicial La clase que se utiliza para conectarse alservidor JMS.

URL de proveedor El URL del servidor JMS.

ID de usuario El ID de usuario que se utiliza para accedera la nueva cola.

Contraseña La contraseña que se utiliza para acceder ala cola.

Integración de datos con aplicaciones externas 57

Page 64: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Opción Descripción

Dirección de correo electrónico La dirección de correo electrónico de unusuario que recibe avisos cuando seproducen errores de transacción en la cola.Normalmente, este valor es la dirección decorreo electrónico del administrador delsistema.

6. Opcional: Si la cola entrega mensajes entrantes y funciona como una colacontinua, desmarque la casilla de verificación Secuencial.

7. Opcional: Si la cola entrega mensajes salientes, desmarque la casilla deverificación Entrantes.

8. Pulse Aceptar.9. En la ficha Sistema, especifique valores en los siguientes campos:

v Cola secuencial saliente

v Cola secuencial entrante

v Cola continua entrante

10. Pulse Guardar sistema externo.

Creación de tablas de interfaz:

Puede crear una tabla de interfaz para la integración con sistemas externos queutilicen tablas de base de datos para el intercambio de datos. Las tablas de interfazreflejan el contenido de las estructuras de objetos de los canales de publicación yde los servicios empresariales. Debe volver a crear las tablas existentes cuandocambie la definición de la estructura de objeto correspondiente.

Antes de empezar

Si en la tabla de cola MXIN_INTER_TRANS hay mensajes sin procesar de unatabla de interfaz, ésta no se podrá volver a crear. Si no se hace una copia deseguridad de los datos antes de volver a crear una tabla de interfaz, el sistemaperderá los datos. Asegúrese de que los conflictos de alias se resuelvan y lascasillas de verificación de Admitir estructura plana estén seleccionadas en losregistros de estructura de objeto asociados en la aplicación Estructuras de objetos.

Acerca de esta tarea

El cuadro de diálogo Crear tablas de interfaz muestra las tablas de interfazasociados con los canales de publicación y servicios empresariales que tengan lassiguientes características:v Están registrados en el sistema externo seleccionado.v El nombre de la tabla de interfaz no es nulo.v La estructura de objeto correspondiente admite la representación de archivos

planos.

Procedimiento

1. En la aplicación de sistemas externos, seleccione la acción Crear tablas deinterfaz.

2. En el cuadro de diálogo Crear tablas de interfaz, seleccione la tabla de interfazque desee actualizar y crear.

3. Especifique un valor en el campo Punto final.

58 Integración de datos con aplicaciones externas

Page 65: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

4. Opcional: Seleccione la casilla de verificación Cambiar nombre existente paracrear una copia de la tabla de interfaz seleccionada. El sistema de gestión deactivos guarda una copia de la tabla de interfaz y agrega un sufijo BAK alnombre.

5. Pulse Crear.6. Pulse Aceptar para crear la tabla o Cancelar para detener el proceso. En

función del número de tablas de interfaz que vaya a crear, este proceso puedeprolongarse en el tiempo.

7. Pulse Aceptar para cerrar el cuadro de diálogo Crear tablas de interfaz.

Trabajo con controles de integración:

Si los canales o servicios de integración contienen reglas de proceso o clases desalidas basadas en controles de integración, se pueden configurar los valores de loscontroles de integración para el sistema externo. Puede configurar controles deintegración booleanos, de lista y de valores para incorporarlos a las reglas deproceso.

Configuración de un control booleano:

Puede configurar un control booleano en un sistema externo cuando necesite uncontrol que especifique un valor de verdadero o falso (true o false). También puedeagregar a un control booleano valores específicos de planta y de organización. Unservicio empresarial o un canal de publicación puede utilizar este control booleanoen sus evaluaciones de reglas de procesamiento. El valor verdadero o falso queasigna al control en el sistema externo determina si un servicio empresarial o uncanal de publicación aplica una regla de procesamiento.

Antes de empezar

El valor booleano que asigne a un control ya deben existir en la definición delcontrol en la aplicación Canales de publicación o Servicios empresariales. Si dichadefinición apunta a un dominio, cualquier valor específico de planta o deorganización que asigne deberá existir en dicho dominio.

Procedimiento

1. En la aplicación Sistemas externos, visualice el sistema que desea actualizar.2. Seleccione la acción Configurar controles de integración.3. Seleccione el control booleano que desee actualizar.4. Pulse Fila nueva.5. Lleve a cabo una de estas acciones:

v Especifique un valor en el campo Organización.v Especifique un valor en el campo Planta.

6. Especifique si desea que el control booleano tenga un valor predeterminado deverdadero o falso.

Opción Valor predeterminado Verdadero

Valor verdadero Seleccionado

Valor falso Sin seleccionar

7. Pulse en Aceptar para cerrar el cuadro de diálogo Control booleano.8. Pulse en Aceptar para cerrar el cuadro de diálogo Configurar controles de

integración.

Integración de datos con aplicaciones externas 59

Page 66: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Configuración de un control de referencia cruzada:

Puede configurar un control de referencia cruzada cuando necesite un control quesustituya un valor por otro. Un control de referencia cruzada puede correlacionarun valor del sistema de gestión de activos con un valor del sistema externo.

Antes de empezar

El valor que asigne para la conversión deberá existir en primer lugar en ladefinición del control de la aplicación Canales de publicación o Serviciosempresariales. Si dicha definición apunta a un dominio, los valores específicos deplanta o de organización que asigne deberán existir en dicho dominio.

Procedimiento

1. En la aplicación Sistemas externos, visualice el sistema que desea actualizar.2. Seleccione la acción Configurar controles de integración.3. Seleccione el control de referencia cruzada que desee actualizar.4. Pulse Fila nueva.5. En el campo Valor de Maximo, especifique el valor de aplicación que desea

que el sistema de gestión de activos convierta a partir de o a un valor desistema externo.

6. En el campo Valor externo, especifique el valor del sistema externo que deseaque el sistema de gestión de activos convierta a partir de o a un Valor deMaximo.

7. Pulse en Aceptar para cerrar el cuadro de diálogo Control de referenciacruzada.

8. Pulse en Aceptar para cerrar el cuadro de diálogo Configurar controles deintegración.

Configuración de un control de lista:

Puede crear un control de integración de tipo de lista cuando necesite un controlque contenga una lista de valores. También puede agregar a un control de listavalores específicos de planta y de organización. Un servicio empresarial o un canalde publicación puede utilizar este control de lista en sus evaluaciones de reglas deprocesamiento. El valor que asigna al control en el sistema externo determina si unservicio empresarial o un canal de publicación aplica una regla de procesamiento.

Antes de empezar

Los valores que agregue a un control de lista ya deben existir en la definición delcontrol en la aplicación Canales de publicación o Servicios empresariales. Si dichadefinición apunta a un dominio, los valores específicos de planta o de organizaciónque asigne deberán existir en dicho dominio.

Procedimiento

1. En la aplicación Sistemas externos, visualice el sistema que desea actualizar.2. Seleccione la acción Configurar controles de integración.3. Seleccione el control de lista que desee actualizar.4. Pulse Fila nueva.5. En el campo Valor, escriba un valor que existe en el dominio.6. Pulse en Aceptar para cerrar el cuadro de diálogo Control de lista.

60 Integración de datos con aplicaciones externas

Page 67: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

7. Pulse en Aceptar para cerrar el cuadro de diálogo Configurar controles deintegración.

Configuración de un control de valor:

Puede establecer un control de integración de tipo de valor en un sistema externocuando necesite un control que contenga un único valor. También puede agregar aun control de valor otros valores específicos de planta y de organización. Unservicio empresarial o un canal de publicación puede utilizar este control de valoren sus evaluaciones de reglas de procesamiento. El valor que asigna al control enel sistema externo determina si un servicio empresarial o un canal de publicaciónaplica una regla de procesamiento.

Antes de empezar

El valor que asigne en primer lugar deberá existir en la definición del control de laaplicación Canales de publicación o Servicios empresariales. Si dicha definiciónapunta a un dominio, los valores específicos de planta o de organización queasigne deberán existir en dicho dominio.

Procedimiento

1. En la aplicación Sistemas externos, visualice el sistema que desea actualizar.2. Seleccione la acción Configurar controles de integración.3. Seleccione el control de valor que desee actualizar.4. Pulse Fila nueva.5. Lleve a cabo una de estas acciones:

v Especifique un valor en el campo Organización.v Especifique un valor en el campo Planta.

6. En el campo Valor, escriba un valor que existe en el dominio.7. Pulse en Aceptar para cerrar el cuadro de diálogo Control de valor.8. Pulse en Aceptar para cerrar el cuadro de diálogo Configurar controles de

integración.

Anulación de valores para un control de referencia cruzada:

Puede configurar un control de referencia cruzada para anular los valores deplantas y organizaciones. Puede optar por anular los valores de referencia cruzadadefinidos anteriormente al nivel del servicio empresarial o del canal depublicación. La anulación del valor se puede configurar según cada sistemaexterno para mantener correlaciones válidas entre el sistema de gestión de activo yel sistema externo.

Antes de empezar

El valor que utilice para la conversión deberá existir en primer lugar en ladefinición del control de referencia cruzada de la aplicación Canales de publicacióno Servicios empresariales. Si dicha definición apunta a un dominio, los valoresespecíficos de planta o de organización que asigne deberán existir en dichodominio.

Acerca de esta tarea

Si utiliza sinónimos, especifique el valor externo como valor de control, no el valorinterno de la aplicación.

Integración de datos con aplicaciones externas 61

Page 68: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Procedimiento

1. En la aplicación Sistemas externos, visualice el sistema que desea actualizar.2. Seleccione la acción Configurar controles de integración.3. Seleccione el control de referencia cruzada que desee actualizar.4. Pulse en Anular. El cuadro de diálogo Anular valores para control de

referencia cruzada muestra los valores específicos de organización y plantaque existen para el control.

5. Pulse Fila nueva.6. Lleve a cabo una de estas acciones:

v Especifique un valor en el campo Organización.v Especifique un valor en el campo Planta.

7. En la ventana de tabla Valores para organización/planta, pulse en Fila nueva.8. Especifique los valores de los campos Valor predeterminado y Valor externo.

Para utilizar el control como un control de multiplicación, especifique variosregistros que tengan el mismo valor externo y valores diferentes de planta ode organización.

9. Pulse en Aceptar para cerrar el cuadro de diálogo Anular valores para controlde referencia cruzada.

10. Pulse en Aceptar para cerrar el cuadro de diálogo Control de referenciacruzada.

11. Pulse en Aceptar para cerrar el cuadro de diálogo Configurar controles deintegración.

Ejemplo

Cinco sistemas externos están configurados para intercambiar datos con lainfraestructura de integración. Cuatro de estos sistemas externos utilizan losmismos valores de planta, pero un valor de planta difiere. Un control de referenciacruzada que realiza la conversión entre los cuatro valores que no coinciden y elvalor del sistema de gestión de activos se puede anular al nivel de un sistemaexterno. La anulación del valor se puede configurar para convertir el valor deplanta del sistema externo no coincidente restante con un valor de almacén delsistema de gestión de activos.

Un control de referencia cruzada en un servicio empresarial puede convertir elvalor de planta del sistema externo EX001 a un valor de planta del sistema degestión de activos MX001. Un control de referencia cruzada en el sistema externopuede anular el valor EX001 predefinido y utilizar un valor EX002 en su conversiónde valor.

Anulación de valores para un control de lista:

Puede configurar un control de lista para anular los valores de plantas yorganizaciones. Puede optar por anular los valores de control de lista definidosanteriormente al nivel del servicio empresarial o del canal de publicación. La reglase puede saltar el procesamiento de la transacción cuando el valor del campo dedatos no coincide con ninguno de los valores de control de lista sobrescritos.

Antes de empezar

El valor que asigne en primer lugar deberá existir en la definición del control de laaplicación Canales de publicación o Servicios empresariales. Si dicha definición

62 Integración de datos con aplicaciones externas

Page 69: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

apunta a un dominio, los valores específicos de planta o de organización queasigne deberán existir en dicho dominio.

Acerca de esta tarea

Debe utilizar un punto (.) como marcador de posición decimal al introducirdecimales como valor de control, independientemente de los valores del entornolocal de la base de datos o del servidor de aplicaciones. No se da formato a losnúmeros situados a la izquierda del indicador. Este formato se aplica a los datosentrantes y salientes. Por ejemplo, $1,738,593.64 debe ser 1738593.64.

Procedimiento

1. En la aplicación Sistemas externos, visualice el sistema que desea actualizar.2. Seleccione la acción Configurar controles de integración.3. Seleccione el control de lista que desee actualizar.4. Pulse en Anular. El cuadro de diálogo Anular valores para control de lista

muestra los valores específicos de organización y planta que existen para elcontrol.

5. Pulse Fila nueva.6. Lleve a cabo una de estas acciones:

v Especifique un valor en el campo Organización.v Especifique un valor en el campo Planta.

7. En la ventana de tabla Valores para organización/planta, pulse en Fila nueva.8. Especifique un valor en el campo Valor. Si utiliza sinónimos, especifique un

valor externo, no el valor interno de la aplicación.9. Pulse en Aceptar para cerrar el cuadro de diálogo Anular valores para control

de lista.10. Pulse en Aceptar para cerrar el cuadro de diálogo Control de referencia

cruzada.11. Pulse en Aceptar para cerrar el cuadro de diálogo Configurar controles de

integración.

Ejemplo

Las órdenes de trabajo se envían a un sistema externo según sus estados. La reglade procesamiento definida en un servicio empresarial o canal de publicación puedecomprobar el estado de una orden de trabajo sobre un control de lista que contienedos valores de estado: APROB (aprobado) o COMPLETO. Esta anulación de lista sepuede configurar para evaluar dos valores de estado de orden de trabajodiferentes: EAPROB (en espera de aprobación) o EPROG (en espera deprogramación). Si el estado de una orden de trabajo no coincide con los valores decontrol de lista sobrescritos, la transacción de orden de trabajo no se envía alsistema externo.

Contenido de integración predefinidoLa infraestructura de integración proporciona contenido de integración predefinido,que incluye estructuras de objeto, canales de publicación y servicios empresarialesque soportan la importación de datos de un sistema externo o la exportación dedatos un sistema externo.

En algunos casos, sólo se proporciona la estructura de objeto sin un canal depublicación o un servicio empresarial relacionado. La infraestructura de

Integración de datos con aplicaciones externas 63

Page 70: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

integración, por diseño, proporciona soporte para insertar, actualizar, suprimir yconsultar datos según la regla de negocio definida en los objetos de negocios de laestructura de objeto. No proporciona todas las funciones que están disponibles através de las aplicaciones, incluidas aquellas que están disponibles en acciones o elbotón de proceso en la pantalla. Algunas estructuras de objeto puedenproporcionar soporte para algunas acciones o el botón de proceso en la pantalla.

Objetos de datos maestrosLa infraestructura de integración proporciona una selección del contenido deintegración predefinido para datos maestros, que consisten generalmente en datosde contabilidad, personas, almacenes, mano de obra, clasificación y distribuidores.

Objeto de activo:

La estructura de objeto MXASSET permite la sincronización bidireccional deinformación de activos, incluidos los atributos que definen medidores.

Finalidad

La estructura de objeto MXASSET sincroniza activos individuales, pero nosincroniza la jerarquía de activo en general. Permite agregar y actualizar medidoresvinculados a un activo, pero no permite actualizar los valores de lectura demedidor. El proceso de entrada de ASSETMETER está restringido a los atributosque definen el medidor, no a los valores de lectura de medidor ni a otrainformación que pertenezca a estas lecturas.

Requisito previo

Debe sincronizar las ubicaciones operativas, los almacenes, los medidores y laspartes aplicables antes de cargar los activos.

La relación de MBO que se utiliza para recuperar el MBO ASSETMETER esdiferente de la relación de MBO que se utiliza en la aplicación Activos. Por lotanto, el atributo modificado en el XML (proceso de salida) no se establece paraningún valor de este MBO.

Esta estructura de objeto no da soporte a los cambios de estado ni al movimientode activos. Se proporciona un servicio estándar para los activos para dar soporte almovimiento de los activos que residen en ubicaciones operativas. El servicioestándar, Activo, proporciona la operación assetmoveSingleAsset para dar soportea esta funcionalidad.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

MoutAssetProcess - Llena el campoHierarchypath si el activo tiene asociada unaclasificación.

Canal de publicación MXASSETInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

64 Integración de datos con aplicaciones externas

Page 71: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

MaxAssetProcess - Si se proporcionaHierarchypath, la clase de procesamientollena el campo classstructureidcorrespondiente del activo, que crea laasociación de la clasificación con el activo.

Servicio empresarial MXASSETInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de catálogo de cuentas:

La estructura de objeto MXCOA permite la sincronización entrante de los datos delcatálogo de cuentas.

Requisito previo

Debe cargar componentes de libro mayor antes de cargar el catálogo de cuentas.No existe ningún canal de publicación predefinido para esta estructura de objeto.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

Ninguno

Canal de publicación Ninguno

Reglas de proceso Ninguno

Controles de integración Ninguno

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

MaxCOAProcess - Se puede procesar comouna combinación de segmentos delimitadoso como componentes individuales queforman parte de la definición de tipo dedatos GLACCOUNT.

Servicio empresarial MXCOAInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Integración de datos con aplicaciones externas 65

Page 72: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Ejemplos de proceso de entrada

El proceso como combinación de segmentos delimitados está disponible para tablasde interfaz y XML. Puede especificar la cuenta del libro mayor de esta forma entodas las estructuras de objeto.<GLACCOUNT>

<VALUE>6400-2-10</VALUE></GLACCOUNT>

La estructura de objeto valida cada segmento y, a continuación, crea el registro decatálogo de cuenta en la base de datos con los valores siguientes:v GLACCOUNT=6400-2-10v GLCOMP01-6400v GLCOMP02=2v GLCOMP03=10

También puede procesar el objeto como componente individual que forma partedel la definición de tipo de datos GLACCOUNT.<GLACCOUNT><GLCOMP glorder="0">6400</GLCOMP><GLCOMP glorder="1">2</GLCOMP><GLCOMP glorder="2">10</GLCOMP></GLACCOUNT>

La estructura de objeto valida los componentes y crea la cuenta utilizando eldelimitador definido en la tabla GLCONFIGURE para cada segmento. Esta opciónsolo está disponible para XML.

Objeto de elemento de clasificación:

La estructura de objeto MXCLASSIFICATION permite la sincronizaciónbidireccional de clasificaciones, incluidas la clase Utilizar con, la claseEspecificaciones y la especificación de clase Utilizar con.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

Ninguno

Canal de publicación MXCLASSInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

66 Integración de datos con aplicaciones externas

Page 73: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

MaxClassificationProcess - Lógica deprocesamiento para encontrar clasificacionesy niveles superiores utilizandoHierarchypath. Como el sistema permiteclasificaciones duplicadas (hierarchypaths),se genera una excepción cuando se intentaactualizar una clasificación si existenduplicados.

Servicio empresarial MXCLASSInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de especialidad:

La estructura de objeto MXCRAFT permite la sincronización bidireccional deinformación de especialidades. La información de especialidades incluyeespecialidades, las habilidades de especialidad y las tarifas de especialidad.

Requisito previo

Si la especialidad hace referencia a una habilitad o contrato, la información debeexistir antes de cargar las especialidades.

Una especialidad puede tener una tarifa estándar, una tarifa para cada nivel deespecialidad o diferentes tarifas para cada contrato que la proporciona, con unatarifa a nivel de especialidad opcional para cada contrato.

Los registros CRAFT y CRAFTSKILL tienen un campo STANDARDRATE para latarifa por hora para cada especialidad o habilidad asociada con la especialidad.

El registro CRAFTRATE especifica tarifas para los distribuidores que proporcionanla especialidad y, opcionalmente, tarifas diferentes para cada combinación dehabilidad, especialidad y distribuidor.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

Ninguno

Canal de publicación MXCRAFTInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Integración de datos con aplicaciones externas 67

Page 74: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

Ninguno

Servicio empresarial MXCRAFTInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de proyecto financiero:

La estructura de objeto de MXPROJ permite la sincronización bidireccional deinformación de proyectos financieros. Esta estructura de objeto sincroniza tareas yproyectos individuales como mensajes distintos. No sincroniza un proyecto y todassus tareas de nivel inferior en un solo mensaje.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

Ninguno

Canal de publicación MXPROJInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

Ninguno

Servicio empresarial MXPROJInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de componente de libro mayor (LM):

La estructura de objeto de MXGLCOMP permite la sincronización entrante decomponentes de LM.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

68 Integración de datos con aplicaciones externas

Page 75: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

Ninguno

Canal de publicación Ninguno

Reglas de proceso Ninguno

Controles de integración Ninguno

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

Ninguno

Servicio empresarial MXGLCOMPInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de mano de obra:

La estructura de objeto MXLABOR permite la sincronización bidireccional deinformación de mano de obra, incluidas la persona y las tarifas de especialidad demano de obra.

Requisito previo

Debe sincronizar cualquier especialidad, ubicación de trabajo o ubicación dealmacén asociada antes de cargar el trabajo. Cada registro de persona sólo puedetener un registro de mano de obra.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

MoutLaborProcess - Lógica deprocesamiento inhabilitada.

Canal de publicación MXLABORInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Integración de datos con aplicaciones externas 69

Page 76: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

MaxLaborProcess - Da soporte a cambios deestado. Establece el ORGID para el MBOLaborCraftRate del MBO de nivel superior.También establece el PERSONID en elregistro PERSON, en función del PERSONIDdel registro LABOR

Servicio empresarial MXLABORInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de persona:

La estructura de objeto MXPERSON permite la sincronización bidireccional deinformación personal, como el teléfono, el correo electrónico y los datos de SMS.

Finalidad

Esta estructura de objeto da soporte a la sincronización de datos personalesindividuales. No da soporte a la actualización de la información de disponibilidadpara un registro de persona. La estructura de objeto también da soporte a cambiosde estado.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

Ninguno

Canal de publicación MXPERSONInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

70 Integración de datos con aplicaciones externas

Page 77: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

MaxPersonProcess - Requiere que, con cadaactualización de persona, se proporcionenlos datos para todos los objetos de nivelinferior (PHONE, EMAIL, SMS). Debido a lafalta de una clave exclusiva en estos objetos,la lógica siempre suprime todos los objetosde nivel inferior y los vuelve a agregar. Siuna persona tiene tres registros de correoelectrónico y se recibe un mensaje depersona con dos registros de correoelectrónico, se suprimirá el registro de correoelectrónico no incluido en el mensaje depersona. La estructura de objeto da soportea cambios de estado.

Servicio empresarial MXPERSONInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de persona/usuario:

La estructura de objeto de MXPERUSER permite la sincronización bidireccional deinformación de personas/usuarios. Esta estructura de objeto da soporte a cambiosde estado.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

Ninguno

Canal de publicación MXPERUSERInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

MaxPersonUserProcess - Se requiereprocesamiento para guardar los datos depersona antes de guardar los datos deusuario. Esta estructura de objeto da soportea cambios de estado.

Servicio empresarial MXPERSUSERnterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Integración de datos con aplicaciones externas 71

Page 78: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Objetos de ubicación de almacén:

La estructura de objeto de MXSTORELOC permite la sincronización bidireccionalde ubicaciones de almacén, mano de obra y mensajería.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

MoutLocProcess - proporciona filtrado paraenviar sólo ubicaciones de almacenes,mensajería o mano de obra.

Canal de publicación MXSTORELOCInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

MaxLocProcess - proporciona filtrado paraaceptar sólo ubicaciones de almacenes,mensajería o mano de obra.

Servicio empresarial MXSTORELOCInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de estructura de objeto maestro de distribuidor (Empresas):

La estructura de objeto de MXVENDORMSTR permite la sincronizaciónbidireccional de datos maestros de distribuidor.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

Ninguno

Canal de publicación MXVENDORMSTRInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

72 Integración de datos con aplicaciones externas

Page 79: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

Ninguno

Servicio empresarial MXVENDORMSTRInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de distribuidor (Empresas):

La estructura de objeto MXVENDOR permite la sincronización bidireccional dedatos de distribuidor a nivel de organización, incluidos contactos.

Requisito previo

Para habilitar esta estructura de objeto para crear el registro de maestro deempresas, seleccione la opción Agregar empresas automáticamente al maestro deempresas para el conjunto asociado con la organización a la cual se agrega elregistro de distribuidor. La estructura de objeto MXVENDOR da soporte a cambiosde estado.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

Ninguno

Canal de publicación MXVENDORInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

MaxComProcess - Proporciona lógica paradar soporte a la creación del registro demaestro de empresas.

Servicio empresarial MXVENDORInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Integración de datos con aplicaciones externas 73

Page 80: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Objetos de parte y de inventarioLa infraestructura de integración proporciona una selección del contenido deintegración predefinido para objetos de parte y de inventario, como artículos deservicio, partes de herramienta, distribuidores de inventario y despachos.

Objeto de parte:

La estructura de objeto MXITEM permite la sincronización bidireccional de datosde parte de parte, incluidas conversiones, especificaciones de parte y condiciones.Esta estructura de objeto da soporte a cambios de estado.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

MoutItemProcess - Filtro para no establecerpartes de herramienta o servicio. Da soportea la recuperación de la hierarchypath para elclassstructureid de la parte.

Canal de publicación MXITEMInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

MaxItemProcess - Si la transacción entrantees una actualización de la parte y eldistintivo capitalizado de la parte hacambiado, se llama a un método paracambiar el estado capitalizado de la parte. Siel tipo de parte no es ITEM o un sinónimoválido. Da soporte a cambios de estado.

Servicio empresarial MXITEMInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de artículo de servicio:

La estructura de objeto de MXSERVITEM permite la sincronización bidireccionalde datos de artículos de servicio. El objeto principal de la estructura de objeto,SERVICEITEMS, es un objeto no persistente.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

74 Integración de datos con aplicaciones externas

Page 81: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

Ninguno

Canal de publicación MXSERVITEMInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

Ninguno

Servicio empresarial MXSERVITEMInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de parte de herramienta:

La estructura de objeto de MXTOOLITEM permite la sincronización bidireccionalde datos de parte de herramienta, incluidas especificaciones de parte deherramienta.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

MoutToolItemProcess - Da soporte a larecuperación de la hierarchypath para elclassstructureid de la parte.

Canal de publicación MXTOOLITEMInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

MaxToolItemProcess - Si la transacciónentrante es una actualización de la parte y eldistintivo capitalizado de la parte hacambiado, se llama a un método paracambiar el estado capitalizado de la parte.

Integración de datos con aplicaciones externas 75

Page 82: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Componentes de integración predefinidos Valor y descripción

Servicio empresarial MXTOOLITEMInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de inventario:

La estructura de objeto de MXINVENTORY permite la sincronización bidireccionalde datos de inventario (parte-almacén), incluidos los costes de inventario.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

MoutInvProcess - Establece el valor delcampo ITEMTYPE a partir del objeto ITEM.

Canal de publicación MXINVENTORYInterface

Reglas de proceso SKIPINVENTORY - Se salta el registro si suITEMTYPE está en el control de integraciónSKIPITEMTYPE.

Controles de integración SKIPITEMTYPE

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

MaxInvProcess - Da soporte a cambios deestado.

Servicio empresarial MXINVENTORYInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de balance de inventario:

La estructura de objeto MXINVBAL permite la sincronización bidireccional dedatos de balance de inventario. La información de cambio de balance en estaestructura de objeto es para el nivel inferior (ESTANTE o LOTE) dentro de laaplicación.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

76 Integración de datos con aplicaciones externas

Page 83: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

MoutInvBalancesProcess - Establece el valordel campo ITEMTYPE a partir del objetoITEM.

Canal de publicación MXINVBALInterface

Reglas de proceso SKIPINVBALITM - Se salta el registro si suITEMTYPE está en el control de integraciónSKIPITEMTYPE.

Controles de integración SKIPITEMTYPE

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

MaxInvBalancesProcess - La estructura deobjeto de saldo de existencias entrante llamainternamente al método de ajuste de balanceactual y esto crea una transacción financieraCURBALADJ en INVTRANS.

Servicio empresarial MXINVBALInterface MXINVBALQInterface- Un segundo servicio empresarialconfigurado para la consulta de operación.

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de distribuidor de partes:

La estructura de objeto MXINVVENDOR permite la sincronización bidireccional dedatos de parte-distribuidor.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

MoutInvVendorProcess - Establece el valordel campo ITEMTYPE a partir del objetoITEM y establece el valor deCURRENCYCODE a partir del objeto dedistribuidor (empresas).

Canal de publicación MXINVVENDORInterface

Reglas de proceso INVVITEMTYPE - Se salta el registro si suITEMTYPE está en el control de integraciónITEMTYPEFORINV.

Controles de integración ITEMTYPEFORINV

Integración de datos con aplicaciones externas 77

Page 84: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

MaxInvVendorProcess - Si el mensajeentrante contiene un código de moneda ydicho código se diferencia del código demoneda del distribuidor, se emite un error.

Servicio empresarial MXINVENDORInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de reserva de inventario:

La estructura de objeto de MXINVRES proporciona la sincronización bidireccionalde reservas de inventario (almacén). Esta estructura de objeto no procesa registrosde reserva de despacho directo cuestión directos creados por el sistema.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

MoutRSVProcess - Se salta reservas que sonpara despachos directos.

Canal de publicación MXINVRESInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

Ninguno

Servicio empresarial MXINVRESInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de despachos de inventario:

La estructura de objeto MXINVISSUE proporciona la sincronización bidireccionalde despachos y devoluciones de inventario (almacén).

78 Integración de datos con aplicaciones externas

Page 85: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

MoutISUProcess - Se salta reservas que sonpara despachos directos.

Canal de publicación MXINVISSUEInterface - Filtra despachosdirectos de forma que queden fuera deMATUSETRANS (PONUM no tiene un valornulo e ISSUETYPE es ISSUE o RETURN)porque los maneja la estructura de objeto derecepciones (MXRECEIPTInterface). Filtra lastransacciones de varianza que el proceso deaprobación de factura graba enMATUSETRANS.

Reglas de proceso Ninguno

Controles de integración Ninguno

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

MaxISUProcess - Si la acción proporcionadano es una acción Agregar, se genera unaexcepción. Valida ISSUETYPE paragarantizar que sea ISSUE, RETURN o nulo.Si es algún otro valor, se emite un error. Sies nulo, el valor se establece en ISSUE deforma predeterminada.

Servicio empresarial MXINVISSUEInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Objetos de documentosLa infraestructura de integración proporciona una selección del contenido deintegración predefinido para documentos, como registros de compra, facturas yregistros de órdenes de trabajo.

El campo STATUSIFACE y el proceso:

Todos los documentos de compra y de orden de trabajo tienen un estado. El campoSTATUSIFACE identifica si las transacciones relacionadas contienen registrosnuevos o actualizados o solamente cambios de estado.

En general, el campo STATUSIFACE se aplica a todos los subregistros de laestructura de objeto creados a partir de los MBO con estado, que son MBO quetienen un campo STATUS y admiten acciones de cambio de estado. El campoSTATUSIFACE se proporciona como un campo no persistente para aquellos objetosen los que la integración admite un cambio de estado.

Integración de datos con aplicaciones externas 79

Page 86: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

El campo STATUSIFACE y el proceso de salida

Durante el proceso de un subregistro de estructuras de objetos creado a partir deun MBO con estado, el proceso de integración de salida busca un campo STATUSen el MBO y un campo STATUSIFACE en el subregistro de la estructura de objetocorrespondiente. Si existen ambos campos, el proceso establece el valor del campoSTATUSIFACE en el valor del atributo modificado para el campo STATUScorrespondiente. Un valor de 0 indica que no se ha modificado el estado. Un valorde 1 indica que el estado se ha modificado.

Este proceso se aplica solamente a los mensajes de salida generados por eventos,no a los mensajes exportados mediante la función de exportación de datos omediante invocaciones programadas.

El campo STATUSIFACE y el proceso de entrada

Cuando se procesa una estructura de objeto en la que el MBO principal (elsuperior) tiene estado, el proceso de entrada busca un campo STATUSIFACE en laestructura de objeto correspondiente para determinar si el mensaje de entrada seha de procesar como una actualización de documentaos y un cambio de estado osolamente como un cambio de estado.

La tabla siguiente describe el proceso de entrada utilizando estructuras de objetoscon un MBO con estado principal (superior). No se aplica a ningún MBO conestado incluido como objeto de nivel inferior en una estructura de objeto.

Tabla 2. Acciones realizadas durante el proceso de entrada del campo STATUSIFACE

Valor de STATUSIFACE El documento existe en la base dedatos

El documento no existe en la basede datos

No se proporciona, o 0 v Actualiza el documento en la basede datos

v Si el estado del documento deentrada es diferente del estado dela base de datos, actualiza elestado en la base de datos

v Añade el documento a la base dedatos

v Establece el estado en la base dedatos al estado del mensaje deentrada

1 Actualiza el estado de la base dedatos

Error

Objeto de contratos de compra:

La estructura de objeto MXPC permite la sincronización bidireccional deinformación de contratos de compra. Esta estructura de objeto sólo soportaactualmente los tipos de contratos de compra global y de precio.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

80 Integración de datos con aplicaciones externas

Page 87: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 3. Componentes predefinidos de objetos de contratos de compra para procesamientode integración saliente

Componentes deintegración predefinidos Valor y descripción

Funcionalidad de clase deprocesamiento de estructurade objeto

MoutPCProcess - Se salta reservas que son para despachosdirectos.

Canal de publicación MXPCInterface - Utiliza reglas de proceso para que eldocumento de contrato de compra completo sólo se envíepara un cambio de estado.

Reglas de proceso 1. SKIPPC - Se salta el envío del documento si se cumplenlas dos condiciones siguientes:

v El documento no se ha enviado antes.

v El nuevo estado no figura en la lista en el controlPCSEND.

2. SKIPPCUPDATE - Se salta el envío del documentocuando se actualiza pero el estado no cambia.

3. SETSTATUSIFACE - Establece el valor del campoSTATUSIFACE en 0 (falso) para todos los estados exceptolos que figuran en la lista del control PCSEND.

4. CHECKSTATUS - Sólo envía los datos de cabecera delcontrato de compra si el estado cambia y el estado nuevono está en el control PCSEND. (En este caso, eldocumento completo se ha enviado antes y ahora se estáenviando sólo la notificación de cambio de estado).

Controles de integración PCSEND

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Tabla 4. Componentes predefinidos de objeto de contrato de compra para procesamientode integración entrante

Componentes deintegración predefinidos Valor y descripción

Funcionalidad de clase deprocesamiento de estructurade objeto

MaxPCProcess - Da soporte a cambios de estado. Crea unarevisión nueva cuando el contrato de compra ya existe y larevisión no. Sólo soporta los tipos de contrato global y deprecio.

Canal de publicación MXPCInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de solicitud de compra:

La estructura de objeto de MXPR permite la sincronización bidireccional deinformación de solicitudes de compra y soporta cambios de estado.

Integración de datos con aplicaciones externas 81

Page 88: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Tabla 5. Componentes predefinidos de objetos de solicitudes de compra paraprocesamiento de integración saliente

Componentes deintegración predefinidos Valor y descripción

Funcionalidad de clase dedefinición de estructura deobjeto

Ninguno

Canal de publicación MXPRInterface – Utiliza las reglas de proceso. El documentode solicitud de compra completo sólo se envía para cambiosde estado.

Reglas de proceso 1. SKIPPR - Se salta el envío del documento si se cumplenlas dos condiciones siguientes:

v El documento no se ha enviado antes.

v El nuevo estado no figuran en la lista en el controlPRSEND.

2. SKIPPRUPDATE - Se salta el envío del documentocuando se actualiza pero el estado no cambia.

3. SETSTATUSIFACE - Establece el valor del campoSTATUSIFACE en 0 (falso) para todos los estados exceptolos que figuran en la lista del control PRSEND.

4. CHECKSTATUS - Sólo envía los datos de cabecera de lasolicitud de compra si el estado cambia y el estado nuevono está en el control PRSEND. (En este caso, eldocumento completo se ha enviado antes y ahora se estáenviando sólo la notificación de cambio de estado).

Controles de integración PRSEND

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Tabla 6. Componentes predefinidos de objetos de solicitudes de compra paraprocesamiento de integración entrante

Componentes deintegración predefinidos Valor y descripción

Funcionalidad de clase deprocesamiento de estructurade objeto

MaxPRProcess - Da soporte a cambios de estado. Si el estadoactual de la solicitud de compra es aprobado, para darsoporte a las actualizaciones la clase de procesamientocambiará su estado a "en espera de aprobación", realizará lasactualizaciones y luego su estado volverá al que se identificaen el mensaje XML.

Canal de publicación MXPRInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

82 Integración de datos con aplicaciones externas

Page 89: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Objeto de orden de compra:

La estructura de objeto de MXPO permite la sincronización bidireccional deinformación de órdenes de compra y soporta cambios de estado.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Tabla 7. Componentes predefinidos de objeto de orden de compra para procesamiento deintegración saliente

Componentes deintegración predefinidos Valor y descripción

Funcionalidad de clase dedefinición de estructura deobjeto

Ninguno

Canal de publicación MXPOInterface - Utiliza reglas de proceso, el documento deorden de compra completo sólo se envía para cambios deestado.

Reglas de proceso 1. SKIPPO - Se salta el envío del documento si se cumplenlas dos condiciones siguientes:

v El documento no se ha enviado antes.

v El nuevo estado no figuran en la lista en el controlPOSEND.

2. SKIPPOUPDATE - Se salta el envío del documentocuando se actualiza pero el estado no cambia.

3. SETSTATUSIFACE - Establece el valor del campoSTATUSIFACE en 0 (falso) para todos los estados exceptolos que figuran en la lista del control POSEND.

4. CHECKSTATUS - Sólo envía los datos de cabecera de laorden de compra si el estado cambia y el estado nuevo noestá en el control POSEND. (En este caso el documentocompleto se ha enviado antes y ahora se está enviandosólo la notificación de cambio de estado).

Controles de integración POSEND

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Integración de datos con aplicaciones externas 83

Page 90: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 8. Componentes predefinidos de objeto de orden de compra para procesamiento deintegración entrante

Componentes deintegración predefinidos Valor y descripción

Funcionalidad de clase deprocesamiento de estructurade objeto

MaxPOProcess - da soporte a cambios de estado.

Si el estado actual de la orden de compra es aprobado, paradar soporte a las actualizaciones, la clase de procesamientocambia su estado a "en espera de aprobación", realiza lasactualizaciones y luego su estado vuelve al que se identificaen el mensaje XML.

Canal de publicación MXPOInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de factura:

La estructura de objeto de MXINVOICE permite la sincronización bidireccional deinformación de facturación y da soporte a los cambios de estado.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Tabla 9. Componentes predefinidos de objetos de factura para el proceso de integración saliente

Componentes de integraciónpredefinidos Valor y descripción

Funcionalidad de clase dedefinición de estructura de objeto

Ninguno

Canal de publicación MXINVOICEInterface - Utiliza reglas de proceso, el documento de facturacompleto sólo se envía para cambios de estado.

Reglas de proceso 1. SKIPINVOICE - Se salta el envío del documento si se cumplen las doscondiciones siguientes:

v El documento no se ha enviado antes.

v El nuevo estado no figuran en la lista en el control IVSEND.

2. SKIPINVIOCEUPDATE - Se salta el envío del documento cuando seactualiza pero el estado no cambia.

3. SETSTATUSIFACE - Establece el valor del campo STATUSIFACE en 0(falso) para todos los estados excepto los que figuran en la lista del controlIVSEND.

4. CHECKSTATUS - Sólo envía los datos de cabecera de la factura si el estadocambia y el estado nuevo no está en el control IVSEND. (En este caso eldocumento completo se ha enviado antes y ahora se está enviando sólo lanotificación de cambio de estado).

Controles de integración IVSEND

84 Integración de datos con aplicaciones externas

Page 91: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Integración de datos con aplicaciones externas 85

Page 92: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 10. Componentes predefinidos de objetos de factura para el proceso de integración entrante

Componentes de integraciónpredefinidos Valor y descripción

Funcionalidad de clase deprocesamiento de estructura deobjeto

El proceso entrante crea y actualiza líneas de INVOICECOST sólo si se cumpleuna de las siguientes condiciones:

v La línea de factura no hace referencia a una línea de orden de compra.

v La línea de orden de compra correspondiente no tiene una distribución.

v La línea de orden de compra no hace referencia a un almacén.

En los demás casos, el proceso entrante ignora la información deINVOICECOST cuando se crea o se actualiza la factura.

Si el mensaje entrante proporciona INVOICETERMS, el proceso entrantesuprime los términos antiguos y agrega los nuevos.

De manera opcional, los usuarios pueden especificar una variación de precioen el campo PRICEVAR de cada línea de factura, si la coincidencia de facturasse realiza en el sistema externo y se envían las variaciones de preciodeterminadas en el sistema externo para crear transacciones de variación paraactualizar órdenes de trabajo y almacenes. Para poder procesar estasvariaciones, debe existir un valor para OWNERSYSID en la factura entrante yno puede ser el mismo que el valor de MAXVARS.MXSYSID.

De manera opcional, los usuarios pueden especificar una variación de precioen el campo PRICEVAR de cada línea de factura, si la coincidencia de facturasse realiza en el sistema externo y se envían las variaciones de preciodeterminadas en el sistema externo para crear transacciones de variación paraactualizar órdenes de trabajo y almacenes. Para poder procesar estasvariaciones, debe existir un valor para OWNERSYSID en la factura entrante yno puede ser el mismo que el valor de MAXVARS.MXSYSID.

El conmutador de colaboración IVMATCH requiere los siguientes valores:

v El valor de OWNER1SYSID es siempre “THISMX”.

v El valor de OWNER2SYSID es el valor de INVOICE.OWNERSYSID.

Si la evaluación es false, las variaciones de factura a nivel de línea se ignoranen el proceso de la factura.

Los escenarios típicos para utilizar la interfaz de factura son los siguientes:

v Coincidencia de facturas en el sistema (AP saliente): las facturas recibidas deterceros, ya sea de forma electrónica o manual, se procesan en el sistema; esdecir, se comparan con las recepciones, si es aplicable, y se aprueban. Demanera alternativa, los programas de pagos creados en el sistemaprovocarán la creación de facturas aprobadas basándose en el programa.Estas facturas aprobadas generarán el envío de un aviso de pago a unsistema AP externo. El proceso de coincidencia también hace que sepubliquen las entradas de contabilidad en el libro mayor general.

v Coincidencia de facturas en el sistema externo (variaciones entrantes): elsistema no realiza la facturación, pero acepta las facturas que coinciden desistemas externos y aplica las variaciones de nuevo a las órdenes de trabajocorrespondientes, los almacenes, etc. Las entradas de contabilidadrelacionadas con los acreedores y/o las variaciones deben registrarse en elsistema externo; no se enviarán fuera.

El principal objetivo de esta interfaz es proporcionar al sistema la informaciónde variaciones necesaria para actualizar los costes de orden de trabajo.

Canal de publicación MXINVOICEInterface

Reglas de proceso Ninguno

86 Integración de datos con aplicaciones externas

Page 93: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 10. Componentes predefinidos de objetos de factura para el proceso de integración entrante (continuación)

Componentes de integraciónpredefinidos Valor y descripción

Controles de integración Ninguno

La tabla siguiente muestra un ejemplo de los valores posibles deINVOICE.OWNERSYSID, la evaluación que se genera y el resultadopredeterminado de la evaluación.

Tabla 11. Ejemplo de evaluación

Valor deINVOICE.OWNERSYSID Evaluación

Resultado(predet.)

Nulo OWNER1SYSID=”THISMX” y OWNER2SYSID=”THISMX” False

MXSYSID OWNER1SYSID=”THISMX” y OWNER2SYSID=”THISMX” False

EXTSYSID OWNER1SYSID=”THISMX” y OWNER2SYSID=”EXT” True

Cualquier otro valor OWNER1SYSID=”THISMX” y OWNER2SYSID=”EXT” True

Reglas de proceso salientes para interfaces de órdenes de trabajo:

A diferencia de las interfaces de documentos de compras, las interfaces dedocumentos de órdenes de trabajo no tienen el campo STATUSIFACE y no envíannotificaciones de cambio de estado. Primero se envía una interfaz de documentosde órdenes de trabajo cuando el estado de una orden de trabajo cambia aWOSTART y en cada actualización posterior, independientemente del estado de laorden de trabajo.

Los usuarios pueden configurar el valor inicial en el control de WOSTART.Cualquier estado que especifique en el control es el valor, no MAXVALUE. Siexisten varios valores sinónimos para un estado, liste todos los sinónimosaplicables.

Objeto de orden de trabajo:

La estructura de objeto MXWO permite la sincronización bidireccional deinformación de órdenes de trabajo y soporta cambios de estado.

Finalidad

El sistema envía en primer lugar una orden de trabajo cuando alcanza el estado enel control WOSTART y luego en todas las actualizaciones posteriores. Siempre seenvía el documento de orden de trabajo entero.

La interfaz de orden de trabajo contiene toda la información definida por elsistema en la orden de trabajo, pero no proporciona información adicional sobre losproyectos, los datos de control financiero, el equipo ni las ubicaciones que noforma parte de la orden de trabajo estándar. Si es necesario, puede agregarinformación adicional median te los campos de usuario.

El sistema trata las tareas de orden de trabajo como órdenes de trabajo. Tienenpropiedades similares y se almacenan en la misma tabla. Si un usuario crea unaorden de trabajo, agrega órdenes de trabajo de tareas/nivel inferior a la orden detrabajo y, a continuación, aprueba la orden de trabajo. El distintivo Heredarcambios de estado en la orden de trabajo indica si al aprobar la orden de trabajo

Integración de datos con aplicaciones externas 87

Page 94: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

también se aprueban todas sus órdenes de trabajo de tareas/nivel inferior. El valorpredeterminado es Y (sí), por lo que, al aprobar una orden de trabajo, también seaprueban todas las tareas u órdenes de trabajo de nivel inferior que heredan laaprobación del nivel superior basándose en este distintivo.

La escucha de evento saliente en el MBO de orden de trabajo recibe varios eventosindependientes, uno para cada orden de trabajo, los cuales se procesan y envían deforma independiente. Por lo tanto, una orden de trabajo con tres tareas y dosórdenes de trabajo de nivel inferior resulta en seis órdenes de trabajo salientesindependientes.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Tabla 12. Componentes predefinidos de objeto de orden de trabajo para procesamiento deintegración saliente

Componentes deintegración predefinidos Valor y descripción

Funcionalidad de clase dedefinición de estructura deobjeto

Ninguno

Canal de publicación MXWOInterface - Utiliza reglas de proceso; el documento deorden de trabajo completo únicamente se envía para cambiosde estado.

Reglas de proceso SKIPWO – Se salta el envío del documento si se cumplen lasdos condiciones siguientes:

v El documento no se ha enviado antes.

v El nuevo estado no figura en la lista en el controlWOSTART.

Controles de integración WOSTART

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Tabla 13. Componentes predefinidos de objeto de orden de trabajo para procesamiento deintegración entrante

Componentes deintegración predefinidos Valor y descripción

Funcionalidad de clase deprocesamiento de estructurade objeto

StatefulMicSetIn - Clase genérica que da soporte a cambiosde estado.

Canal de publicación MXWOInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

88 Integración de datos con aplicaciones externas

Page 95: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Objeto de detalles de la orden de trabajo:

La estructura de objeto MXWODETAIL permite la sincronización bidireccional deinformación de órdenes de trabajo, incluido el material planeado, la mano de obra,el servicio y las herramientas.

Finalidad

El sistema envía en primer lugar una orden de trabajo cuando alcanza el estado enel control WOSTART y luego en todas las actualizaciones posteriores. Siempre seenvía el documento de orden de trabajo entero.

La relación de MBO que se utiliza para recuperar la reserva de MBO(INVRESERVE) es diferente de la relación que se utiliza en la aplicaciónSeguimiento de órdenes de trabajo. Por lo tanto, el atributo modificado en el XMLno es establece para ningún valor de este MBO.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Tabla 14. Componentes predefinidos de objeto de detalle de orden de trabajo paraprocesamiento de integración saliente

Componentes deintegración predefinidos Valor y descripción

Funcionalidad de clase dedefinición de estructura deobjeto

MoutWORsvProcess - Proporciona el código necesario paraactualizar la columna sendersysid en el MBO invreserve.

Canal de publicación MXWODETAILInterface - Utiliza reglas de proceso; eldocumento de orden de trabajo completo con información delplan únicamente se envía para cambios de estado.

Reglas de proceso SKIPWO - Se salta el envío del documento si se cumplen lasdos condiciones siguientes:

v El documento no se ha enviado antes.

v El nuevo estado no figura en la lista en el controlWOSTART.

Controles de integración WOSTART

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Tabla 15. Componentes predefinidos de objeto de detalle de orden de trabajo paraprocesamiento de integración entrante

Componentes deintegración predefinidos Valor y descripción

Funcionalidad de clase deprocesamiento de estructurade objeto

Ninguno

Canal de publicación Ninguno

Reglas de proceso Ninguno

Integración de datos con aplicaciones externas 89

Page 96: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 15. Componentes predefinidos de objeto de detalle de orden de trabajo paraprocesamiento de integración entrante (continuación)

Componentes deintegración predefinidos Valor y descripción

Controles de integración Ninguno

Objeto de jerarquía de orden de trabajo:

La estructura de objeto MXWOHIER permite la sincronización bidireccional deinformación de órdenes de trabajo, incluidas las órdenes de trabajo de nivelinferior, y también soporta cambios de estado. El sistema envía en primer lugaruna orden de trabajo cuando alcanza el estado en el control WOSTART y luego entodas las actualizaciones posteriores. Siempre se envía el documento de orden detrabajo entero.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Tabla 16. Componentes predefinidos de objeto de jerarquía de orden de trabajo paraprocesamiento de integración saliente

Componentes deintegración predefinidos Valor y descripción

Funcionalidad de clase dedefinición de estructura deobjeto

Ninguno

Canal de publicación MXWOHierInterface - Contiene una clase de filtro deeventos, WOHierarchyEventFilter, que evita que los MBO denivel inferior se envíen cuando se están enviando por mediode un MBO de nivel superior (donde tanto padre los MBO denivel superior como los de nivel inferior son iniciados por lamisma acción de evento).

Reglas de proceso SKIPWO - Se salta el envío del documento si se cumplen lasdos condiciones siguientes:

v El documento no se ha enviado antes.

v El nuevo estado no figura en la lista en el controlWOSTART.

Controles de integración WOSTART

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Tabla 17. Componentes predefinidos de objeto de jerarquía de orden de trabajo paraprocesamiento de integración entrante

Componentes deintegración predefinidos Valor y descripción

Funcionalidad de clase deprocesamiento de estructurade objeto

MaxWOHierarchyProcess - Soporta cambios de estado yconfirma el proceso para dar soporte a la carga de variasórdenes de trabajo relacionadas en un solo mensaje.

90 Integración de datos con aplicaciones externas

Page 97: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 17. Componentes predefinidos de objeto de jerarquía de orden de trabajo paraprocesamiento de integración entrante (continuación)

Componentes deintegración predefinidos Valor y descripción

Canal de publicación MXWOHierInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Objetos de la interfaz de transaccionesLa infraestructura de integración proporciona una selección del contenido deintegración predefinido para objetos de la interfaz de transacciones, como recibos,transacciones de libro mayor, informes de tiempo de mano de obra y lecturas demedidores.

Objeto de recepciones para materiales y servicios:

La estructura de objeto de MXRECEIPT permite la sincronización bidireccional deinformación de recepción de órdenes de compra de recepciones de materiales yservicios y también y soporta cambios de estado. La estructura de objeto utiliza unobjeto no persistente para dar soporte a las recepciones de materiales(MATRECTRANS) y servicios (SERVRECTRANS).

Finalidad

En la dirección de salida, esta estructura de objeto procesa las recepciones deórdenes de compra, las transferencias (movimientos en recepciones o recepcionesde OC internas) y las devoluciones (devoluciones a proveedores después de lainspección de recepción o devoluciones a proveedores después de movimientos deaceptación y artículos desde la ubicación que realiza la inspección).

Para las recepciones que requieren inspección, el campo definido por el usuarioINSPECTED indica si la línea de recepción se ha inspeccionado en el sistemaexterno. La interfaz no procesa las transferencias de forma independiente. Cadatransferencia se asocia con una recepción.

No tiene que especificar si una recepción de entrada es una recepción de material ouna recepción de servicio. El proceso de integración utiliza POLINE para realizar ladeterminación.

Todas las cantidades, incluidas las cantidades de devolución, deben ser positivas.

Los dos tipos de registros de transferencias se pueden identificar mediante losvalores siguientes en el campo RECEIPTREFID:v Nulo: una recepción en una orden de compra internav No nulo: un movimiento en una recepción

No especifique un valor RECEIPTFREF para devoluciones. Las devoluciones seprocesan independientemente de la recepción correspondiente.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Integración de datos con aplicaciones externas 91

Page 98: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 18. Componentes predefinidos del objeto de recepciones para el proceso de integración de salida

Componentes deintegraciónpredefinidos Valor y descripción

Funcionalidad de clasede definición deestructura de objeto

MoutProcess: procesa las recepciones con un tipo de despacho de RECEIPT o RETURN. Sino se especifica un tipo de despacho, se trata como RECEIPT.

Proceso para el tipo de despacho RECEIPT y Se requiere inspección = N:

Recepción de materiales y servicios:

v Utiliza RECEIPTQUANTITY de entrada (para recepciones de materiales) oQTYTORECEIVE (para recepciones de servicios) para crear la recepción.

v Correlaciona REJECTEDQTY de entrada con el campo REJECTEDQTY de la recepción.

v Ignora las otras cantidades.

v No busca en el campo INSPECTED de entrada.

Recepciones de materiales (registros MATRECTRANS):

v Solamente envía registros de tipo RECEIPT y RETURN y registros de tipo TRANSFERque contienen un PONUM (no una transferencia de almacén). Envía solamenterecepciones nuevas, no actualizaciones a las recepciones existentes.

Recepciones de servicio (registros SERVRECTRANS):

v Envía registros de tipo RECEIPT y RETURN. Envía nuevas recepciones y actualizacionesa las recepciones existentes.

Canal de publicación MXRECEIPTInterface

Reglas de proceso Recepciones de servicios:

Envía registros cuando el estado es igual a un valor en el control SERVRECSTAT (valorpredeterminado COMP). Esto sucede bajo las condiciones siguientes:

v Se inserta un registro que no requiere inspección.

v Se actualiza un registro existente en la base de datos y el campo estado se modifica aCOMP.

Controles deintegración

El control SERVRECSTAT identifica todos los estados en los que el sistema enviará lastransacciones de recepción de servicio. Puede tener múltiples valores. De formapredeterminada, el valor es COMP.

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

92 Integración de datos con aplicaciones externas

Page 99: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 19. Componentes predefinidos del objeto de recepciones para el proceso de integración de entrada

Componentes de integraciónpredefinidos Valor y descripción

Funcionalidad de clase deprocesamiento de estructura deobjeto

MaxRCVProcess -

Proceso para el tipo de despacho RECEIPT y Se requiere inspección = Y:

Recepciones de materiales:

INSPECTED = N:

v Utiliza solamente el campo RECEIPTQUANTITY de entrada para crear larecepción; ignora los valores de cantidad aceptados y rechazados.

v Crea una recepción con STATUS = WINSP (en espera de inspección) y unacantidad derivada de RECEIPTQUANTITY.

INSPECTED = Y:

v Utiliza los campos RECEIPTQUANTITY, ACCEPTEDQTY y REJECTEDQTYde entrada para crear la recepción.

v No permite las inspecciones o aceptaciones parciales. RECEIPTQUANTITYdebe ser igual a ACCEPTEDQTY + REJECTEDQTY.

v Crea una recepción con STATUS = WASSET (si es una parte rotativa) oCOMP (todas las otras partes).

v En función de las cantidades especificadas, puede crear un máximo de trestransacciones, una RECEIPT, una TRANSFER y una RETURN.

Recepciones de servicios:

INSPECTED = N:

v Utiliza AMTTORECEIVE de entrada (si la cantidad de pedido POLINE esnulo) o QTYTORECEIVE (en los otros casos) para crear una recepción.Ignora todos los otros valores de cantidades.

v Crea una recepción con STATUS = WINSP (en espera de inspección) y unacantidad derivada de QTYTORECEIVE.

INSPECTED = Y:

v Utiliza los campos QTYTORECEIVE, ACCEPTEDQTY y REJECTEDQTYpara crear una recepción.

v No permite las inspecciones o aceptaciones parciales. QTYTORECEIVE debeser igual a ACCEPTEDQTY + REJECTEDQTY.

v Crea una transacción individual de tipo RECEIPT, con STATUS = COMP.

Proceso para el tipo de despacho RETURN:

Recepción de materiales y servicios:

v Acepta transacciones de devolución para una POLINE solamente si hahabido una recepción anterior para la misma línea. Si Se requiere inspecciónes igual a Y para POLINE, la recepción debe haber sido aprobada. De locontrario, informa acerca de un error.

v Utiliza solamente la RECEIPTQUANTITY de entrada (para las recepcionesde materiales) o QTYTORECEIVE (para las recepciones de servicios) paracrear la recepción; ignora todos los otros valores de cantidades.

v Crea una sola transacción con el tipo de despacho RETURN y la cuenta delLM de crédito como la cuenta RBNI.

Canal de publicación MXRECEIPTInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Integración de datos con aplicaciones externas 93

Page 100: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Objeto de recepción de partes rotativas y materiales:

La estructura de objeto de MXRCVROTITM permite la sincronización entrante dela información de recepción de las partes, incluidas las partes rotativas.

Finalidad

Esta estructura de objeto sólo da soporte al proceso entrante.

Esta interfaz no permite especificar un estado para la recepción; el estado siemprese supone que es COMP.

Esta interfaz varía de MXRECEIPTInterface en que sólo procesa recepciones dematerial y permite identificar activos rotativos serializados en el caso de lasrecepciones de partes rotativas.

Puede recibir partes rotativas con o sin números de activos. Si las recibe sinnúmeros de activos, debe especificar manualmente los números de activoutilizando el cuadro de diálogo Recibir partes rotativas en la aplicación Recepciónde compras.

Para las partes rotativas, el número de transacciones entrantes es uno más que elnúmero de partes rotativas. Existe una transacción para la cantidad de recepcióntotal y una transacción para cada parte rotativa asociada con la recepción. Porejemplo, una recepción de diez partes rotativas produce once transacciones.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Tabla 20. Componentes predefinidos de objetos de recepción de partes rotativas y materiales para el proceso deintegración saliente

Componentes de integraciónpredefinidos Valor y descripción

Funcionalidad de clase dedefinición de estructura de objeto

Ninguno

Canal de publicación Ninguno

Reglas de proceso Ninguno

Controles de integración Ninguno

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

94 Integración de datos con aplicaciones externas

Page 101: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 21. Componentes predefinidos de objetos de recepción de partes rotativas y materiales para el proceso deintegración entrante

Componentes de integraciónpredefinidos Valor y descripción

Funcionalidad de clase deprocesamiento de estructura deobjeto

MaxRcvRotItmMProcess - Notifica un error si la línea de orden de compra quese está procesando tiene LINETYPE = SERVICE o STDSERVICE.

El proceso es el mismo que la funcionalidad de la clase de proceso del puntode integración entrante para las recepciones de material utilizandoMXRECEIPTInterface, con el siguiente proceso adicional:

v Recepciones: si la línea de detalle es una parte rotativa y Se requiereinspección = N, o INSPECTED = Y, el proceso comprueba la información deactivos correspondiente a la parte proporcionada en la interfaz. Si lainformación está disponible, el proceso valida el número de registros deactivos para comprobar que es igual a RECEIPTQTY o ACCETPTEDQTY(según corresponda). Si es igual, invoca la funcionalidad de recepción y creael activo si sea necesario.

v Devoluciones: si la parte que se está devolviendo es una parte rotativa,ignora la información del activo.

En el sistema, la devolución de una parte de tipo rotativo no afecta a losactivos creados por la recepción original. Los registros de activos permanecensin cambiar; sólo se actualizan los balances de partes (si procede).

Canal de publicación MXRCVROTITMInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de libro mayor (LM):

La estructura de objeto de MXGLTXN permite la sincronización saliente detransacciones de LM. Esta interfaz permite la publicación de transacciones a nivelde planta en una aplicación de libro mayor general externa para garantizar lareconciliación de contabilidad.

Finalidad

Esta interfaz utiliza un MBO no persistente con datos de los siguientessubregistros:v TRANSRECSERVv TRANSRECMATv INVTRANSv TRANSFACTURAv TRANSUSMATv LABTRANSv TOOLSTRANS

Se utiliza la clase de filtro de eventos, GLEventFilter, para establecer los eventos enlos objetos persistentes aplicables de la lista.

El campo SOURECEMBO identifica la tabla de base de datos en la que se originanlas transacciones. Su valor se deriva del dominio de sinónimos GLSOURCEMBO.

Integración de datos con aplicaciones externas 95

Page 102: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Tabla 22. Componentes predefinidos de objetos de libro mayor general para el proceso de integración saliente

Componentes deintegraciónpredefinidos Valor Descripción

Funcionalidad declase dedefinición deestructura deobjeto

MoutGLProcess -Recepciones deservicios

Las recepciones de servicios incluyen las siguientes entradas:

v Entradas de contabilidad de las recepciones de servicio no distribuidas creadas por laaplicación de recepción para los servicios solicitados en las órdenes de compra(ISSUETYPE = RECEIPT, COSTINFO=1)

v Entradas de contabilidad de las recepciones de servicio distribuidas creadas por laaplicación de recepción para los servicios solicitados en las órdenes de compra(ISSUETYPE = POCOST)

v Entradas de contabilidad de los servicios de orden de compra con Recibo Requerido= N que se facturan directamente, en lugar de recibirse (ISSUETYPE = INVOICE)

v Entradas de contabilidad de los servicios que no se comparan con las órdenes decompra y se facturan directamente (ISSUETYPE = INVOICE)

v Transacciones de variación de factura registradas comparadas con las recepciones deservicio (ISSUETYPE = INVOICE)

El proceso de las recepciones de servicio (SERVRECTRANS):

v Establece SOURCEMBO en SERVRECTRANS e ISSUETYPE en el valor listado.

v Transacciones de tipo INVOICE: envía las transacciones durante la inserción.

v Transacciones de tipo POCOST y RECEIPT: si Se requiere inspección = N para laPOLINE correspondiente, envía las transacciones durante la inserción. Si Se requiereinspección = Y, envía las transacciones cuando el estado cambia a COMP.

96 Integración de datos con aplicaciones externas

Page 103: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 22. Componentes predefinidos de objetos de libro mayor general para el proceso de integraciónsaliente (continuación)

Componentes deintegraciónpredefinidos Valor Descripción

MoutGLProcess -Recepciones demateriales

Las recepciones de materiales incluyen las siguientes entradas:

v Entradas de contabilidad de las recepciones de material no distribuidas creadas porla aplicación de recepción para las partes/herramientas solicitadas en las órdenes decompra (ISSUETYPE = RECEIPT, COSTINFO=1)

v Entradas de contabilidad de las recepciones de material distribuidas creadas por laaplicación de recepción para las partes/herramientas solicitadas en las órdenes decompra (ISSUETYPE = POCOST)

v Entradas de contabilidad de las transferencias de partes entre almacenes (ISSUETYPE= TRANSFER y PONUM=NULL)

v Entradas de contabilidad de las transferencias de inspección de recepciones de laspartes entre el almacén de inspección de recepciones y el almacén de líneas de ordende compra (ISSUETYPE = TRANSFER, RECEIPTREF!=NULL y PONUM!=NULL)

v Entradas de contabilidad de las recepciones comparadas con las órdenes de comprainternas (ISSUETYPE = TRANSFER, RECEIPTREF=NULL y PONUM!=NULL)

v Entradas de contabilidad para la devolución de partes y materiales de mercaderías deinspección de recepción (ISSUETYPE = RETURN)

v Entradas de contabilidad para la devolución al distribuidor desde un almacén olíneas de orden de compra de despacho directo (ISSUETYPE = RETURN)

v Transacciones de variación de factura registradas comparadas con las recepciones dematerial (ISSUETYPE = INVOICE)

v Transacción de contabilidad para aumentar el valor de cuenta de controlINVENTORY de la parte del kit cuando se crean los kits (ISSUETYPE = KITMAKE).Las transacciones para aumentar la cuenta de control INVENTORY de cada parteconstituyente de un kit cuando se desarma un kit (ISSUETYPE = KITBREAK)

El proceso de recepciones de materiales (TRANSRECMAT):

v Establece SOURCEMBO en MATRECTRANS e ISSUETYPE en el valor listado.

v Envía transacciones de tipo INVOICE, RECEIPT, TRANSFER, RETURN, KITMAKE yKITBREAK durante la inserción.

v Para las transacciones de tipo POCOST durante la inserción si el estado es COMP (esdecir, durante la inserción si Se requiere inspección = N y cuando el estado cambia aCOMP si Se requiere inspección = Y).

MoutGLProcess -Transacciones deajuste de inventario

Las transacciones de ajuste de inventario incluyen las siguientes entradas:

v Ajustes de balance actual de inventario (ITTYPE = CURBALADJ)

v Ajustes de coste estándar/promedio de inventario (ITTYPE = STDCOSTADJ/AVGCOSTADJ)

v Diferencia de costes cuando se desarma un kit y existe una diferencia entre el valordel kit y la suma de los valores de los componentes del kit (ITTTYPE =KITCOSTVAR)

v Reconciliación de recuento físico (ITTYPE = RECBALADJ)

v Ajuste de coste capitalizado (ITTYPE = CAPCSTADJ)

v Ajuste de recepción de coste estándar (ITTYPE = STDRECADJ)

El proceso de ajuste de inventario (INVTRANS):

v Establece SOURCEMBO en INVTRANS e ITTYPE en el valor listado.

v No envía transacciones con ITTTYPE = INSERTITEM, CREATEASSET y PHYSCNT,ya que se consideran registros de auditoría en lugar de transacciones de contabilidad.

v Envía las demás transacciones durante la inserción.

Integración de datos con aplicaciones externas 97

Page 104: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 22. Componentes predefinidos de objetos de libro mayor general para el proceso de integraciónsaliente (continuación)

Componentes deintegraciónpredefinidos Valor Descripción

MoutGLProcess -Transacciones defactura

Las transacciones de factura incluyen las siguientes transacciones creadas poraprobación de factura:

v Transacción TOTAL de factura (cantidad a pagar al distribuidor de la factura,TRANSTYPE = TOTAL)

v Transacciones de impuesto de línea de factura (cantidad de impuestos de cada códigoTAX para una línea de factura, TRANSTYPE = TAX1:TAX5)

v Transacción de variación de moneda de factura (TRANSTYPE = CURVAR)

v Transacciones de variación de precio de factura (TRANSTYPE = INVCEVAR)

El proceso de transacción de factura (INVTRANS):

v Establece SOURCEMBO en INVOICETRANS y TRANSTYPE en el valor listado.

v Envía todas las transacciones cuando se crean.

MoutGLProcess -Transacciones dedespacho ydevolución demateriales

Las transacciones de despacho y devolución de materiales incluyen las siguientesentradas:

v Entradas de contabilidad para las partes despachadas desde un almacén en el sistema(ISSUETYPE = ISSUE)

v Entradas de contabilidad para las partes devueltas a un almacén (ISSUETYPE =RETURN)

El proceso de despacho y devolución de materiales (TRANSRECMAT):

v Establece SOURCEMBO en MATUSETRANS e ISSUETYPE en el valor listado.

v No envía las transacciones de despacho directo que crean las variaciones defactura/recepción de OP en MATUSETRANS, cuando se contabilizan enMATRECTRANS. Identifica este tipo de transacciones por su PONUM, de forma quela interfaz no envía todas las transacciones de MATUSETRANS que tengan unareferencia de OP.

v Envía las demás transacciones en el momento de la creación.

MoutGLProcess -Transacciones demano de obra

El proceso de transacciones de mano de obra (LABRTRANS):

v Establece SOURCEMBO en LABTRANS.

v Si no se necesita la aprobación, envía los consumos reales de mano de obra en lasórdenes de trabajo durante la inserción.

v Si se necesita la aprobación, envía la transacción una vez aprobada (cuandoGENAPPSERVRECEIPT es Y).

MoutGLProcess -Transacciones deherramientas

El proceso de transacciones de herramientas (TOOLTRANS):

v Establece SOURCEMBO en TOOLTRANS.

v Envía el uso de las herramientas en las órdenes de trabajo durante la creación deTOOLTRANS

Canal depublicación

MXGLTXNInterface

Reglas de proceso SKIPGL Omite el envío de la transacción de libro mayor general basándose en el valor delSOURCEMBO existente en el control GLSOURCE.

Controles deintegración

GLSOURCE

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

98 Integración de datos con aplicaciones externas

Page 105: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 23. Componentes predefinidos de objetos de libro mayor general para el proceso de integración entrante

Componentes de integraciónpredefinidos Valor y descripción

Funcionalidad de clase deprocesamiento de estructura deobjeto

Ninguno

Canal de publicación Ninguno

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de informe del tiempo de mano de obra:

La estructura de objeto MXEMPACT permite la publicación a nivel de planta deltiempo real notificado en el sistema para aplicaciones externas. Los consumosreales aprobados de mano de obra se envían, y todos los consumos actuales demano de obra de entrada se aceptan, independientemente de su estado. El estadode los registros existentes no se actualiza al procesar transacciones de entrada.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Tabla 24. Componentes predefinidos de objeto de informe del tiempo de mano de obra para procesamiento deintegración saliente

Componentes deintegraciónpredefinidos Valor y descripción

Funcionalidad de clasede definición deestructura de objeto

Ninguno

Canal de publicación MXEMPACTInterface

Reglas de proceso SKIPEMPACT - Se salta el envío del pago de mano de obra (LABTRANS) si no se haaprobado la transacción (GENAPPRSERVRECEIPT = 0).

Controles deintegración

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Tabla 25. Componentes predefinidos de objeto de informe del tiempo de mano de obra para procesamiento deintegración entrante

Componentes de integraciónpredefinidos Valor y descripción

Funcionalidad de clase deprocesamiento de estructura deobjeto

MaxEmpactProcess - Únicamente permite acciones Agregar. Las acciones convalor nulo se procesan como acciones Agregar. LABTRANSID no se puedepasar con ningún valor porque el programa lo genera durante la acciónAgregar.

Canal de publicación MXEMPACTInterface

Integración de datos con aplicaciones externas 99

Page 106: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 25. Componentes predefinidos de objeto de informe del tiempo de mano de obra para procesamiento deintegración entrante (continuación)

Componentes de integraciónpredefinidos Valor y descripción

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de lectura de medidor:

La estructura de objeto MXMETERDATA permite la sincronización entrante de losdatos de lectura de medidor. Esta estructura de objeto sólo da soporte al procesoentrante. La interfaz no da soporte al proceso de lecturas de medidor de tareas deorden de trabajo.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Tabla 26. Componentes predefinidos de objetos de lectura de medidor para el proceso de integración saliente

Componentes deintegraciónpredefinidos Valor y descripción

Funcionalidad de clasede definición deestructura de objeto

Ninguno

Canal de publicación Ninguno

Reglas de proceso Ninguno

Controles deintegración

Ninguno

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

100 Integración de datos con aplicaciones externas

Page 107: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 27. Componentes predefinidos de objetos de lectura de medidor para el proceso de integración entrante

Componentes de integraciónpredefinidos Valor y descripción

Funcionalidad de clase deprocesamiento de estructura deobjeto

MaxMeterDataProcess - La clase de proceso comprueba que se proporcionenlos siguientes atributos:

v ID de planta

v Activo o ubicación

v ID de medidor o punto de supervisión de condiciones

v Valor de lectura de medidor, hora y fecha de lectura, inspector

Cuando se especifica una orden de trabajo, se produce el siguiente proceso:

v Si se especifica un punto de medida, la clase de proceso identifica elmedidor de activo o ubicación correspondiente a la planta y al punto demedida, y crea una lectura de medidor para el medidor de activo oubicación.

v Si se especifica un medidor, debe especificarse el activo o la ubicación. Si seespecifican ambos, la clase de proceso supone que el medidor pertenece alactivo y procesa el medidor según corresponda. Si sólo se especifica elactivo o la ubicación, se actualiza el medidor en la entidad correspondiente.

Si no se especifica una orden de trabajo, se produce el siguiente proceso:

v Si se especifica un punto de medida, se registra la lectura del punto demedida.

v Si se especifica un medidor, debe especificarse el activo o la ubicación. Si seespecifican ambos, la clase de proceso supone que el medidor pertenece alactivo y procesa el medidor según corresponda. Si sólo se especifica elactivo o la ubicación, se actualiza el medidor en la entidad correspondiente.

Canal de publicación MXMETERInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Objetos del sistemaLos objetos del sistema son MBO que suelen utilizarse para la configuración de laaplicación o de metadatos. La actualización de datos utilizando objetos del sistemapuede requerir actividades de postprocesamiento específicas, como por ejemplo lareconfiguración de la base de datos.

Se aplican las restricciones siguientes al uso de servicios empresariales, canales depublicación y estructuras de objeto:v No puede habilitar escuchas para canales de publicación.v No puede procesar interfaces del sistema por medio de tablas de interfaz o

archivos sin formato.v Debe especificar un código de acción en interfaces de sistema entrantes.

Objeto de estructuras de objeto:

La estructura de objeto de MXINTOBJECT permite la sincronización entrante de ladefinición de estructuras de objeto, incluidos alias de columna. Las validaciones desistema que se aplican a usuarios que agregan, suprimen y modifican estructurasde objeto predefinidas se aplican a la modificación de estructuras de objetomediante el servicio de estructura de objeto Estructura de objeto.

Integración de datos con aplicaciones externas 101

Page 108: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

N/A

Canal de publicación N/A

Reglas de proceso Ninguno

Controles de integración Ninguno

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

N/A

Servicio empresarial N/A

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de servicio empresarial:

La estructura de objeto de MXENTSRV permite la sincronización entrante de ladefinición de servicios empresariales y sus correspondientes reglas de proceso yvalores de control.

Requisito previo

Antes de la creación de servicios empresariales, asegúrese de que todos loscontroles utilizados por el servicio empresarial exista.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

N/A

Canal de publicación N/A

Reglas de proceso Ninguno

Controles de integración Ninguno

102 Integración de datos con aplicaciones externas

Page 109: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

N/A

Servicio empresarial N/A

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de canal de publicación:

La estructura de objeto de MXIFACEOUT permite la sincronización entrante de ladefinición de canales de publicación y sus correspondientes reglas de proceso yvalores de control. Antes de la creación de canales de publicación, asegúrese deque todos los controles utilizados por el canal de publicación exista.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

N/A

Canal de publicación N/A

Reglas de proceso Ninguno

Controles de integración Ninguno

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

N/A

Servicio empresarial N/A

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de punto final:

La estructura de objeto de MXENDPOINT permite la sincronización entrante de ladefinición de puntos finales.

Integración de datos con aplicaciones externas 103

Page 110: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Requisito previo

Antes de la creación de puntos finales, asegúrese de que existan manejadoresutilizados por puntos finales.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

N/A

Canal de publicación N/A

Reglas de proceso Ninguno

Controles de integración Ninguno

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

N/A

Servicio empresarial N/A

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de sistema externo:

La estructura de objeto de MXEXTSYSTEM permite la sincronización entrante de ladefinición de un sistema externo, los servicios empresariales y los canales depublicación utilizados por el sistema externo y sus valores de control.

Requisito previo

Antes de la creación de sistemas externos, asegúrese de que todos los serviciosempresariales, canales de publicación, puntos finales y controles utilizados por elsistema externo existan.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

N/A

Canal de publicación N/A

Reglas de proceso Ninguno

104 Integración de datos con aplicaciones externas

Page 111: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Componentes de integración predefinidos Valor y descripción

Controles de integración Ninguno

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

N/A

Servicio empresarial N/A

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de control de integración:

La estructura de objeto de MXIFACECONTROL permite la sincronización entrantede controles de integración y sus valores predeterminados a nivel de sistema.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

N/A

Canal de publicación N/A

Reglas de proceso Ninguno

Controles de integración Ninguno

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

N/A

Servicio empresarial N/A

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de canal de invocación:

La estructura de objeto de MXIFACEINVOKE permite la sincronización entrante deuna definición de canal de invocación.

Integración de datos con aplicaciones externas 105

Page 112: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

N/A

Canal de publicación N/A

Reglas de proceso Ninguno

Controles de integración Ninguno

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

N/A

Servicio empresarial N/A

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de cola de integración:

La estructura de objeto de MXQUEUE permite la sincronización entrante dedefiniciones de colas de integración.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

N/A

Canal de publicación N/A

Reglas de proceso Ninguno

Controles de integración Ninguno

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

N/A

Servicio empresarial N/A

106 Integración de datos con aplicaciones externas

Page 113: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Componentes de integración predefinidos Valor y descripción

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de definición de mensaje:

La estructura de objeto de MXMESSAGE permite la sincronización entrante demensajes de error y de aviso del sistema.

Requisito previo

Además de los nuevos mensajes agregados mediante esta estructura de objeto, elarchivo messages.xml se debe actualizar con el texto de mensaje correspondiente.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

N/A

Canal de publicación N/A

Reglas de proceso Ninguno

Controles de integración Ninguno

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

N/A

Servicio empresarial N/A

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de configuración de MBO:

La estructura de objeto MXOBJECTCFG permite la sincronización entrante deinformación de definiciones de MBO.

Requisito previo

Utilice esta estructura de objeto con precaución.

Integración de datos con aplicaciones externas 107

Page 114: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Utilice únicamente los códigos de acción agregar, addchange o cambiar alsincronizar datos de entrada mediante esta estructura de objeto. No utilice laacción sustituir salvo que sustituya por completo los datos de MAXOBJECTCFG yMAXATTRIBUTECFG.

La acción suprimir conlleva el riesgo de suprimir registros predefinidos en lastablas de base de datos asociadas con los MBO MAXOBJECTCFG yMAXATTRIBUTECFG.

Hay una restricción de configuración entrante en las columnas CHANGED,EAUDITENABLED, EAUDITFILTER, EAUDITTBNAME, IMPORTED,STORAGEPARTITION, MAXOBJECTID, por lo que el valor de XML no seestablece en el MBO.

Una vez sincronizados los datos de entrada con esta interfaz, utilice la aplicaciónConfiguración de base de datos y seleccione la acción Aplicar cambios deconfiguración para que los cambios surtan efecto.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

N/A

Canal de publicación N/A

Reglas de proceso Ninguno

Controles de integración Ninguno

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

psdi.iface.app.configure.MaxObjcfgProcess -

Si el evento MAXOBJECTCFG está creandouna vista (MAXOBJECTCFG.VIEW=1), laclase de proceso se salta todos los MBOMAXATTRIBUTECFG asociados con elMAXOBJECTCFG al que se hace referencia.

Esta clase también retrasa la validaciónSAVE en MAXOBJECTCFG hasta que todossus atributos asociados se agregansatisfactoriamente a la base de datos.

Servicio empresarial N/A

Reglas de proceso Ninguno

Controles de integración Ninguno

108 Integración de datos con aplicaciones externas

Page 115: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Objeto de dominio:

La estructura de objeto de MXDOMAIN permite la sincronización entrante deinformación de dominios.

Finalidad

Algunos campos de la base de datos están asociados con listas de selección devalores. Estas listas de valores definidos reciben el nombre de dominios (enocasiones se hace referencia a ellos como listas de valores).

Esta estructura de objeto sincroniza definiciones de dominios ALN, numéricos, derango numérico, de tabla y cruzados.

Requisito previo

Las operaciones de actualización y supresión requieren que los sistemas externosproporcionen valores de DOMAINID válidos.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

N/A

Canal de publicación N/A

Reglas de proceso Ninguno

Controles de integración Ninguno

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

N/A

Servicio empresarial N/A

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de plantilla de comunicación:

La estructura de objeto MXCTEMPLATE permite la sincronización bidireccional deplantillas de comunicación que los usuarios pueden aprovechar para estandarizarcomunicaciones de correo electrónico y notificaciones utilizadas frecuentemente.

Integración de datos con aplicaciones externas 109

Page 116: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Finalidad

Una plantilla de comunicación es una definición de un mensaje de correo conasunto, mensaje e información del destinatario que se procesa cuandodeterminados nodos se actualizan o a lo largo de rutas de direccionamiento deflujo de trabajo especificadas entre nodos.

Esta estructura de objeto sincroniza aplicación, cambio de estado, clasepersonalizada, línea de mandatos y acciones de valor de conjunto, pero no grupode acción.

Requisito previo

Las operaciones de actualización y supresión requieren que los sistemas externosproporcionen un valor de ACTIONID válido.

Esta estructura de objeto no da soporte a la creación de grupos de acción.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

N/A

Canal de publicación MXCTEMPLATEInterface

Reglas de proceso Ninguno

Controles de integración Ninguno

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

N/A

Servicio empresarial N/A

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de definición de acción:

La estructura de objeto MXACTION permite la sincronización entrante dedefiniciones de acciones de flujo de trabajo que se pueden utilizar conescalabilidad, acuerdos de nivel de servicio (SLA) y procesos de flujo de trabajo.

110 Integración de datos con aplicaciones externas

Page 117: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Finalidad

Se entiende por acción un evento que el usuario desea que el sistema inicie cuandoencuentre registros que cumplan las condiciones definidas por un punto deescalabilidad, acuerdo de nivel de servicio o proceso de flujo de trabajo.

Esta estructura de objeto sincroniza aplicación, cambio de estado, clasepersonalizada, línea de mandatos y acciones de valor de conjunto, pero no grupode acción.

Requisito previo

Las operaciones de actualización y supresión requieren que los sistemas externosproporcionen un valor de ACTIONID válido.

Esta estructura de objeto no da soporte a la creación de grupos de acción.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

N/A

Canal de publicación N/A

Reglas de proceso Ninguno

Controles de integración Ninguno

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

N/A

Servicio empresarial N/A

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de propiedades del sistema:

La estructura de objeto de MXPROP permite la sincronización entrante de mensajesde propiedades y valores del sistema.

Integración de datos con aplicaciones externas 111

Page 118: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Finalidad

Requisito previo

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

N/A

Canal de publicación N/A

Reglas de proceso Ninguno

Controles de integración Ninguno

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

N/A

Servicio empresarial N/A

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de módulo de integración:

La estructura de objeto de MXIM permite la sincronización entrante de ladefinición de un módulo de integración, incluidas las propiedades y las relacionesde OGL.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

N/A

Canal de publicación N/A

Reglas de proceso Ninguno

Controles de integración Ninguno

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

112 Integración de datos con aplicaciones externas

Page 119: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

N/A

Servicio empresarial N/A

Reglas de proceso Ninguno

Controles de integración Ninguno

Objetos de operaciones de gestión lógica (GLO):

La estructura de objeto de MXLMO2 permite la sincronización entrante de GLOque incluyen atributos.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

N/A

Canal de publicación N/A

Reglas de proceso Ninguno

Controles de integración Ninguno

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

N/A

Servicio empresarial N/A

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de producto de gestión de operaciones (PGO):

La estructura de objeto de MXOMP permite la sincronización entrante de PGO,incluidas las relaciones con AC y configuraciones con MI y OGL.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

N/A

Integración de datos con aplicaciones externas 113

Page 120: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Componentes de integración predefinidos Valor y descripción

Canal de publicación N/A

Reglas de proceso Ninguno

Controles de integración Ninguno

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

N/A

Servicio empresarial N/A

Reglas de proceso Ninguno

Controles de integración Ninguno

Objeto de entrada de ejecución:

La estructura de objeto de MXLAUNCH permite la sincronización entrante deentradas de ejecución e información de contexto.

Procesamiento de integración saliente

La tabla siguiente muestra los valores predefinidos utilizados en el procesamientode integración saliente.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de definición deestructura de objeto

N/A

Canal de publicación N/A

Reglas de proceso Ninguno

Controles de integración Ninguno

Procesamiento de integración entrante

La tabla siguiente muestra los valores preconfigurados utilizados en elprocesamiento de integración entrante.

Componentes de integración predefinidos Valor y descripción

Funcionalidad de clase de procesamiento deestructura de objeto

N/A

Servicio empresarial N/A

Reglas de proceso Ninguno

Controles de integración Ninguno

114 Integración de datos con aplicaciones externas

Page 121: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Orden de carga de datosCuando utiliza la infraestructura de integración para cargar varios conjuntos dedatos en la base de datos de la aplicación, debe conservar las dependencias paraque los datos se carguen correctamente. Utilice la secuencia siguiente deestructuras de objeto predefinidas como guía para determinar el orden en que debecargar los datos.

Estructuras de objetosMXGLCOMPMXCOAMXVENDORMSTRMXVENDORMXPERSONMXPERUSERMXCRAFTMXLABORMXSTORELOCMXCLASSIFICATIONMXITEMMXINVENTORYMXINVBALMXINVVENDORMXSERVITEMMXPROJMXASSETMXWOMXWODETAILMXWOHIERMXINVRESMXEMPACTMXINVISSUEMXGLTXNMXTOOLITEMMXPCMXMETERDATAMXPRMXPOMXRECEIPTMXRCVROTITMMXINVOICE

Estructuras de objeto del sistemaMXINTOBJECTMXIFACECONTROLMXENTSRVMXIFACEOUTMXENDPOINT

Integración de datos con aplicaciones externas 115

Page 122: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

MXQUEUEMXEXTSYSTEMMXIFACEINVOKEMXIMMXLMO2MXOMPMXLAUNCHMXMESSAGEMXOBJECTCFGMXDOMAINMXCTEMPLATEMXACTIONMXPROP

Procesamiento de datos de integraciónPuede configurar componentes de integración de modos diferentes para satisfacersus necesidades de integración. Puede conseguir la integración con variasaplicaciones externas, y cada aplicación requiere un enfoque de integración distintoque se basa en el soporte de integración proporcionado por dicha aplicación.

Planificación para procesar los datos para la integraciónAntes de iniciar una transacción de integración, debe decidir qué componentes deintegración utilizar. También debe planificar cómo implementar estos componentesde forma que pueda conseguir una integración satisfactoria con el destino externopara su integración.

La elección de los componentes que va a utilizar y su implementación suele estardeterminada por la aplicación externa con la que se integra. Estas opcionesincluyen las consideraciones siguientes:

Tipo de datosDefina los datos, por ejemplo, órdenes de trabajo y datos personales. Unavez definidos, determine si hay estructuras de objeto predefinidas parasoportada cada conjunto de datos o si debe crear más estructuras de objeto.

DirecciónPara cada conjunto de datos, ¿en qué dirección se implementa el escenariode integración, el envío de transacciones salientes, la recepción detransacciones entrantes, o ambos? La dirección de la integración puedevariar para cada conjunto de datos.

Intercambio de mensajesEste factor depende de las prestaciones de la aplicación externa y lasopciones pueden incluir los datos de integración utilizando archivos (XMLo sin formato), llamando a servicios web y publicando XML en HTTP. Elmétodo de intercambio de datos y con qué frecuencia se realiza puedevariar para cada conjunto de datos.

PersonalizaciónCuando se intercambian los datos, ¿es necesaria la personalización en laaplicación para transformar el contenido del mensaje o aplicar las reglas denegocio de integración? Si es necesaria la personalización, ¿utiliza lasprestaciones de la infraestructura de integración como, por ejemplo, clase

116 Integración de datos con aplicaciones externas

Page 123: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

de salida Java, scripts de automatización, correlaciones XSL o reglas deproceso, o la personalización se implementa en la aplicación externa?

Dependiendo de las respuestas a estas preguntas, necesitará distintos tipos deconfiguraciones de componentes y API, por ejemplo:v Estructuras de objetosv Canales de publicación y canales de invocaciónv Servicios empresarialesv Servicios de estructura de objeto, servicios empresariales y servicios estándarv Servicios webv APIs REST y OSLCv Sistemas externosv Puntos finales

Procesamiento de datos entrantesLa infraestructura de integración permite el proceso asíncrono y síncrono demensajes de integración entrantes con los tipos de servicio siguientes; estructurasde objeto, servicios empresariales o servicios estándar.

Para el proceso asíncrono, el sistema externo establece y mantiene una conexiónhasta que el mensaje se pasa a una cola JMS. Para el proceso síncrono, el sistemaexterno establece y mantiene una conexión hasta que el proceso del mensaje secompleta.

Proceso asíncrono de mensajes entrantesDurante el proceso asíncrono de mensajes entrantes, una aplicación externa llama aun servicio empresarial y mantiene una conexión hasta que se guarda el mensajeen una cola JMS y finaliza la conexión. Si se produce un error durante la operaciónde guardar el mensaje en la cola, la aplicación externa es responsable de reprocesarel mensaje.

El proceso asíncrono es gestionado por colas JMS secuenciales o continuas. Elproceso en una cola secuencial garantiza el orden de entrega de mensajes,basándose en un orden fifo (primero que entra, primero que sale). El proceso enuna cola continua entrega los mensajes en cualquier orden.

Puede utilizar servicios empresariales para dar soporte a las transaccionessiguientes:v Importación de datos desde un archivo sin formato o un archivo XMLv Carga de datos de tablas de interfazv Recepción de un mensaje XML de una solicitud HTTP POSTv Llamada a un servicio web que está configurado para utilizar una cola JMSv Llamada a un EJBv Utilización de una conexión JMS directa

Todas estas opciones soportan el uso de un servicio empresarial, cuando el mensajede integración se pasa a una cola JMS. Cuando el mensaje está en la cola, unproceso separado que utiliza una tarea cron o un controlador por mensaje (MDB)recoge el mensaje de la cola. El mensaje se procesa después a través de la capa delservicio empresarial, la capa de estructura de objeto relacionada y se actualizan losobjetos de negocio. Puesto que los mensajes se procesan a través de una cola JMS,

Integración de datos con aplicaciones externas 117

Page 124: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

no se envía ninguna respuesta a la aplicación que llamó al servicio y la operaciónde consulta no está soportada en este modelo de proceso.

Proceso síncrono de mensajes entrantesPuede implementar la integración entrante síncrona con una estructura de objeto,un servicio empresarial o un servicio estándar. Estas transacciones requieren elestablecimiento y el mantenimiento de una conexión directa de la aplicaciónexterna a la infraestructura de integración mientras dure la transacción.

La aplicación externa mantiene la conexión con el servicio hasta que los objetos denegocio se actualizan en la base de datos Maximo o hasta que se devuelven enrespuesta a una operación de consulta. La infraestructura de integración devuelveuna respuesta a la aplicación externa que confirma si el procesamiento del mensajeha sido satisfactorio o anómalo.

Las opciones siguientes están disponibles para enviar mensajes de integraciónsíncrona a servicios:v Publicación de un mensaje XML mediante HTTPv Inicio de un servicio web que se ha configurado para omitir la cola JMSv Inicio de un EJB

La estructura de objeto y los servicios empresariales pueden utilizar cualquiera deestas opciones para dar soporte a las operaciones de creación, actualización,supresión, sincronización y consulta.

También puede acceder a estructuras de objeto de integración, servicios estándar yobjetos de negocio de aplicación utilizando la API REST o la API REST de OSLC.Conceptos relacionados:“API de REST” en la página 243La API (interfaz de programación de aplicaciones) de REST (Representational StateTransfer) proporciona una manera para que las aplicaciones externas consulten yactualicen datos de aplicación en motor de automatización de procesos de Tivoli.

Iniciación del proceso asíncrono de los datos de entradaPara iniciar el proceso de integración, el sistema externo utiliza uno de los métodossoportados para establecer una conexión. Después de validar el sistema externo yel servicio empresarial, los mensajes se colocan en la cola JMS que se haespecificado para el servicio empresarial.

El procedimiento para establecer la conexión inicial varía en función del método deintegración que se utiliza para la transacción. La tabla siguiente describe losmétodos y las conexiones disponibles que utilizan estos métodos.

Método Procedimiento de conexión

Método de envío HTTPo HTTPS

Utilice el URL siguiente:

nombre_host:puerto/meaweb/esqueue/nombresisext/nombreservempdonde:

v nombresisext es el nombre del sistema externo

v nombreservemp es el nombre del servicio empresarial

118 Integración de datos con aplicaciones externas

Page 125: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Método Procedimiento de conexión

EJB Inicie un EJB desde un cliente Java Platform, Enterprise Editionutilizando el código siguiente:

public byte{} processExternalDataAsync(byte[] extData,String serviceName, String sender)

En el cliente, especifique el nombre JNDI del Enterprise JavaBean,ejb/maximo/remote/enterpriseservice, para consultar lareferencia de Enterprise JavaBean e iniciar el método. Lasconfiguraciones siguientes son necesarias en el cliente JavaPlatform, Enterprise Edition:

v Acceso a los archivos de clase Home y Remote

v Acceso a los archivos JAR de Java Platform, Enterprise Editionpara el servidor

v El URL del servidor que aloja los Enterprise JavaBeans

v El nombre de clase de la fábrica de contexto

El código de cliente debe crear la instancia del objetoIntialContext predeterminado. El contexto se deriva del URL delproveedor y la fábrica de contexto del entorno.

La característica deimportación de datosque utiliza los archivosXML o sin formato

El usuario hace clic en Importación de datos en una aplicación.

Tarea cron deimportación de datos

La tarea cron XMLFILECONSUMER o la tarea cronFLATFILECONSUMER sondea el directorio de origen configuradopara la importación de datos.

Tablas de interfaz El sistema externo graba datos de mensajes en las tablas deinterfaz adecuadas y actualiza la tabla de colaMXIN_INTER_TRANS con información acerca de la secuenciapara procesar los registros en la tabla de interfaz.

Una tarea cron sondea en la tabla de cola MXIN_INTER_TRANSlos registros que se han de procesar.

Servicios web El sistema externo inicia un servicio empresarial que estádesplegado como un servicio web que se ha configurado para noomitir la cola JMS.

JMS directo El sistema externo pasa un mensaje XML directamente a la colaJMS desde otro sistema de colas como, por ejemplo, WebSphereMQ.

Cuando se establece una conexión, o cuando una tarea cron se ejecuta e identificaque los datos están preparados para la importación, se producen los pasossiguientes:1. La infraestructura de integración comprueba que el sistema externo y el

servicio empresarial sean válidos y estén habilitados.2. Si los mensajes están en formato de archivo sin formato, la infraestructura de

integración comprueba que la estructura del objeto admite estructuras sinformato.

3. Si falla la verificación, la infraestructura de integración notifica el error alremitente y no procesa los datos.

Integración de datos con aplicaciones externas 119

Page 126: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

4. Si la verificación se ha realizado correctamente, la infraestructura de integraciónidentifica la cola JMS entrante asignada al servicio empresarial y escribe elmensaje en la cola.

5. La infraestructura de integración actualiza la cabecera del mensaje JMS con losnombres del sistema externo y el servicio empresarial.

Si una transacción que contiene varias instancias de un registro encuentra errores,el manejo de errores varía en función del método de intercambio utilizado. Seproduce el manejo de errores siguientes, en función del tipo de intercambio:v Solo para transacciones HTTP o EJB : si una transacción contiene varias

instancias de un documento, por ejemplo, contiene 10 registros de persona, seescribe un solo mensaje en la cola JSM no 10 mensajes individuales. Si uno delos registros tiene un error de proceso, se produce una excepción de proceso demensaje total y no se confirma ninguno de los registros en la base de datos.

v Solo para las transacciones de importación de datos: si una transacción contienevarias instancias de un documento, por ejemplo, si contiene 10 registros depersona, la aplicación escribe 10 mensajes individuales en la cola JMS. Si uno delos mensajes tiene un error de proceso, se registra una transacción de error paradicho mensaje y los 9 mensajes restantes se siguen procesando en la aplicación.

Iniciación del proceso síncrono de los datos de entradaPara iniciar el proceso síncrono, el sistema externo utiliza uno de los métodossoportados para establecer una conexión. Durante el proceso de conexión, lainfraestructura de integración comprueba que el sistema externo y el servicioempresarial al que se hace referencia sean válidos y estén habilitados.

El procedimiento para establecer la conexión inicial varía, en función del servicioutilizado para la transacción. La tabla siguiente describe los métodos y lasconexiones disponibles que utilizan estos métodos.

Método Procedimiento de conexión

Método de envíoHTTP o HTTPS

v Utilice el URL siguiente para las transacciones que utilizan unservicio empresarial:

nombre_host:puerto/meaweb/es/nombre_sistema_externo/nomnombre_servicio_empresarial

Donde:

– nombresisext es el nombre del sistema externo

– nombreservemp es el nombre del servicio empresarial

v Utilice el URL siguiente para las transacciones que utilizan unservicio de estructura de objeto:

nombre_host:puerto/meaweb/os/nombre_so

Donde nombresobj es el nombre del servicio de estructura deobjeto.

v Utilice el URL siguiente para las transacciones que utilizan unservicio estándar:

nombre_host:puerto/meaweb/ss/nombre servicio de aplicación

Donde nombre del servicio de aplicación es el nombre del servicioestándar.

120 Integración de datos con aplicaciones externas

Page 127: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Método Procedimiento de conexión

EJBv Para las transacciones de servicio empresarial, inicie un EJB

desde un cliente de Java Platform, Enterprise Edition utilizandoel código siguiente:

public byte{} processExternalDataSync(byte[] extData,String serviceName, String sender)

El cliente puede utilizar el nombre JNDI del EnterpriseJavaBean, ejb/maximo/remote/servicio_empresarial, paraconsultar la referencia de Enterprise JavaBean e iniciar elmétodo. Las configuraciones siguientes son necesarias en elcliente de Java Platform, Enterprise Edition:

v Para transacciones de servicio de estructura de objeto, inicie unEJB desde un cliente de Java Platform, Enterprise Editionutilizando el código siguiente:

public byte{} processMOS(byte[] reqmosData, StringmosName)

El cliente puede utilizar el nombre JNDI del EnterpriseJavaBean, ejb/maximo/remote/servicio_mos, para consultar lareferencia de Enterprise JavaBeans e iniciar el método. Lasconfiguraciones siguientes son necesarias en el cliente de JavaPlatform, Enterprise Edition:

v Para transacciones de servicio de estructura de objeto, inicie unEJB desde un cliente de Java Platform, Enterprise Editionutilizando el código siguiente:

public byte{} action(byte[] actionData, StringmaxServiceName)

El cliente puede utilizar el nombre JNDI del EnterpriseJavaBean, ejb/maximo/remote/servicio_acción, para consultar lareferencia de Enterprise JavaBean e iniciar el método. Lasconfiguraciones siguientes son necesarias en el cliente de JavaPlatform, Enterprise Edition:

Las configuraciones siguientes son necesarias en el cliente de JavaPlatform, Enterprise Edition:

v Acceso a los archivos de clase Home y Remote

v Acceso a los archivos JAR de Java Platform, Enterprise Editionpara el servidor

v El URL del servidor que aloja los Enterprise JavaBeans

v El nombre de clase de la fábrica de contexto

El código de cliente debe crear la instancia del objeto IntialContextpredeterminado. El contexto se deriva del URL del proveedor y lafábrica de contexto del entorno.

Servicio web Utilice el URL siguiente para las transacciones que inician unservicio web:

http://nombre_host:puerto/meaweb/services/nombre servicioweb

donde nombre servicio web es el nombre de un servicio webdesplegado.

Conceptos relacionados:“API de REST” en la página 243La API (interfaz de programación de aplicaciones) de REST (Representational StateTransfer) proporciona una manera para que las aplicaciones externas consulten y

Integración de datos con aplicaciones externas 121

Page 128: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

actualicen datos de aplicación en motor de automatización de procesos de Tivoli.

Secuencias de procesoLa misma secuencia de procesamiento se aplica a los mensajes asíncronos ysíncronos que utilizan un servicio empresarial. Las secuencias de procesamientoson diferentes para los mensajes síncronos que utilizan servicios de la estructura deobjeto o estándar.

Secuencias de proceso de servicio empresarial:

Un mensaje de servicio empresarial se procesa en varias capas para consultar yactualizar datos de objeto de negocio. Puede utilizar estas capas de proceso parapersonalizar y controlar el proceso para que satisfaga los requisitos de integracióncon la aplicación externa.

Para el proceso asíncrono, los datos se pueden originar desde los métodos deintercambio siguientes:v Tablas de interfazv Publicación HTTP de un mensaje XMLv Inicio de un servicio web que se ha configurado para utilizar una cola JMSv Inicio de un EJBv Conexión JMS directav Importación de datos de un archivo sin formato o un archivo XML

Para el proceso síncrono, los datos se pueden originar desde los métodos deintercambio siguientes:v Publicación HTTP de un mensaje XML (HTTP)v Inicio de un servicio web que se ha configurado para utilizar una cola JMSv Inicio de un EJB

La misma secuencia de proceso se aplica para el proceso asíncrono y síncrono.

El proceso de los servicios empresariales se lleva a cabo en esta secuencia:1. El sistema externo llama al servicio empresarial.2. El proceso personalizado se pueden producir en varios puntos durante el

proceso de servicios empresariales. Puede ejecutar clases personalizadas Javaoscripts de automatización para manipular los datos de mensaje o puedeaplicar una correlación XSL. El proceso personalizado se produce en el ordensiguiente:a. Si se define un método de preproceso en una clase de salida de usuario,

este método se aplica en primer lugar.b. Si se especifica una clase de salida externa, se aplica este proceso.c. Si se define un método de postproceso en una clase de salida de usuario, se

aplica este método.d. Si se especifica una correspondencia XSL para el servicio empresarial, se

aplica la correspondencia para convertir el formato del servicio empresarialen un formato de estructura de objeto.

En este punto del proceso, el mensaje debe coincidir con el formato de laestructura de objeto que está asociada al servicio empresarial.

3. El proceso de estructura de objeto se produce en el orden siguiente:a. Puede ejecutar clases personalizadas Java o scripts de automatización para

manipular datos durante el proceso de estructura de objeto.

122 Integración de datos con aplicaciones externas

Page 129: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

b. Si las reglas de proceso se han configurado para la estructura de objeto,estas reglas se ejecutan a continuación.

c. Si las reglas de proceso provocan la multiplicación de datos o sitios uorganizaciones, el mensaje de estructura de objeto se duplica para los sitiosu organizaciones adicionales.

d. Se crean los objetos y se inicia el proceso de objetos.4. El proceso de objetos se produce en el orden siguiente:

a. Si se ha definido un método de preproceso en una clase de salida deusuario, se aplica este método.

b. Si se especifica una clase de salida externa, se aplica este proceso.c. Si se define un método de postproceso en una clase de salida de usuario, se

aplica este método.d. Los objetos de negocio se procesan, y los datos se guardan en la base de

datos.5. Solo para transacciones síncronas, para las operaciones Crear, Actualizar,

Suprimir y Sincronizar, el servicio empresarial proporciona una respuesta a laaplicación iniciadora que incluye la información siguiente:v Indica si el mensaje se ha procesado satisfactoriamente.v El valor de la columna de ID interno del objeto principal,

independientemente de si la columna forma parte de la clave primera delobjeto principal.

v Los valores de los campos de clave primera del objeto principal.v Los valores de cualquier campo de clave alternativa para el objeto principal,

que se ha configurado para el objeto o para la estructura de objeto.6. Sólo para las transacciones síncronas, en las operaciones Consultar, se devuelve

la estructura de objeto completa. Puede ejecutar clases personalizadas Java oscripts de automatización para manipular los datos de respuesta, o puedeaplicar una correlación XSL.

Integración síncrona con un servicio de estructura de objeto:

Se puede acceder a un servicio de estructura de objeto utilizando los métodos deinvocación HTTP Post, EJB, y de servicio web para recibir mensajes de servicio deestructura de objeto síncronos. Están soportadas las operaciones de creación,actualización, supresión, sincronización y consulta.

El proceso de integración que se basa en un servicio de estructura de objeto seproduce en la secuencia siguiente:1. El sistema externo utiliza uno de los métodos de invocación siguientes para

iniciar la comunicación con la infraestructura de integración:v Invocación de HTTPv Invocación de EJBv Invocación de servicios web

2. La infraestructura de integración recibe el mensaje entrante que identifica laestructura de objeto asociada con el mensaje

3. La infraestructura de la integración crea los objetos, basándose en la estructurade objeto y el contenido del mensaje entrante.

4. La infraestructura de integración aplica cualquier lógica predefinida a laestructura de objeto.

Integración de datos con aplicaciones externas 123

Page 130: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

5. Los objetos se procesan y los datos se confirman en la base de datos si elmensaje contiene una operación de actualización, o los datos se devuelven alsolicitante, si el mensaje contiene una operación de consulta.

6. Si se produce un error de procesamiento, se devuelve la respuesta con unmensaje de error al interlocutor del servicio.

Integración síncrona con un servicio estándar:

Se puede acceder a un servicio estándar mediante métodos de invocación HTTPPost, EJB, y de servicio web para recibir mensajes de servicio estándar síncronos.

El proceso de integración que se basa en un servicio estándar se produce en lasecuencia siguiente:1. El sistema externo utiliza uno de los métodos de invocación siguientes para

iniciar la comunicación con la infraestructura de integración:v Invocación de HTTPv Invocación de EJBv Invocación de servicios web

2. Los objetos se pasan al sistema y se aplica procesamiento del sistema estándar.

Procesamiento de datos salientesLos canales de publicación proporcionan el proceso asíncrono de mensajes salientesque no requieren una respuesta del sistema externo. Para los mensajes salientesque requieren una respuesta del sistema externo, puede utilizar un canal deinvocación para proporcionar proceso síncrono.

Integración asíncrona con un canal de publicaciónLa infraestructura de integración utiliza canales de publicación para procesarmensajes salientes asíncronos. El envío de un mensaje del canal de publicación sepuede iniciar mediante un evento de objeto o se puede utilizar la función deexportación de datos para enviar mensajes de canal de publicación bajo demanda.

Se configuran canales de publicación para una estructura de objeto y se puedehabilitar la integración basada en eventos cuando el objeto principal de laestructura de objeto se actualiza. Se produce una actualización, por ejemplo,cuando un usuario guarda un registro en una aplicación o completa una etapa deun proceso de flujo de trabajo. Cuando el objeto principal de una estructura deobjeto se actualiza, se inicia un evento en todos los canales de publicación queestán asociados a la estructura de objeto y que están configurados para escuchareventos. Los usuarios pueden utilizar la característica de exportación de datos en laaplicación de sistemas externos para iniciar mensajes de canal de publicacióncuando lo deseen.

Cuando un evento o una exportación de datos inicia un mensaje de canal depublicación, la infraestructura de integración realiza una secuencia de tareas:1. Identifica la estructura de objeto y los objetos del componente que están

asociados al canal de publicación.2. Construye la estructura de objeto para la transacción y forma un mensaje XML

que se basa en el contenido de los objetos.3. Aplica cualquier regla de proceso definida en la aplicación Canales de

publicación.

124 Integración de datos con aplicaciones externas

Page 131: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

4. Si el canal de publicación está asociado a varios sistemas externos, crea copiasde la estructura de objeto, una para cada combinación de canal de publicacióny sistema externo.

5. Si alguna clase Java de proceso personalizada, algún script de automatización oalguna correlación XSL está asociado al canal de publicación, se procesan en elorden siguiente:a. Ejecuta la clase de filtro de evento, si se proporciona alguno.b. Ejecuta el método previo al proceso en la clase de proceso de salida de

usuario, si se proporciona alguna.c. Ejecuta una clase de proceso de canal de publicación, si se proporciona

alguna.d. ,e. Ejecuta el método posterior al proceso en la clase de salida de usuario, si se

proporciona alguna.f. Aplica un mapa XSL, si se proporciona uno.

6. Escribe el mensaje XML en la cola saliente especificada para el sistema externo.7. Una tarea cron recoge el mensaje de canal de publicación y lo entrega al

sistema externo, que se basa en el punto final que se ha configurado.

Descripción general del procesamiento de canales de publicación:

La estructura de objeto configurada para un canal de publicación proporciona elcontenido del mensaje del canal. El sistema externo determina cómo y dónde seentrega el mensaje de integración. En la capa del canal de publicación hay capas deprocesamiento opcionales que dan soporte a la transformación del contenido delmensaje y a la aplicación de reglas de negocio.

Integración basada en eventos:

Un canal de publicación puede iniciar un mensaje de integración en respuesta alprocesamiento de una transacción del sistema, como la actualización de un objeto.

Puede configurar canales de publicación para escuchar eventos que se producen enel objeto primario de la estructura de objeto relacionado activando el recuadro deselección Habilitar escucha en la aplicación de canales de publicación. Cuando elobjeto principal de una estructura de objeto se actualiza, un mensaje de canal depublicación envía la información actualizada al sistema externo.

Cuando una actualización de un objeto hijo inicia una actualización en el objetoprincipal, esta información también se envía al sistema externo. Sin embargo,algunas actualizaciones de un objeto hijo no inician una actualización en el objetoprincipal y, como resultado, la información actualizada no se envía al sistemaexterno. Por ejemplo, si una estructura de objeto se ha configurado para darsoporte a un adjunto como objeto hijo, cuando el usuario añade un adjunto, no senotifica al sistema externo de este evento.

Para propagar un evento desde un objeto hijo al objeto principal de la estructurade objetos, en la aplicación de las estructuras de objetos, utilice la acciónConfiguraciones avanzadas para configurar la propagación de eventos. Cuandoconfigure una estructura de objetos para propagar eventos en objetos hijo hasta elobjeto principal, el objeto principal que envía la información actualizada al sistemaexterno.

Integración de datos con aplicaciones externas 125

Page 132: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Si configura la propagación de eventos para una estructura de objetos, debesupervisar la actividad de los mensajes con atención, puesto que la configuraciónpuede iniciar más mensajes que los que se ha diseñado el sistema externo paraprocesar. Para los objetos hijo que tienen incorporada lógica para actualizar elobjeto padre, esta configuración no tiene ningún impacto en términos dehabilitación o inhabilitación de la propagación de eventos del objeto hijo al objetopadre.

Función de exportación de datos:

El canal de publicación soporta el proceso por lotes de datos integración utilizandola característica de exportación de datos.

Puede iniciar la característica de exportación de datos ejecutando una consulta enel objeto primario de una estructura de objeto y el número de registros para enviar.Si la consulta es correcta, se inicia la exportación.

Inicie la función de exportación de datos proporcionando una cláusula SQLWHERE sobre el objeto primario de una estructura de objeto en la ventanaExportación de datos. También puede configurar el número de registros que sedeben enviar. Si la consulta es correcta, se inicia la exportación y se entregan losdatos según el punto final configurado para el canal de publicación.

Integración síncrona con un canal de invocaciónLa infraestructura de integración utiliza canales de invocación para procesarmensajes salientes síncronos que requieren una confirmación o contenido derespuesta de la aplicación externa. La exportación la inicia una clase de acción quellama al canal de invocación.

El envío de un mensaje de canal de invocación es iniciado por una clase Java deacción que se ha codificado para iniciar el canal. Por ejemplo, se utilizan canales deinvocación para llamar a una aplicación externa para validar datos, para iniciar unproceso en una aplicación externa o para recuperar datos. Un canal de invocaciónpuede ser desencadenado por un control de interfaz de usuario que se haconfigurado para llamar la clase de acción que inicia el canal.

Cuando un mensaje de canal de invocación es iniciado por una clase de acción, lainfraestructura de integración realiza una secuencia de tareas:1. Identifica la estructura de objeto que está asociada a cada canal de invocación e

identifica los objetos de componente.2. Construye la estructura de objeto para la transacción y forma un mensaje XML

que se basa en el contenido de los objetos.3. Si alguna clase Java de proceso personalizada, algún script de automatización o

alguna correlación XSL está asociado a la solicitud del canal de invocación, seprocesan en el orden siguiente:a. Ejecuta el método previo al proceso en la clase de proceso de salida de

usuario de la solicitud, si se proporciona alguna.b. Ejecuta una clase de solicitud de canal de invocación, si se proporciona una.c. Ejecuta el método posterior al proceso en la clase de salida de usuario de

solicitud, si se proporciona alguna.d. Aplica un mapa XSL, si se proporciona uno.

4. Escribe el mensaje XML en el destino especificado por el punto final.5. El manejador de punto final especifica el mecanismo de transporte para utilizar.

126 Integración de datos con aplicaciones externas

Page 133: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

6. Cuando la respuesta se recibe del punto final, si alguna clase Javapersonalizada, algún script de automatización o alguna correlación XSL estáasociado a la respuesta, se procesan en el orden siguiente:a. Ejecuta el método previo al proceso en la clase de proceso de salida de

usuario de respuesta, si se proporciona alguna.b. Ejecuta una clase de proceso de respuesta de canal de invocación, si se

proporciona alguna.c. Ejecuta el método posterior al proceso en la clase de salida de usuario de

respuesta, si se proporciona alguna.d. Aplica un mapa XSL, si se proporciona uno.

7. Se crean objetos a partir de los datos en la estructura de objeto de respuesta yse pasan al sistema donde se aplica el procesamiento estándar.

8. Si todos los objetos se crean satisfactoriamente a partir del proceso deestructura de objeto de respuesta, se confirman en la base de datos.

El contenido de la respuesta puede ser gestionado por el invocador basándose enlos requisitos de integración, por ejemplo, para actualizar datos de objeto denegocio o mostrar la respuesta a un usuario. Se proporciona una clase de acciónpredeterminada que se puede utilizar o ampliar para implementar la integraciónde un canal de invocación.

Personalización de las propiedades de metadatos en un canal de invocación:

En las clases de salida externa o las de salida de usuario del canal de invocación,puede actualizar datos adicionales como, por ejemplo, los valores de alteracióntemporal para los parámetros que se han configurado para un punto final.

Puede utilizar este tipo de personalización, por ejemplo, para derivar un parámetrode punto final como, por ejemplo, el URL, a partir de los datos de la estructura deobjeto del canal de invocación. Puede alterar temporalmente los valores de variaspropiedades de metadatos.

Valor Descripción

ENDPOINT Puede alterar temporalmente este valor parautilizar un punto final proporcionado enlugar del punto final que se ha configuradoa través del sistema externo.

ENDPOINTPROPS Este valor apunta a una correlación hash quepuede contener uno o varios parámetros depunto final con el valor de alteracióntemporal correspondiente. Si laconfiguración de punto final define que nopuede alterar temporalmente una propiedad,los valores de alteración temporal delcontexto de integración se ignorarán.

TARGETOBJECT Este valor es la estructura de objeto dedestino del canal de invocación.

SOURCEOBJECT Este valor es la estructura de objeto deorigen del canal de invocación.

Configuración del proceso de integraciónEl proceso de mensajes de integración se produce en varios puntos durante eltraslado de mensajes de integración para transacciones entrantes y salientes. Al

Integración de datos con aplicaciones externas 127

Page 134: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

configurar el proceso de integración, debe asegurarse de que los datos de origen ylos datos de destino están en estructuras de datos y formatos incompatibles.

Configuración del proceso asíncrono de mensajes entrantesmediante servicios empresarialesLos servicios empresariales utilizan el proceso asíncrono para los mensajes deentrada que no requieren una respuesta de Maximo Asset Management. Parahabilitar el proceso de servicio empresarial, puede configurar varios componentesde integración, que incluyen una estructura de objeto, un servicio empresarial, unsistema externo y una tarea cron de JMS.

Acerca de esta tarea

Un sistema externo inicia una conexión y envía un mensaje que incluye losnombres del sistema externo y del servicio empresarial. El sistema externomantiene la conexión mientras la infraestructura de integración comprueba que elservicio empresarial está habilitado para esta transacción. Las transacciones válidasse colocan en la cola JMS secuencial entrante y finaliza la conexión con el sistemaexterno. Una tarea cron sondea la cola JMS, envía el mensaje para el proceso delservicio empresarial y envía el mensaje hacia adelante para un proceso deestructura de objeto antes de que se confirme en la base de datos.

Procedimiento1. En la aplicación de estructuras de objeto, identifique una estructura de objeto

predefinida para utilizar o cree una.2. En la aplicación de servicios empresariales, identifique un servicio empresarial

predefinido para utilizar o cree uno.3. Configure el servicio empresarial para utilizar la estructura de objeto y

especifique una operación válida. La operación de consulta no es válida para elproceso asíncrono con servicios empresariales.

4. En la aplicación de sistemas externos, identifique un sistema externo parautilizar o cree uno y configúrelo para su servicio empresarial:a. Configure el sistema externo para utilizar colas JMS de entrada y habilite el

sistema externo.b. Configure el sistema externo para utilizar su servicio empresarial y habilite

el servicio.5. Opcional: Configure el origen para el mensaje de integración.

Origen de mensajes Configuraciones

Mensajes de archivos utilizandouna tarea cron

En la aplicación de configuración de la tarea cron,defina la tarea cron de importación de datos en activa.

Mensajes de una llamada deservicio web

En la aplicación de la biblioteca de servicios web, creeun servicio web que se base en su servicio empresarial.

Mensajes de tablas de interfaz En la aplicación de configuración de tarea cron, definala tarea cron de la tabla de interfaz en activa.

6. Configure una cola para recibir los mensajes de integración.

Tipo de cola Descripción

Continua En el servidor de aplicaciones, configure beanscontrolados por mensajes para consumir mensajes de lacola.

128 Integración de datos con aplicaciones externas

Page 135: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tipo de cola Descripción

Secuencial En la aplicación Configuración de tarea cron, establezcala tarea cron JMS en activa para que pueda consumirmensajes de la cola.

Configuración del proceso asíncrono de mensajes de salidamediante canales de publicaciónLos canales de publicación procesan mensajes de integración salientes que norequieren una respuesta del destino de mensaje. Para habilitar el proceso de canalde publicación, puede configurar varios componentes de integración, que incluyenuna estructura de objeto, un canal de publicación, un sistema externo y una tareacron.

Acerca de esta tarea

Una estructura de objeto proporciona el contenido del mensaje al canal depublicación. El proceso del canal de publicación transforma el mensaje y el sistemaexterno lo envía después a su cola de destino. Una tarea cron sondea la colaregularmente y entrega el mensaje a su destino. Las transacciones de canal depublicación se pueden iniciar mediante un evento como, por ejemplo, un cambioen el estado de un objeto, o iniciando una transacción de exportación de datos enla aplicación de sistemas externos.

Procedimiento1. En la aplicación de estructuras de objeto, identifique una estructura de objeto

predefinida para utilizar o cree una.2. En la aplicación de canales de publicación, identifique un canal de publicación

predefinido para utilizar o cree uno.3. Opcional: Para habilitar la integración basada en eventos, configure un escucha

para el evento:a. En la aplicación de canales de publicación, seleccione la acción Habilitar

escucha de canal de publicación. Si la escucha está habilitada, cuando seactualiza el objeto primario de la estructura de objeto, se inician lastransacciones de canal de publicación.

b. Si desea que los eventos en objetos hijo inicien transacciones de canal depublicación, seleccione la acción Configuraciones avanzadas y configure lapropagación del evento.

4. Opcional: En la aplicación de canales de publicación, revise las reglas deproceso y añada o cambie las reglas, según sea necesario. Las reglas de procesose ejecutan en el orden indicado en el campo Secuencia. Si cambia los valoresde la secuencia, las reglas se ejecutan en un orden diferente, lo cual puede tenerresultados imprevistos.

5. Opcional: Especifique los de scripts de automatización, archivos de clase Javapersonalizada, o correlaciones XSL para proporcionar lógica personalizadadurante el proceso de transformación.

6. En la aplicación Sistemas externos, añada el canal de publicación al sistemaexterno y especifique la vía de acceso de archivo a la cola JMS secuencial desalida.

7. En la aplicación de configuración de tarea cron, habilite la instancia deSEQOUT de la tarea cron JMSQSEQCONSUMER. La tarea cron entregamensajes de la cola JMS a sus destinos en el mismo orden en el que se hanrecibido los mensajes en la cola.

Integración de datos con aplicaciones externas 129

Page 136: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Personalización basada en reglasPuede utilizar reglas de proceso para cambiar el comportamiento del proceso deintegración predefinido sin escribir clases Java, scripts de automatización ocorrelaciones XSL. Puede implementar reglas de proceso solo en canales depublicación o en servicios empresariales.

Las reglas de proceso pueden acceder a los valores de campos XML y de objetos,conjuntos de objetos y controles de integración y del sistema y evaluarlos. Lasreglas de proceso también pueden cambiar los valores de campos XML y deobjetos o detener o saltarse el procesamiento de todo o parte de un mensaje.

Definiciones de reglas para objetos y registrosUna estructura de objeto consta de uno o varios registros de objeto. Cuando se creaun objeto, los campos de objeto se llenan a partir de los campos de registrocorrespondientes antes de que se aplique el procesamiento de la aplicaciónestándar.

Durante el proceso saliente, el objeto original se llena con los campos de registrode los campos correspondientes. A excepción de determinados campos deintegración genéricos, los objetos del sistema no se actualizan en los mensajessalientes.

Utilice las directrices siguientes para aplicar una regla a un registro de estructurade objeto o a un objeto:v Para el proceso saliente, puede aplicar reglas de proceso sólo a registros de

estructura de objeto.v Para el proceso de entrada, puede aplicar reglas de proceso a registros de

estructura de objeto o a objetos.– Si una regla de entrada cambia el valor del campo clave de un objeto, aplique

reglas al registro de la estructura de objeto.– Si una regla de entrada no evalúa ni manipula un objeto o un conjunto de

objetos, aplique reglas al registro de la estructura de objeto.– Si una regla de entrada evalúa o manipula un campo definido por el usuario,

aplique reglas al registro de la estructura de objeto.– Si una regla de entrada evalúa o manipula un objeto o un campo de objeto,

aplique reglas al objeto.

Aplique todas las reglas para los servicios empresariales a los objetos o a losregistros de estructura de objeto. Evite aplicar reglas tanto a objetos como aregistros de estructura de objeto. Si aplica reglas de proceso tanto a estructuras deobjeto como a objetos, el tiempo de proceso de las transacciones entrantesaumenta.

Definiciones de regla de procesoUna regla de proceso realiza una acción en un campo de un registro o un objeto, oen el propio registro u objeto. Para definir una regla de proceso, en el servicio o elcanal utilizado para la transacción, puede especificar el registro o el objeto al quese aplica la regla.

Iniciación de reglas de proceso:

Para una transacción saliente, un evento de un objeto de negocio en el objetoprimario de una estructura de objeto, inicia una regla de proceso. Para una

130 Integración de datos con aplicaciones externas

Page 137: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

transacción entrante, el evento que inicia una regla de proceso se identificamediante el valor del atributo de acción del objeto primario del mensaje XML.

Al configurar canales de publicación y servicios de negocio, puede especificar quéeventos utilizar para iniciar cada regla de proceso. Puede aplicar una regla deproceso al registro primario, a un registro de nivel inferior o a un objeto, pero elevento de que inicia la regla se debe iniciar en el objeto primario.

Puede, por ejemplo, implementar una regla de detención en el objeto PERSON queimpida a los usuarios cambiar cualquier atributo en el registro de la persona alespecificar que la regla se aplica en la actualización . Con esta configuración, losusuarios pueden crear o suprimir registros de persona pero no los puedenactualizar.

Para las transacciones salientes, puede configurar una o más de las siguientesacciones en el objeto primario en la aplicación de canales de publicación para queinicie la regla:v Insertarv Deletev Actualizar

Cuando se genera un mensaje saliente utilizando la función de exportación dedatos o una invocación programada del canal de publicidad, se ejecutan todas lasreglas de proceso, independientemente de los valores del evento.

Para transacciones entrantes, se puede configurar una o más de las siguientesacciones en el objeto primario en la aplicación de servicios de negocio para queinicien la regla:v Addv Cambiar o sustituir (equivalente de actualizar)v Delete

Puede establecer uno de estos valores como el atributo de acción del objetoprimario para la transacción entrante.

Acciones de regla de proceso:

Una regla de proceso puede actuar sobre un servicio empresarial o un canal depublicación en conjunto. Por ejemplo, una regla puede eludir un mensaje o puedemanipular el valor de un campo de datos dentro del mensaje.

Tres acciones de regla de proceso actúan sobre un mensaje de servicio o canal:detener, omitir y omitir niveles inferiores. Cuatro acciones de regla de procesotransforman el valor en un campo dentro del mensaje de servicio o canal:combinar, dividir, establecer y sustituir.

Acciones de procesamiento de mensajes:

Las acciones de procesamiento de mensajes detienen u omiten un mensaje enterode un servicio empresarial o de un canal de publicación u omiten registros enterosdel mensaje.

Integración de datos con aplicaciones externas 131

Page 138: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Acción de omisión

La acción de omisión pasa por alto un mensaje que cumple criterios especificados.Cuando se aplica una acción de omisión a un mensaje entrante, el mensaje no seprocesa y se borra de la cola entrante. Cuando una acción de omisión se aplica aun mensaje saliente, no se graba nada en la cola y el mensaje no se envía a unsistema externo. El procesamiento de la omisión no genera un error, pero el archivode registro del sistema es actualizado con la regla que causó la acción de omisión.

Una acción de omisión tiene algunas reglas predefinidas. Estas reglas buscanvalores de control de integración para garantizar que los mensajes salientes tenganun estado válido antes de ser enviados al sistema externo.

Acción de detención

La acción de detención detiene un mensaje que cumple criterios especificados. Sedeshace un mensaje saliente y se muestra un mensaje de error. Para lastransacciones entrantes, el mensaje permanece en la cola JMS entrante. Si el errorse debió a una invocación síncrona del servicio empresarial, se notifica el error alprograma de llamada.

No se proporcionan reglas predefinidas con una acción de detención. Esta opciónes un programa de utilidad para que los usuarios personalicen el comportamientode un servicio o canal.

Cuando sea posible, utilice la acción de omisión en lugar de la acción de detenciónpara los servicios empresariales entrantes. La acción de detención causa un errorde procesamiento y el mensaje permanece en la cola entrante o el iniciador recibeuna respuesta de error. Estos resultados no se producen cuando se utiliza la acciónde omisión.

Si una regla de procesamiento con una acción de detención se aplica a un canal depublicación generado por la función Exportación de datos, la acción de detenciónse trata como una acción de omisión. Si la acción de detención se evalúa comoverdadera, el mensaje se omite.

Acción de omisión de niveles inferiores

Puede aplicar la acción de omisión de niveles inferiores sólo a mensajes salientesen un canal de publicación. Aplique la regla de procesamiento en el registro uobjeto cuyos registros de nivel inferior se omitan.

Si la estructura de persona tiene el objeto de persona y los objetos de nivel inferiorde teléfono y correo electrónico, puede utilizar la acción de omisión de nivelesinferiores sobre una persona para quitar los datos de teléfono y correo electrónicodel mensaje. Utilice la acción de omisión de niveles inferiores cuando se produzcaun cambio de estado y el sistema externo no necesite la información de teléfono ycorreo electrónico adjuntas.

Acción de omisión de registro

Puede aplicar la acción de omisión de registro sólo a mensajes salientes en uncanal de publicación. La acción de omisión de registro suprime un registro o unobjeto que contiene la regla aplicada. Aplique la regla de procesamiento sobre elregistro o el objeto, y todos los registros y objetos de nivel inferior, que deseeomitir.

132 Integración de datos con aplicaciones externas

Page 139: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Si la estructura de objeto de persona tiene un objeto de persona y un objeto denivel inferior de teléfono, puede utilizar la acción de omisión de registro paraquitar un registro de teléfono específico del mensaje. Utilice la acción de omisiónde registro, por ejemplo, cuando desee enviar el número de teléfono de trabajo,pero no el número de teléfono particular de una persona. La regla de omisión deregistro necesita una condición que identifique un registro de teléfono particularpara garantizar que el registro se omita.

Acciones de transformación de campos:

Aplique la regla de transformación de campos a un registro o a un objeto quecontenga el campo que se debe transformar. Una regla de transformación decampos se puede aplicar a un solo campo o a varios campos del registroseleccionado.

Acción de establecimiento

La acción de establecimiento graba un valor en un campo de datos especificado.Cuando defina la regla, especifique los datos que se deben establecer y el origendel valor nuevo. Indique si la regla siempre graba el valor nuevo en el campo dedestino o si graba el valor nuevo sólo cuando el campo es nulo (la acciónpredeterminada). Puede utilizar esta acción para inicializar el valor en un campode datos. Si la regla siempre graba el valor nuevo en el campo de destino,cualquier valor existente en el campo se sobrescribe.

El origen puede ser uno de los valores siguientes:v Un control de integración de valorv Un valor no modificablev Un control del sistema (en la tabla de base de datos MAXVARS)v Otro campo del registro u objeto especificadov Un campo en un objeto relacionado

Acción Sustituir

La acción de sustitución sustituye un valor de un campo de datos por otro valor.Cuando defina la regla, especifique el campo de datos que desee actualizar. Elcontrol que utilice debe ser un control de referencia cruzada. Especifique el nombrede un control de referencia cruzada que contenga los valores originales y desustitución para el campo de datos.

Utilice esta acción cuando la base de datos y el sistema externo utilicenidentificadores diferentes para la misma entidad. Puede sustituir, por ejemplo, elvalor de SITEID en un canal de publicación por un valor de PLANTID externo ysustituya el valor de PLANTID externo en un servicio empresarial con el valor deSITEID.

Acción de combinación

La acción de combinación concatena valores de varios campos de origen en un solocampo de destino. Cuando defina la regla, identifique el campo de destino y loscampos de origen y la secuencia en que se deben grabar los datos de origen. Losdatos de origen pueden ser un campo de datos o un control de integración quecontenga un valor de datos. También puede especificar un control de integraciónque contenga el delimitador para separar los segmentos en el campo de destino.

Integración de datos con aplicaciones externas 133

Page 140: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Utilice esta acción en una regla de procesamiento de servicio empresarial cuando ladefinición de sistema y la definición de sistema externo de una entidad nocoincidan. Una regla de procesamiento de servicio empresarial puede combinar,por ejemplo, un ID de distribuidor y un campo de ubicación de distribuidor de unsistema externo en el campo COMPANY. Una regla de procesamiento de canal depublicación puede utilizar entonces la acción de división para separar el campocombinado en valores distintos cuando se envíen datos al sistema externo.

Los campos de origen y de destino deben estar en el mismo objeto. Esta acciónsiempre sobrescribe el valor existente en el campo de destino. Asegúrese de que loscampos de origen y de destino sean campos alfanuméricos o pueden producirseerrores de procesamiento.

Acción de división

La acción de división es lo contrario de la acción de combinación. La acción dedivisión separa el valor de un campo en varios campos. Al definir la regla,identifica un campo de origen, uno o varios campos de destino y cómo identifica elprocesador de regla segmentos del campo de origen.

Los campos pueden tener los orígenes siguientes:v Un campo del registro u objeto seleccionadov Un control de integración que contenga el delimitador que separa los segmentos

en el campo de origen.

Los campos de origen y de destino deben existir en el mismo objeto. Esta acciónsiempre sobrescribe el valor existente en los campos de destino. Asegúrese de quelos campos de origen y de destino sean campos alfanuméricos o puedenproducirse errores de procesamiento.

Si ha combinado varios campos en un mensaje entrante, divida el campocombinado en campos individuales en la dirección saliente. Hay dos modos deidentificar cómo dividir el campo. Puede especificar la longitud de cada segmentodel campo de origen o puede identificar un delimitador que separe los segmentos.

Si la longitud del campo de cada segmento de los datos de origen es constante, elprocesador de reglas divide el campo de origen de izquierda a derecha, según lalongitud del campo, la secuencia y valores que especifique. Por ejemplo, el campode destino A con una longitud de carácter de 6 contiene las posiciones 1-6 delcampo de origen. El campo de destino B con una longitud de carácter de 3contiene las posiciones 7-9 del campo de origen.

Si la longitud de los segmentos del campo de origen es variable pero el campo deorigen contiene un delimitador distinto que identifica los segmentos, utilice laopción de separador. La opción de separador identifica un control de integraciónque define el separador. El mismo separador debe delimitar todos los segmentos.El procesador de reglas analiza el campo de origen de izquierda a derecha. Elprocesador busca el delimitador, divide la serie en varios valores y mueva cadavalor al campo de destino designado.

Secuencia de procesamiento:

Las reglas de proceso se aplican secuencialmente para cada registro u objeto dentrode una estructura de objeto, empezando por el objeto principal y bajando a losobjetos de nivel inferior.

134 Integración de datos con aplicaciones externas

Page 141: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Si define varias reglas de proceso para un solo registro u objeto, puede modificarla secuencia de proceso predeterminada. Su modificación resulta especialmenteimportante si una regla depende del resultado satisfactorio de una regla anterior. Sise aplica satisfactoriamente una regla con una acción de detención u omisión, no seproduce ninguna comprobación adicional.

Condiciones y evaluacionesLas reglas de proceso se aplican condicionalmente. Se debe satisfacer cualquiercondición para que se pueda realizar el procesamiento o la acción que seespecifique en la regla.

Las condiciones pueden implicar la evaluación o la comparación de datos decampos XML, un campo de objeto, un conjunto de objetos o un control deintegración o del sistema.

Especificaciones de condiciones:

Una condición es una agrupación de una o varias evaluaciones. Se puedenespecificar varias condiciones y su secuencia se identifica mediante el número decondición.

Cada evaluación devuelve un valor de verdadero o falso. Si una evaluacióncomprueba si los valores de dos campos son iguales, por ejemplo, devuelve unvalor de verdadero si los campos son iguales y un valor de falso si no son iguales.Las condiciones también devuelven un valor de verdadero o falso. Si cadaevaluación de una condición es verdadera, la condición es verdadera. Si algunaevaluación de la condición es falsa, la condición es falsa. Si una regla de procesocontiene varias condiciones, sólo debe ser verdadera una condición para la acciónasociada con la regla de proceso.

Especificaciones de categorías de evaluación:

Antes de definir las características de una evaluación, seleccione el tipo de datosque debe evaluarse.

La tabla siguiente describe las categorías que puede utilizar en las evaluaciones.

Categoría Uso

Campo XML Evalúa un valor en un campo de registro deobjeto de integración, o compara los valoresen dos campos de registro.

Campo Objeto Evalúa el valor en un campo de objeto ocompara los valores en dos campos en losobjetos relacionados. El campo de objetopuede formar parte de la definición de laestructura de objeto. El campo de objetotambién puede formar parte de un objeto alque se accede en una relación con un objetoen la definición de la estructura de objeto.

Conjunto de objetos Comprueba la existencia de registros en unobjeto relacionado.

Control Evalúa un valor, un control de integraciónbooleano o un control de sistema.

Integración de datos con aplicaciones externas 135

Page 142: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Como las reglas de proceso de servicio empresarial se aplican antes de crear losobjetos, las reglas de proceso no pueden evaluar campos de objetos o conjuntos deobjetos. En sus evaluaciones, puede utilizar las siguientes combinaciones decategorías, direcciones de proceso (entrante o saliente) y tipos de registro (registrou objeto).

Dirección de laregla de proceso

Evaluación decampo XML

Evaluación decampo de objeto

Evaluación deconjunto deobjetos

Evaluación decontrol

Salida Disponible Disponible Disponible Disponible

Entrante(registro)

Disponible No disponible No disponible Disponible

Entrante (objeto) Disponible Disponible Disponible Disponible

Campo a evaluar:

Para las evaluaciones de campos XML y de objetos, debe especificar el campo queva a evaluar.

Para una evaluación de objeto, debe especificar el objeto y la relación para accederal campo. Si el valor del campo se deriva del objeto, que coincide con el registro,no se requiere ninguna relación.

Tipo de evaluación:

En general, las evaluaciones implican la comparación de dos valores o unacomprobación para determinar la existencia de un objeto establecido o un valornulo.

La interfaz de usuario muestra un subconjunto de tipos en función de la categoríade evaluación (campo XML, campo de objeto, conjunto de objetos o control). Latabla siguiente lista los posibles tipos de evaluaciones que puede utilizar.

Tipo de evaluación Descripción

IGUAL El valor del campo especificado es igual queel valor de un segundo campo (el campo decomparación).

NOIGUAL El valor del campo especificado no es igualque el valor de un segundo campo (elcampo de comparación).

MAYOR El valor del campo especificado es mayorque el valor de un segundo campo (elcampo de comparación).

MAYOROIGUAL El valor del campo especificado mayor oigual que el valor de un segundo campo (elcampo de comparación).

MENOS El valor del campo especificado es menorque el valor de un segundo campo (elcampo de comparación).

MENOSOIGUAL El valor del campo especificado menor oigual que el valor de un segundo campo (elcampo de comparación).

COMO El valor contiene el valor esperado.

136 Integración de datos con aplicaciones externas

Page 143: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tipo de evaluación Descripción

NOCOMO El valor no contiene el valor esperado.

ESNULL El campo especificado no contiene ningúnvalor o contiene un valor nulo.

NOESNULL El campo especificado contiene un valor.

NINGUNO Esta opción solo está disponible si el campoCuándo evaluar está configurado comoCambiado o No cambiado. Si NINGUNOestá seleccionado, no se requieren másevaluaciones.

EXISTE Existen informes en el conjunto de objetosespecificado.

NOEXISTE No existen informes en el conjunto deobjetos especificado.

Cuándo evaluar un campo:

Para las evaluaciones de campos XML y campos de objetos, la regla de procesodetermina primero si se deben evaluar los datos especificados.

El sistema evalúa los datos comprobando el campo Evaluar cuando, que puedetener los siguientes valores:

Valor Acción

CHANGED La evaluación sólo continúa si la actividadque ha generado el mensaje cambia elcampo especificado.

NOT CHANGED La evaluación sólo continúa si la actividadque ha generado el mensaje no cambia elcampo especificado.

ALWAYS La evaluación continúa tanto si el valor de laactividad que ha generado el mensaje (valorpredeterminado) cambia el campoespecificado como si no. Si especifica estaopción, no puede especificar un tipo decomparación Ninguno.

Cuando se actualiza un registro, aparece un atributo changed (changed=”1”) en elcampo correspondiente del mensaje saliente. Este atributo determina si el campocumple los criterios del campo Evaluar cuando.

Este atributo no aparece en los mensajes generados por la función Exportación dedatos. Las evaluaciones que se aplican cuando cambia un valor no proporcionaránla salida correcta en un escenario de exportación de datos.

El atributo changed no se aplica a los mensajes entrantes.

Especificación de campos de comparación:

La interfaz de usuario muestra subconjuntos en función del tipo de evaluación(campo XML, campo de objeto, conjunto de objetos o control). Si una regla deproceso utiliza uno de los primeros ocho tipos de evaluación, debe especificar elcampo (campo de comparación) con el que realiza la comparación.

Integración de datos con aplicaciones externas 137

Page 144: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

La tabla siguiente lista los tipos de campos de comparación que puede utilizar enlas comparaciones de campos. La comparación de un campo de origenalfanumérico distingue entre mayúsculas y minúsculas.

Campo Uso

Control de integración Comparar el valor del campo especificadocon los valores de una lista o control deintegración de valores. Si un control de listatiene varios valores coincidentes, laevaluación es verdadera. La evaluación soloes verdadera si el valor de campo coincidecon alguno de los valores del control delista.

Ejemplo: Validar el ESTADO de una ordende compra. El valor actual en un campoESTADO es EAPROB y los valoresaceptables posibles que cumplen lacondición se encuentran en un control delista denominado POSEND. Los valores dePOSEND son EAPROB, APROB y CERR. Siel tipo de evaluación es IGUAL, laevaluación devuelve un valor verdadero.

Valor Comparar el valor del campo especificadocon un valor predefinido. Esta opción estádisponible para condiciones definidas por elusuario.

Independientemente del valor de entornolocal del servidor de aplicaciones o la basede datos, en todos los campos de decimalesse debe utilizar un punto (.) como separadordecimal. No se da formato a los númerossituados a la izquierda del indicador. Esteformato se aplica a los datos entrantes ysalientes. Por ejemplo 1,738,593.64 dólaresdebe tener el formato siguiente: 1738593.64.

Ejemplo: Una regla de proceso compara elvalor del campo LINOC1 con el valorREPUESTO. Si el tipo de evaluación esIGUAL y los dos valores son iguales, laevaluación devuelve un valor verdadero.

MAXVAR Comparar el valor del campo especificadocon el valor de un control de sistema (unvalor en la tabla de base de datosMAXVARS).

Ejemplo: Evaluar el OWNERSYSID encualquier servicio empresarial o canal depublicación para determinar si es igual queMAXVARS.MXSYSID.

Booleano Comparar el valor en el campo especificadocon un valor booleano true o false(verdadero o falso).

138 Integración de datos con aplicaciones externas

Page 145: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Campo Uso

Campo de comparación Comparar el valor del campo especificadocon otro campo del mismo objeto.

Ejemplo: Comparar los valoresGLDEBITACCT y GLCREDITACCT en unalínea de OC o una entrada de diario paradeterminar si son iguales.

Objeto, relación y campo Comparar el valor del campo especificadocon un campo de un objeto diferente.

Ejemplo: Comparar el valor deOWNERSYSID del inventario en el sistemapara los valores de la combinaciónparte-almacén en una línea de recepción olínea de OC.

Controles de integraciónLos controles de integración permiten configurar el comportamiento de cualquierservicio empresarial o canal de publicación según las necesidades deorganizaciones y plantas individuales. Las reglas de proceso y las clases Javapueden acceder a controles de integración con fines de evaluación.

Los controles de integración se definen al nivel de sistema. Puede asignar elcontrol a uno o varios servicios empresariales y canales de publicación. Los valoresde los controles se pueden configurar al nivel del sistema externo. Dos sistemasexternos que procesen el mismo servicio empresarial pueden compartir la mismalógica de proceso, los mismos archivos de clase y las mismas reglas de proceso,pero procesar los datos de modo diferente porque utilizan valores de controldiferentes.

Niveles de control:

Todos los datos maestros y documentos se almacenan en el nivel del sistema, elnivel de organización o el nivel de sitio. Los datos de elementos se almacenan enel nivel del sistema, la información de contabilidad en el nivel de organización ylas órdenes de trabajo en el nivel de planta. Entre estos niveles existen unajerarquía implícita.

Se puede configurar un control de integración para alterar temporalmente losvalores en cualquiera de los niveles siguientes:

Valor de control Descripción

Nivel del sistema Un valor de nivel de sistema se aplica atodas las organizaciones y plantas delsistema. Si el control no se configura paralos valores de nivel de organización y nivelde planta, el proceso del sistema utiliza elvalor predeterminado del sistema. Si elcontrol se configura para los valores de nivelde organización o los valores de nivel deplanta pero no existe ninguno para unaorganización o planta específica, el procesodel sistema utiliza el valor de nivel delsistema.

Integración de datos con aplicaciones externas 139

Page 146: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Valor de control Descripción

Nivel de organización Un valor de nivel de organización se aplicaa todas las plantas del sistema dentro deuna organización. Si un control se configurapara los valores de nivel de organizaciónpero no existe ninguno para unaorganización específica, el proceso delsistema utiliza el valor de nivel del sistema.

Nivel de planta Un valor de nivel de planta se aplica a unaplanta específica dentro de una organizacióndel sistema. Si se configura un control paralos valores de nivel de planta pero no existeninguno para una planta determinada, elproceso del sistema utiliza el valor deorganización (si existe uno) o el valor denivel del sistema.

Los datos que procesan los servicios empresariales o los canales de publicación queutilizan un control con un valor de alteración temporal de organización o plantadeben estar en el nivel de organización o de planta.

Tipos de controles:

Puede crear cuatro tipos de controles de integración para satisfacer las necesidadesde su empresa.

Controles booleanos

Un control de integración booleano especifica un valor de 0 (falso) o 1 (verdadero).

Controles de lista

Un control de integración de lista contiene una lista de valores. Puede especificarvarios valores para el control y, opcionalmente, asignar un dominio del sistema alcontrol. La asignación de un dominio garantiza la validación de cualquier valorespecificado para dicho control, a cualquier nivel. Si no se asigna ningún dominio,no se produce ninguna validación de los valores especificados.

Por ejemplo, se envían órdenes de trabajo a un sistema externo sólo si el estado dela orden de trabajo es APROB (aprobado) o COMPLETO. Para determinar si se vaa enviar la orden de trabajo, el código Java o la regla de proceso puede comprobarel estado de una orden de trabajo con respecto a un control de listas que contieneestos dos valores.

Controles de valor

Un control de integración de valor contiene un único valor. Puede especificar unsolo valor para el control y, opcionalmente, asignar un dominio del sistema alcontrol.

Controles de referencia cruzada

Un control de referencia cruzada sustituye un valor por otro. En un canal depublicación, un valor del sistema se convierte a un valor de un sistema externo. Enun servicio empresarial, un valor de un sistema externo se convierte a un valor del

140 Integración de datos con aplicaciones externas

Page 147: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

sistema. Puede asignar opcionalmente un dominio del sistema a un control dereferencia cruzada. Si se especifica un dominio, cualquier valor del sistemaespecificado para el control se valida sobre dicho dominio. Si no se asigna ningúndominio, no se produce ninguna validación de los valores especificados.

Los controles de referencia cruzada deben tener una correlación de uno a uno entreel valor del sistema y el valor del sistema externo. Si dos valores del sistema estánasociados con un valor de un sistema externo o dos valores de un sistema externoestán asociados con un valor del sistema, se produce un error de procesamiento.

Si crea el control de referencia cruzada para que funcione como un control demultiplicación en un servicio empresarial, pueden existir correlaciones "de uno amuchos". Un control de multiplicación es un control de referencia cruzada quecopia, o multiplica, un mensaje entrante para varias organizaciones o plantas. Uncontrol de multiplicación tiene un valor externo y varios valores de sistema.

Los controles de multiplicación siempre son específicos del sistema externo. Elcontrol se identifica como un control de multiplicación en la ficha Servicioempresarial de la aplicación Servicios empresariales.

Por ejemplo, las plantas del sistema equivalen a unidades de negocio de unsistema externo, pero los dos sistemas utilizan valores diferentes para estasentidades. Un control de referencia cruzada puede realizar la conversión entre losdos valores. Un control de referencia cruzada en un servicio empresarial puedeconvertir el valor la unidad de negocio EX001 a la planta del sistema MX001. Enun canal de publicación, el mismo control puede convertir MX001 a EX001.

Controles de multiplicación

Un control de multiplicación puede actualizar la compañía de cada organización enla base de datos del sistema. Por ejemplo, utilice un control de multiplicación paraactualizar la compañía de cada organización en el sistema. Las actualizaciones devalores se producen cuando el sistema recibe datos de compañía utilizando unservicio empresarial.

Creación de controles nuevos:

La modificación de valores de control al nivel del sistema externo suele sersuficiente para personalizar el servicio empresarial predefinido o el procesamientodel canal de publicación. Si se implementan reglas de negocio nuevas o seimplementa un canal de publicación y un servicio empresarial nuevo, es posibleque se necesite un control nuevo.

Siga las directrices siguientes cuando cree controles nuevos:v Los nombres de los controles deben ser exclusivos.v Para utilizar los controles como componentes de una regla de proceso y

establecer un valor al nivel del sistema externo, asocie controles con un canal depublicación o un servicio empresarial.

v Cuando asocie un canal de publicación o un servicio empresarial a un sistemaexterno, todos los controles asociados se copian al nivel del sistema externo.Puede asignar valores al nivel del sistema externo.

Configuración de reglas de procesoPuede configurar reglas de proceso para una estructura de objeto en la aplicaciónCanales de publicación o en la aplicación Servicios empresariales.

Integración de datos con aplicaciones externas 141

Page 148: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Definición de evaluaciones de control de integración o de control de sistema:

Las evaluaciones de control se utilizan para comparar un valor de un campoespecífico con el valor de un control de integración. También puede utilizar unaevaluación de control para comparar el valor de un campo específico con un valorde control de sistema (un valor MAXVARS).

Acerca de esta tarea

Si evalúa un control de integración, deberá ser un control de tipo valor o booleano.

Procedimiento

1. En la aplicación Servicios empresariales o Canales de publicación, visualice elregistro de servicio o canal al que se aplica la evaluación.

2. En la ventana de tabla Subregistros de estructura de objeto, seleccione laestructura de objeto a la que se aplica la evaluación.

3. Lleve a cabo una de estas acciones:v Para un servicio empresarial, pulse en Agregar/Modificar condiciones en la

ficha Reglas de proceso de estructura de objeto o en la ficha Reglas deproceso de objetos.

v Para un canal de publicación, pulse en Agregar/Modificar condiciones en laventana de tabla Reglas de proceso para subregistro.

4. En la ventana de tabla Condiciones, pulse en Fila nueva.5. En el campo Condiciones, especifique un valor. El valor de condición

determina el orden en el cual la infraestructura de integración evalúa lascondiciones.

6. Para comparar el valor de control con un valor de campo, seleccione uno de losbotones de radio siguientes y especifique valores en los camposcorrespondientes.v Control de integración

v MAXVAR

7. Especifique valores en los campos siguientes:

Opción Descripción

Tipo de evaluación Define el tipo de evaluación que se realizaen el campo XML.

Valor El valor que se utiliza en la evaluación decontrol.

8. Pulse Aceptar.

Definición de evaluaciones de campos de objetos:

Puede utiliza una evaluación de campo de objeto para evaluar el valor de uncampo en cualquier objeto que se haya incluido en la definición de una estructurade objeto. También puede evaluar otros objetos de negocios a los que se puedaacceder utilizando una cláusula WHERE.

Acerca de esta tarea

Independientemente del valor de entorno local del servidor de aplicaciones o labase de datos, en todos los campos de decimales se debe utilizar un punto (.) como

142 Integración de datos con aplicaciones externas

Page 149: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

separador decimal. Los números situados a la izquierda del indicador no seformatean. Este formato se aplica a los datos entrantes y salientes. Por ejemplo,$1,738,593.64 debe ser 1738593.64.

Puede utilizar una evaluación de campo de objeto para realizar las evaluacionessiguientes:v Comprobar si el campo es o no es nulov Comparar el valor del campo de objeto con el valor de un control de integración

o un control del sistemav Comparar el valor del campo de objeto con un valor predefinido

Si los datos no satisfacen la comparación, la evaluación devuelve un resultado defalso. Si los datos satisfacen la comparación, la evaluación devuelve un resultadode verdadero.

Procedimiento

1. En la aplicación Canales de publicación, visualice el registro de canal al que seaplica la evaluación.

2. En la ventana de tabla Subregistros de estructura de objeto, seleccione laestructura de objeto a la que se aplica la evaluación.

3. En la ventana de tabla Reglas de proceso para subregistro, pulse enAgregar/Modificar condiciones.

4. En la ventana de tabla Condiciones, pulse en Fila nueva.5. En el campo Condiciones, especifique un valor. El valor de condición

determina el orden en el cual la infraestructura de integración evalúa lascondiciones.

6. En la ficha Campo de objeto, pulse en Fila nueva.7. Especifique valores en los campos siguientes:

Opción Descripción

Objeto El objeto de negocios que contiene el campoque se evalúa.

Relación de objeto La relación entre el objeto de negociosdefinido y el objeto de negocios de la regla.

Campo El campo de objeto de negocios que seevalúa.

Tipo de evaluación El tipo de evaluación que se realiza en elcampo del objeto de negocios.

Evaluar cuando Con qué frecuencia se realiza la evaluación.

Especifique un valor de objeto de negocios sólo si no está en el objeto denegocios en el cual se ha creado la regla.

8. Para comparar el valor del campo de objeto de negocios con otro valor,seleccione uno de los botones de selección siguientes y especifique valores enel campo correspondiente.v Control de integración

v Valor

v MAXVAR

9. Pulse Aceptar.10. Pulse en Guardar canal de publicación.

Integración de datos con aplicaciones externas 143

Page 150: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Definición de evaluaciones de conjuntos de objetos:

Una evaluación de conjunto de objetos le permite determinar si existen registros enuna relación entre dos objetos de negocios. Si la relación devuelve un conjunto deobjetos de negocios, la evaluación devuelve un resultado verdadero.

Procedimiento

1. En la aplicación Canales de publicación, visualice el registro de canal al que seaplica la evaluación.

2. En la ventana de tabla Subregistros de estructura de objeto, seleccione laestructura de objeto a la que se aplica la evaluación.

3. En la ventana de tabla Reglas de proceso para subregistro, pulse enAgregar/Modificar condiciones.

4. En la ventana de tabla Condiciones, pulse en Fila nueva.5. En el campo Condiciones, especifique un valor. El valor de condición

determina el orden en el cual la infraestructura de integración evalúa lascondiciones.

6. En la ficha Conjunto de objetos, pulse en Fila nueva.7. Especifique valores en los campos siguientes:

Opción Descripción

Objeto El objeto de negocios que contiene el campoque se evalúa.

Relación de objeto La relación entre el objeto de negociosdefinido y el objeto de negocios de la regla.

Tipo de evaluación El tipo de evaluación que se realiza en elcampo del objeto de negocios.

8. Pulse Aceptar.9. Pulse en Guardar canal de publicación.

Definición de evaluaciones de campos XML:

Puede utilizar una evaluación de campo XML para evaluar un valor en unsubregistro de estructura de objeto. Cuando utilice una evaluación de campo XML,puede comprobar si un campo es nulo y comparar valores en un campo de objetode negocios con un control de integración, un valor de sistema o un valorpredefinido.

Procedimiento

1. En la aplicación Servicios empresariales o Canales de publicación, visualice elregistro de servicio o canal al que se aplica la evaluación.

2. En la ventana de tabla Subregistros de estructura de objeto, seleccione laestructura de objeto a la que se aplica la evaluación.

3. Lleve a cabo una de estas acciones:v Para un servicio empresarial, pulse en Agregar/Modificar condiciones en la

ficha Reglas de proceso de estructura de objeto o en la ficha Reglas deproceso de objetos.

v Para un canal de publicación, pulse en Agregar/Modificar condiciones en laventana de tabla Reglas de proceso para subregistro.

4. En la ventana de tabla Condiciones, pulse en Fila nueva.

144 Integración de datos con aplicaciones externas

Page 151: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

5. Opcional: En el campo Condiciones, especifique un valor. El valor de condicióndetermina el orden en el cual la infraestructura de integración evalúa lascondiciones.

6. En la ficha Campo XML, pulse en Fila nueva.7. Especifique valores en los campos siguientes:

Opción Descripción

Campo El campo XML que se evalúa.

Tipo de evaluación El tipo de evaluación que se realiza en elcampo XML.

Evaluar cuando Con qué frecuencia se realiza laevaluación.

8. Para comparar el valor del campo XML con otro valor, seleccione uno de losbotones de selección siguientes y especifique valores en el campocorrespondiente.v Control de integración

v Valor

v MAXVAR

v Campo de comparación

9. Pulse Aceptar.

Definición de las reglas de proceso:

Puede definir una regla de proceso para realizar el proceso de serviciosempresariales personalizados y el canal de publicación. Cuando utilice una reglade proceso, puede realizar el proceso de entrada y salida personalizado sin utilizaruna clase Java.

Antes de empezar

Antes de crear una regla de proceso, debe tener en cuenta la definición de:v Si una regla de servicio empresarial o canal de publicación evalúa un campo

XML o un campo de objeto empresarial.v El subregistro específico u objeto empresarial en el que se va a definir la regla.v Las acciones que desencadenan la regla.

Procedimiento

1. En la aplicación Servicios empresariales o Canales de publicación, visualice elregistro de servicio o canal al que se aplica la regla.

2. En la ventana de tabla Subregistros de estructura de objeto, seleccione elsubregistro de estructura de objeto al que se aplica la regla.

3. Para un servicio empresarial, realice una de las acciones siguientes:v En la ficha Reglas de proceso de estructura de objeto, pulse Fila nueva para

definir una regla de proceso de entrada en una estructura de objeto.v En la ficha Reglas de proceso de objeto, pulse Fila nueva para definir una

regla de proceso de entrada en un objeto empresarial.4. Para un canal de publicación, pulse Fila nueva en la ficha Reglas de proceso

para subregistro para definir una regla de proceso de salida en un objetoempresarial.

5. En el campo Regla, escriba un identificador de regla.

Integración de datos con aplicaciones externas 145

Page 152: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

6. En el campo Acción, escriba un valor.7. Para cambiar el orden en el que la aplicación aplica las reglas de proceso de un

objeto, cambie el valor en el campo Secuencia. La infraestructura de integraciónaplica las reglas secuencialmente comenzando por el objeto de nivel principal.

8. Realice una o más de las siguientes acciones.v Seleccione o desmarque la casilla de verificación Aplicar al insertar objeto

principal.v Seleccione o desmarque la casilla de verificación Aplicar al actualizar objeto

principal.v Seleccione o desmarque la casilla de verificación Aplicar al suprimir objeto

principal.

Los valores anotados determinan si la infraestructura de integración se aplica ala regla de proceso cuando una fila se inserta, actualiza o suprime en el objetoempresarial principal de la estructura de objeto.

9. Pulse Guardar servicio empresarial o Guardar canal de publicación.

Habilitación de reglas de proceso:

Debe habilitar una regla de proceso para poderla aplicar a objetos de servicioempresarial o de canal de publicación. Una regla de proceso habilitada indica queestá lista para llevar a cabo procesos personalizados de entrada y salida.

Acerca de esta tarea

Si inhabilita una regla de proceso predefinida, se pueden producir errores deproceso de infraestructura de integración.

Procedimiento

1. En la aplicación Servicios empresariales o Canal de publicación, visualice elservicio o el canal con la regla de proceso que desea habilitar.

2. En la ventana de tabla Subregistros de estructura de objeto, seleccione el objetoal que se aplica la regla.

3. Especifique si desea habilitar o inhabilitar la regla de proceso.

Opción Habilitado

Habilitado Seleccionado

Inhabilitado Sin seleccionar

Para el servicio empresarial, puede habilitar o inhabilitar la regla de proceso enlas fichas Reglas de proceso de estructura de objeto o Reglas de proceso deobjetos. Para el canal de publicación, puede habilitar o inhabilitar la regla deproceso en la ficha Reglas de proceso para subregistro.

4. Pulse en Guardar servicio empresarial o Guardar canal de publicación.

Adición de controles:

Los controles de integración se utilizan para configurar el comportamiento decualquier servicio empresarial o canal de publicación según las necesidades deorganizaciones y plantas individuales. Los tipos de control incluyen el controlbooleano, controles de referencia cruzada, control de lista y controles de valores.

146 Integración de datos con aplicaciones externas

Page 153: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Adición de controles booleanos:

Puede agregar un control de tipo booleano cuando necesite un control deintegración que especifique un valor de verdadero o falso. Un servicio empresarialo un canal de publicación puede utilizar este control booleano en sus evaluacionesde reglas de procesamiento. El valor de verdadero o falso que asigna al controldetermina si un servicio empresarial o un canal de publicación aplican una reglade proceso en una transacción.

Procedimiento

1. En la aplicación Servicios empresariales, en el menú Seleccionar acción,seleccione Crear controles de integración.

2. Pulse en Agregar control nuevo > Agregar nuevo control booleano.3. En el campo Control de integración, especifique el identificador para el control

booleano.4. Especifique si desea que el control booleano tenga un valor predeterminado de

verdadero o falso.

Opción Valor predeterminado Verdadero

Valor verdadero Seleccionado

Valor falso Sin seleccionar

5. Pulse en Aceptar para cerrar el cuadro de diálogo Control booleano.6. Pulse en Aceptar para cerrar el cuadro de diálogo Crear controles de

integración.

Ejemplo

Puede utilizar un control booleano para indicar si los servicios empresariales o loscanales de publicación reciben o envían transacciones de orden de compra. Puedeestablecer una acción de regla de proceso en un servicio empresarial o canal depublicación para saltarse una transacción. Si el valor predeterminado que asigna alcontrol booleano es verdadero y la evaluación de regla de proceso es verdadera, elservicio empresarial o canal de publicación reciben y envían actualizaciones detransacciones de orden de compra.

Qué hacer a continuación

Puede asociar un control de integración con un servicio empresarial o un canal depublicación en la aplicación Servicios empresariales o Canales de publicación. Estasasociaciones ponen los controles de integración a disposición del procesamiento demensajes entrante y salientes. También puede asociar un control de integración aun sistema externo en la aplicación Sistemas externos. El valor definido en elcontrol al nivel externo sobrescribe el valor de control definido en el servicioempresarial o el nivel de canal de publicación.

Adición de controles de referencia cruzada:

Puede agregar un control tipo referencia cruzada cuando necesite un control deintegración que sustituya un valor por otro. Puede sustituir un valor en losmensajes entrantes o salientes y en varias organizaciones o plantas. Un control dereferencia cruzada puede realizar la conversión entre un valor del sistema degestión de activos y un valor del sistema externo.

Integración de datos con aplicaciones externas 147

Page 154: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Acerca de esta tarea

Un canal de publicación utiliza un control de referencia cruzada para convertir unvalor de sistema de gestión de activos saliente a un valor de sistema externo. Unservicio empresarial utiliza un control de referencia cruzada para convertir unvalor de sistema externo entrante a un valor de sistema de gestión de activos. Siutiliza sinónimos, especifique el valor externo como valor de control, no el valorinterno de la aplicación. Debe utilizar un punto (.) como marcador de posicióndecimal al introducir decimales como valor de control. Los números situados a laizquierda del indicador no se convierten. Por ejemplo, $1,738,593.64 debe ser1738593.64.

Procedimiento

1. En la aplicación de servicios empresariales o canales de publicación, seleccionela acción Crear controles de integración.

2. Pulse en Agregar control nuevo > Agregar nuevo control XRef.3. Especifique valores en los campos siguientes:

Opción Descripción

Control de integración El identificador del control de valor.

Dominio El dominio que se utiliza para comprobarlos valores especificados para el control deintegración.

4. En la ventana de tabla Valores, pulse en Fila nueva.5. Especifique valores en los campos siguientes:

Opción Descripción

Valor predeterminado El valor que se convierte a un valor desistema externo o a partir de un valor desistema externo.

Valor externo predeterminado El valor externo que se convierte en elvalor predeterminado o a partir del valorpredeterminado.

6. Pulse en Aceptar para cerrar el cuadro de diálogo Control de referenciacruzada.

7. Pulse en Aceptar para cerrar el cuadro de diálogo Crear controles deintegración.

Ejemplo

Las plantas del sistema de gestión de activos corresponden a unidadesempresariales del sistema externo, aunque dos sistemas externos distintos utilizanvalores diferentes para estas entidades. Un control de referencia cruzada puederealizar la conversión entre los dos valores que no coinciden y el valor del sistemade gestión de activos.

Un control de referencia cruzada en un servicio empresarial puede convertir elvalor de planta del sistema externo EX001 en un valor de planta del sistema degestión de activos MX001.

148 Integración de datos con aplicaciones externas

Page 155: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Qué hacer a continuación

Puede asociar un control de integración con un servicio empresarial o un canal depublicación en la aplicación Servicios empresariales o Canales de publicación. Estasasociaciones ponen los controles de integración a disposición del procesamiento demensajes entrante y salientes. También puede asociar un control de integración aun sistema externo en la aplicación Sistemas externos. El valor definido en elcontrol al nivel externo sobrescribe el valor de control definido en el servicioempresarial o el nivel de canal de publicación.

Adición de controles de lista:

Puede crear un control de integración de tipo de lista cuando necesite un controlque contenga una lista de valores. Un servicio empresarial o un canal depublicación puede utilizar este control de lista en sus evaluaciones de reglas deprocesamiento. La regla se puede saltar el procesamiento de la transacción cuandoel valor del campo de datos no coincide con ninguno de los valores de control delista definidos.

Acerca de esta tarea

Debe utilizar un punto (.) como marcador de posición decimal al introducirdecimales como valor de control. Los números situados a la izquierda delindicador no se convierten. Por ejemplo, $1,738,593.64 debe ser 1738593.64.

Procedimiento

1. En la aplicación Servicios empresariales, en el menú Seleccionar acción,seleccione Crear controles de integración.

2. Pulse en Agregar control nuevo > Agregar nuevo control de lista.3. Especifique valores en los campos siguientes:

Opción Descripción

Control de integración El identificador del control de valor.

Dominio El dominio que se utiliza para comprobarlos valores especificados para el control deintegración.

4. En la ventana de tabla Valores, pulse en Fila nueva.5. En el campo Valor predeterminado, especifique un valor para la evaluación.6. Pulse en Aceptar para cerrar el cuadro de diálogo Control de lista.7. Pulse en Aceptar para cerrar el cuadro de diálogo Crear controles de

integración.

Ejemplo

Las órdenes de trabajo se envían a un sistema externo sólo si el estado de la ordende trabajo es APROB (aprobado) o COMPLETO. La regla de proceso puede comprobar elestado de una orden de trabajo sobre un control de lista que contiene estos dosvalores de estado. Si el estado de una orden de trabajo no coincide con los dosvalores de control de lista, la transacción de orden de trabajo no se envía al sistemaexterno.

Integración de datos con aplicaciones externas 149

Page 156: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Qué hacer a continuación

Puede asociar un control de integración con un servicio empresarial o un canal depublicación en la aplicación Servicios empresariales o Canales de publicación. Estasasociaciones ponen los controles de integración a disposición del procesamiento demensajes entrante y salientes. También puede asociar un control de integración aun sistema externo en la aplicación Sistemas externos. El valor definido en elcontrol al nivel externo sobrescribe el valor de control definido en el servicioempresarial o el nivel de canal de publicación.

Adición de controles de valor:

Puede crear un control de integración de tipo de valor cuando necesite un controlque contenga un único valor. Un servicio empresarial o un canal de publicaciónpuede utilizar este control de valor en sus evaluaciones de reglas deprocesamiento. La regla se puede saltar el procesamiento de la transacción cuandoel valor del campo de datos no coincide con el valor de control definido.

Acerca de esta tarea

Puede proporcionar un valor de control predeterminado y asignar un dominio alcontrol para asegurarse de que se validan todos los valores entrados para dichocontrol.

Procedimiento

1. En el menú Seleccionar acción de la aplicación Servicios empresariales oCanales de publicación, seleccione Crear controles de integración.

2. Pulse en Agregar control nuevo > Agregar nuevo control de valor.3. Especifique valores en los campos siguientes:

Opción Descripción

Control de integración El identificador del control de valor.

Dominio El dominio que se utiliza para comprobarlos valores especificados para el control deintegración.

Valor predeterminado El valor predeterminado del control deintegración.

4. Pulse en Aceptar para cerrar el cuadro de diálogo Control de valor.5. Pulse en Aceptar para cerrar el cuadro de diálogo Crear controles de

integración.

Ejemplo

El sistema de gestión de activos sólo recibe las órdenes de compra si el valor deltipo de empresa es EX. Para determinar si la orden de compra se ha recibido, laregla de procesamiento puede comprobar el valor del tipo de empresacomparándolo con el valor definido en el control. Si el valor de empresa EX nocoincide con el valor contenido en el control la transacción de orden de compra nose envía al sistema de gestión de activos.

150 Integración de datos con aplicaciones externas

Page 157: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Qué hacer a continuación

Puede asociar un control de integración con un servicio empresarial o un canal depublicación en la aplicación Servicios empresariales o Canales de publicación. Estasasociaciones ponen los controles de integración a disposición del procesamiento demensajes entrante y salientes. También puede establecer un control de integraciónen un sistema externo en la aplicación Sistemas externos. El valor definido en elcontrol al nivel del sistema externo sobrescribe el valor de control definido en elservicio empresarial o el nivel de canal de publicación.

Asociación de controles de integración con servicios empresariales o canales depublicación:

Puede asociar controles de integración con un servicio empresarial o un canal depublicación para que el control esté disponible para el proceso de mensajesentrantes y salientes. Un servicio empresarial o un canal de publicación puedetener una asociación con uno o varios controles de integración.

Acerca de esta tarea

Cuando asocia un control de integración con un servicio empresarial o un canal depublicación, puede alterar temporalmente los valores predefinidos de los controlesque se establecen a nivel de canal o servicio. Puede definir controles de integraciónglobalmente y configurar los controles para cada sistema externo, conforme a losrequisitos de plantas y organizaciones individuales.

Procedimiento

1. En la aplicación Servicios empresariales o Canales de publicación, visualice elservicio o el canal con el que desea asociar un control de integración.

2. Seleccione la acción Asociar controles de integración.3. Lleve a cabo una de estas acciones:

Opción Descripción

Seleccionar controles de integraciónindividualmente

1. Pulse Fila nueva.

2. En el campo Control de integración,especifique un valor de control.

Seleccionar varios controles deintegración

1. Pulse Seleccionar controles.

2. Seleccione los controles adecuados.

3. Pulse Aceptar.

4. Pulse Aceptar para cerrar el cuadro de diálogo Asociar controles de integración.

Gestión de datos en campos de subregistro:

Como parte de una integración, puede trabajar con los valores en un solo campode datos de origen para establecer el valor, combinar el valor, dividir el valor osustituir el valor.

Establecimiento de valores de campo de subregistro:

Puede asignar un valor a un campo de datos especificado para sobrescribir el valorexistente en el campo de datos. Puede indicar si un valor siempre se asigna o sisólo se asigna cuando el campo de datos de destino es nulo.

Integración de datos con aplicaciones externas 151

Page 158: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Antes de empezar

Para poder establecer valores de campo de subregistro, primero debe crear unaregla de procesamiento que contenga una acción de establecimiento.

Procedimiento

1. En la aplicación Servicios empresariales o Canales de publicación, visualice elregistro de servicio o canal al que se aplica la acción de establecer un campo desubregistro.

2. En la ficha Servicio empresarial o Canal de publicación, seleccione la regla deproceso a la que se aplica la acción de establecer un campo de subregistro.

3. Lleve a cabo una de estas acciones:v Para un servicio empresarial, pulse en Campos de subregistro en la ficha

Reglas de proceso de estructura de objeto o en la ficha Reglas de proceso deobjetos.

v Para un canal de publicación, pulse en Campos de subregistro en la ventanade tabla Reglas de proceso para subregistro.

4. Pulse Fila nueva.5. En el campo Campo, escriba el nombre del campo de datos de destino. Este

valor define el campo que desea sustituir.6. Especifique si un valor siempre se asigna o si sólo se asigna cuando el campo

de datos de destino es nulo.

Opción Reemplazar cuando sea nulo

Asignar cuando el campo de datos seanulo

Seleccionado

Asignar siempre Sin seleccionar

7. Para especificar el campo de origen, seleccione uno de los botones de selecciónsiguientes y especifique valores en los campos correspondientes:v Control de integración

v MAXVAR

v Campo

v Objeto

8. Pulse Aceptar.

Combinación de valores de campos de subregistro:

Puede combinar los valores de dos o más controles de integración o campos dedatos de origen en un único campo de destino. Puede combinar los valores cuandono hay coincidencia entre un valor del sistema de gestión de activos y el valor delsistema externo. Por ejemplo, una clave de sistema externo de dos partes puedecorrelacionarse con una clave de parte única en el sistema de gestión de activos.

Antes de empezar

Para poder combinar valores de campo de subregistro, primero debe crear unaregla de proceso que contenga una acción de combinación.

152 Integración de datos con aplicaciones externas

Page 159: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Acerca de esta tarea

Los campos de origen y de destino deben estar en el mismo objeto. Esta acciónsiempre sobrescribe el valor existente en el campo de destino. Asegúrese de que loscampos de origen y de destino son alfanuméricos, de lo contrario, se puedenproducir errores de proceso.

Procedimiento

1. En la aplicación Servicios empresariales o Canales de publicación, visualice elregistro de servicio o canal al que se aplica la acción de combinación de uncampo de subregistro.

2. En la ficha Servicio empresarial o Canal de publicación, seleccione la regla deproceso a la que se aplica la acción de combinación de un campo desubregistro.

3. Lleve a cabo una de estas acciones:v Para un servicio empresarial, pulse en Campos de subregistro en la ficha

Reglas de proceso de estructura de objeto o en la ficha Reglas de proceso deobjetos.

v Para un canal de publicación, pulse en Campos de subregistro en la ventanade tabla Reglas de proceso para subregistro.

4. En la ventana de tabla Campos de subregistro objetivo, lleve a cabo uno deestas acciones:

Opción Descripción

Seleccione campos de destinoindividualmente

1. Pulse Fila nueva.

2. En el campo Campo, especifique uncampo de datos de destino.

3. En el campo Control de integración deseparador, especifique un valordelimitador que separe los segmentos delcampo de destino.

Seleccione varios campos de destino a lavez

1. Pulse en Seleccionar campo.

2. Seleccione los campos adecuados.

3. Pulse Aceptar.

4. En el campo Control de integración deseparador, especifique un valordelimitador que separe los segmentos delcampo de destino.

5. En la ventana de tabla Campos de subregistro fuente para destino, lleve a cabouno de estas acciones:

Integración de datos con aplicaciones externas 153

Page 160: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Opción Descripción

Seleccione campos de origenindividualmente

1. Pulse Fila nueva.

2. Seleccione uno de los siguientes botonesde radio y especifique valores en loscampos adecuados:

v Campo

v Control de integración

3. Especifique un valor en el campoSecuencia para definir el orden en que laaplicación mueve segmentos del campode origen a los campos de destino.

Seleccione varios campos de origen a la vez 1. Pulse en Seleccionar campo.

2. Seleccione los campos adecuados.

3. Pulse Aceptar.

4. Especifique un valor en el campoSecuencia para definir el orden en que laaplicación mueve segmentos del campode origen a los campos de destino.

6. Pulse Aceptar.

División de valores de campos de subregistro:

Puede dividir el valor de un único campo de datos de origen en varios campos dedestino. Puede dividir los valores cuando no hay coincidencia entre un valor delsistema de gestión de activos y el valor del sistema externo. Por ejemplo, una clavedel sistema de gestión de activos de una parte se puede correlacionar con unaclave de dos partes en el sistema externo.

Antes de empezar

Para poder dividir valores de campo de subregistro, primero debe crear una reglade proceso que contenga una acción de división.

Procedimiento

1. En la aplicación Servicios empresariales o Canales de publicación, visualice elregistro de servicio o canal al que se aplica la acción de división de un campode subregistro.

2. En la ficha Servicio empresarial o Canal de publicación, seleccione la regla deproceso a la que se aplica la acción de división de un campo de subregistro.

3. Lleve a cabo una de estas acciones:v Para un servicio empresarial, pulse en Campos de subregistro en la ficha

Reglas de proceso de estructura de objeto o en la ficha Reglas de proceso deobjetos.

v Para un canal de publicación, pulse en Campos de subregistro en la ventanade tabla Reglas de proceso para subregistro.

4. En la ventana de tabla Campos de subregistro objetivo, lleve a cabo uno deestas acciones:

154 Integración de datos con aplicaciones externas

Page 161: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Opción Descripción

Seleccione campos de destinoindividualmente

1. Pulse Fila nueva.

2. En el campo Campo, especifique uncampo de datos de destino.

3. En el campo Control de integración deseparador, especifique un valordelimitador que separe los segmentosdel campo de destino.

Seleccione varios campos de destino a lavez

1. Pulse en Seleccionar campo.

2. Seleccione los campos adecuados.

3. Pulse Aceptar.

4. En el campo Control de integración deseparador, especifique un valordelimitador que separe los segmentosdel campo de destino.

5. En la ventana de tabla Campos de subregistro objetivo para fuente, lleve a cabouno de estas acciones:

Opción Descripción

Seleccione campos de origenindividualmente

1. Pulse Fila nueva.

2. En el campo Campo, escriba el nombredel campo de destino que recibe elprimer o el siguiente segmento de losdatos de origen.

3. Si no especificó ningún valor en elcampo Control de integración delseparador, especifique un número en elcampo Longitud de campo.

4. Especifique un valor en el campoSecuencia para definir el orden en quela aplicación mueve segmentos delcampo de origen a los campos dedestino.

Seleccione varios campos de origen a lavez

1. Pulse en Seleccionar campo.

2. Seleccione los campos adecuados.

3. Pulse Aceptar.

4. Si no especificó ningún valor en elcampo Control de integración delseparador, especifique un número en elcampo Longitud de campo.

5. Especifique un valor en el campoSecuencia para definir el orden en quela aplicación mueve segmentos delcampo de origen a los campos dedestino.

6. Pulse Aceptar.

Sustitución de valores de campos de subregistro:

Puede sustituir un valor de un campo de datos por otro valor. Puede sustituir unvalor cuando el sistema externo y el sistema de gestión de activos tienen

Integración de datos con aplicaciones externas 155

Page 162: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

identificadores distintos para la misma entidad. Por ejemplo, un identificador deplanta de un sistema externo se puede convertir en un identificador de planta delsistema de gestión de activos.

Antes de empezar

Para poder sustituir valores de campo de subregistro, primero debe crear una reglade proceso que contenga una acción Sustituir. También debe crear un control dereferencia cruzada que contenga los valores originales y nuevos para el campo dedatos.

Procedimiento

1. En la aplicación Servicios empresariales o Canales de publicación, visualice elregistro de servicio o canal al que se aplica la acción sustituir un campo desubregistro.

2. En la ficha Servicio empresarial o Canal de publicación, seleccione la regla deproceso a la que se aplica la acción sustituir un campo de subregistro.

3. Lleve a cabo una de estas acciones:v Para un servicio empresarial, pulse en Campos de subregistro en la ficha

Reglas de proceso de estructura de objeto o en la ficha Reglas de proceso deobjetos.

v Para un canal de publicación, pulse en Campos de subregistro en la ventanade tabla Reglas de proceso para subregistro.

4. Pulse Fila nueva.5. En el campo Campo, escriba el nombre del campo de datos de destino. Este

valor define el campo que desea sustituir.El campo de destino debe encontrarseen el objeto de subregistro que se muestra en la parte superior del cuadro dediálogo.

6. En el campo Control de integración, especifique el nombre del control tiporeferencia cruzada que contenga los valores originales y nuevos para el campode destino.

7. Pulse Aceptar.

Personalización basada en códigoLa infraestructura de integración proporciona marcadores en flujos de transaccióndonde puede insertar su propio código para proporcionar lógica que personaliza elproceso de transacciones. Puede insertar clases o scripts de automatización Java enpuntos seleccionados del proceso de estructuras de objeto, canales de publicación,servicios empresariales y canales de invocación. También puede utilizar mapas XSLpara transformar mensajes.

Al crear o actualizar un archivo de clase Java, debe volver a crear y desplegar elarchivo EAR de la aplicación antes de que los componentes de la integraciónpuedan utilizarlo. Puede escribir un script en uno de los lenguajes de scriptsoportados en la aplicación de scripts de automatización, o bien puede importar unscript que ha creado externamente y puede activalo para su uso inmediato.Cuando cree o actualice un mapa XSL, puede almacenarlo en el archivo EAR de laaplicación o en un directorio del sistema de archivos.

Cuando el código de personalizado se ha configurado para ser utilizado, lainfraestructura de integración llama al código en el punto apropiado durante elproceso de transacción.

156 Integración de datos con aplicaciones externas

Page 163: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Puede descargar clases Java o archivos XSL de ejemplo desde IBM Tivoli OpenProcess Automation Library (OPAL).

Personalización de clases y métodos JavaPuede ampliar el proceso estándar de mensajes salientes y entrantes utilizandoclases Java. Existen varios marcadores en los flujos de proceso de mensajes dondepuede insertar código Java personalizado para afectar al contenido del mensaje, suproceso o a ambos.

Clases de salida externas:

Las clases de salida externas proporcionan una clase base, ExternalExit, que puedeampliar para personalizar el proceso del canal de publicación, el servicioempresarial y el canal de invocación.

Para mensajes salientes, la entrada en la clase de salida externa es el elementoirData del mensaje XML. La salida del proceso de la clase es el elemento erDatadel mensaje XML que se entrega al destino. Para mensajes entrantes, la entrada enla clase de salida externa es el elemento erData del mensaje entrante. La salida esel elemento irData que se entrega a la estructura de objeto relacionada para suproceso en Maximo Asset Management.

Para utilizar una clase de salida externa para la personalización, especifique suclase Java en el campo Campo de proceso en la aplicación de canales depublicación o en la aplicación de canales de invocación.

Un enfoque alternativo para la personalización de la integración es implementaruna clase de salida de usuario. Si está instalado un adaptador para Oracle o SAP,se proporciona las clases de proceso predefinidas y las personalizaciones se debenrealizar mediante el uso de la clase de salida de usuario. Cuando no existen clasesde proceso predefinidas, puede elegir si desea implementar código personalizadoen la clase de salida externa o la clase de salida de usuario.

Clases de salida de usuario:

Para las transacciones entrantes y salientes en un canal de publicación, un servicioempresarial, o un canal de invocación, una clase de salida de usuario puede tenerun método previo al procesador y un método posterior al procesador. Para lastransacciones entrantes, la clase de salida de usuario puede tener un métodoadicional que procesa objetos de negocio justo antes de que se confirmen en la basede datos.

Método de procesamiento previo para transacciones salientes:

La entrada para el primer punto de salida de usuario saliente es el XML generadopor la estructura de objeto. Si tiene una clase de proceso de adaptador ERP, puedeutilizar cualquier método previo al proceso o posterior para implementar su lógicapersonalizada, en función de su requisito.

Mediante el uso del punto de salida previo al proceso, puede cambiar datos en elmensaje que posteriormente alteran la lógica del proceso de una clase de procesocuando se implementa.

La personalización de mensajes salientes se puede realizar en el método depreprocesador utilizando el método siguiente:public StructureData setUserValueOut(StructureData irData)

Integración de datos con aplicaciones externas 157

Page 164: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Este método puede realizar el proceso siguiente:v Validar datos.v Cambiar datos del sistema cambiando el registro de IR que se envía al sistema

externo.v Impedir que el mensaje se envíe desde Maximo Asset Management emitiendo

una excepción del sistema. Todo el mensaje se retrotrae. Si el mensaje ha sidoiniciado por un evento, también se retrotrae todo el mensaje, incluido cualquiercambio que realice en una aplicación.

v Impedir que se envíe el mensaje al sistema externo emitiendo una excepciónSKIP_TRANSACTION.

v Registrar la transacción.

Método de procesamiento posterior para transacciones saliente:

En el método de proceso posterior de la salida de usuario, el elemento IR de laestructura de objeto y el elemento ER de la salida XML de la clase de proceso estánambos disponibles para el proceso.

Utilice el método siguiente para personalizar los mensajes salientes.public StructureData setUserValueOut(StructureData irData, StructureData erData)

El método puede realizar los procesos siguientes:v Validar datos.v Cambiar datos cambiando el registro ER que se ha enviado al sistema externo.v Correlacionar datos adicionales del elemento irData con el elemento erData.v Impedir que la transacción se envíe desde Maximo Asset Management emitiendo

una excepción del sistema. Todo el mensaje se retrotrae. Si el mensaje ha sidoiniciado por un evento, también se retrotrae todo el mensaje, incluido cualquiercambio que realice en una aplicación.

v Impedir que se envíe el mensaje al sistema externo emitiendo una excepciónSKIP_TRANSACTION.

v Registrar la transacción.

Identifique la clase de salida de usuario del canal de publicación en la aplicaciónde canales de publicación.

Método de procesamiento previo para transacciones entrantes:

En el método de procesamiento previo para transacciones entrantes, la entrada esel mensaje XML que se entrega desde el sistema externo. Si es necesario, puedecambiar datos en el mensaje para afectar a la lógica de proceso en la clase deproceso.

La personalización de la transacción entrante se puede realizar en la primera salidamediante el uso del método siguiente:public StructureData setUserValueIn(StructureData erData)

Este método puede realizar el proceso siguiente:v Validar datos.v Cambiar datos externos cambiando el registro ER antes de que se correlacione

con el registro IR y se guarde en el sistema.

158 Integración de datos con aplicaciones externas

Page 165: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

v Detener el procesamiento adicional de la transacción emitiendo una excepción.Para los mensajes basados en cola, la transacción permanece en la cola para quese vuelva procesar. Para los mensajes que no están basados en cola, los mensajesse devuelven al cliente que ha iniciado el servicio empresarial.

v Impida que el mensaje se procese en Maximo Asset Management lanzando unaexcepción SKIP_TRANSACTION. En este caso, el mensaje no se guarda en elsistema. Para los mensajes que están basados en cola, el mensaje se elimina de lacola.

v Registrar la transacción.

Método de procesamiento posterior para transacciones entrantes:

En el método de procesamiento posterior para transacciones entrantes, ambosregistros, IR y ER, están disponibles para el proceso.

La personalización de la transacción entrante se puede realizar en el flujo posterioral proceso utilizando el método siguiente:public StructureData setUserValueIn(StructureData irData, StructureData erData)

El método puede realizar los procesos siguientes:v Validar datos.v Cambiar datos externos cambiando el registro de IR que se debe guardar en el

sistema.v Correlacionar datos adicionales del registro de ER al registro de IR.v Detener el procesamiento adicional de la transacción emitiendo una excepción.

Para los mensajes que se basan en cola, la transacción permanece en la cola paravolver a procesarse. Para los mensajes que no están basados en cola, losmensajes se devuelven al cliente que ha iniciado el servicio empresarial.

v Impedir que el mensaje se procese en Maximo Asset Management emitiendo unaexcepción skip_transaction. En este caso, el mensaje no se guarda en el sistema.Para los mensajes que están basados en cola, el mensaje se elimina de la cola.

v Registrar la transacción.

Identifique la clase de salida de usuario del servicio empresarial en la aplicación deservicios empresariales.

Procesamiento de objetos de negocios en transacciones entrantes:

La clase de salida de usuario de un servicio empresarial tiene un método adicional,setUserMboIn, que permite el proceso personalizado en el punto en que los objetosde negocio se han creado a partir del XML de estructura de objeto, pero todavía nose han guardado en la base de datos.

Se llama a esta salida de usuario después del proceso del sistema y se puedeejecutar en los objetos que se han creado mediante el método siguiente:public void setUserMboIn(MboRemote mbo)

El parámetro de objeto es una referencia a un objeto primario de la estructura deobjeto.

Se llama a este método una sola vez para el objeto primario. Para una transacciónXML con varios nombres, se llama a la salida de objeto una vez para cada nombre.

El método puede realizar los procesos siguientes:

Integración de datos con aplicaciones externas 159

Page 166: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

v Validar datos.v Impedir que la transacción se guarde en el sistema emitiendo una excepción del

sistema. Para mensajes basados en cola, la transacción permanece en la cola y sereintenta.

v Registrar la transacción.

Puede identificar la clase de salida de usuario en la aplicación de serviciosempresariales.

Clases de filtro de eventos:

Para las transacciones asíncronas salientes que utilizan canales de publicación,puede ejecutar una clase Java personalizada o un script de automatizaciónutilizando una clase de filtro de eventos. El proceso para una clase de filtro deeventos se produce antes de la serialización de datos en la capa de la estructura deobjetos para un mensaje saliente. La clase de filtro de eventos puede insertar lógicaque afecte a la creación de un mensaje de integración en este punto del proceso.

Un uso común de la clase de filtro de eventos es incluir lógica que elimina camposu objetos no deseados de un mensaje para reducir la cantidad de datos en elproceso de serialización. Otro uso común de la clase es alterar temporalmente lalógica de recursividad predeterminada que impide que un evento de unaintegración entrante envíe un mensaje de integración saliente. Alterartemporalmente el comportamiento predeterminado en este escenario puedepermitir que se inicie un mensaje saliente desde un evento desencadenado por unmensaje entrante.

Clases de salida de manejador:

Se proporcionan varios métodos predefinidos, o manejadores, de forma que puedeenviar datos a un sistema externo, incluyendo HTTP, una llamada de enterpriseJava bean y tablas de interfaz. Algunos de estos métodos tienen marcadores desalida de usuario que están disponibles para la personalización.

Clase de salida de usuario de procesamiento de enterprise bean:

Puede utilizar un marcador de salida para la personalización de clase cuando unenterprise bean envía transacciones a un sistema externa. Esta clase de salida esopcional y se llama a ella antes de llamar al enterprise bean.

La implementación de esta clase Java debe resolver la firma del método delenterprise bean que ha iniciado este manejador y los parámetros que requiere elmétodo. Si no se especifica ningún valor para esta propiedad, el sistema aplica unasalida predeterminada denominada DefaultEJBExit. Esta salida predeterminadaintenta resolver la firma de método del enterprise bean y sus parámetros.

Esta clase debe implementar la interfaz psdi.iface.router.EJBExit y los métodossiguientes:v El método getClassParams() devuelve la firma del método en la forma de una

matriz de clases Java:public Class[] getClassParams()

v El método getObjectParams devuelve una matriz de los parámetros de losenterprise beans como una matriz de objetos Java:public Object[] getObjectParams(byte[] data, String interfaceName, StringdestinationName)

160 Integración de datos con aplicaciones externas

Page 167: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

v Después de la invocación correcta del enterprise bean, se llama al métodoresponseOk() con un objeto como respuesta a la invocación:public void responseOk(Object response)throws MXException

v Si se encuentra un error durante la invocación del enterprise bean, se llama almétodo responseError() con la excepción originaria como parámetro:public void responseError(Exception e)throws MXException

Puede especificar el nombre completo de la clase Java en la propiedad EJBEXIT delpunto final que implementa el manejador del enterprise bean.

Clase de salida de usuario de procesamiento de HTTP:

Cuando se envían transacciones salientes a un sistema externo utilizando HTTP, sepuede utilizar un marcador de salida HTTP para la personalización. Esta clase desalida es opcional y se llama a ella como parte de la respuesta de la llamada HTTP.

La clase de salida de proceso HTTP se ejecuta cuando se devuelve una respuesta aHTTP Post desde un sistema externo. En la implementación predeterminada de laclase psdi.iface.router.DefaultHTTPExit, el código de respuesta que se recibe delsistema externo se compara con un rango de códigos de respuesta. El rango que esutilizado por la implementación predeterminada está entre 200 - 299. Si el códigoestá fuera de dicho rango, la transacción no se ha entregado al sistema externo y seemite una excepción.

Con algunos sistemas externos, la respuesta de una llamada HTTP se interpretapara ver si el sistema externo ha aceptado el mensaje. La lógica de interpretaciónse puede implementar en la clase de salida HTTP.

Si el mensaje del canal de publicación no se acepta, el código debe emitir unaexcepción. El mensaje de la cola saliente se marca como un error y no se eliminade la cola. Si el mensaje se acepta, el mensaje se elimina de la cola saliente. Si elmensaje del canal de invocación falla, la excepción se devuelve al invocador delcanal y el invocador maneja la excepción de acuerdo con los requisitos de diseño.

La clase de salida de procesamiento HTTP debe implementar la interfazpsdi.iface.router.HTTPExit e implementar el método siguiente:

public void processResponseData(int responseCode, String responseMsg,byte[] msgBodyData)

Si es necesario, esta clase puede interpretar el código de respuesta y emitir unaexcepción. La clase puede realizar las acciones siguientes:v Comprobar el código de respuesta de la publicación HTTP.v Si el código de respuesta está en el rango de error, la excepción se registra en el

nivel ERROR y se lanza una excepción del sistema.v Si el código de respuesta es válido, la transacción se registra al nivel de

DEPURACIÓN.

Debe especificar el nombre completo de la clase Java en la propiedad HTTPEXIT delpunto final que implementa la cabecera HTTP.

Integración de datos con aplicaciones externas 161

Page 168: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Clase de salida de usuario de procesamiento de JMS:

Cuando se envían transacciones del sistema a un sistema externo mediante JMS, sepuede utilziar un marcado de salida para la personalización. Esta clase de salida esopcional y se llama a ella antes de llamar al JMS.

Esta clase debe implementar la clase psdi.iface.router.JMSExit y el métodosiguiente:

public Map getMessageProperties(Map metaData, (byte[] data, MaporigProps)throws MXException

Este método puede realizar los procesos siguientes:v Cambiar las propiedades del mensaje JMSv Dividir los datos en múltiples propiedades, para que coincida con el mensaje

JMS

Puede especificar el nombre completo de la clase Java en la propiedad JMSEXITdel punto final que implementa el manejador JMS.

Clase de salida de usuario de procesamiento de servicio web:

Puede utilizar un marcador de salida para la personalización al enviartransacciones del sistema a un sistema externo utilizando un servicio web. Estaclase de salida es opcional y se llama antes de que se inicie el servicio web.

Esta clase debe implementar la interfaz psdi.iface.router.WSExit y los métodossiguientes:

Método getServiceName()El método getServiceName() devuelve el nombre de servicio del servicioweb para iniciar:

public String getServiceName(Map metaData, String endpointURL,String serviceName, String interfaceName, String targetNameSpace)throws MXException

Método getEndpointURL()El método getEndpointURL() devuelve el URL de punto final del servicioweb para iniciar:

public String getEndpointURL(Map metaData, String endpointURL,String serviceName, String interfaceName, String targetNameSpace)throws MXException

Método responseOk()Se llama al método responseOk() tras una invocación correcta del servicioweb externo.

public void responseOk(org.w3c.dom.Document response) throwsMXException

Método responseError()Si se encuentra un error durante la invocación del servicio web, se llama almétodo responseError() con la excepción de origen como parámetro:

public void responseError(Exception e) throws MXException

162 Integración de datos con aplicaciones externas

Page 169: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Método getOneWayWsInfo()El método getOneWayWsInfo() devuelve un valor booleano que especifica siel servicio web para iniciar es unidireccional:

public boolean getOneWayWsInfo(Map metaData, String endpointURL,String serviceName, String interfaceName, String targetNameSpace,boolean oneWayWs) throws MXException

Método getSoapAction()El método getSoapAction() devuelve la cabecera HTTP SOAPAction parautilizar para iniciar el servicio web:

public String getSoapAction(Map metaData, String endpointURL, StringserviceName, String interfaceName, String targetNameSpace, StringsoapAction) throws MXException

Debe especificar el nombre completo de la clase Java en la propiedad WSEXIT delpunto final que implementa el manejador del servicio web.

La clase psdi.iface.router.DefaultWSExit es una implementación predeterminadade la interfaz WSExit. Esta clase altera temporalmente el método getEndpointURL()para concatenar el nombre del servicio al final del URL de punto final para formarel nuevo URL de punto final.

Personalización con scripts de automatizaciónPuede utilizar scripts de automatización en lugar de clases Java para ampliar lasclases de proceso Java principales para componentes de integración predefinidos.Puede utilizar scripts de automatización para aplicar lógica personalizada endiversos puntos durante el proceso de estructuras de objetos, canales depublicación, servicios empresariales y canales de invocación.

Defina scripts de automatización para la integración utilizando la aplicación descripts de automatización. La definición de un script para la integración identificacon qué componente de integración está asociado el script y en qué punto del flujodel proceso se ejecuta el script. Para probar scripts, puede establecer el nivel deregistro en depuración, activar el script y utilizar la característica de importación oexportación de datos para iniciar una transacción de integración.

Creación de scripts de automatización para la integración:

Un script de automatización pueden personalizar el proceso de mensajes deintegración para transacciones entrantes y salientes. Debe asociar un script deautomatización con un componente de integración y configurar cuando insertarloen el proceso de integración.

Procedimiento

1. En la aplicación Scripts de automatización, seleccione la acción Crear > Scriptpara la integración.

2. Especifique un componente de integración para asociar con el script deautomatización y, después, especificar el punto de inserción para el script.

3. Opcional: Active el recuadro de selección Activar si desea que el script se activeinmediatamente.

4. Opcional: Especifique el nivel de registro que de aplicarse cuando se ejecute elscript. A efectos de prueba, si define el nivel de registro en depuración, losregistros contienen información útil que le ayuda a resolver cualquierproblema.

Integración de datos con aplicaciones externas 163

Page 170: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

5. Especifique el lenguaje del script.6. Especifique el script directamente en el campo Código origen o navegue hasta

la ubicación donde está almacenado el script y pulse Importar.7. Pulse Crear.

Personalización del proceso de estructuras de objeto con scripts deautomatización:

El proceso de la estructura de objeto soporta el uso simultáneo de scripts deautomatización y clases Java para la personalización. Los scripts de automatizacióndefinidos para una estructura de objeto pueden afectar al proceso de datos que seprocesan directamente a través de la estructura de objeto, como por ejemplo la APIde REST, o a través de otros componentes de integración, como por ejemplocanales de publicación y servicios empresariales.

Puntos de inserción para la personalización del proceso de estructuras de objeto con scriptsde automatización:

Puede insertar proceso basado en script en las clases de definición Java y clases deproceso Java que transforman estructuras de objeto durante el proceso deintegración.

La ilustración muestra la inserción de scripts de automatización durante el procesoentrante y saliente de estructuras de objeto.

Componentes deintegración

- Canales de publicación- Servicios empresariales- Canales de invocación- API de REST y OSLC- Servicios web- Interacciones deservicios web

- Importación y exportaciónde aplicaciones

- Gestor de migraciones

Orígenes y destinosde integración

- Archivos (p. e.,hojas de cálculo)

- Aplicaciones Maximo- Sistemas externos

Maximo Asset Management

Proceso de salida

Proceso de entrada

Maximo Integration Framework

Ob

jeto

s d

e n

eg

ocio

Estructuras de objetos

Proceso de salida

Clase dedefinición

Java

Script deautomatiz.

Proceso de entrada

Clase deproceso

Java

Script deautomatiz.

El proceso de estructura de objeto saliente implementa una clase de definición Javaque permite la inserción de proceso personalizado durante la serialización de datosde objeto de negocio en un mensaje XML. También puede implementar un script

164 Integración de datos con aplicaciones externas

Page 171: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

de automatización para personalizar el proceso de la estructura de objeto. Lainfraestructura de integración soporta la personalización de una estructura deobjeto para que sea una clase Java, un script de automatización o ambossimultáneamente.

El proceso de estructura de objeto entrante implementa una clase de proceso Javaque permite la inserción del proceso personalizado de datos del mensaje XMLentrante antes de que se correlacionen con los datos de objeto de negocio. Ademásde la clase de proceso Java, puede implementar un script de automatización parapersonalizar el proceso en la estructura de objeto.

Proceso de salida de estructuras de objetos:

El proceso de estructuras de objeto de salida realiza la serialización de datos deobjetos de negocio (mbo) en un mensaje XML. Durante este proceso, un script deautomatización puede insertar lógica de proceso personalizada para cambiar elcomportamiento de proceso predeterminado de la estructura de objeto. El script sepuede utilizar en lugar de la clase de definición Java o se puede utilizar con ella.

En la serialización se utilizan funciones como skipMbo(ctx). En el nombre de lafunción, ctx es el objeto de la función preparada por la infraestructura deintegración y comunica datos entre la infraestructura de la integración y el scriptde automatización. Un script de automatización puede afectar al proceso de losdatos y comunicar los cambios a la infraestructura de integración.

La serialización incluye las funciones siguientes, que los scripts de automatizaciónpueden utilizar para insertar lógica personalizada en el proceso de los datos:

skipMbo(ctx)Filtra datos de objeto del mensaje XML. Las API están disponibles parafiltrar datos del mensaje XML, seguir procesando los datos que desea en elmensaje XML y completar el proceso de la estructura del objeto una vezfiltrados los datos. Por ejemplo, si la estructura del objeto estáconstruyendo un mensaje XML para una orden de compra, un script deautomatización puede insertar lógica que filtra los datos de la línea de laorden de compra donde el tipo de línea es para líneas de servicio.

skipCols(ctx)Filtra una columna o varias columnas de la estructura de objeto. Porejemplo, si la estructura del objeto está construyendo un mensaje XMLpara un activo, un script de automatización puede insertar una lógica quefiltra una serie de columnas que no son necesarias para el sistema querecibirá el mensaje XML.

overrideValues(ctx)Establece el valor de un campo de estructura de objeto en el mensaje XML.Por ejemplo, si la estructura del objeto está construyendo un mensaje XMLpara un activo, un script de automatización PUEDE insertar una lógica quepuede filtrar una serie de columnas que no son necesarias para el sistemaque recibirá el mensaje XML que se ha creado.

Funciones para el proceso saliente de estructuras de objetos:

Las funciones skipMBO(c), skipCols(ctx) y overrideValues(ctx) se utilizan en losscripts de automatización para el proceso saliente de estructuras de objetos. Cadafunción tiene sus propias API, que están disponibles para procesar los datos de laestructura de objeto. Todos los scripts de ejemplo están escritos en Jython.

Integración de datos con aplicaciones externas 165

Page 172: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Omitir el proceso de objetos de negocio utilizando la función skipMbo(ctx):

La función skipMbo(ctx) filtra datos del mensaje XML que se crea durante elproceso de serialización. La función skipMbo(ctx) puede filtrar un objeto denegocio Maximo, seguir procesando el mensaje una vez omitido un objeto denegocio o terminar el proceso del mensaje en el punto de ejecución.

API ctx.skipMbo()

La API ctx.skipMbo() filtra el proceso de cualquier objeto de negocio Maximo en elmensaje XML.

Por ejemplo, el script siguiente se ejecuta en la API ctx.skipMbo() y filtra todas laslíneas de orden de compra y sus datos de coste de orden de compra relacionadospara la línea de la orden de compra 1234.def skipMbo(ctx):if ctx.getMboName()=='POLINE' and ctx.getMbo().getString("itemnum")=="1234":ctx.skipMbo()

Si utiliza la API ctx.skipMbo() en el objeto raíz o primario de la estructura deobjeto, cualquier objeto de negocio que cumpla los criterios de la sentencia IF sefiltrará del mensaje XML.

API ctx.process()

La API ctx.process() sigue procesando líneas que no se filtran mediante la APIctx.skipMbo(), por ejemplo:def skipMbo(ctx):if ctx.getMboName()=='POLINE' and ctx.getMbo().getString("itemnum")=="1234":ctx.skipMbo()elsectx.process()

La ejecución de la API ctx.process() en una fila de datos permite la serialización dedatos. Si la clase de definición Java omite dicha fila de datos, la API ctx.process()altera temporalmente la clase de definición Java y permite la serialización de datos.

API ctx.complete()

Cuando se invoca la API ctx.complete(), el proceso saliente de la estructura deobjeto se detienen para la instancia actual del objeto de negocio, para las instanciasde los objetos de negocio hijo y para las instancias de sus objetos de negocio delmismo nivel.

Por ejemplo, el objeto PO consta de los objetos hijo POLINE y POTERM. El objetoPOLINE consta de un objeto hijo POCOST. Cuando se invoca la API ctx.complete()en el objeto PO, los objetos POLINE, POTERM y POCOST que están relacionadoscon dicha PO no se procesan.

En el script de ejemplo siguiente, cualquier orden de compra que tenga un estadode complete se procesa sin la serialización de sus datos de línea de orden decompra.def skipMbo(ctx):if ctx.getMboName()=='PO' and ctx.getMbo().getString("status")=="COMPLETE":ctx.complete()elsectx.process()

166 Integración de datos con aplicaciones externas

Page 173: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Omitir el proceso de columnas en objetos de negocio utilizando la función skipCols(ctx):

La función skipCols(ctx) filtra las columnas de un objeto de negocio de Maximodel proceso del mensaje XML. La API ctx.skipCol(String) puede aceptar unargumento de serie para filtrar una sola columna o varios argumentos de serieseparados con una coma para filtrar varias columnas.

La API ctx.skipCol(String) puede filtrar una sola columna de un objeto de negociode Maximo. El siguiente script de ejemplo filtra la columna de descripción delobjeto ASSET:def skipCols(ctx):

if ctx.getMboName()==’ASSET’:ctx.skipCol("description")

También puede utilizar la API ctx.skipCol(String) para filtrar varias columnas. Elsiguiente script de ejemplo filtra las columnas de descripción y número de activodel objeto ASSET:def skipCols(ctx):

if ctx.getMboName()==’ASSET’:ctx.skipCol("description",”assetnum”)

La API ctx.skipCol(String) puede filtrar la columna de un objeto hijo en unaestructura de objeto. Por ejemplo, el siguiente script filtra la columnaMETERNAME del objeto ASSETMETER:def skipCols(ctx):

if ctx.getMboName()==’ASSETMETER’:ctx.skipCol("metername”)

También puede utilizar la API ctx.skipCol(String) para filtrar columnas basadas enun valor especificado. Por ejemplo, el siguiente script filtra la columna dedescripción cuando el atributo assettag tiene un valor de 12593:def skipCols(ctx):

if ctx.getMboName()==’ASSET’ and ctx.getMbo().getString("assettag")=="12593":ctx.skipCol("description")

Definir valores en campos utilizando la función overrideValues(ctx):

La función overrideValues(ctx) establece el valor de un campo del mensaje XML.

La API ctx.overrideCol() define el valor del campo en el mensaje XML. Porejemplo, el script siguiente establece el valor del ID de sitio en ABC:def overrideValues(ctx):

if ctx.getMboName()==’ASSET’:ctx.overrideCol("SITEID","ABC")

En el script de ejemplo siguiente, si el campo de descripción de una orden decompra está vacío, el campo de descripción se establece en el número de orden decompra:def overrideValues(ctx):

if ctx.getMboName()=='PO':mbo = ctx.getMbo()if mbo.isNull("description"):

ctx.overrideCol("DESCRIPTION",mbo.getString("ponum"))

Integración de datos con aplicaciones externas 167

Page 174: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Clases de definición Java y scripts de automatización:

Puede utilizar una clase de definición Java y un script de automatizaciónsimultáneamente en una estructura de objeto. La clase de definición Java se ejecutaantes que el script de automatización para cada función.

Algunas de las estructuras de objeto que están incluidas en la infraestructura deintegración y en el gestor de migraciónproporcionan clases de definición Java quefiltran datos. Por ejemplo, la estructura de objeto de elemento filtra los elementosque son del tipo TOOL. Cuando un script de automatización se implementa conuna clase de definición Java, el script de automatización puede alterartemporalmente el filtrado de la clase de definición Java y eliminar el filtrado de laclase Java o cambiar los criterios de filtro para excluir o incluir más datos en elmensaje XML.

Por ejemplo, la clase de definición Java de la estructura del objeto MXOPERLOCfiltra las ubicaciones del tipo LABOR al tiempo que permite que se incluyanubicaciones del tipo OPERATING en el mensaje. Puede cambiar el filtrado, añadirmás filtros o sustituir el filtrado predeterminado. El script de ejemplo siguientecambia el proceso para filtrar las ubicaciones del tipo OPERATING y sigueprocesando ubicaciones del 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()

El script de ejemplo siguiente añade más filtrado para la estructura de objetoMXOPERLOC filtrando el COURIER:

if ctx.getMboName()==’LOCATIONS’:if ctx.getMbo().getString("type")=="COURIER":

ctx.skipMbo()

El script de ejemplo siguiente sustituye el filtrado de clase de definición de modoque sólo se filtren ubicaciones de tipo COURIER:def skipMbo(ctx):

if ctx.getMboName()==’LOCATIONS’:if ctx.getMbo().getString("type")=="COURIER":

ctx.skipMbo()else:

ctx.process()

Proceso de entrada de estructuras de objetos:

El proceso de mensajes de entrada por parte de la infraestructura de integraciónadmite el uso de scripts de automatización en la estructura de objeto para darsoporte a lógica personalizada. Este uso de scripts de automatización permite lapersonalización de cualquier mensaje de integración entrante que utilice unaestructura de objeto y la personalización del proceso de los datos del gestor demigración.

Para el proceso de integración, un script que se implementa en la estructura deobjeto se aplica a los mensajes de los orígenes siguientes:v Importación de datosv RESTv Importación de aplicaciones

168 Integración de datos con aplicaciones externas

Page 175: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

v Servicio webv OSLCv Servlet de integraciónv Tablas de integración

La estructura de objeto da soporte a una clase de proceso Java o a un script deautomatización. Puede utilizar una clase de proceso Java, un script deautomatización o ambos en la misma estructura de objeto. El proceso da soporte afunciones que se encuentran en el archivo de clase o en el script deautomatización.

Un contexto (ctx) se pasa entre la clase de proceso de la estructura de objetoentrante y el script de automatización, que implementa el código personalizado. Elcontexto está soportado bidireccionalmente. Hay API predefinidas disponibles parael contexto. La infraestructura del script proporciona una clase Java incorporadaque prepara un contexto.

Todos los ejemplos y fragmentos de código siguientes utilizan JavaScript. Puedeimplementar la lógica en los puntos siguientes del proceso:v Antes del proceso de un objeto de negocio de Maximo. Por ejemplo, la función

beforeProcess(ctx) se procesan una vez para cada nombre del mensaje de entradaantes de crear los objetos de negocio relacionados con el mensaje.

v Durante el proceso de un objeto de negocio de Maximo. Por ejemplo, la funciónbeforeCreateMboSet(ctx) se procesa secuencialmente para cada objeto dentro decada nombre del mensaje de entrada. Otras funciones que se procesansecuencialmente incluyen afterCreateMboSet(ctx), mboRules(ctx),beforeMboData(ctx) y afterMboData(ctx).

v Después de completar el proceso de los objetos de negocio de Maximo. Porejemplo, las funciones preSaveRules(ctx) y changeStatus(ctx) se procesan una vezpara cada nombre del mensaje de entrada después de crear los objetos denegocio.

En la aplicación de scripts de automatización, puede crear un script para que laintegración lo incluya en el proceso de estructura de objeto.

Funciones para el proceso de entrada de estructuras de objetos:

Cada función proporciona las API que puede utilizar para personalizar el procesode los datos de la estructura de objeto.

Omitir o cambiar el proceso de mensajes utilizando la función beforeProcess(ctx):

La función beforeProcess(ctx) proporciona un punto de inyección para ejecutar lalógica del script de automatización antes de crear objetos de negocio.

Por ejemplo, puede saltar el proceso de un mensaje que se basa en la evaluaciónde los datos del mensaje XML. Otro ejemplo es cambiar el atributo de acción parael mensaje de Sincronizar a Crear.

El ejemplo de JavaScript siguiente define la acción del mensaje en sincronización(Sync):function beforeProcess(ctx){

ctx.setMsgType("Sync");}

Integración de datos con aplicaciones externas 169

Page 176: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Crear conjuntos de objetos de negocio utilizando la función beforeCreateMboSet(ctx):

La función beforeCreateMBOSet(ctx) procesa los datos de entrada antes de que lainfraestructura cree los objetos de negocio o conjuntos de objetos de negocio deMaximo y puede operar en todos los objetos de negocio de la estructura de objeto.

Si un script de automatización que está procesando una estructura de objeto creaun conjunto de objetos de negocio, la función createMboSet() en la clase base sepasa por alto. El proceso de un objeto de negocio hijo soporta el acceso al objetopadre utilizando la función getParentMbo().

También puede utilizar la función beforeCreateMboSet(ctx) para crearcondicionalmente el objeto de negocio que se basa en los datos que se incluyen enel mensaje XML.

No se puede crear un objeto de negocio hijo que sea independiente de su objeto denegocio padre.

El ejemplo siguiente muestra cómo crear un objeto de negocio hijo a partir de unobjeto de negocio padre.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);

}

Cambie objetos de negocio o conjuntos de objetos de negocios utilizando la funciónafterCreateMboSet(ctx):

La función afterCreateMboSet(ctx) procesa la estructura de objeto de entradadespués de que la infraestructura cree el objeto de negocio de Maximo o elconjunto de objetos de negocio.

La función afterCreateMboSet(ctx) está disponible para operar en todos los objetosde negocio de la estructura de objeto. Esta función puede cambiar el objeto denegocio o conjunto de objetos de negocio que la infraestructura ha creada o puedeinyectar más objetos de negocio en el conjunto de objetos de negocio.

El ejemplo siguiente define una propiedad MboSet para indicar que la ubicacióncreada tiene un tipo de Almacén. Esta lógica sustituye a la lógica predeterminadaque se encuentra en la clase de proceso 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

170 Integración de datos con aplicaciones externas

Page 177: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

{ctx.getPrimaryMboSet().setNonStoreroom();

}}

Cambiar el proceso de reglas utilizando la función mboRules(ctx):

La función mboRules(ctx) puede saltarse el proceso de un objeto de negocio,saltarse una transacción, continuar el proceso o crear un objeto de negocio. Estafunción opera antes de la creación de cada objeto de negocio de Maximo.

El ejemplo siguiente muestra cómo saltarse una transacción:function mboRules(ctx){

ctx.skipTxn();}

Definir valores en campos utilizando la función beforeMboData(ctx):

La función beforeMboData(ctx) está disponible cuando se crea el objeto de negociode Maximo, pero antes de que la infraestructura de integración establezca losvalores del objeto de negocio. El proceso de la estructura de objeto puede cambiarel valor de los datos del objeto de negocio. El proceso también puede definirdistintivos en los campos como, por ejemplo, el distintivo samevaluevalidation,que desencadena validaciones de campo, aunque el valor del campo se hayadefinido con el valor actual del campo.

Añadir objetos de negocio y cambiar valores en campos utilizando la funciónafterMboData(ctx):

La función afterMboData(ctx) implementa lógica personalizada para crear unobjeto de negocio de Maximo adicional relacionado para su inclusión entransacción o cambiar datos en un objeto de negocio de Maximo. La función estádisponible una vez que se ha creado el objeto de negocio y que se han definido losvalores en el objeto de negocio de Maximo mediante la infraestructura deintegración.

Si las columnas de la estructura de objeto están restringidas, puede utilizar lafunción afterMboData(ctx) para suministrar la lógica para establecerlas en lugar deque la infraestructura de integración establezca los valores.

En el ejemplo siguiente, se crea un activo con el campo de descripción establecidoen una concatenación del campo EXTERNALREFID y del campo de descripción que sepasa desde la estructura 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"));

}

Cambiar la transacción antes de guardarla en la base de datos utilizando la funciónpreSaveRules(ctx):

La función preSaveRules(ctx) permite un proceso adicional que está relacionadocon la transacción en su totalidad. Puede utilizar la función preSaveRules(ctx) paracrear un objeto relacionado y añadirlo a la transacción. La función se invoca antesde la acción Guardar y se invoca para cada nombre en el mensaje.

Integración de datos con aplicaciones externas 171

Page 178: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Cambiar estado o fecha de estado utilizando la función changeStatus(ctx):

La función changeStatus(ctx) implementa un cambio de estado fuera de la clasestatefulMicSetIn que está disponible en la infraestructura de integración. Tambiénpuede utilizar esta función para establecer la fecha de estado con un valor en lugarde utilizar la fecha del sistema.

Para que el script de automatización utilice la función changeStatus(ctx), la clasestatefulMicSetin o la clase que amplía la clase statefulMicSetin debe estarregistrada como la clase de proceso en la estructura del objeto. Puede utilizar estafunción para dar soporte a un cambio de estado de cinco parámetros. La clase basesólo da soporte a tres parámetros.

El ejemplo siguiente define el campo memo que está relacionado con la acción decambio de estado en un valor de serie si el campo NP_STATUSMEMO nocontiene ningún 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 el proceso de entrada de estructuras de objetos:

Un contexto (ctx) es un objeto que proporciona métodos de conveniencia parascripts de automatización para pasar datos o acciones de desencadenante. Elcontexto está soportado bidireccionalmente. Hay API predefinidas disponibles parael contexto, y cada función puede utilizar contextos diferentes.

Un script de automatización requiere métodos de contexto para implementar lalógica de proceso. Se pasa un contexto entre el proceso de la estructura de objeto yel script de automatización, que implementa el código personalizado. La tablasiguiente muestra las API de contexto y el uso habitual de las API para cada unade las funciones:

Tabla 28. API de contexto utilizadas por las funciones

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

172 Integración de datos con aplicaciones externas

Page 179: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 28. API de contexto utilizadas por las funciones (continuación)

APIs de contextobeforeProcess

(ctx)beforeCreateMBOSet

(ctx)afterCreateMboSet

(ctx)mboRules

(ctx)beforeMboData

(ctx)afterMboData

(ctx)preSaveRules

(ctx)changeStatus

(ctx)

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

Las siguientes API están disponibles para el proceso de datos de entrada:

ctx.getMosDetailInfo()Proporciona información sobre la memoria caché de diccionario de datospara la infraestructura de integración para la estructura de objeto que seestá procesando.

ctx.skipMbo()Se salta el proceso de un objeto de negocio de Maximo.

ctx.skipTxn()Se salta el proceso de una transacción entera, como por ejemplo de unmensaje.

ctx.complete()Finaliza el proceso de la estructura de objeto en el punto de la ejecución, loque significa que los datos hijo no se procesan.

ctx.process()Continúa el proceso en el punto de la ejecución. Esta API se utilizanormalmente como parte de la lógica condicional.

ctx.getParentMbo()Recupera el objeto de negocio padre. Esta API se puede utilizar desde unobjeto hijo cuyo objeto de negocio aún no se ha creado.

ctx.isPrimary()Identifica si el objeto de negocio actual es el objeto de negocio de nivel raízde la estructura de objeto.

ctx.getUserInfo()Recupera información de usuario, que es necesaria si un script estácreando un objeto de negocio.

ctx.bypassMbo()Omite la creación del objeto de negocio y continúa con el objeto de negociosiguiente que se está procesando.

ctx.getMsgType()Proporciona acceso al tipo de mensaje, como por ejemplo Sincronización oCreación.

ctx.setMsgType()Establece el tipo de mensaje, como por ejemplo Sincronización o Creación.Esta API se puede utilizar antes de que empiece el proceso.

ctx.getData()Proporciona acceso a StructureData, que es el mensaje XML.

ctx.setMboSet(MboSet mboSet)Establece valores en un conjunto de objetos de negocio.

ctx.setMbo(Mbo mbo)Establece valores en un objeto de negocio.

Integración de datos con aplicaciones externas 173

Page 180: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

ctx. getPrimaryMboSet()Recupera el objeto de negocio raíz de una estructura de objeto durante elproceso de un objeto de negocio hijo.

ctx.setProcessTable(String processTable)Establece la tabla para un proceso. El método se utiliza si tiene un objetode negocio no persistente como, por ejemplo, MXRECEIPT, que tiene unalogía de proceso para determinar si la tabla MATRECTRANS o la tablaSERVRECTRANS se actualiza. La API ctx.setProcessTable(StringprocessTable) se utiliza en la función beforeProcess(ctx).

ctx.getProcessTable()Recupera el nombre de tabla establecido por la APIctx.setProcessTable(String processTable).

ctx.setSkipBaseAdditionalRules()Añade lógica personalizada a la función preSaveRules(ctx) para operar enuna estructura de objeto completa que está ahora preparada en el proceso.

ctx.processAsUpdate()Establece la acción de proceso de un objeto de negocio en la acciónActualizar en lugar de la acción Agregar o Suprimir.

ctx.processAsAdd()Establece la acción de proceso de un objeto de negocio en la acciónAgregar en lugar de la acción Suprimir o Actualizar.

ctx.processAsAddAtEnd()Establece la acción de proceso de un objeto de negocio en la acciónAgregar en lugar de la acción Actualizar o Suprimir y crea el objeto denegocio al final de la colección en lugar de al principio de la colección.

ctx.log ()Ejecuta una sentencia de registro desde un contexto de proceso deestructura de objeto.

Personalización del proceso de canal y servicio mediante scripts deautomatización:

Cuando se crea un script de automatización, se identifica el canal o el serviciodonde se ejecuta el script. También se especifica dónde se debe insertar el scriptdurante el flujo de proceso.

Puntos de personalización durante el proceso de canales de publicación:

Los canales de publicación procesan mensajes de integración salientes que norequieren una respuesta. La clase de proceso Java que está asociada a un canal depublicación incluye varios ganchos donde puede insertar código para proporcionarlógica personalizada.

La ilustración muestra los puntos de personalización durante el proceso saliente demensajes de integración utilizando canales de publicación.

174 Integración de datos con aplicaciones externas

Page 181: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Proceso de salida

Maximo Asset Management

Maximo Integration Framework

Ob

jeto

s d

e n

eg

ocio Estructuras de objetos

Proceso de salida

Clase dedefinición

Java

Script deautomatiz.

Cola JMS

Destinos de integración

- Archivos (p. e.,hojas de cálculo)

- Sistemas externos

Canales de publicación

Clase desalida de

usuario Java(antes

del método)

Script deautomatiz.

Clase deproceso

Java

Script deautomatiz.

Clase desalida de

usuario Java(después del

método)

Script deautomatiz.

Clase defiltro de

eventos Java

Script deautomatiz.

Después de que el proceso de estructura de objeto construya el mensaje deintegración, éste se reenvía al canal de publicación asociado. Puede añadir lógicapersonalizada en los puntos siguientes durante el proceso del canal de publicación:v Clase de salida externav Clase de salida de usuario que se ejecuta antes de la clase de salida externav Clase de salida de usuario que se ejecuta después de la clase de salida externav Clase de filtro de eventos

A continuación, el mensaje se envía a la cola JMS para la entrega al destino.

Al configurar un script de salida externa o de salida de usuario para un canal depublicación, una clase Java predefinida se inserta en el canal que se utiliza paraejecutar el script. Las clases predefinidas son la clasecom.ibm.tivoli.maximo.script.ScriptExternalExit y la clasecom.ibm.tivoli.maximo.script.ScriptUserExit. No puede implementar un script yuna clase Java en el mismo punto de proceso. Si intenta crear un script en unpunto de proceso donde está configurada una clase Java, no puede guardar elscript.

Puntos de personalización durante el proceso de servicios empresariales:

Los servicios empresariales proporcionan proceso asíncrono y síncrono de mensajesde integración entrantes. Puede insertar código para proporcionar lógicapersonalizada a la clase de proceso de solicitud Java para el proceso entrante y a laclase de proceso de respuesta Java para el proceso saliente.

Integración de datos con aplicaciones externas 175

Page 182: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

La ilustración muestra los puntos de personalización durante el proceso entrante ysaliente de mensajes de integración utilizando los servicios empresariales.

Proceso de salida

Proceso de entrada

Maximo Asset Management

Maximo Integration Framework

Obje

tos d

e n

egocio

Estructuras de objetos

Proceso de salida

Clase dedefinición

Java

Script deautomatiz.

Proceso de entrada

Clase deproceso

Java

Script deautomatiz.

Respuestas de servicio empresarial

Clase de salidade usuario Java

(antes del método)

Clase de procesoJava

Clase de salidade usuario Java

(desp del método).

Script de automatiz.

Script de automatiz.

Script de automatiz.

Solicitudes de servicio empresarial

Clase de salidade usuario Java

(antes del método)

Clase de procesoJava

Clase de salidade usuario Java

(desp del método).

Script de automatiz.

Script de automatiz.

Script de automatiz.

Cliente externo

Iniciar Start (inicio de transacción)

Para los mensajes asíncronos que no requieren una respuesta, un servicio externoabre una conexión para enviar una solicitud de servicio empresarial. Cuando lasolicitud se valida, el mensaje se deposita en una cola JMS para el proceso deservicios empresariales. Para los mensajes síncronos que requieren una respuesta,el servicio externo mantiene una conexión continua durante la transacción, hastaque se recibe la respuesta.

En la aplicación Scripts de automatización, al configurar un script deautomatización para un servicio empresarial, se especifica uno de los siguientespuntos de inserción para el script:v Puntos de inserción para el proceso asíncrono de entrada:

– Solicitud, entrante: clase de salida de usuario que se ejecuta antes que la clasede salida externa

– Solicitud, entrante: clase de salida externa– Solicitud, entrante: clase de salida de usuario que se ejecuta después que la

clase externav Puntos de inserción para el proceso síncrono de entrada, donde no es necesaria

una respuesta:– Solicitud, entrante: clase de salida de usuario que se ejecuta antes que la clase

de salida externa– Solicitud, entrante: clase de salida externa– Solicitud, entrante: clase de salida de usuario que se ejecuta después que la

clase externa

176 Integración de datos con aplicaciones externas

Page 183: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

– Respuesta, saliente: clase de salida de usuario que se ejecuta antes que laclase de salida externa

– Respuesta, saliente: clase de salida externa– Respuesta, saliente: clase de salida de usuario que se ejecuta después que la

clase externa

Al configurar un script de salida externa o de salida de usuario para la solicitud ola respuesta de un servicio externo, se inserta una clase Java predefinida queejecuta el script. Las clases predefinidas son la clasecom.ibm.tivoli.maximo.script.ScriptExternalExit y la clasecom.ibm.tivoli.maximo.script.ScriptUserExit. No puede implementar un script yuna clase Java en el mismo punto de proceso. Si intenta crear un script en unpunto de proceso donde está configurada una clase Java, no puede guardar elscript.

Puntos de personalización durante el proceso de canales de invocación:

Los canales de invocación procesan mensajes de integración salientes que requierenuna respuesta. La clase de solicitud del canal de invocación y la clase de respuestadel canal de invocación incluyen varios ganchos donde puede insertar código paraproporcionar lógica personalizada.

La ilustración muestra los puntos de personalización durante el proceso entrante ysaliente de mensajes de integración mediante el uso de canales de invocación.

Maximo Asset Management

Maximo Integration Framework

Ob

jeto

s d

e n

eg

ocio

Estructuras de objetos

Proceso de salida

Clase dedefinición

Java

Script deautomatiz.

Proceso de entrada

Clase deproceso

Java

Script deautomatiz.

Servicios externos

Solicitudes de canal de invocación

Clase de salidade usuario Java

(antes del método)

Clase de procesoJava

Clase de salidade usuario Java

(desp del método).

Script de automatiz.

Script de automatiz.

Script de automatiz.

Respuestas de canal de invocación

Clase de salidade usuario Java

(antes del método)

Clase de procesoJava

Clase de salidade usuario Java

(desp del método).

Script de automatiz.

Script de automatiz.

Script de automatiz.

Proceso de salida

Proceso de entrada

Iniciar Start (inicio de transacción)

Cuando una acción de usuario de Maximo Asset Management inicia unatransacción de integración de salida que requiere una respuesta, un canal deinvocación proporciona el proceso de integración de solicitudes y respuestas.

Integración de datos con aplicaciones externas 177

Page 184: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

En la aplicación Scripts de automatización, al configurar un script deautomatización para un canal de invocación, se especifica uno de los siguientespuntos de inserción para el script:v Solicitud, saliente: clase de salida de usuario que se ejecuta antes que la clase de

salida externav Solicitud, saliente: clase de salida externav Solicitud, saliente: clase de salida de usuario que se ejecuta después que la clase

de salida externav Respuesta, entrante: clase de salida de usuario que se ejecuta antes que la clase

de salida externav Respuesta, entrante: clase de salida externav Respuesta, entrante: clase de salida de usuario que se ejecuta después que la

clase de salida externa

Al configurar un script de salida externa o de salida de usuario para la solicitud ola respuesta de un canal de invocación, se inserta una clase Java predefinida queejecuta el script. Las clases predefinidas son la clasecom.ibm.tivoli.maximo.script.ScriptExternalExit y la clasecom.ibm.tivoli.maximo.script.ScriptUserExit. No puede implementar un script yuna clase Java en el mismo punto de proceso. Si intenta crear un script en unpunto de proceso donde está configurada una clase Java, no puede guardar elscript.

Ejemplos de utilización de scripts de automatización durante el proceso por parte de canalesy servicios:

El proceso de canales y servicios toma un registro de datos del sistema de origencomo valor de entrada, manipula los datos según sea necesario y crea un registrode datos para el sistema de destino. Los scripts Python de ejemplo consultan datosde entrada y proporcionan lógica para manipular los datos antes de construir losdatos de salida.

Cuando Maximo Asset Management inicia una transacción de integración, laestructura de objeto proporciona un elemento de datos de registro internos (irData)a un canal de publicación o un canal de invocación. El proceso manipula elelemento irData y construye un elemento de datos de registro externos (erData)antes de que el mensaje se envíe a su destino. Las transacciones del canal deinvocación pueden requerir una respuesta del sistema externo. El proceso de larespuesta pasa el elemento erData al canal de invocación, que manipula los datosde respuesta y construye el elemento irData.

Cuando un sistema externo inicia una transacción de integración, el mensajeproporciona un elemento erData a un servicio empresarial. El proceso manipula elelemento erData y construye un elemento irData antes de que el mensaje se envíea la estructura de objeto asociado. Para los mensajes que requieren una respuesta,la estructura del objeto proporciona el elemento irData al servicio empresarial. Elproceso manipula los datos y construye el elemento erData que se envía a sudestino.

Los ejemplos constan de scripts simples que se pueden utilizar para fines deprueba. Puede utilizar las características de importación y exportación de datos enla aplicación de sistemas externos para que las transacciones empiecen a probarscripts.

178 Integración de datos con aplicaciones externas

Page 185: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Ejemplo: Script que cambia la descripción de activos operativos en transaccionessalientes

En este escenario, la estructura de objeto MXASSET proporciona irData al canal depublicación MYASSET para el proceso. Un script de automatización se haconfigurado para ejecutarse ne la clase de salida externa del canal de publicación.El script comprueba el estado del activo en el elemento irData. Si el activo está enestado operativo, el script inserta un valor en el campo de descripción e imprimeun mensaje en el archivo de registro. El elemento erData se construye y se envía alsistema externo.if irData.getCurrentData("STATUS") == ’OPERATING’ :

irData.setCurrentData("DESCRIPTION","hello")print "MYASSET description change"

Ejemplo: Script que cambia la descripción activos operativos en transaccionesentrantes

En este ejemplo, el servicio empresarial MYASSET procesa un mensaje de entradapara la estructura de objeto MXASSET. Un script de automatización inserta unscript en la clase de salida externa del servicio empresarial. El script comprueba elestado del activo en el elemento erData. Si el activo está en estado operativo, elscript inserta un valor en el campo de descripción e imprime un mensaje en elarchivo de registro. El elemento irData se construye y se envía a la estructura delobjeto asociada para el proceso.if erData.getCurrentData("STATUS") == ’OPERATING’:

erData.setCurrentData("DESCRIPTION","hello inbound")print "MYASSET inbound description has changed"

Ejemplo: Script que cambia la descripción de líneas en una orden de comprautilizando una variable de script automatización

En este ejemplo, la estructura del objeto MXPO proporciona el elemento irData alcanal de publicación MYPO para el proceso. Un script de automatización se haconfigurado para ejecutarse ne la clase de salida externa del canal de publicación.Un valor literal, world, se define como una variable de entrada en el script deautomatización. El script consulta el elemento irData para las órdenes de compraque contienen líneas de orden de compra. El script numera cada línea de la ordende compra en una secuencia que empieza con el 1, establece hello como valor en elcampo de descripción y añade la variable de entrada desde el script deautomatización. El script actualiza la orden de compra padre antes de que seconstruya el elemento erData y se envíe al sistema externo.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()

Ejemplo: Script que salta transacciones en función del estado de los registros

En este ejemplo, la estructura del objeto MXPO se envía al canal de publicaciónMYPO2 para el proceso. Un script de automatización se ha configurado paraejecutarse en la clase de salida de usuario antes de que se ejecute la clase de salidaexterna. El script consulta el elemento irData para las órdenes de compra con unestado de WAPPR y omite el proceso de estas órdenes de compra.

Integración de datos con aplicaciones externas 179

Page 186: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

if irData.getCurrentData("STATUS") == ’WAPPR’ :errorgroup = "iface"errorkey ="SKIP_TRANSACTION"

Ejemplo: Script que imprime información de transacción en un archivo deregistro para facilitar la resolución de problemas

En este ejemplo, la estructura de objeto MXASSET proporciona irData al canal depublicación MYASSET2 para el proceso. Se ha configurado un script deautomatización para ejecutarse en la clase de salida externa. El script consulta elelemento irData para activos con un estado operativo, imprime información de latransacción en un archivo de registro y construye el elemento erData sin realizarningún cambio. Para imprimir información sobre la transacción, debe establecer elnivel de registro en depuración. En la aplicación Registro, el registrador seestablece en scripts de automatización y el nivel de registro se establece enDEBUG. En la aplicación Scripts de automatización, el nivel de registro del scriptse establece en 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

Cuando se exporta un activo, la siguiente información de depuración se imprimeen un archivo de registro: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

Correlación XSLPara las transacciones salientes, puede implementar un archivo XSL paramanipular los datos que se envían al sistema externo una vez completado elproceso de la salida Java. Para las transacciones entrantes, puede implementar unarchivo XSL para manipular los datos que se van a definir en la estructura deobjeto una vez completado el proceso de salida Java.

El archivo XSL siempre se llama con el mensaje XML que es la salida del procesode salida Java. Puede registrar el archivo XSL en el archivo EAR de la aplicaciónen el directorio businessobjects/classes/ o puede hacer referencia a ésteutilizando una vía de acceso de archivo de directorio que no forma parte delarchivo EAR de la aplicación.

Omita la extensión de archivo .xsl para registrar el archivo en el directoriobusinessobjects/classes/psd/iface/xsl, por ejemplo:psdi.iface.xsl.mapping

Incluya la extensión de archivo .xsl para registrar el archivo en un directorio dearchivos al que el servidor de aplicaciones pueda acceder, como por ejemplo:c:/psdi/iface/xsl/mapping.xsl

180 Integración de datos con aplicaciones externas

Page 187: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Clase de salida de usuario de tabla de interfazCuando utilice tablas de interfaz para recibir mensajes de un sistema externo,puede realizar la personalización en el programa de sondeo que recupera los datosde la tabla de interfaz y envía datos al sistema.

El gestor de tareas cron ejecuta el programa de sondeo de tablas de interfaz. Latarea cron IFACETABLECONSUMER tiene una propiedad EXITCLASS opcionaldonde puede especificar el nombre completo de una clase de salida Java.

La lista de estructuras de datos Java representa el registro de las tablas de interfaz,donde el primer elemento siempre es la acción del mensaje. Los elementosrestantes de la lista son las estructuras de datos correlacionadas y cada correlaciónrepresenta una fila en la tabla de interfaz para cada mensaje. Las claves de lacorrelación son los nombres de columna y los valores son los valores de columnacorrespondientes. Todos los valores de la columna se convierten a su formato deserie localizada antes de definirse en la correlación.

La clase EXITCLASS debe implementar la interfazpsdi.iface.intertables.IfaceTbExit y los métodos siguientes:v public void beforeQueue(long transid, String extSys, String ifaceName,

List data, Connection conn)

Se llama a este método después de que se reciban los datos son recibidos de latabla de interfaz y antes de que los datos se inserten en una de las colasentrantes.

v public void afterCommit(long transid, String extSys, String ifaceName,Connection conn)

Se llama a este método una vez insertados los datos en una cola entrante y unavez suprimidos de la tabla de cola de interfaz y de que se haya realizado laconfirmación de la base de datos.

v public void afterRollback(long transid, String extSys, String ifaceName,Connection conn)

Este método es similar al método afterCommit, pero se llama a él si latransacción se deshace.

Esta clase puede realizar los procesos siguientes:v Validar datos.v Cambiar datos externos cambiando el registro de IR que se debe guardar en el

sistema.v Impedir que la transacción se guarde en la cola emitiendo una excepción. En

este caso, la transacción permanece en la tabla MXIN_INTER_TRANS con elmensaje de error y se vuelve a procesar.

v Impedir que se envíe el mensaje al sistema externo emitiendo una excepciónskip_transaction. En este caso, el sistema no guarda el mensaje; el mensaje seelimina de la cola.

v Registrar la transacción

La salida de usuario que utiliza el método afterCommit o afterRollback puederealizar los procesos siguientes:v Realizar el procesamiento personalizado y la limpieza.v Registrar la transacción.

Esta clase se identifica en la aplicación Configuración de tarea cron.

Integración de datos con aplicaciones externas 181

Page 188: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Configuración de la infraestructura de integraciónLa configuración de la infraestructura de integración incluye la configuración depropiedades del sistema relacionadas, colas JMS y seguridad. La implementaciónde escenarios de integración requiere un conocimiento de la configuración de colasJMS en el servidor de aplicaciones y conocimiento de J2EE y soporte de seguridadde productos.

Propiedades del sistema de integraciónLas propiedades del sistema definen el comportamiento y las características de lainfraestructura de integración. Para revisar o cambiar las propiedades de lainfraestructura de integración, fíltrelas en la aplicación Propiedades del sistema.

Propiedades generales de integración

Para ver una lista de propiedades generales de integración, especifique mxe.intcomo término de filtro en la aplicación Propiedades del sistema. Para laspropiedades booleanas (true/false), un valor 0 significa false y un valor 1 significatrue.

Tabla 29. Propiedades generales de integración

Propiedad Descripción Valor predeterminado

mxe.int.containerdeploy Despliega servicios web en el contenedor del servidorde aplicaciones. Cuando se establece en 0 (false), losservicios web se despliegan en el contenedor delproducto.

0

mxe.int.credentialmapperclassname El nombre de clase de correlacionador de credencialeses un archivo de clase que puede utilizarse paracorrelacionar información de credenciales cuando seimplementa un módulo de integración.

mxe.int.genboolasbool Generar booleano como booleano de esquema. 1

mxe.int.globaldir Especifica el directorio global de integración. 1

mxe.int.queueusercachesize Número de usuarios almacenados en la memoriacaché para los mensajes de cola entrantes.

10

mxe.int.resolveschema Resuelve todas las inclusiones de esquema para quecontengan una definición de esquema incorporado.

1

mxe.int.servicedeployer La clase de desplegador de servicios web es una claseJava personalizada para el despliegue de serviciosweb cuando no se utiliza la clase de desplegadorpredeterminada.

mxe.int.uddiinqurl Representa el URL de consulta de registro UDDI deintegración.

mxe.int.uddiname Representa el ID de usuario del registro UDDI deintegración.

mxe.int.uddipassword Contraseña de registro UDDI de integración.

mxe.int.uddipuburl URL de publicación de registro UDDI de integración.

mxe.int.validatedbupdates Valida las actualizaciones de las bases de datosrealizadas por la integración. Cuando se establece en1 (true), la supresión de objetos de negocio, atributos,índices y relaciones realizada por el usuario en laaplicación Configuración de base de datos se validacon el contenido de integración. La validacióngarantiza que ningún componente de integración hagareferencia a los datos que se están suprimiendo. Siexiste una referencia, el usuario no puede completarla acción de supresión.

1

182 Integración de datos con aplicaciones externas

Page 189: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 29. Propiedades generales de integración (continuación)

Propiedad Descripción Valor predeterminado

mxe.int.validatemmpackage Valida las actualizaciones de la base de datos delgestor de migración realizadas por la integración.

0

mxe.int.verifywebappurl Verifica el URL de aplicación web cuando se generanarchivos de esquema.

1

mxe.int.webappurl Representa el URL de aplicación web de integración.Configure esta propiedad para que contenga elnombre de host y el número de puerto correctos.

http://localhost:9998/meaweb

mxe.int.wsdlcurrentschema Muestra la definición de esquema actual en WSDL. 1

mxe.int.wsdlincludesschema Incluye el esquema directamente en WSDL. 1

mxe.int.wsdlnamespace Representa el espacio de nombres WSDL deintegración.

http://www.ibm.com/maximo/wsdl

mxe.int.xmlnamespace Representa el espacio de nombres XML deintegración.

http://www.ibm.com/maximo

mxe.int.binarytext Convierte un valor de texto en un valor codificado enbase 64.

10

mxe.int.defaultaction La acción predeterminada para la importación dearchivos sin formato.

AddChange

mxe.int.defaultoperation La operación predeterminada para la exportación deaplicaciones.

Sincronización

mxe.int.dfltuser Representa el usuario de inicio de sesiónpredeterminado de integración.

mxintadm

mxe.int.doclink.maxfilesize Representa el tamaño máximo de archivo (MB) paralos adjuntos que se incluyen como parte de unmensaje de integración.

10

mxe.int.enabledatemillis Permite la fecha con la parte de milisegundos. 0

mxe.int.expupdatesender Actualiza el campo SENDERSYSID en el objetoprimario durante la exportación de datos.

0

mxe.int.extracttrycount El Recuento de reintentos de extracción de archivos esel número de veces que se reintenta un mensaje deerror durante la importación de datos cuando seutiliza la gestión de errores basada en archivos.

0

mxe.int.flatfiledelimiter Delimitador de texto del archivo sin formato deintegración es el valor de delimitador predeterminadoque se utiliza para la habilitación de importación deaplicaciones y la importación de datos.

,

mxe.int.flatfilenewline Retiene el nuevo carácter de línea en archivos sinformato. Para los campos que pueden contenercaracteres de nueva línea como, por ejemplo, lasdescripciones, los caracteres se mantienen en losmensajes de integración cuando el valor de lapropiedad es 1 (true).

0

mxe.int.interactiveimport Realiza la importación de la aplicación de formainteractiva.

0

mxe.int.keyresponse Proporciona un contenido de respuesta para losmensajes de integración entrantes de todas lasoperaciones. Cuando se establece en 1 (true), seproporciona un contenido de respuesta, que incluyelos valores de clave de objeto primaria, para todas lasoperaciones de servicio. Cuando se establece en 0(false), sólo se proporciona un contenido de respuestapara las operaciones Consultar y Crear.

1

mxe.int.maxextractdocs Representa el número de documentos de error que segraban en cada archivo temporal al crear un archivode extracción.

1000

mxe.int.mdbdelay Representa el tiempo de espera en milisegundos antesde procesar un mensaje de la cola de errores.

-1

Integración de datos con aplicaciones externas 183

Page 190: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 29. Propiedades generales de integración (continuación)

Propiedad Descripción Valor predeterminado

mxe.int.propagateuser Propaga el usuario autenticado a través de la colaentrante. Cuando se establece en 1 (true), el usuariodel mensaje de integración se guarda con el mensajede la cola y se utiliza durante el proceso del mensajeporque se procesa desde la cola en los objetos denegocio.

0

mxe.int.savemessage Indica que se guarde el mensaje JMS. 0

mxe.int.setclobasaln Controla el recorte de caracteres que se envían a lastablas de interfaz.

0

mxe.int.textqualifier El calificador de texto de archivo sin formato es elvalor de calificador de texto predeterminado en lahabilitación de la importación de aplicaciones y en laimportación de datos.

"

mxe.int.updatecoafromglcomp Actualiza el Plan contable que contiene uncomponente identificado. Cuando se establece en 1(true), el proceso de los datos de componente de LMentrantes inicia actualizaciones relacionadas en losdatos del plan contable que hagan referencia alcomponente de LM.

1

mxe.int.usescientific Utiliza notación científica para los valores dobles. 1

mxe.int.validatexmltext Valida el valor de elementos XML para los caracteresXML no válidos. Cuando se establece en 1 (true), sevalida un mensaje saliente para garantizar que todoslos datos del mensaje utilizan caracteres XML válidos.Si hay mensajes con caracteres no válidos, laoperación se detiene y no se entrega ningún mensajesaliente.

0

mxe.int.whereclausepolicy Establece la política de cláusula Where para unaconsulta de integración.

parse

mxe.int.adminfromemail La dirección de correo electrónico (FROM) desde laadministración de integración, que se utiliza comodirección de correo electrónico Desde cuando laintegración inicia un correo electrónico. Debe ser unformato de dirección de correo electrónico válido, porejemplo, [email protected].

mxe.int.admintoemail La dirección de correo electrónico (TO) para laadministración de integración, que se utiliza comodirección de correo electrónico Para cuando laintegración inicia un correo electrónico. Debe ser unformato de dirección de correo electrónico válido, porejemplo, [email protected]. Puede proporcionar más deuna dirección de correo electrónico en una listaseparada por comas.

Tabla 30. Propiedades generales de integración.

Propiedad Descripción Valor predeterminadoQuién puede editar lapropiedad

mxe.int.containerdeployDespliega servicios web en el contenedor delservidor de aplicaciones. Cuando se establece en0 (false), los servicios web se despliegan en elcontenedor del producto.

0 Administrador global

mxe.int.credentialmapperclassnameEl nombre de clase de correlacionador decredenciales es un archivo de clase que puedeutilizarse para correlacionar información decredenciales cuando se implementa un módulo deintegración.

Administrador global

mxe.int.genboolasboolGenerar booleano como booleano de esquema.

1 Administrador global

184 Integración de datos con aplicaciones externas

Page 191: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 30. Propiedades generales de integración (continuación).

Propiedad Descripción Valor predeterminadoQuién puede editar lapropiedad

mxe.int.globaldirEspecifica el directorio global de integración.

1 Administrador global

mxe.int.queueusercachesizeNúmero de usuarios almacenados en la memoriacaché para los mensajes de cola entrantes.

10 Administrador global

mxe.int.resolveschemaResuelve todas las inclusiones de esquema paraque contengan una definición de esquemaincorporado.

1 Administrador global

mxe.int.servicedeployerLa clase de desplegador de servicios web es unaclase Java personalizada para el despliegue deservicios web cuando no se utiliza la clase dedesplegador predeterminada.

Administrador global

mxe.int.uddiinqurlRepresenta el URL de consulta de registro UDDIde integración.

Administrador global

mxe.int.uddinameRepresenta el ID de usuario del registro UDDI deintegración.

Administrador global

mxe.int.uddipasswordContraseña de registro UDDI de integración.

Administrador global

mxe.int.uddipuburlURL de publicación de registro UDDI deintegración.

Administrador global

mxe.int.validatedbupdatesValida las actualizaciones de las bases de datosrealizadas por la integración. Cuando se estableceen 1 (true), la supresión de objetos de negocio,atributos, índices y relaciones realizada por elusuario en la aplicación Configuración de base dedatos se valida con el contenido de integración.La validación garantiza que ningún componentede integración haga referencia a los datos que seestán suprimiendo. Si existe una referencia, elusuario no puede completar la acción desupresión.

1 Administrador global

mxe.int.verifywebappurlVerifica el URL de aplicación web cuando segeneran archivos de esquema.

1 Administrador global

mxe.int.webappurlRepresenta el URL de aplicación web deintegración. Configure esta propiedad para quecontenga el nombre de host y el número depuerto correctos.

http://localhost:9998/meaweb

Administrador global

mxe.int.wsdlcurrentschemaMuestra la definición de esquema actual enWSDL.

1 Administrador global

mxe.int.wsdlincludesschemaIncluye el esquema directamente en WSDL.

1 Administrador global

mxe.int.wsdlnamespaceRepresenta el espacio de nombres WSDL deintegración.

http://www.ibm.com/maximo/wsdl

Administrador global

mxe.int.xmlnamespaceRepresenta el espacio de nombres XML deintegración.

http://www.ibm.com/maximo Administrador global

mxe.int.binarytextConvierte un valor de texto en un valorcodificado en base 64.

10 Administrador global,administrador deinquilinos

mxe.int.defaultactionLa acción predeterminada para la importación dearchivos sin formato.

AddChange Administrador global,administrador deinquilinos

Integración de datos con aplicaciones externas 185

Page 192: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 30. Propiedades generales de integración (continuación).

Propiedad Descripción Valor predeterminadoQuién puede editar lapropiedad

mxe.int.defaultoperationLa operación predeterminada para la exportaciónde aplicaciones.

Sincronización Administrador global,administrador deinquilinos

mxe.int.dfltuserRepresenta el usuario de inicio de sesiónpredeterminado de integración.

mxintadm Administrador global,administrador deinquilinos

mxe.int.doclink.maxfilesizeRepresenta el tamaño máximo de archivo (MB)para los adjuntos que se incluyen como parte deun mensaje de integración.

10 Administrador global,administrador deinquilinos

mxe.int.enabledatemillisPermite la fecha con la parte de milisegundos.

0 Administrador global,administrador deinquilinos

mxe.int.expupdatesenderActualiza el campo SENDERSYSID en el objetoprimario durante la exportación de datos.

0 Administrador global,administrador deinquilinos

mxe.int.extracttrycountEl Recuento de reintentos de extracción dearchivos es el número de veces que se reintentaun mensaje de error durante la importación dedatos cuando se utiliza la gestión de erroresbasada en archivos.

0 Administrador global,administrador deinquilinos

mxe.int.flatfiledelimiterDelimitador de texto del archivo sin formato deintegración es el valor de delimitadorpredeterminado que se utiliza para la habilitaciónde importación de aplicaciones y la importaciónde datos.

, Administrador global,administrador deinquilinos

mxe.int.flatfilenewlineRetiene el nuevo carácter de línea en archivos sinformato. Para los campos que pueden contenercaracteres de nueva línea como, por ejemplo, lasdescripciones, los caracteres se mantienen en losmensajes de integración cuando el valor de lapropiedad es 1 (true).

0 Administrador global,administrador deinquilinos

mxe.int.interactiveimportRealiza la importación de la aplicación de formainteractiva.

0 Administrador global,administrador deinquilinos

mxe.int.keyresponseProporciona un contenido de respuesta para losmensajes de integración entrantes de todas lasoperaciones. Cuando se establece en 1 (true), seproporciona un contenido de respuesta, queincluye los valores de clave de objeto primaria,para todas las operaciones de servicio. Cuando seestablece en 0 (false), sólo se proporciona uncontenido de respuesta para las operacionesConsultar y Crear.

1 Administrador global,administrador deinquilinos

mxe.int.maxextractdocsRepresenta el número de documentos de errorque se graban en cada archivo temporal al crearun archivo de extracción.

1000 Administrador global,administrador deinquilinos

mxe.int.mdbdelayRepresenta el tiempo de espera en milisegundosantes de procesar un mensaje de la cola deerrores.

-1 Administrador global,administrador deinquilinos

mxe.int.propagateuserPropaga el usuario autenticado a través de la colaentrante. Cuando se establece en 1 (true), elusuario del mensaje de integración se guarda conel mensaje de la cola y se utiliza durante elproceso del mensaje porque se procesa desde lacola en los objetos de negocio.

0 Administrador global,administrador deinquilinos

mxe.int.savemessageIndica que se guarde el mensaje JMS.

0 Administrador global,administrador deinquilinos

186 Integración de datos con aplicaciones externas

Page 193: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 30. Propiedades generales de integración (continuación).

Propiedad Descripción Valor predeterminadoQuién puede editar lapropiedad

mxe.int.setclobasalnControla el recorte de caracteres que se envían alas tablas de interfaz.

0 Administrador global,administrador deinquilinos

mxe.int.textqualifierEl calificador de texto de archivo sin formato esel valor de calificador de texto predeterminado enla habilitación de la importación de aplicaciones yen la importación de datos.

" Administrador global,administrador deinquilinos

mxe.int.updatecoafromglcompActualiza el Plan contable que contiene uncomponente identificado. Cuando se establece en1 (true), el proceso de los datos de componentede LM entrantes inicia actualizacionesrelacionadas en los datos del plan contable quehagan referencia al componente de LM.

1 Administrador global,administrador deinquilinos

mxe.int.usescientificUtiliza notación científica para los valores dobles.

1 Administrador global,administrador deinquilinos

mxe.int.validatexmltextValida el valor de elementos XML para loscaracteres XML no válidos. Cuando se estableceen 1 (true), se valida un mensaje saliente paragarantizar que todos los datos del mensajeutilizan caracteres XML válidos. Si hay mensajescon caracteres no válidos, la operación se detieney no se entrega ningún mensaje saliente.

0 Administrador global,administrador deinquilinos

mxe.int.whereclausepolicyEstablece la política de cláusula Where para unaconsulta de integración.

parse Administrador global,administrador deinquilinos

mxe.int.adminfromemailLa dirección de correo electrónico (FROM) desdela administración de integración, que se utilizacomo dirección de correo electrónico Desdecuando la integración inicia un correo electrónico.Debe ser un formato de dirección de correoelectrónico válido, por ejemplo,[email protected].

Administrador dearrendatarios

mxe.int.admintoemailLa dirección de correo electrónico (TO) para laadministración de integración, que se utilizacomo dirección de correo electrónico Para cuandola integración inicia un correo electrónico. Debeser un formato de dirección de correo electrónicoválido, por ejemplo, [email protected]. Puedeproporcionar más de una dirección de correoelectrónico en una lista separada por comas.

Administrador dearrendatarios

Propiedades de integración de REST

Para ver una lista de propiedades de integración de la API de REST, especifiquemxe.rest como término de filtro en la aplicación Propiedades del sistema. Para laspropiedades booleanas (true/false), un valor 0 significa false y un valor 1 significatrue.

Tabla 31. Propiedades de integración de la API de REST

Propiedad Descripción Valor predeterminado

mxe.rest.format.json.mimetypes Los tipos MIME soportados porREST para JSON.

application/json

mxe.rest.format.xml.mimetypes Los tipos MIME soportados porREST para JSON.

application/xml,text/xml

mxe.rest.handler.mbo El manejador de recursos MBOde REST.

com.ibm.tivoli.maximo.rest.MboResourceRequestHandler

Integración de datos con aplicaciones externas 187

Page 194: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 31. Propiedades de integración de la API de REST (continuación)

Propiedad Descripción Valor predeterminado

mxe.rest.handler.os El manejador de recursos deestructura de objeto de REST.

com.ibm.tivoli.maximo.rest.OSResourceRequestHandler

mxe.rest.handler.ss El manejador de recursos deservicio estándar de REST.

com.ibm.tivoli.maximo.rest.MaxServiceResourceRequestHandler

mxe.rest.serializer.mbo.imglib.image

El serializador REST para elMBO imagelib para el formatode imagen.

com.ibm.tivoli.maximo.rest.ImageLibSerializer

mxe.rest.serializer.mbo.json El serializador REST para MBOpara el formato JSON.

com.ibm.tivoli.maximo.rest.MboJSONSerializer

mxe.rest.serializer.mbo.xml El serializador REST para MBOpara el formato xml.

com.ibm.tivoli.maximo.rest.MboXMLSerializer

mxe.rest.serializer.os.json El serializador REST de lasestructuras de objetos para elformato JSON.

com.ibm.tivoli.maximo.rest.OSJSONSerializer

mxe.rest.serializer.os.xml El serializador REST de lasestructuras de objetos para elformato xml.

com.ibm.tivoli.maximo.rest.OSXMLSerializer

mxe.rest.serializer.ss.json El serializador REST de serviciosestándar para el formato JSON.

com.ibm.tivoli.maximo.rest.ServiceMethodResponseJSONSerializer

mxe.rest.serializer.ss.xml El serializador REST de serviciosestándar para el formato xml.

com.ibm.tivoli.maximo.rest.ServiceMethodResponseXMLSerializer

mxe.rest.webappurl URL de autenticación por testigode aplicación web.

mxe.rest.mbo.blockaccess Bloquea el acceso a la lista deMBO separados por comas.

mxe.rest.mbo.defaultformat El formato predeterminado deREST para todos los MBO.

xml

mxe.rest.mbo.imglib.defaultformat El formato predeterminado deREST para el MBO imglib.

image

mxe.rest.os.blockaccess Bloquea el acceso a la lista deestructuras de objetos separadaspor comas.

10

mxe.rest.os.defaultformat El formato predeterminado deREST para todas las estructurasde objetos.

xml

mxe.rest.ss.defaultformat El formato predeterminado deREST para todas las respuestasde servicios estándar

xml

mxe.rest.supportedformats Los formatos soportados deREST para una respuesta.

xmljsonimage

mxe.rest.whereclausepolicy Establece la política de cláusulawhere para la consulta REST.

parse

Propiedades de integración de OSLC

Para ver una lista de propiedades de integración de OSLC, especifique mxe.oslccomo término de filtro en la aplicación Propiedades del sistema. Para laspropiedades booleanas (true/false), un valor 0 significa false y un valor 1 significatrue.

Tabla 32. Propiedades de integración de OSLC

Propiedad Descripción Valor predeterminado

mxe.oslc.dfltconsumerversion La versión de OSLC predeterminada queel consumidor utiliza.

2

188 Integración de datos con aplicaciones externas

Page 195: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 32. Propiedades de integración de OSLC (continuación)

Propiedad Descripción Valor predeterminado

mxe.oslc.dfltversion La versión de OSLC predeterminada paraun proveedor de OSLC.

2

mxe.oslc.enableprovider Habilita el proveedor OSLC. 1

mxe.oslc.idleexpiry Indica el tiempo de caducidaddesocupado.

300

mxe.oslc.webappurl El URL público del proveedor. http://localhost/maximo/oslc/

mxe.oslc.collectioncount Añade el recuento total de la colección deOSLC.

0

mxe.oslc.defaultep El punto final OSLC predeterminado. OSLCDEFAULT

mxe.oslc.defaultformat El formato predeterminado para OSLC. oslcjson

mxe.oslc.errorresponse El formato de respuesta de error deOSLC.

1

mxe.oslc.preferproviderdesc Dar preferencia a la descripción delproveedor de OSLC para los URLcombinados de registro de recursos.

false

mxe.oslc.prefersmallpreview Dar preferencia a la vista previa pequeñapara el Consumidor OSLC.

false

mxe.oslc.prettyjson JSON impreso. 0

mxe.oslc.prettyrdf RDF impreso. 0

mxe.oslc.prqueryep El punto final de consulta de registro deproveedor.

PROVIDERREGISTRY

mxe.oslc.prcreateep Es el punto final de creación del registrode proveedores.

Configuración de colas JMSLas transacciones asíncronas que se intercambian utilizando canales de publicacióno servicios empresariales utilizan colas JMS (Java Message Service) paraintercambiar datos con un sistema externo.

Para el procesamiento entrante, cuando se recibe un mensaje de servicioempresarial, el mensaje se graba inmediatamente en una cola JMS y el interlocutordel servicio se libera de la transacción. El mensaje se procesa desde la cola JMSentrante, mediante los objetos de negocios de la aplicación, y se guarda en la basede datos. Los mensajes permanecen en una cola entrante hasta que se procesancorrectamente o hasta que se suprimen de la cola. Una estrategia común para laimplementación de colas entrantes consiste en aislar las colas y los consumidoresde cola a un servidor o clúster de servidores distinto. Esta estrategia garantiza queel procesamiento de mensajes entrantes no tenga un impacto de rendimiento paralos usuarios de la aplicación.

Para el proceso saliente, los mensajes enviados utilizando un canal de publicaciónse graban una cola JMS y el usuario que ha iniciado el mensaje se libera de latransacción. El mensaje se procesa desde la cola JMS saliente que utiliza el puntofinal configurado, y se entrega a la aplicación externa. Los mensajes permanecen enla cola saliente hasta que se entregan correctamente a la aplicación externa o hastaque se suprimen de la cola.

Existen tres colas de mensajes predeterminadas:v Una cola secuencial salientev Una cola secuencial entrantev Una cola continua entrante

Integración de datos con aplicaciones externas 189

Page 196: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Una implementación de cola JMS puede operar en un solo servidor de aplicacioneso a través de un clúster de servidores de aplicaciones.

Creación y configuración de una colaPuede optar por utilizar una sola cola JMS para varios sistemas externos o crearuna cola distinta para cada sistema externo que utilice. La creación y configuraciónde colas implica varios pasos. Puede utilizar las colas predeterminadas o crearcolas adicionales, según sus necesidades de integración.

Acerca de esta tarea

Se utilizan colas distintas para dar soporte a las transacciones salientes y lastransacciones entrantes. Configure una cola para dar soporte a las transaccionesentrantes o salientes, no a ambas. Configure colas salientes para el uso con canalesde publicación y configure colas entrantes para el uso con servicios empresariales.

Procedimiento1. Cree y configure la cola de mensajes en el servidor de aplicaciones. Las colas

JMS se pueden configurar automática o manualmente en WebSphereApplication Server. Las colas JMS se deben configurar manualmente enWebLogic Server.

2. En la aplicación Sistemas externos, agregue propiedades a la cola. Puede crearcolas adicionales para satisfacer las necesidades del sistema. Si no utiliza lascolas predeterminadas, utilice un proveedor de servidor de aplicaciones para suconfiguración de cola.

3. En la aplicación Sistemas externos, configure el sistema externo y los serviciosempresariales para utilizar las colas.

Propiedades de la cola:

En la aplicación Sistemas externos, puede configurar varias propiedades para cadacola JMS.

Propiedad Descripción

Nombre JNDI de cola Hace referencia al nombre JNDI (JavaNaming and Directory Interface) que se haconfigurado en el servidor de aplicaciones.Se proporciona un valor predeterminado.

Nombre de fábrica de conexiones de cola Hace referencia al nombre de la fábrica deconexiones que se ha configurado en elservidor de aplicaciones. Se proporciona unvalor predeterminado.

Fábrica de contexto inicial Un valor que debe configurar cuando noutiliza las colas predeterminadas y no utilizaun servidor de aplicaciones proporcionado.

URL de proveedor Un valor que debe configurar cuando noutiliza las colas predeterminadas y no utilizaun servidor de aplicaciones proporcionado.

ID de usuario El ID de usuario que se configura cuando seprotege la cola en el servidor deaplicaciones.

Contraseña La contraseña que se configura cuando seprotege la cola en el servidor de aplicacionespara el ID de usuario.

190 Integración de datos con aplicaciones externas

Page 197: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Propiedad Descripción

Entrada Identifica si la cola se utiliza para el procesoentrante. Si el valor entrante es nulo, elsistema utiliza la cola para el procesosaliente.

Secuencial Identifica si la cola es una cola secuencial. Siel valor secuencial es nulo, el sistema utilizala cola para el proceso de colas continuas.

Comprimir Identifica si los mensajes se comprimencuando se graban en la cola y sedescomprimen cuando se extraen de la cola.La compresión reduce significativamente lostamaños de los mensajes. Para lacompresión, se utilizan las API (java.util.zip)Inflater y Deflater de Java estándar.

Recuento de intentos máximo Identifica cuántas veces la infraestructura deintegración intenta volver a procesar unmensaje si encuentra un error. El sistemacontinúa reintentando el mensaje hasta quese alcance el valor del recuento. El valor deesta propiedad debe establecerse en cerocuando se implementa una cola de errores.

Colas secuencialesLa cola secuencial es una cola JMS que utiliza una tarea cron de sistemapredefinida para consumir los mensajes. Los mensajes en las colas secuenciales seprocesan en orden estricto de primero en entrar, primero en salir, lo que garantizaque los mensajes se procesen en el orden en el que se han generado y recibido.

Cuando un mensaje produce un error, el sistema genera un error que puedegestionarse en la aplicación Nuevo proceso de mensajes y no procesa los siguientesmensajes de la cola hasta que se borre el error.

Puede configurar dos colas secuenciales de sistema para el proceso de mensajesentrante y salientes. Una tarea cron predefinida, JMSQSEQCONSUMER, sondea lascolas. La tarea tiene dos instancias, una que sondea la cola entrante y otra quesondea la cola saliente. Si crea colas secuenciales adicionales, puede configurarinstancias adicionales de la tarea cron para que apunten a las colas adicionales.

La tabla siguiente muestra los parámetros de tarea cron que puede configurar.

Parámetro Descripción

MESSAGEPROCESSOR Clase Java que procesa los mensajes de lacola. El sistema proporciona esta clase.

QUEUENAME Nombre JNDI de la cola, cuando la cola secrea en el servidor de aplicaciones.

SELECTOR La cláusula WHERE para configurar unainstancia de la tarea cron para procesar unsubconjunto de mensajes en la cola. Esteparámetro es opcional.

Integración de datos con aplicaciones externas 191

Page 198: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Parámetro Descripción

TARGETENABLED Asegúrese de que el valor esté en el valorpredeterminado de 0 (false). Lafuncionalidad de este distintivo esreemplazada por la funcionalidad dedonotrun. Utilice el parámetro donotrun enla infraestructura de la tarea cron paracontrolar en qué servidores se ejecuta latarea cron.

Colas continuasUna cola continua es una cola JMS con un bean controlado por mensaje (MDB)como consumidor. Una cola continua está predefinida sólo para serviciosempresariales y utiliza el procesamiento multihebra para proporcionar un mejorrendimiento del sistema. Una cola continua no garantiza el orden de procesamientode los mensajes como en el caso de una cola secuencial.

Cuando el procesamiento de mensajes causa un error que se puede gestionar en laaplicación de reprocesamiento de mensajes, el sistema genera un mensaje de errory luego continúa procesando los mensajes siguientes en la cola. Hay una colacontinua predeterminada para procesar los mensajes entrantes. Puede optar porimplementar colas continuas adicionales, según sus necesidades de integración.

Habilitación de beans de mensaje:

Los beans de mensaje del servidor de aplicaciones actúan como el consumidor demensajes desde una cola continua. Para habilitar los beans de mensaje para darsoporte a la cola continua, debe eliminar comentarios de las líneas de los archivosde despliegue XML en el servidor de aplicaciones.

Procedimiento

1. En los entornos WebSphere Application Server y WebLogic Server, descomentelas siguientes líneas de código del archivo ejb-jar.xml, ubicado en la carpeta...\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>-->

192 Integración de datos con aplicaciones externas

Page 199: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

2. Elimine los comentarios de las líneas siguientes del archivo...\applications\maximo\mboejb\ejbmodule\META-INF\ibm-ejb-jar-bnd.xmi enun entorno de WebSphere 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. Elimine los comentarios de las líneas siguientes en el archivo...\applications\maximo\mboejb\ejbmodule\META-INF\weblogic-ejb-jar.xmlen un entorno de WebLogic Server:<!-- 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. Una vez realizados los cambios en los archivos XML, debe volver a compilar elarchivo EAR y volverlo a desplegar en el servidor de aplicaciones para que loscambios surtan efecto.

Rendimiento de la cola de continua:

Para mejorar el rendimiento de la cola, puede aumentar el número de beanscontrolados por mensaje para una cola e introducir servidores de aplicacionesadicionales en un clúster. Puesto que el procesamiento de mensajes es multihebra,se pueden producir errores debido al orden aleatorio del procesamiento.

Los ejemplos siguientes describen errores que se pueden producir. En ambos casos,el procesamiento de gestión de errores de integración puede reprocesarsatisfactoriamente el error antes de que el administrador del sistema puedaexaminarlo.

Por ejemplo, carga por lotes un gran volumen de mensajes de partes y deinventario en la cola continua, y existen varios registros de inventario para elmismo número de parte. Si un mensaje de inventario para el Elemento A seprocesa antes de que se procese el mensaje de parte que agrega el Elemento A alsistema, el mensaje de inventario produce un error porque el Elemento A no existe.El procesamiento continúa con el siguiente mensaje.

Finalmente, el mensaje de la parte para el Elemento A se procesa y la Parte A seagrega al sistema. El mensaje anómalo se puede procesar entonces correctamente.En este caso, el error se corrige sin intervención manual.

Este tipo de situación se puede producir cuando se cargan mensajes relacionadosen la cola continua al mismo tiempo. Dicha situación es más probable que ocurra

Integración de datos con aplicaciones externas 193

Page 200: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

cuando el volumen de transacciones sea elevado pero también se puede producirsiempre que dos mensajes procesen datos relacionados simultáneamente.

Por ejemplo, dos mensajes intentan actualizar el mismo registro del sistema almismo tiempo. Un mensaje resulta satisfactorio y el otro falla. No obstante, elprocesamiento de gestión de errores del sistema debe procesar el segundo mensajedespués de que la primera actualización haya finalizado.

Configuración de beans de mensaje:

Las ampliaciones específicas del servidor controlan el número máximo de beansque puede crear.

Configuración de beans de mensaje en WebSphere Application Server:

De forma predeterminada, el servidor está configurado para tener cinco beanscontrolados por mensaje.

Procedimiento

1. En la consola de administración, seleccione la especificación de activación deJMS.

2. Seleccione intjmsact.3. Especifique un valor en el campo Número máximo de puntos finales

simultáneos.

Configuración de beans de mensaje en WebLogic Server:

De forma predeterminada, WebLogic Server está configurado para tener tres beanscontrolados por mensaje.

Procedimiento

1. Abra el archivo weblogic-ejb-jar.xml en un editor de texto.2. Busque las líneas de código siguientes:

<pool><max-beans-in-free-pool>3</max-beans-in-free-pool>

</pool>

3. Sustituya el valor 3 por un valor diferente si es necesario. Empiece con unnúmero relativamente bajo de beans controlados por mensaje y supervise elrendimiento.

4. Modifique el archivo para aumentar el número de beans controlados pormensaje incrementalmente hasta que esté satisfecho con el rendimiento deprocesamiento de los mensajes en la cola continua.

Qué hacer a continuación

Si el rendimiento del sistema es deficiente, puede resolver algunas cuestiones derendimiento del sistema agrupando los servidores en clúster y aislando elprocesamiento de mensajes entrantes a un clúster de servidor específico.

Almacenamiento en antememoria de mensajes:

El procesamiento de la cola continua utiliza la propiedad de Tamaño de lotemáximo, en la definición de la Especificación de activación, para controlar elnúmero de mensajes recibidos del motor de mensajería en un solo lote.

194 Integración de datos con aplicaciones externas

Page 201: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Si hay tres beans controlados por mensaje habilitados y el tamaño de lote es de 10,se pueden almacenar en memoria caché hasta 30 mensajes. Pruebe con valoresdiferentes para garantizar que el valor que establezca no afecte a los usuarios de laaplicación ni a los procesos del servidor.

Se puede procesar un número ilimitado de mensajes si se establece un valor deTamaño de lote máximo de -1 en un entorno de WebLogic Server.

Si piensa utilizar una cola de errores de WebSphere Application Server, utilice elvalor predeterminado para el tamaño de lote.

Configuración de una cola de errores para la cola continua:

Puede implementar una cola de errores en el servidor de aplicaciones que trasladeun mensaje de la cola principal a una cola secundaria cuando un mensaje resulteerróneo. A menos que su escenario de integración soporte un volumen muy bajode mensajes, configure una cola de errores para permitir el procesamiento demensajes mediante la cola continua.

Una cola continua utiliza MDB para consumir mensajes. Cuando un mensajeresulta erróneo, los MDB siguen consumiendo los mensajes erróneos, hastadespués de que los mensajes alcancen el recuento de intentos máximo configuradopara el procesamiento. La selección continua de estos mensajes consume recursosdel sistema y puede frenar, o incluso impedir, el procesamiento de otros mensajes.La configuración de una cola de errores para la cola continua ayuda a evitarretardos de rendimiento o cuellos de botella de transacciones pasando los mensajeserróneos a una cola secundaria.

Configuración de una cola de errores en WebSphere Application Server:

Puede configurar una cola continua para que tenga una cola de errorescorrespondiente. Si un mensaje encuentra un error, se mueve fuera de la colacontinua a la cola de errores, donde se cumple el número de reintentos definido enel parámetro Número máximo de entregas con error. La cola continua procesa losnuevos mensajes de cola.

Acerca de esta tarea

El proveedor del sistema debe realizar esta tarea en nombre del arrendatario.

Procedimiento

1. Configure un destino de cola de errores en el mismo miembro de bus dondereside la cola continua.

2. Configure la definición de destino de cola continua para que tenga un destinode excepción. El destino de excepción debe apuntar al destino de cola deerrores que ha definido.

3. En la cola de errores, agregue un destino de excepción que apunte a sí mismo.Los errores de la cola de errores pasan de la parte superior de la cola de erroresa la parte inferior de la cola de errores. Los mensajes con error se reintentancontinuamente.

4. Abra el archivo ejb-jar.xml en un editor de texto para habilitar la propiedadMDBDELAY. Para evitar un uso excesivo de los recursos de sistema durante elnuevo proceso de mensajes, la propiedad MDBDELAY retarda el proceso de losmensajes.

Integración de datos con aplicaciones externas 195

Page 202: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

5. Elimine el comentario de las siguientes líneas de código y establezca el valorcorrespondiente:<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>

El valor predeterminado es 30 segundos (30000 milisegundos).6. Abra el archivo ibm-ejb-jar-bnd.xmi y elimine el comentario de las siguientes

líneas de código para habilitar los beans controlados por mensajes en la cola deerrores.<!-- MEA MDB para la cola de errores<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>-->

Errores de cola continua en WebLogic Server:

La cola de WebLogic Server tiene una propiedad de reentrega que puede controlarcómo se reprocesan los mensajes erróneos. La propiedad de retardo de reentregarepresenta la hora entre el momento en que el informa de un error y el momentoen que el mensaje se vuelve a procesar.

No puede ver el mensaje en la cola durante la cantidad de tiempo que hayaespecificado en la propiedad de retardo de reentrega. El retardo de reentregamejora el rendimiento del sistema. Los mensajes que no sean mensajes erróneos sepueden procesar durante la cantidad de tiempo que definida en la propiedad deretardo de reentrega. El retardo de procesamiento se aplica al mensaje y no a lahebra que procesa el mensaje.

Si establece la propiedad de tamaño de lote a -1 (ilimitado) y la propiedad deretardo de reentrega en 30 segundos (30.000 milisegundos), los mensajes nuevos sepueden procesar en la cola. El procesamiento continúa aunque se estéreprocesando un gran número de errores.

La misma fábrica de conexiones se utiliza tanto para las colas secuenciales comopara las continuas. Para evitar problemas de procesamiento del consumidorsecuencial, establezca el valor de retardo de reentrega en la configuración de lacola de destino. No establezca la configuración del nivel de la fábrica deconexiones.

Si el número de veces que un mensaje erróneo se procesa supera el recuento deintentos configurado, se detiene el procesamiento del mensaje y éste se redirigepara la gestión de errores.

Como alternativa, puede implementar una cola de errores. Para implementar unacola de errores, debe quitar las marcas de comentario para la colas de errores enlos archivos ejb-jar.xml y weblogic-ejb-jar.xml.

Formato de mensaje de colaLos mensajes que la infraestructura de integración carga en las colas JMS tienencomponentes y formatos definidos. El cuerpo del mensaje contiene el mensaje XMLque se procesa en el sistema o se envía al sistema externo.

196 Integración de datos con aplicaciones externas

Page 203: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Cabecera de mensaje

La cabecera de mensaje puede contener el ID de mensaje JMS y valores estándarde cabecera JMS.

Cabecera Descripción

JMSMessageID Un ID de mensaje generado por el sistema.

JMSRedelivered Identifica si se ha reprocesado el mensaje.

Propiedades del mensaje

Las propiedades contienen las siguientes propiedades del proveedor JMS y de lainfraestructura de integración. Las propiedades de la infraestructura de integraciónson de tipo de datos de cadena.

Propiedad Descripción

MEAMessageID El ID de mensaje generado por lainfraestructura de integración.

destjndiname El nombre de la cola o tema donde se grabael mensaje.

INTERFACE El nombre del canal de publicación (cola desalida) y el servicio empresarial (cola deentrada).

destination El nombre del sistema externo para mensajesde salida.

SENDER El nombre del sistema externo para mensajesde entrada.

USER El nombre del usuario que está asociado conel mensaje de integración de entrada. Estevalor se puede utilizar para la seguridad deautorización, si es necesario.

compressed Indica si el mensaje está comprimido. Losvalores pueden ser true o false. El valorpredeterminado es false.

Para la descompresión se utilizan las APIInflater y Deflater de Java (java.util.zip).

uncompressed_length Almacena el tamaño de la carga útil demensaje original antes de la compresión.Este valor debe cumplir con el tipo deesquema int [xsd:int] y solamente estápresente cuando la propiedad comprimidase establece en true.

MSG_TRK_ENABLED Valor interno.

MSG_OP_MODE El nombre de punto final para los mensajesde salida. La serie fija MXJMS para losmensajes de entrada.

MSG_TRK_STORE_MSG Valor interno.

MSG_TRK_EXTSYS El nombre del sistema externo para mensajesde entrada y de salida.

Msgkeyval Una clave de mensajes de nombre de campo.

Integración de datos con aplicaciones externas 197

Page 204: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Propiedad Descripción

searchfieldval Un valor de campo de búsqueda separadopor comas.

msgoperation Indica si el canal de publicación o el servicioempresarial contiene una operación desincronización, creación, actualización osupresión.

msgstatus Indica si el mensaje tiene un valor de estadoRECEIVED, ERROR, DELETED oPROCESSED.

msgerrmsg Contiene el texto del mensaje de excepción.

Mensajes en formato de texto:

Los mensajes que la infraestructura de integración graba en una cola están, deforma predeterminada, en formato de byte. Puede utilizar la aplicación Sistemasexternos para asegurar que también se da soporte a los mensajes en formato detexto.

Para dar soporte a los mensajes en formato de texto, seleccione el recuadro deselección Texto en la ventana Agregar/modificar colas en la aplicación Sistemasexternos. Cuando una cola está configurada para dar soporte a mensajes enformato de texto, todos los mensajes posteriores que un componente de integracióngraba en la cola están en formato javax.jms.TextMessage en lugar de en el formatojavax.jms.BytesMessage predeterminado.

Cuando la cola está configurada para mensajes en formato de texto, el campoCodificación de mensaje de texto en la aplicación Sistemas externos identifica lacodificación de los mensajes en formato de texto en cualquiera de las colas deentrada configuradas para el sistema externo. Cuando no se proporciona ningúnvalor, se da por supuesto que los mensajes están codificados en UTF-8. Losmensajes que se graban en la cola de salida siempre están codificados con UTF-8.

Selectores de colasLos selectores actúan como cláusulas WHERE en el consumidor de colas JMS. Losselectores se pueden aplicar a las cabeceras de mensajes y las propiedades de unacola secuencial o continua.

La tabla siguiente lista cómo puede utilizar los selectores continuos en elconsumidor de colas JMS.

Tipo de cola Dónde identificar el selector

Cola secuencial Se especifica como una propiedad de latarea cron.

Cola continua Se especifica en el código ejb-jar.xml delbean controlado por mensaje.

Aplicar selectores divide una cola en colas más pequeñas, cada una de las cualescontiene un subconjunto de los datos que utiliza cada tarea cron o bean controladopor mensajes. Un error de un subconjunto de los datos no detiene el proceso en losotros de una cola secuencial.

198 Integración de datos con aplicaciones externas

Page 205: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Aunque los selectores proporcionan flexibilidad a la hora de separar el proceso delas transacciones, afectan el rendimiento del proceso de sondeo. Dependiendo delvolumen de transacciones, puede preferir la implementación de múltiples colas, enlugar de una cola con múltiples selectores. Con múltiples colas se suele mejorar elrendimiento.

Puede añadir la sentencia siguiente a la propiedad SELECTOR de la instanciaEQQIN de JMSQSEQCONSUMER para indicar a la tarea cron que procese lastransacciones MXPOInterface y MXPRInterface desde el sistema externocorrespondiente:SENDER=’EXTSYS1’ and INTERFACE in ('MXPOInterface’, 'MXPRInterface’)

Añada el contenido siguiente a la configuración del bean de mensajes en el archivoejb-jar.xml para indicar al bean controlado por mensajes que procese lastransacciones MXPOInterface y MXPRInterface desde el sistema externocorrespondiente:<message-selector>

SENDER=’EXTSYS1’ AND INTERFACE IN ('MXPOInterface’, 'MXPRInterface’)</message-selector>

Si dos sistemas externos envían datos a una cola secuencial de entrada, un error encualquier registro detiene el proceso de todas las transacciones de dicha cola paramantener un orden de proceso de tipo primero en entrar, primero en salir. Creemúltiples instancias de una tarea cron, con un selector para cada una que proceseun sistema externo diferente, para impedir que un error en un sistema detenga lastransacciones del segundo sistema.

Asegúrese de que las cláusulas where de los selectores identifiquen los conjuntosde transacciones exclusivos mutuamente en una cola secuencial. Incluya todas lastransacciones que se insertan en las colas para asegurarse de que todos losmensajes se procesan en el orden de primero en entrar, primero en salir.

Visualización y supresión de mensajes en una cola JMSPuede ver una lista de los mensajes en colas JMS, descargar estos mensajes paraver su contenido y puede suprimir mensajes de colas configuradas. Al ver osuprimir mensajes, puede aplicar un selector para limitar los mensajes devueltospara el procesamiento.

Acerca de esta tarea

Los mensajes que un bean controlado por mensaje está procesando actualmente auna cola continua o que una tarea cron JMS está procesando a una cola secuencialno están disponibles para verlos o suprimirlos. Puede desactivar la tarea cron paradetener el procesamiento de mensajes a una cola secuencial. Los beans controladospor mensaje procesan continuamente mensajes y el número de mensajesprocesados puede variar. A menos que inhabilite los beans controlados pormensaje, es probable que no todos los mensajes se puedan ver o suprimir. Si ve osuprime mensajes mientras los beans controlados por mensaje están habilitados, esposible que no todos los mensajes estén disponibles para el procesamiento.

Procedimiento1. En la aplicación Sistemas externos, seleccione la acción Agregar/modificar

colas.2. Seleccione una cola y pulse en el botón Ver datos en cola o en el botón

Suprimir datos en cola.

Integración de datos con aplicaciones externas 199

Page 206: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

3. Opcional: Si selecciona la opción Ver datos en cola, puede especificar unnúmero en el campo Recuento para limitar el número de registros que sedeben ver y puede marcar el campo Sólo recuento si sólo desea ver cuántosmensajes hay actualmente en la cola.

4. Opcional: Especifique uno de los selectores siguientes si desea filtrar losregistros devueltos en la ventana Ver datos en cola o en la ventana Suprimirdatos en cola:

Opción Descripción

MEAMessageID ID del mensaje (se aplica a los mensajesentrantes y salientes).

INTERFACE El nombre del servicio empresarial paramensajes entrantes o el nombre del canal depublicación para mensajes salientes.

destination El nombre del sistema externo sólo paracolas salientes.

SENDER El nombre del sistema externo sólo paramensajes entrantes.

USER El usuario proporcionado con el mensaje.Este valor es opcional y se aplica sólo a losmensajes entrantes.

Los valores del selector distinguen entre mayúsculas y minúsculas y el valordel selector se debe incluir entre comillas simples, como por ejemploINTERFACE='MXPERSONInterface'.

Configuración de colas con WebSphere MQPuede utilizar IBM WebSphere MQ para configurar y gestionar actividades decolas. La infraestructura de integración soporta WebSphere MQ Versión 6.Conceptos relacionados:“Mensajes en formato de texto” en la página 198Los mensajes que la infraestructura de integración graba en una cola están, deforma predeterminada, en formato de byte. Puede utilizar la aplicación Sistemasexternos para asegurar que también se da soporte a los mensajes en formato detexto.

Configuración de puntos finales y manejadores JMS:

Los mensajes salientes de un canal de publicación se colocan en la colapredeterminada y se debe configurar el punto final y el manejador JMS para enviarel mensaje a WebSphere MQ.

Procedimiento

1. Cree un proveedor de WebSphere MQ en WebSphere Application Server yconfigure un punto final de integración para apuntar al proveedor de la cola demensajes (MQ) utilizando:a. El nombre JNDI del destino (DESTJNDINAME)b. El nombre JNDI de la fábrica de conexiones (CONFACTORYJNDINAME)

2. Configure el punto final para que apunte a WebSphere MQ utilizando:a. El nombre JNDI del destino (DESTJNDINAME)b. El nombre JNDI de la fábrica de conexiones (CONFACTORYJNDINAME)c. El URL del proveedor (PROVIDERURL)d. La fábrica de contexto inicial (CONTEXTFACTORY)

200 Integración de datos con aplicaciones externas

Page 207: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Configurar de colas de integración y del proveedor WebSphere MQ:

Para sustituir colas de la infraestructura de integración con por colas deWebSphere MQ, configure las colas en WebSphere Application Server y agregueestas definiciones de cola en la aplicación Sistemas externos.

Procedimiento

1. Cree la cola JMS definiendo un proveedor alternativo para sustituir alproveedor predeterminado.

2. Cree una cola proxy en WebSphere Application Server utilizando el proveedorWebSphere MQ que apunta a su cola del servidor (MQ) de la cola de mensajes.

3. En el diálogo Agregar/modificar colas, en la aplicación Sistemas externos,agregue valores a los campos Nombre JNDI de cola y Fábrica de conexiónpara apuntar a la cola de proxy y a la fábrica de conexiones.

Resultados

Los mensajes salientes destinados a la cola predeterminada se entregan a la cola demensajes (MQ) y los mensajes entrantes se recuperan de la cola de mensajes (MQ).

Gestión de erroresLa infraestructura de integración soporta diversos formatos de mensaje, protocolospara intercambiar mensajes y tanto el procesamiento de mensajes síncrono comoasíncrono. La gestión de errores requiere varias opciones para satisfacer lasdiversas configuraciones de implementación que se pueden elegir.

La infraestructura de integración utiliza colas JMS como mecanismo detransferencia para los mensajes entrantes y salientes. La gestión de errores de colase inicia cuando se identifica una condición de error y se pueden ver, corregir,cancelar y reprocesar mensajes problemáticos.

Gestión de errores que no son de colaAl iniciar el procesamiento síncrono de mensajes de integración entrantes osalientes, se le notificará cualquier error en el momento de la ejecución.

La gestión de errores que no son de cola es necesaria si se produce un errorcuando se está procesando un mensaje síncrono. Para los mensajes de entrada, enlugar de confiar en una cola de errores, la infraestructura de integración respondede forma síncrona al interlocutor del proceso con un mensaje de error.La aplicaciónde llamada debe recibir la respuesta, corregir el error y reintentar la transacción.

Utilice el registro del sistema para resolver problemas de errores de transacciónsíncronos. El registro del sistema contiene la excepción de procesamiento que lainfraestructura de integración emite al interlocutor del proceso.

Gestión de errores basada en colaPuede utilizar la aplicación Nuevo proceso de mensajes para gestionar mensajes deintegración asíncronos entrantes y salientes erróneos que utilizan colas JMS.

Los errores que se producen cuando se envía un mensaje de una cola a un sistemaexterno se deben normalmente a una anomalía de comunicación o un problemacon la configuración de la base de datos al grabar en tablas de interfaz o enarchivos. Los errores que ocurren durante el proceso de entrada suelen ser elresultado de validaciones de reglas de negocio o de la lógica de proceso de entradade la infraestructura de integración.

Integración de datos con aplicaciones externas 201

Page 208: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

La cola secuencial procesa los mensajes uno por uno, en una secuencia "primero enentrar, primero en salir". Cuando la infraestructura de integración encuentra unerror al procesar un mensaje en una cola secuencial, entrante o saliente, se inicia elmecanismo de gestión de errores y el mensaje se marca como erróneo. Losmensajes posteriores de la cola no se procesan hasta que el mensaje erróneo seresuelve o se suprime. En consecuencia, sólo puede existir un error en una colasecuencial.

La cola continua sólo maneja el procesa de entrada y procesa mensajes enmodalidad multihebra. Cuando se produce un error en la cola continua, se lagestión de errores y el mensaje se marca como erróneo. La infraestructura deintegración continúa el proceso de los mensajes posteriores de la cola. Por lo tanto,pueden existir varios errores en una cola continua.

Según la configuración del sistema, la infraestructura de integración realiza variosintentos de volver a procesar el mensaje, para cualquier tipo de cola, antes dedeterminar que un error requiere intervención. El sistema también realiza lasactividades siguientes cuando encuentra un error:v Envía una notificación a una cuenta de correo electrónico especificada,

informando al destinatario de que se ha producido un error. En un entorno deIBM WebSphere Application Server, la infraestructura de integración envía unmensaje de correo electrónico adicional a la cuenta de correo electrónicoespecificada cada vez que se reinicia correctamente el servidor de aplicaciones.

v Crea un registro en la aplicación Nuevo proceso de mensajes. Crea un registroque puede visualizarse en la aplicación Nuevo proceso de mensajes. Este registroincluye el mensaje que se ha colocado en la cola.

Configuración de la gestión de erroresPara configurar la gestión de errores, debe configurar propiedades del sistema yconfigurar el sistema externo.

Configuración de las propiedades de gestión de errores:

Antes de utilizar la infraestructura de integración, configure propiedades en laaplicación Propiedades del sistema.

Procedimiento

1. Filtre la propiedad mxe.int.adminfromemail y especifique una dirección decorreo electrónico, como [email protected]. Esta dirección aparece en lasnotificaciones de error enviadas por la infraestructura de integración. Algunosservidores SMTP requieren que esta dirección tenga un formato de dirección decorreo electrónico válido; algunos servidores aceptan cualquier valor.

2. Filtre la propiedad mxe.int.admintoemail y especifique una o varias direccionesde correo electrónico para recibir notificación de errores de procesamiento demensajes. Utilice comas para delimitar varias direcciones de correo electrónico.Puede utilizar opcionalmente la propiedad de dirección de correo electrónico alnivel de cola para sustituir la dirección del administrador. Utilice esta opción sidesea especificar direcciones de correo electrónico diferentes para cada cola. Sino configura una dirección de correo electrónico, no se envía ningunanotificación de correo electrónico cuando se producen errores de procesamientoen la cola.

3. Filtre la propiedad mail.smtp.host y especifique un servidor SMTP si no se haconfigurado ninguno. Esta propiedad no es exclusiva para la infraestructura deintegración y se puede configurar para otras aplicaciones.

202 Integración de datos con aplicaciones externas

Page 209: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Configuración de la gestión de errores en el sistema externo:

Configure el sistema externo para manejar la gestión de errores.

Procedimiento

1. En la aplicación Sistemas externos, especifique un valor apropiado en el campoRecuento de intentos máximo. No hay ningún límite del número de veces queel sistema reintenta la transacción. Después del primer intento no satisfactoriode procesar la transacción, el administrador del sistema recibe una notificacióny se graba un mensaje en un archivo de errores. Este valor se establecenormalmente en 0 para las colas salientes.

2. Especifique un valor en el campo Dirección de correo electrónico si desea quese envíen mensajes de notificación a direcciones diferentes para cada cola.Puede especificar varias direcciones, delimitadas con una coma (,). El valor deesta propiedad anula el valor de la propiedad de dirección de correoelectrónico del administrador. Si no se especifica ningún valor, se envíannotificaciones de correo electrónico a las direcciones de correo electrónicoespecificadas para la propiedad de dirección de correo electrónico deladministrador.

3. Pulse Guardar.

Notificación de erroresCuando una transacción entrante o saliente causa un error en una cola, se envíauna notificación por correo electrónico al administrador del sistema sólo si hayotros errores no resueltos esperando en la misma cola. Si existen varios errores enla cola, el administrador del sistema debe resolverlos todos antes de que se envíela notificación de nuevos errores.

Un mensaje de error de correo electrónico incluye un seguimiento de la pila deerrores Java.

El mismo proceso de notificación se utiliza para todos los errores, para colascontinuas y secuenciales, para mensajes entrantes y salientes, eindependientemente de si el sistema se ejecuta en un entorno en clúster o sinclúster.

El ejemplo siguiente describe la notificación de error para una cola entrantecontinua que contiene diez mensajes. Los cuatro primeros mensajes se procesancorrectamente y se produce un error en el quinto mensaje. Según el valor queestablezca para la propiedad Recuento de intentos máximo para el sistema externo,el mensaje se puede intentar una o varias veces. Si el mensaje sigue provocando unerror, se envía una notificación por correo electrónico al administrador del sistemay se procesan los mensajes posteriores de la cola. Si se produce otro error en elséptimo mensaje, no se enviará otra notificación de correo electrónico si eladministrador del sistema no ha resuelto el error original. Si el administrador delsistema resuelve el error original y no queda ningún error pendiente, se enviaráuna notificación de correo electrónico.

Si se encuentra el error en una cola secuencial, el procesamiento será el mismo queen una cola continua salvo que el sistema no procesará los mensajes posterioreshasta que se resuelva el mensaje con el error original.

Integración de datos con aplicaciones externas 203

Page 210: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Sólo pueden existir varios errores en la cola entrante continua. En un entorno enclúster, el administrador del sistema puede recibir una notificación de error decorreo electrónico por servidor de aplicaciones, según la temporización de lastransacciones erróneas.

Se puede producir una condición de excepción poco común para los mensajessalientes cuando un mensaje se guarda en la cola pero la confirmación de latransacción en la cola falla. Esta excepción se puede producir porque no hadisponible una conexión de base de datos al almacén de datos JMS. Si se produceesta excepción, se envía una notificación y el mensaje de error es visible en laaplicación Nuevo proceso de mensajes con un estado de ERRORJMS oGUARDADO. Dado que el mensaje no se ha guardado satisfactoriamente en lacola, no se puede establecer el estado del mensaje en REINTENTAR, pero puedeprocesar el mensaje desde la aplicación.

Nuevo proceso de mensajesEn la aplicación Nuevo proceso de mensajes, puede gestionar mensajes marcadoscon un error realizando acciones como cambiar el estado del mensaje, corregir elmensaje o suprimirlo de la base de datos.

Si el seguimiento de mensajes está habilitado, utilice la aplicación Seguimiento demensajes para determinar qué mensajes de los que se realiza el seguimiento estánmarcados con un error. Si el seguimiento de mensajes no está habilitado, puedecomprobar si hay errores de transacción en la aplicación Nuevo proceso demensajes.

Valores de estado de los mensajes:

Para cambiar el estado de un mensaje, seleccione la acción Cambiar estado en laaplicación Nuevo proceso de mensajes. El sistema designa un estado a cadamensaje para indicar si está listo para su proceso.

Un mensaje puede tener los estados REINTENTAR o SUSPEND:

Estado Descripción

REINTENTAR El mensaje está preparado para que elsistema vuelva a procesarlo.

SUSPEND El mensaje no está preparado para que elsistema vuelva a procesarlo.

El estado REINTENTAR es el estado predeterminado para los mensajes señaladoscon un error. Hasta que corrige el problema de proceso, el sistema sigueprocesando de nuevo el mensaje de acuerdo con el recuento de reintentos de colaconfigurado. Al cumplir la condición de recuento de reintentos, el sistema cambiael estado de los mensajes a SUSPEND.

Puede detener el proceso de nuevo de los mensajes cambiando el estado de losmensajes a SUSPEND. El estado SUSPEND impide que el sistema procese denuevo los mensajes señalados y que actualice las tablas de base de datos delsistema.

Mensajes XML de error:

Puede revisar el mensaje XML que se genera cuando se produce un error y puedemodificar el contenido del mensaje.

204 Integración de datos con aplicaciones externas

Page 211: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Al gestionar un error en la aplicación Nuevo proceso de mensajes, puede ver lainformación siguiente:v El campo Datos de error contiene el mensaje de error.v El contenido del mensaje incluye el mensaje original que se ha colocado en la

cola y está causando un error. Puede editar este elemento.v Si está disponible, el registro interno contiene la representación XML del mensaje

en el momento en que se produjo el error. No puede editar el registro interno,pero puede utilizarlo para ver si el proceso de integración ha cambiado elmensaje original antes de que se produjera el error.

El registro interno representa la estructura de objeto creada durante el servicioempresarial y el proceso de salidas de usuario. Un registro interno sólo estádisponible para las transacciones entrantes, y sólo cuando el servicio empresarial yel proceso de salidas de usuario se ha completado satisfactoriamente. Si un registrointerno está disponible, se proporciona únicamente para su información y nopuede cambiarlo.

A continuación se muestra un ejemplo de un mensaje XML de error:<?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 continuación se muestra un ejemplo de un mensaje 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>

Errores críticos:

Los errores críticos son excepciones de procesamiento que el proceso de correcciónde errores de la infraestructura de integración no puede reintentar.

Pueden producirse excepciones de procesamiento de transacciones cuando haydatos incorrectos, como caracteres especiales, en el archivo XML. Para corregir un

Integración de datos con aplicaciones externas 205

Page 212: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

error crítico, debe eliminar los datos incorrectos del archivo XML de errores. Puedever datos incorrectos asociados con un error crítico en la ficha principal de laaplicación Nuevo proceso de mensajes.

Corrección de errores:

En la aplicación Nuevo proceso de mensajes, puede volver a procesar un mensajeerróneo o puede suprimir el mensaje de la base de datos.

Cómo volver a procesar un mensaje editado:

En la aplicación Nuevo proceso de mensajes puede visualizar, modificar y volver aprocesar los mensajes. Una vez editado el mensaje XML de error, puede guardar ocancelar los cambios sin volver a procesar el mensaje.

Acerca de esta tarea

Solo puede editar los mensajes en estado SUSPEND. Si el mensaje tiene el estadoREINTENTAR, el contenido del mensaje es de solo lectura.

Procedimiento

1. En la aplicación Nuevo proceso de mensajes, seleccione el mensaje que deseamodificar y pulse el icono Detalles de mensaje.

2. En la ventana Datos de error, realice los cambios necesarios en el mensaje.3. Pulse Proceso si desea volver a procesar el mensaje. Puede pulsar en Guardar

para guardar los cambios sin volver a procesar el mensaje o bien pulsar enCancelar para descartar los cambios realizados.

Resultados

Si el proceso se lleva a cabo de forma satisfactoria, la aplicación Nuevo proceso demensajes realiza las tareas siguientes:v Suprime el registro en la tabla de mensajes de error.v Actualiza los atributos DELETEFLAG, CHANGE BY y CHANGE DATE en la

tabla de estados de error

Qué hacer a continuación

En la ventana Detalles de mensaje, renueve la lista de mensajes señalados con unerror. Si el mensaje se ha reprocesado satisfactoriamente, se elimina de la lista.

Supresión de mensajes:

Puede suprimir mensajes de la cola de mensajes de error. Después de suprimir unmensaje, no se puede volver a procesar.

Procedimiento

1. En la aplicación Nuevo proceso de mensajes, seleccione los registros de mensajeque desea suprimir.

2. Seleccione la acción Suprimir mensaje.3. Pulse Aceptar.

206 Integración de datos con aplicaciones externas

Page 213: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Resultados

Cuando se suprime un mensaje, el registro se suprime de las tablasMAXINTERRORMSG y MAXINTERROR. La aplicación renueva el conjunto deresultados y omite el listado de mensajes suprimidos en la ficha principal de laaplicación Nuevo proceso de mensajes.

Actualizar mensajes:

Puede utilizar el icono Actualizar de la aplicación Nuevo proceso de mensajes paraactualizar la lista de mensajes. Al actualizar la lista de mensajes, puede comprobarel estado de listados específicos de mensajes.

Si el nuevo proceso de mensajes resulta satisfactorio, la aplicación omite loslistados de mensajes aplicables. Si se suprime un mensaje, la aplicación omite ellistado de mensajes suprimidos.

Gestión de errores de la importación de datos basada en archivoLa infraestructura de integración soporta la gestión de errores con la aplicaciónNuevo proceso de mensajes, que permite examinar, corregir, reprocesar y suprimirmensajes que producen errores cuando se procesan desde una cola entrante.Cuando los datos se importan de un archivo XML o un archivo sin formato, haydisponible una segunda opción que gestiona los errores utilizando un archivodescargado en lugar de la aplicación Nuevo proceso de mensajes.

La gestión de errores basada en archivo es beneficiosa cuando se importa un grannúmero de mensajes que pueden causar un gran número de errores. La gestión deun gran número de errores en formato de archivo puede ser más fácil y rápida quegestionarlos individualmente en la aplicación Nuevo proceso de mensajes.Conceptos relacionados:“Exportación e importación de datos basados en archivo” en la página 233El administrador de integración puede iniciar la exportación e importación dedatos desde dentro de la aplicación Sistemas externos para permitir, por ejemplo,la integración de datos mediante archivos. El proceso de importación incluye lacapacidad de ver una vista previa de una carga de datos de un archivo paravalidar los datos antes de guardarlos en la base de datos. El proceso deimportación también incluye una opción para gestionar errores resultantes de lacarga del archivo en el mismo formato de archivo que el archivo importado.

Gestión de errores basada en archivos:

Puede utilizar la gestión de errores basada en archivos con la función deimportación de datos. La gestión de errores basada en archivos permite identificartodos los mensajes de integración marcados con un error y descargar un archivocompleto que contiene todos los errores. El archivo descargado está en un formatocoherente con el archivo utilizado para la importación.

Para configurar la gestión de errores basada en archivos, en la ventana Importardatos, seleccione la casilla de verificación Gestión de errores basada en archivos.

Cuando seleccione la casilla de verificación Gestión de errores basada en archivosy deje sin seleccionar la casilla de verificación Presentación preliminar deimportación, recibirá un mensaje del sistema después de que se procesen losmensajes entrantes satisfactoriamente en la cola.

Integración de datos con aplicaciones externas 207

Page 214: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

La lógica de proceso de entrada identifica errores de proceso en cualquiera de losmensajes del archivo de origen y hace que estos mensajes fallidos estén disponiblespara descarga en un archivo reprocesable. La aplicación Nuevo proceso demensajes proporciona un recurso para descargar el archivo reprocesable.

Si se selecciona la casilla de verificación Gestión de errores basada en archivos,significa que cualquier mensaje de integración marcado con un error sólo estarádisponible en el archivo reprocesable y que no aparecerá en la sección de mensajesde la aplicación Nuevo proceso de mensajes.

Configuración de la gestión de errores en tareas cron de importación de datos:

Puede definir el parámetro ISFILEEXTRACT en las tareas cron XMLFILECONSUMERy FLATFILECONSUMER para identificar el mecanismo de gestión de errores quedesea utilizar.

La tabla siguiente contiene los valores posibles para el parámetro ISFILEEXTRACT:

Valor Mecanismo de gestión de errores

0 La gestión de errores se lleva a cabo en laaplicación Nuevo proceso de mensajes.

1 La gestión de errores basada en archivos selleva a cabo en la ventana Importar datos yen el archivo reprocesable.

La gestión de errores basada en archivos implica que los mensajes de integraciónseñalados con un error solo están disponibles en el archivo reprocesable, y no sevisualizan en la sección de mensajes de la aplicación Nuevo proceso de mensajes.

Información extraída por la gestión de errores basada en archivos:

La gestión de errores basada en archivos ofrece la posibilidad de descargar unarchivo reprocesable que contiene todos los mensajes de error originados desde unúnico archivo de entrada.

La tabla siguiente contiene la información disponible en la sección Extracción deerrores de la aplicación Nuevo proceso de mensajes.

Campo Descripción

Archivo deimportación

Nombre del archivo de origen que ha generado el archivo que se puedeprocesar de nuevo.

Servicioempresarial

Nombre del servicio empresarial que se ha utilizado para importar elarchivo de origen.

Sistemaexterno

Nombre del sistema externo que se ha utilizado para importar el archivo deorigen.

Fecha deimportación

Fecha y hora en que el proceso de importación de datos ha iniciado elproceso del archivo de origen.

Recuentoimportado

Número total de mensajes importados del archivo de origen original.

Recuentoprocesado

Número de mensajes procesados satisfactoriamente.

Recuento deerrores

Número de mensajes que tienen errores.

208 Integración de datos con aplicaciones externas

Page 215: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Campo Descripción

Formato dearchivo

Formato del archivo de origen.

Disponibleparaextracción

Identifica si el proceso entrante del archivo de origen se ha completado.

Icono deextracción

Botón de acción que inicia el proceso de descarga de archivo. Paragarantizar que el mecanismo de importación ha procesado completamente elarchivo de origen, los archivos sólo están disponibles para la descargacuando la suma del recuento de errores y el recuento procesado es igual alrecuento importado.

Icono desupresión

Botón de acción que suprime el registro seleccionado de la tabla Extracciónde errores. Sólo puede suprimir registros de tabla si la suma del recuento deerrores y el recuento procesado es igual al recuento importado.

Descarga de archivos reprocesables:

Puede descargar un archivo reprocesable y solucionar los errores de procesamientoidentificados en el archivo. A continuación, puede intentar volver a cargar losarchivos reprocesables sin eliminar nada de la información de descripción delmensaje de error que se incluye en el archivo.

Procedimiento

1. En la aplicación Nuevo proceso de mensajes, identifique el archivo de origendel que descargará sus errores correspondientes.

2. Verifique que el proceso de importación de datos haya procesadocompletamente el archivo de origen. La suma del campo de recuento de erroresy la del campo de recuento de archivos procesados deben coincidir con la delcampo de recuento de archivos importados.

3. Pulse en el icono Descargar.4. Guarde el archivo reprocesable en el cliente o en una ubicación accesible del

servidor de archivos.

Formato de archivo reprocesable:

Cuando descarga el archivo reprocesable, se proporciona en el mismo formato queel archivo de entrada original. Si utiliza el formato de archivo plano, el archivoutiliza el mismo delimitador y calificador de texto. El nombre de archivopredeterminado para el archivo reprocesable es<IDArchivoExclusivo>_<NombreArchivoOriginal>.<ExtensiónArchivoOriginal>

Ejemplo de un archivo reprocesable XML

Un archivo reprocesable basado en un archivo XML, incluye un elemento adicionalen el MBO principal de la estructura de objeto original. Por ejemplo, un archivoreprocesable generado en función de la información de MXASSET incluye elelemento MAXINTERRORMSG como parte de los elementos de activos.<?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>

Integración de datos con aplicaciones externas 209

Page 216: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

<ASSETTAG /><ASSETTYPE />.........<WARRANTYEXPDATE>2020-12-24T00:00:00-05:00</WARRANTYEXPDATE><YTDCOST>0.0</YTDCOST><MAXINTERRORMSG>

The following error occurred while processing ASSET.BMXAA4147E -Item set error1 does not exist.

</MAXINTERRORMSG></ASSET>.........

</MXASSETSet></SyncMXASSET>

Ejemplo de un archivo reprocesable de formato plano

Los archivos reprocesables que siguen una estructura de archivo plano incluyenuna columna adicional. Por ejemplo, un archivo reprocesable generado en funciónde la información de MXASSET incluye la columna MAXINTERROR al final de laestructura de registros original:EXTSYS1,MXASSETInterface,,ENASSETNUM,AS_DESCRIPTION,AS_DESCRIPTION_LD,HIERARCHYPATH,AS_SITEID,MAXINTERRORMSGT-SP500_error,autospray,,,TEXAS,The following error occurred while processing ASSET.BMXAA4049E -The value specified T-SP500_error exceeds the maximum field length.

Supresión de archivos reprocesables:

No puede suprimir permanentemente los datos que están disponibles parareprocesar como un archivo.

Procedimiento

1. En la aplicación Nuevo proceso de mensajes, identifique la fila de datosreprocesables que desee suprimir.

2. Pulse en el icono Suprimir.

Gestión de errores de tablas de interfazLa tabla de interfaz se puede utilizar para el intercambio de datos entrantes ysalientes. Se pueden producir errores al grabar datos entrantes de una tabla deinterfaz a una cola o datos salientes de una cola a una tabla de interfaz.

Si la tarea cron que obtiene un mensaje saliente de una cola encuentra un error, elmensaje permanece en la cola hasta que se soluciona la condición de error. Loserrores se pueden producir por los motivos siguientes:v La tabla de interfaz no existe.v Hay error de base de datos debido a la falta de espacio.v El contenido del mensaje, definido por la estructura de objeto, se ha modificado

pero la tabla de interfaz no se ha vuelto a crear para reflejar el formato delmensaje nuevo.

Cuando un mensaje saliente llega a una tabla de interfaz, la aplicación externa sedebe encargar de recuperar dichos datos y gestionar errores basados en suimplementación de integración.

210 Integración de datos con aplicaciones externas

Page 217: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

La tarea cron que graba mensajes entrantes en una cola puede encontrarse conerrores por los motivos siguientes:v La cola JMS está desactivada o no hay espacio libre disponible.v El nombre del servicio empresarial o del sistema externo no es válido.v El servicio empresarial no está habilitado para el sistema externo.v El sistema externo no está habilitado.

Cuando se produce un error durante el procesamiento de la tabla de interfazentrante, el programa de sondeo graba el rastreo de la excepción en la columnaIMPORTMESSAGE de la tabla de cola MXIN_INTER_TRANS. Para el primer errorde la tabla de cola MXIN_INTER_TRANS, el sistema envía una notificación decorreo electrónico al administrador. Puede resolver la condición de erroractualizando la fila de datos en MXIN_INTER_TRANS, por ejemplo, corrigiendo elvalor del nombre de sistema externo, o actualizando los datos de configuración enla aplicación, por ejemplo, marcando el servicio empresarial como habilitado.

Después de que la tarea cron proceso registros posteriores de la tabla de colaMXIN_INTER_TRANS, cambia a un estado inactivo basado en los intervalos deprocesamiento de la tarea cron definidos. Cuando se reanuda el procesamiento, latarea cron intenta procesar los registros erróneos, así como los registros nuevosagregados a la tabla de cola MAX_INTER_TRANS.

Después de enviar una notificación de error, la tarea cron no envía la notificaciónde errores adicionales si la tabla de cola contiene una transacción marcada comoerrónea. Se supone que la persona a la que se notificó el error inicial ve y corrigeerrores adicionales cuando se examina la tabla de cola. Después de que se corrijantodos los errores actuales, la tarea cron envía una notificación cuando encuentra unerror nuevo.

Cualquier error que se produzca después de que la tarea cron grabe correctamenteun mensaje de tabla de interfaz en una cola entrante se gestiona mediante elproceso de manejo de errores para las colas.

Causas habituales de erroresLos errores durante el proceso de mensajes en la cola saliente se dan cuando existeun problema al entregar un mensaje al punto final especificado para el sistemaexterno. Normalmente, los errores durante el proceso de mensajes en una colaentrante están relacionados con una validación de regla de negocio o en el procesode entrada del servicio empresarial.

Durante el proceso de salida, los problemas habituales son alteraciones en elvínculo de comunicación con la aplicación externa, problemas con el espacio detabla de base de datos o bien problemas de espacio de archivos en la aplicaciónexterna. Normalmente, para resolver un problema de salida, no es necesariomodificar el mensaje XML.

La tabla siguiente describe los mensajes de error más habituales y proporcionasugerencias para corregir los errores. Al corregir un error en el mensaje XML, esposible que los datos entre el sistema de envío y el sistema receptor dejen decoincidir.

Integración de datos con aplicaciones externas 211

Page 218: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tipo de error Descripción Acciones

Error de secuencia La causa proviene deproblemas de secuenciasentre mensajes. El sistemadetiene el proceso demensajes cuando un registrohace referencia a otro registroque tiene un estado dependiente.

Este error se aplica paraasegurar que los registros seprocesan en el ordencorrecto. En función de ladirección de la transacciónde mensajes y la lógica deproceso que se aplica, elproceso puede autocorregirel error cuando el registroque estaba en el estadopendiente se ha procesado.

Error de datos Se produce porque los datoso el registro no existen en labase de datos del sistema, yno forma parte de losmensajes entrantes en la cola.

Agregue los datos que faltanen la base de datos delsistema.

Error de comunicación La causa proviene deproblemas de comunicacióncon el sistema externo poranomalías del sistema o porproblemas en la red.

Restablezca la comunicacióncon el sistema externo.

Error de mensaje La causa proviene de valoreserróneos de datos demensaje.

v Cambie el estado detransacción a SUSPEND.

v Corrija el mensaje XML deerror.

v Cambie el estado detransacción aREINTENTAR paraprocesar de nuevo latransacción.

Búsqueda de erroresCuando reciba una notificación de error, busque el mensaje XML de la aplicaciónNuevo proceso de mensajes. En función del tipo de cola (secuencial o continua), elnúmero de mensajes de la cola puede ser cero, uno o más en la aplicación Nuevoproceso de mensajes para una cola individual.

No existen mensajes con error

Si no existe ningún mensaje con error en la aplicación Nuevo proceso de mensajes,el mensaje se ha vuelto a intentar y no ha vuelto a encontrarse el error. El mensajede error se ha suprimido cuando el mensaje se ha procesado correctamente.

Por ejemplo, se produce un error en un mensaje de recepción de entrada debido auna cuenta incorrecta del Libro Mayor (LM). Después de que se produzca el error,un usuario en línea entra dicha cuenta LM en el sistema. El mensaje se vuelve aprocesar correctamente y los datos se guardan.

En otro ejemplo, una transacción de salida encuentra un error de comunicaciones.Cuando se resuelve el problema de comunicaciones, el mensaje se envía al sistemaexterno y se suprime el mensaje con error.

212 Integración de datos con aplicaciones externas

Page 219: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Existen uno o varios mensajes con error

Cuando se produce un error en una cola secuencial (de entrada o salida), elproceso de la cola se detiene hasta que se resuelve el error.

Cuando se produce un error en una cola continua, el proceso de la cola continúa yse pueden producir errores adicionales antes de que se resuelva el error inicial.Pueden existir varios mensajes con error en la aplicación Nuevo proceso demensajes.

Seguimiento de mensajesLa aplicación Seguimiento de mensajes realiza un seguimiento y visualiza elhistorial de procesamiento de mensajes de canal de publicación y de mensajes deservicios empresariales basados en cola.

La aplicación Seguimiento de mensajes funciona con la aplicación Nuevo procesode mensajes. Utilizando la aplicación Seguimiento de mensajes, puede determinarqué mensajes están marcados con un error. Luego puede seleccionar un mensajeerróneo y acceder a la aplicación Nuevo proceso de mensajes para llevar a cabo laacción apropiada para corregir los datos erróneos.

Detalles de mensajes:

Cuando habilita el seguimiento de mensajes, la infraestructura de integraciónescribe todos los mensajes procesados en la tabla MAXINTMSGTRK. Se asigna unestado a cada mensaje, que representa su posición actual en el ciclo de procesobasado en cola. Los eventos de mensaje individuales se visualizan en la ventanaDetalles de mensaje.

Cuando habilita el seguimiento de mensajes, la lógica de seguimiento de mensajesno identifica los mensajes de cola que existían antes de habilitar la función.Cuando inhabilita el seguimiento de mensajes, los mensajes de cola que existíanantes de inhabilitar la función se identifican, pero nos mensajes nuevos no.

Los mensajes tienen los atributos siguientes, y los valores se asignan en función delos datos del canal de publicación o del servicio empresarial de origen:v Modo de integración: el nombre del modo de integración que se utiliza al

procesar el mensaje. Para los mensajes entrantes, el sistema asigna un valorpredeterminado MXJMS. Para los mensajes salientes, el sistema asigna el nombredel punto final que se utiliza al procesar el mensaje.

v Operación: la operación de proceso que el sistema aplica al mensaje del que serealiza un seguimiento; esta operación puede ser SYNC, UPDATE, QUERY,DELETE, CREATE y PUBLISH.

v Sistema: el nombre del sistema externo asociado con el servicio empresarial o elcanal de publicación.

v Componente de integración: el nombre del servicio empresarial o del canal depublicación.

v Adaptador: el nombre del adaptador asociado con el servicio empresarial o elcanal de publicación.

v Nombre de cola: el nombre de la cola que la infraestructura de integraciónutiliza para procesar el mensaje.

Los atributos siguientes son valores asignados durante la creación del registro detransacción.

Integración de datos con aplicaciones externas 213

Page 220: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Atributo Valor

Fecha y hora de recepción La fecha y la hora en la que se ha recibido elmensaje en la cola.

ID de mensaje Identificador de mensaje exclusivo asignadopor la infraestructura de integración.

ID de búsqueda Identificador de mensaje asignado por unaaplicación externa que se utiliza en labúsqueda de mensajes.

ID de mensaje externo Identificador de mensaje exclusivo asignadopor una aplicación externa.

Los atributos siguientes tienen valores dinámicos que cambian en función de loseventos de transacción.

Atributo Valor

Estado actual El estado de proceso más actual para elmensaje del que se realiza un seguimiento.

Estado El estado asociado con el evento de mensajeindividual en el historial de transacción.

Fecha de estado La fecha de estado para el evento demensaje individual en el historial detransacción.

Error El mensaje de error para el evento demensaje de error individual en el historial detransacción.

Valores de estado de los mensajes:

Todos los mensajes basados en la cola entrante y saliente registrados en laaplicación Seguimiento de mensajes tienen un valor de estado que indica suposición en el ciclo de proceso de transacciones.

El estado de seguimiento de mensajes indica si el mensaje se ha recibido oprocesado correctamente. El estado de seguimiento de mensajes también indica siel mensaje se ha suprimido o se ha marcado con un indicador de error.

Estado de los mensajes entrantes

Los mensajes entrantes pueden tener los valores de estado siguientes:

Estado Descripción

ERROR El proceso del mensaje ha fallado porproblemas de validación.

SUPRIMIDO El mensaje se ha suprimido de la cola.

PROCESADO El mensaje se ha procesado correctamente.

RECIBIDO El mensaje se ha escrito correctamente en lacola entrante.

214 Integración de datos con aplicaciones externas

Page 221: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Estado de los mensajes salientes

Los mensajes salientes pueden tener los valores de estado siguientes:

Estado Descripción

ERROR El proceso del mensaje ha fallado porproblemas de validación.

SUPRIMIDO El mensaje se ha suprimido de la cola.

PROCESADO El mensaje se ha procesado correctamente.

RECIBIDO El mensaje se ha escrito correctamente en lacola saliente.

Eventos de mensajes:

La aplicación Seguimiento de mensajes rastrea y muestra los eventos de proceso detransacción basados en colas entrantes y salientes. Los eventos de proceso detransacciones hacen que el sistema actualice la tabla MAXINTMSGTRK.

Los siguientes atributos de la tabla de mensajes se actualizan según el tipo deevento:v STATUSv STATUSDATETIMEv ERRORMSGR

Los siguientes eventos entrantes y salientes actualizan la tabla MAXINTMSGTRK:

Tabla 33. Eventos entrantes y salientes rastreados

Evento Detalles

El mensaje se graba en una cola Se crea un registro en la tabla deseguimiento de mensajes la primera vez quela infraestructura de integración graba elmensaje en la cola. Cuando el mensaje segraba satisfactoriamente en la cola, el estadodel registro del mensaje se establece enRECEIVED.

Si la infraestructura de integración encuentraun error mientras graba un mensaje entranteen la cola, envía un mensaje al interlocutordel proceso detallando la causa del error.

Error en el proceso de mensajes El registro existente en la tabla deseguimiento de mensajes. Cuando el sistemade gestión de activos encuentra un error deproceso, actualiza el estado del registro demensajes como ERROR. Si envía el mensajede nuevo y vuelve a aparecer un error deproceso, el sistema de gestión de activosmantiene el estado del mensaje en ERROR.

Integración de datos con aplicaciones externas 215

Page 222: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 33. Eventos entrantes y salientes rastreados (continuación)

Evento Detalles

Proceso de fin de cola Los siguientes eventos de proceso detransacciones actualizan el registro existente:

v El sistema de gestión de activos finalizacorrectamente el proceso del mensaje yactualiza el estado de registro del mensajecomo PROCESSED. Como el ciclo delproceso ha finalizado, no se realizan másactualizaciones en la tabla de seguimientode mensajes.

v Si suprime el mensaje de la cola, elsistema de gestión de activos establece elestado de registro del mensaje comoSUPRIMIDO. La tabla de seguimiento demensajes ya no se actualiza.

Configuración del seguimiento de mensajes:

Puede realizar un seguimiento de los mensajes que se publican mediante loscanales de publicación o que se reciben desde los servicios empresariales.

En las aplicaciones Canales de publicación y Servicios empresariales, puedeconfigurar las siguientes funciones de seguimiento de mensajes:v Habilitar o inhabilitar el seguimiento de mensajes.v Almacenar mensajes de transacción en la base de datos junto con los detalles del

seguimiento.v Especificar los datos de mensajes que utiliza la función de búsqueda de la

aplicación Seguimiento de mensajes mediante una expresión XPATH.v Identificar de forma exclusiva los mensajes con un valor de ID individual

utilizando una expresión XPATH.v Identificar mensajes con un valor de ID de búsqueda utilizando una expresión

XPATH.

Las expresiones XPATH asociadas con los valores de ID de mensaje externo y losvalores de ID de búsqueda pueden identificar múltiples nodos de un archivo XML.En este caso, los valores de ID de mensaje e ID de búsqueda se registran como unalista de valores separados por comas. Las longitudes de los campos de base dedatos se pueden aplicar a los campos de ID externo e ID de búsqueda. Si esnecesario, puede ajustar la longitud de estos campos en la aplicaciónConfiguración de base de datos.

Mensajes almacenados

Al configurar el seguimiento de mensajes, los mensajes y los detalles deseguimiento de mensajes se guardan en la base de datos y se pueden ver en laaplicación Nuevo proceso de mensajes.

ID de seguimiento de mensajes externos

Cada mensaje de entrada tiene un identificador de mensaje externo que sealmacena en la tabla MAXINTMSGTRK. Con la aplicación Seguimiento demensajes, puede utilizar este ID de mensaje externo para localizar mensajes

216 Integración de datos con aplicaciones externas

Page 223: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

específicos. La sintaxis que utilice para identificar un nodo de mensajes debe seruna expresión XPATH totalmente calificada.

Para buscar todos los mensajes para el servicio empresarial MXPERSONInterface,especifique la siguiente expresión XPATH totalmente calificada en el campo ID demensaje externo:/{http://www.ibm.com/maximo}SyncMXPERSON/@messageID

Cuando se recibe un mensaje de entrada de múltiples sustantivos, lainfraestructura de integración utiliza la expresión XPATH en el ID de mensajeexterno para identificar el mensaje. Si la expresión XPATH apunta a un elementoincluido en cada uno de los sustantivos del mensaje de entrada, la infraestructurade integración crea una lista de identificadores externos de múltiples sustantivosseparados por comas.

ID de búsqueda

Si se especifica una expresión XPATH para identificar nodos, la infraestructura deintegración puede realizar búsquedas eficaces de múltiples sustantivos. El sistemaalmacena el identificador de búsqueda en la tabla MAXINTMSGTRK.

Para buscar todos los mensajes para el servicio empresarial MXPERSONInterface,cree la siguiente expresión XPATH totalmente calificada como el ID de búsqueda:

/{http://www.ibm.com/maximo}SyncMXPERSON/{http://www.ibm.com/maximo}MXPERSONSet/{http://www.ibm.com/maximo}PERSON/{http://www.ibm.com/maximo}PERSONID

Cuando se recibe un mensaje de entrada de múltiples sustantivos, lainfraestructura de integración utiliza la expresión XPATH en el ID de búsquedapara identificar el mensaje. Si la expresión XPATH apunta a un elemento incluidoen cada uno de los sustantivos del mensaje de entrada, la infraestructura deintegración crea una lista de identificadores de búsqueda de múltiples sustantivosseparados por comas.

Habilitación del seguimiento de mensajes:

Habilite el seguimiento de mensajes para las transacciones salientes en laaplicación Canales de publicación y para las aplicaciones entrantes en la aplicaciónServicios empresariales.

Procedimiento

1. En la aplicación Canales de publicación o en la aplicación Serviciosempresariales, seleccione el canal o el servicio que procesa los mensajes deintegración.

2. Seleccione la acción Seguimiento de mensajes.3. En la ventana Configuración de seguimiento de mensajes, seleccione la casilla

de verificación Habilitar seguimiento de mensajes.4. Opcional: Seleccione la casilla de verificación Almacenar mensaje para

almacenar los mensajes de transacción.5. Opcional: En el campo ID de mensaje externo, especifique una o varias

expresiones XPATH para ubicar mensajes específicos.6. Opcional: En el campo ID de búsqueda, especifique una o varias expresiones

XPATH para buscar mensajes.

Integración de datos con aplicaciones externas 217

Page 224: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Configuración de clústeresLa infraestructura de integración puede proporcionar servicios de integración através de un clúster de servidores de aplicaciones. Si la cola continua de un soloservidor es inadecuada para su volumen de mensajes, puede añadir unidadescentrales de proceso, hardware y una configuración en clúster para mejorar elrendimiento de procesamiento de mensajes.

Al implementar un clúster de servidores, puede utilizar varios servidoressimultáneamente para procesar mensajes entrantes. Estos mensajes se procesan enlas colas continuas utilizando beans controlado por mensaje (MDB). Lasconfiguraciones en clúster facilitan el procesamiento de mensajes en volúmenesgrandes.

Colas JMS en un clúster de servidoresEn una configuración de clúster, las colas JMS están asociadas con un miembro delclúster de servidores y el acceso a las colas lo proporciona el servicio JNDI (JavaNaming and Directory Interface).

El servicio JDNI está disponible en todos los miembros del clúster.

Mensaje XML(servicio

empresarial)

HTTP / EJB / SOAP

Compensador de carga

ServidorApl. 1

Productorde JMS

ServidorApl. 2

Productorde JMS

ServidorApl. 3

Productorde JMS

Colacontinua de

JMS

ServidorApl. 1

Consumidorde JMS

ServidorApl. 2

Consumidorde JMS

ServidorApl. 3

Consumidorde JMS

Servicio empresarial

Objetos de negocios / BD

Proceso multihebra através de varios serv. deapl. y MDB comoConsumidores

Proceso secuencial (FIFO)de una hebra a través detarea CRON comoConsumidor

Colasecuencial

de JMS

Todos los miembros del clúster pueden producir mensajes en la cola secuencial.Una tarea cron de una sola hebra lee los mensajes de la cola secuencial parapermitir el procesamiento "primero en entrar, primero en salir".

La cola continua tiene varias hebras en el lado de consumidor para permitir elprocesamiento de grandes volúmenes de mensajes. En esta cola, el orden deprocesamiento de los mensajes no se tiene en cuenta.

218 Integración de datos con aplicaciones externas

Page 225: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Los mensajes de servicio empresarial que utilizan la cola secuencial se procesan enun orden secuencial estricto. El procesamiento de los mensajes es de una solahebra. La agrupación en clúster no afecta considerablemente al rendimiento delprocesamiento de mensajes mediante la cola secuencial.

Cola continua en un clúster de servidores de aplicaciones:

En un entorno en clúster, puede fijar la cola JMS continua a un miembro delclúster.

El diagrama siguiente muestra un ejemplo de una configuración de clúster en unservidor de aplicaciones. La cola continua recibe mensajes del productor JMS yprocesa los mensajes de consumidor JMS.

Archivo XML,archivo plano,carga de tablade interfaz

Transacción XML(servicio

empresarial)

HTTP / EJB / SOAP

Compensador de carga

ServidorApl. 1

Productorde JMS

Ta

rea

sC

RO

N

ServidorApl. 2

Productorde JMS

ServidorApl. 3

Productorde JMS

Cola JMS(Continua)

Servidor JMS

ServidorApl. 1

Consumidorde JMS

ServidorApl. 2

Consumidorde JMS

ServidorApl. 3

Consumidorde JMS

Servicio empresarial

Objetos de negocios / BD

El ejemplo muestra lacola JMS asignada aservidor2. Se puedeasignar a cualquierservidor del clúster.

Proceso multihebra através de MessageDriven Beans (MDBs)

El ejemplo muestratareas CRON enejecución en servidor1.Se pueden ejecutar encualquier servidor delclúster.

En el ejemplo, existen tres servidores de aplicaciones en el entorno en clúster. Lacola JMS continua está fijada a un miembro del clúster.

El procesamiento se produce cuando la infraestructura de integración recibemensajes de servicio empresarial utilizando HTTP, enterprise beans y accionesSOAP. El equilibrador de carga indica al servidor de aplicaciones que debe soltarlos mensajes de servicio empresarial en la cola continua. Cada miembro del clústercoloca mensajes en la cola, que existe en un miembro del clúster.

Una tarea cron de integración entrega los mensajes de servicio empresarial dearchivos sin formato o XML y de tablas de interfaz. Las tareas cron que colocanmensajes en la cola se pueden ejecutar en cualquier servidor del clúster.

Integración de datos con aplicaciones externas 219

Page 226: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Después de que los mensajes estén en la cola, todos los servidores de aplicacionespueden obtener simultáneamente mensajes de la cola y procesarlos en el sistema.Los beans controlados por mensaje deben estar habilitados en cada servidor deaplicaciones del clúster.

Cola secuencial en un clúster de servidores de aplicaciones:

La cola secuencial recibe mensajes del productor JMS y procesa los mensajes deconsumidor JMS.

El diagrama siguiente muestra un ejemplo de una configuración de clúster deservidores de aplicaciones.

Archivo XML,archivo plano,carga de tablade interfaz

Transacción XML(servicio

empresarial)

HTTP / EJB / SOAP

Compensador de carga

ServidorApl. 1

Productorde JMS

Ta

rea

sC

RO

N

ServidorApl. 2

Productorde JMS

ServidorApl. 3

Productorde JMS

Cola JMS(Secuencial)

Servidor JMS

La tarea CRON JMS sepuede ejecutar encualquier servidor delclúster.

ServidorApl. 1

TareaCRON de

consumidor

ServidorApl. 2

ServidorApl. 3

Servicio empresarial

Objetos de negocios / BD

El ejemplo muestra lacola JMS asignada aservidor2. Se puedeasignar a cualquierservidor del clúster.

Proceso secuencial deuna sola hebra a travésde tarea CRON

El ejemplo muestratareas CRON enejecución en servidor1.Se pueden ejecutar encualquier servidor delclúster.

En el ejemplo, existen tres servidores de aplicaciones en el entorno en clúster. Lacola JMS secuencial está fijada a un miembro del clúster.

El procesamiento se produce cuando la infraestructura de integración recibemensajes de servicio empresarial utilizando HTTP, enterprise beans y accionesSOAP. El equilibrador de carga indica al servidor de aplicaciones que debe soltarlos mensajes de servicio empresarial en la cola secuencial. Cada miembro delclúster coloca mensajes en la cola, que existe en un miembro del clúster.

Una tarea cron de integración entrega los mensajes de servicio empresarial dearchivos sin formato o XML y de tablas de interfaz. Las tareas cron que colocanmensajes en la cola se pueden ejecutar en cualquier servidor del clúster. Cuandolos mensajes están en la cola, el servidor de aplicaciones que ejecuta la tarea crondel consumidor JMS procesa los mensajes en orden secuencial.

220 Integración de datos con aplicaciones externas

Page 227: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

A diferencia de la cola continua, no se produce un procesamiento multihebra delos mensajes por diseño. Una implementación en clúster no afectaconsiderablemente al rendimiento del procesamiento de mensajes mediante la colasecuencial.

Configuración de la tarea cronLa tarea cron de la tabla de interfaz, la tarea cron de importación de datos y latarea cron de la cola JMS son funciones que tienen en cuenta los clústeres. Deforma predeterminada, la infraestructura de la tarea cron ejecuta una tarea en unservidor elegido aleatoriamente.Puede configurar una tarea cron para que seejecute en un servidor de aplicaciones específico dentro de un clúster deservidores. Utilice el parámetro donotrun en la infraestructura de la tarea cron paracontrolar en qué servidores se ejecuta la tarea cron.

Configuración de un servidor de procesamiento de mensajesPara volúmenes elevados de mensajes entrantes, puede mejorar la eficacia delservidor trasladando el procesamiento de mensajes entrantes a un servidor deaplicaciones o un clúster de servidores distinto.

Procedimiento1. Despliegue un archivo EAR de aplicación distinto en el servidor o clúster de

servidores de procesamiento de mensajes.2. En el servidor de aplicación de proceso de mensaje o clúster de servidor, utilice

el parámetro donotrun en la infraestructura de la tarea cron para controlar enqué servidores se ejecuta la tarea cron.

3. Opcional: Configure beans controlados por mensaje para obtener datos de lacola continua entrante. No habilite beans controlados por mensaje para elprocesamiento entrante dentro del servidor o el clúster de servidores dedicadopara usuarios en línea. Puede ejecutar otras tareas cron de proceso en segundoplano en este servidor o clúster de servidores.

4. Opcional: Otorgue acceso a la interfaz de usuario a los usuarios que utilizan lafunción de importación de datos.

Configuración del directorio globalEn un entorno de clúster, si configura un directorio global para la gestión dearchivos de integración, el directorio debe ser accesible a todos los miembros delclúster.

En función su uso de los componentes de la infraestructura de integración, losarchivos se pueden escribir o no en el directorio global. Una de las razonesprincipales para configurar un directorio global es soportar el uso de puntosfinales basados en archivo. Si tiene previsto utilizar puntos finales basados enarchivo para canales de invocación y los mensajes son iniciados por usuarios deaplicación que se han configurado en un clúster de IU, todos los miembros delclúster deben tener visibilidad en el directorio global.

Para definir el directorio global, actualice la propiedad del sistemamxe.int.globaldir en la aplicación Propiedades del sistema.

Acceso de los mensajes entrantes a los serviciosLos servicios empresariales, los servicios de estructura de objeto y los serviciosestándar pueden funcionar todos en un clúster de servidores.

Una transacción entrante puede acceder al servicio correspondiente utilizandocualquiera de los siguientes métodos de comunicación:

Integración de datos con aplicaciones externas 221

Page 228: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

v La invocación a método remoto (RMI) de Java, el protocolo Inter-ORB deInternet (IIOP) y los enterprise beans

v Servlet HTTP y HTTPSv Servlet SOAP, HTTP y HTTPS

Enterprise beans

Con un solo servidor, el URL de proveedor para acceder al árbol JNDI es el propioURL del servidor. Con un clúster de servidores, el URL de proveedor puede ser elURL de cualquiera de los servidores que tenga desplegados enterprise beans.Todos los miembros del clúster comparten el árbol JNDI y cualquier miembro delclúster puede buscar y recuperar un clúster.

Siguiendo una búsqueda de clúster, el cliente recupera un proxy que reconoce elclúster de los enterprise beans que equilibra la carga de las llamadas posterioresque utilizan el proxy. El equilibrio de carga se produce de forma transparente parael código de cliente. No hay ninguna diferencia entre el código de un solo servidory de una configuración en clúster. Se despliega un enterprise bean aparte paracada tipo de servicio: servicio de estructura de objeto, servicio empresarial yservicio estándar.

Servlet HTTP

El servlet de integración se despliega en todos los miembros del clúster. Con unaconfiguración de un solo servidor, el URL es el HTTP y el HTTPS URL delservidor. Con una configuración de servidores en clúster, el URL es el HTTP y elHTTPS URL del equilibrador de carga del clúster. Se despliega un servlet apartepara cada tipo de servicio: servicio de estructura de objeto, servicio empresarial yservicio estándar.

Los formatos de URL de cada servicio se muestran en la tabla siguiente. Lavariable meaweb del URL representa el valor especificado para mxe.int.webappurlen la aplicación Propiedades del sistema.

Servicio URL

Servicio de estructura de objeto http://nombrehost:puerto/meaweb/os/objectstructure ame

Servicio empresarial (eludiendo lacola)

http://nombrehost:puerto/meaweb/es/extsysname/enterprise service name

Servicio empresarial (a través de lacola)

http://nombrehost:puerto/meaweb/esqueue/extsysname/enterprise service name

Servicio estándar http://nombrehost:puerto/meaweb/ss/standardservice name

Servicios web

Los servicios web de integración se despliegan de forma homogénea en todos losmiembros de servidor del clúster. El acceso de servicio web de un clúster es elmismo que el de un solo servidor, excepto que el URL del servicio web y el URLde lenguaje de descripción de servicios web (WSDL) apuntan al clúster en lugar dea un servidor específico en el clúster.

Las siguientes propiedades deben apuntar al URL del clúster:v URL de aplicación web mxe.int.webappurl

222 Integración de datos con aplicaciones externas

Page 229: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

v URL de consulta de registro UDDI mxe.int.uddiinurlv URL de publicación de registro UDDI mxe.int.uddipuburl

El URL para acceder a un servicio web es http://nombrehost:puerto/meaweb/services/nombre de servicio web. La variable meaweb del URL representa el valorespecificado para mxe.int.webappurl en la aplicación Propiedades del sistema.

Seguridad de integraciónLa infraestructura de integración incluye soporte para la autenticación J2EE y parala autorización de nivel de componente.

Seguridad de autenticaciónPuede configurar la seguridad de autenticación J2EE para colas JMS, EJB, HTTP yservicios de web. También puede configurar la seguridad de autenticación paraAPI de integración remotas y para las clases de manejador Java para eldireccionamiento saliente.

Configuración de la seguridad J2EE:

La infraestructura de integración soporta la seguridad J2EE básica para restringir elacceso basado en autenticación y autorización.

Configuración de restricciones J2EE para las colas JMS:

Las colas JMS que utiliza el proceso de integración dan soporte a la seguridadJ2EE, basándose en la autorización y la autenticación basadas en ID de usuario ycontraseña. Puede impedir el acceso sin autorización a la cola asignando un ID deusuario y una contraseña al nombre JNDI (Java Naming and Directory Interface),aunque el nombre JNDI de la cola sea conocido.

Acerca de esta tarea

Varias colas pueden utilizar las mismas identificaciones de usuario oidentificaciones de usuario diferentes.

Procedimiento

1. En la consola del administrador del servidor, especifique valores de ID deusuario y contraseña para las siguientes propiedades, para habilitar lasrestricciones J2EE:v java.naming.security.principal (ID de usuario)v java.naming.security.credentials (contraseña)

2. En la aplicación Sistemas externos, seleccione la acción Agregar/modificar colasy especifique los mismos ID de usuario y contraseña que ha proporcionado enel paso 1. Este paso proporciona acceso a la cola en los programas de productory consumidor de integración.

3. Para proporcionar acceso a la cola continua, en la sección <enterprise-beans>del archivo ejb-jar.xml, agregue los elementos <security identify> que semuestran en negrita:<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>

Integración de datos con aplicaciones externas 223

Page 230: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

</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><security-identity>

<run-as><role-name>maximouser</role-name>

</run-as></security-identity>

</message-driven>

4. En la sección <assembly-descriptor> del archivo ejb-jar.xml, agregue loselementos <security-role> que se muestran en negrita:<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>

Protección del acceso de enterprise bean:

Si se ha habilitado la autenticación J2EE en el sistema, debe habilitar la seguridadpara cada enterprise bean de los descriptores de despliegue.

Acerca de esta tarea

Bajo la sección <enterprise-beans> del archivo ejb-jar.xml, se despliegan tres EJBde integración con un valor predeterminado de 1, que indica que no es necesaria laautenticación.

El <ejg-name> para la correlación de servicio es:

<ejb-name> Servicio

enterpriseservice Servicio empresarial

mosservice Servicio de estructura de objeto

actionservice Servicio estándar

Procedimiento

1. Para forzar la autenticación, cambie el valor ALLOWDFLTLOGIN a 0 (false),para cada uno de los tres servicios, indicado en negrita en los ejemplos decódigo siguientes:<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>

224 Integración de datos con aplicaciones externas

Page 231: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

<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>Application Users

</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>Application Users

</description><role-name>maximouser</role-name><role-link>maximouser</role-link></security-role-ref></session>

<session id="Session_actionservice"><ejb-name>actionservice</ejb-name><jome>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>Application Users

</description><role-name>maximouser</role-name><role-link>maximouser</role-link>

</security-role-ref></session>

Los programas de cliente llaman a la versión segura de los métodos deenterprise bean para cada tipo de servicio:v Servicio empresarial: secureProcessExtnernalDataAsync(..) ,

secureProcessExtnernalDataSync(..)v Servicio de estructura de objeto: secureProcessMOS(..)v Servicio estándar: secureAction(..)

Integración de datos con aplicaciones externas 225

Page 232: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

2. Para crear un contexto seguro para invocar el enterprise bean, realice una de lassiguientes tareas:v Añada el código siguiente al código del 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);//instead of using the default IntialContext() constructor

v Utilice el constructor InitalContext predeterminado para pasar la informaciónde seguridad mediante los parámetros –D en el script .bat/.sh que inicia elcliente:–Djava.naming.security.principal=<username>–Djava.naming.security.credentials=<password>

La versión SSL del protocolo Inter-ORB de Internet realiza el cifrado de datosen el URL del proveedor, mientras que el sistema se comunica con elenterprise bean.

Protección del servlet HTTP:

El servlet HTTP es un componente J2EE que maneja los envíos HTTP de entrada.Para proteger el servlet HTTP, en primer lugar debe proteger el enterprise bean.Puede utilizar la autenticación básica HTTP para proteger el servlet HTTP. Losusuarios autorizados, con nombre de usuario y contraseña válidos puede enviaruna transacción XML al sistema.

Acerca de esta tarea

Para habilitar la autenticación básica HTTP, modifique el archivo web.xml de laaplicación Web:v Elimine los comentarios de la sección <security-constraint> de los servlets de

integración. Existen tres secciones <security-constraint>, una para cada tipo deservicio: servicio empresarial, servicio de estructura de objeto y servicio estándar.

La sección <web-resource-name> para la correlación de servicio es:

<web-resource-name> Servicio

Servlet de servicio empresarial Servicio empresarial

Servlet de servicio de aplicación Servicio estándar

Servlet de servicio de estructura de objeto Servicio de estructura de objeto

Procedimiento

1. En el archivo web.xml, descomente las secciones de restricciones de seguridadpara cada tipo de servicio, como en el ejemplo de código siguiente:<!--<security-constraint><web-resource-collection><web-resource-name>Enterprise Service Servlet</web-resource-name><description>

226 Integración de datos con aplicaciones externas

Page 233: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Enterprise Service Servlet (HTTP POST) accessible by authorized users</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>

Roles that have access to Enterprise Service Servlet (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>

App Service Servlet (HTTP POST) accessible by authorized users</description><url-pattern>/ss/*</url-pattern><http-method>GET</http-method><http-method>POST</http-method></web-resource-collection><auth-constraint><description>

Roles that have access to App Service Servlet (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 Service Servlet</web-resource-name><description>

Object Structure Service Servlet (HTTP POST) accessible by authorized users</description><url-pattern>/os/*</url-pattern><http-method>GET</http-method><http-method>POST</http-method></web-resource-collection><auth-constraint><description>

Roles that have access to Object Structure Service Servlet (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 que la sección <security-role> del archivo web.xml no esté marcadacomo comentario, como en el código de ejemplo siguiente:

Integración de datos con aplicaciones externas 227

Page 234: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

<security-role><description>An Integration User</description><role-name>maximouser</role-name>

</security-role>

3. Cambie el valor de 0 a 1 en la sección <env-entry-name> deuseAppServerSecurity, como en el ejemplo siguiente:<description>

Indica si se debe utilizar o no la seguridad del servidor de aplicaciones</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>

Qué hacer a continuación

Puede desplegar con seguridad un servicio web utilizando SSL (Secure SocketLayer) para envíos HTTPS. Configure SSL en el servidor de aplicaciones con loscertificados digitales adecuados.

Protección de servicios web:

Puede proteger servicios web de integración utilizando la autenticación básicaHTTP en la seguridad de J2EE estándar. Esta configuración de seguridadproporciona acceso a servicios web a usuarios autorizados con un nombre deusuario válido y una contraseña.

Procedimiento

1. De forma similar al procedimiento para proteger el servlet HTTP, en el archivoweb.xml, quite las marcas de comentario de la sección <security-constraint>para la invocación de servicios web, como en el ejemplo siguiente<security-constraint>

<web-resource-collection><web-resource-name>Servicios web de integración</web-resource-name><description>

Servicios web de integración accesibles por usuarios autorizados</description><url-pattern>/services/*</url-pattern><http-method>GET</http-method><http-method>POST</http-method>

</web-resource-collection><auth-constraint>

<description>Funciones que tienen acceso a los Servicios web de integración

</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 que la sección <security-role> del archivo web.xml no esté marcadacomo comentario, como en el código de ejemplo siguiente:<security-role>

<description>An Integration User</description><role-name>maximouser</role-name>

</security-role>

3. Cambie el valor de 0 a I en la sección <env-entry-name> deuseAppServerSecurity, como en el ejemplo siguiente:

228 Integración de datos con aplicaciones externas

Page 235: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

<description>Indica si se debe utilizar o no la seguridad del servidor de aplicaciones

</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 la invocación de servicios web, asegúrese de que el programa clienteutilice las siguientes llamadas a nombre de usuario y contraseña en el objeto dellamada de JAX-RPC:call.setProperty(Call.USERNAME_PROPERTY, username);call.setProperty(Call.PASSWORD_PROPERTY, password);

Qué hacer a continuación

Puede desplegar con seguridad un servicio web utilizando SSL (Secure SocketLayer) para envíos HTTPS. Configure SSL en el servidor de aplicaciones con loscertificados digitales adecuados.

Seguridad de las tablas de interfaz:

Las tablas de interfaz utilizan la autenticación y la autorización de bases de datospredeterminada. Si la autenticación y la autorización están en vigor, los programasexternos que leen o graban en las tablas de interfaz deben proporcionar laautorización apropiada. Para leer las tablas de interfaz y grabar en ellas, los valoresde USERNAME y PASSWORD se configuran para el punto final que implementael manejador de la tabla de interfaz.

Protección de las API de integración remotas:

Algunas API remotas MicService garantizan el acceso forzando al usuario de losmétodos en cuestión a proporcionar el objeto UserInfo. Si no se proporciona unobjeto UserInfo válido, se produce un error y la llamada no finaliza.

Los métodos remotos siguientes están protegidos porque proporcionan informaciónsensible o realizan el procesamiento de transacciones de datos sensibles:v exportData(..)v deleteQueueData(..)v processExternalData(..) (las dos versiones)v query(..)v viewQueueData(..)v loadData(..)v loadSystemData(..)v processObjectStructure(..)v routeData(..)

Para ejecutar estos métodos, el interlocutor debe recuperar un objeto UserInfoválido y pasarlo al método para obtener acceso a la capa segura.

Un objeto UserInfo es un objeto serializado que contiene detalles del usuario entrelos que figuran el usuario, la contraseña, el entorno local, el idioma e informaciónde huso horario, que se utilizan con fines de seguridad.

Integración de datos con aplicaciones externas 229

Page 236: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

El sistema utiliza Java RMI (invocación a método remoto) y JRMP (Protocolo demétodo remoto Java). Puede comunicarse con los servicios del sistema utilizandouna versión segura del protocolo JRMP utilizando SSL.

Seguridad de los manejadores de direccionador salientes:

Los manejadores de direccionador salientes tienen soporte para la autorización y laconfidencialidad. Los manejadores de enterprise bean, HTTP, JMS, servicio web ytablas de interfaz tienen soporte para la seguridad.

Seguridad de autorizacionesPuede configurar la seguridad de autorización a nivel de aplicaciones, nivel deobjetos o al nivel de un método definido en un servicio estándar. Una vezcompletada la autenticación de usuario, la infraestructura de integracióncomprueba que al usuario se le haya concedido la autorización para enviarmensajes a la aplicación, objeto o método de destino.

Autorización de nivel de objeto

La autorización de nivel de objeto está basada en el conjunto de configuración deseguridad de la pestaña Restricciones de datos de la aplicación Grupos deseguridad. Si un objeto o atributo se marca como de solo lectura o como oculto, elproceso de los datos de los mensajes de entrada se limita a consultas. No puedeinsertar, actualizar o suprimir datos en el atributo u objeto relevante.

Autorización de nivel de aplicación

Configure la autorización de nivel de aplicación en la aplicación Estructura deobjetos. En el campo Aplicación autorizada, especifique la aplicación que se ha deautorizar. La aplicación especificada y el grupo de usuarios del usuario demensajes de integración proporcionan autorización para los mensajes deintegración de entrada tanto para las estructuras de objetos como para los serviciosempresariales. La combinación de la aplicación y el grupo de usuarios tambiénproporciona autorización para la exportación de datos relacionados con estaestructura de objeto.

Si utiliza la API de REST, es posible que tenga que configurar la autorización anivel de aplicación para acceder a los recursos de objeto de negocio.

Autorización del servicio estándar

La autorización del servicio estándar no da soporte al uso de una condición que sepueda asociar a la opción de firma. Se ignoran todas las condiciones que asigne.

Puede configurar una transacción del servicio estándar para que adopte el mismoperfil de seguridad para el usuario de integración como si dicho usuario hubieraentrada en la transacción mediante una aplicación. Este nivel de autorizaciónrequiere la configuración manual. El servicio de aplicaciones debe tener un métodoanotado correctamente y el servicio debe estar registrado en la aplicaciónConfiguración de base de datos. Asigne una opción de firma a un servicio estándarpara limitar acceso a los usuarios o grupos que tengan autorización para la opciónseleccionada.

Ejecute un script SQL que actualiza la tabla MAXSERVSECURITY con detalles delservicio estándar que se ha de autorizar. La sentencia insert paraMAXSERVSECURITY debe incluir los campos listados en la tabla siguiente.

230 Integración de datos con aplicaciones externas

Page 237: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Campo Descripción

MAXSERVSECURITYID Un ID exclusivo que es numérico. Porejemplo, puede consultarmax(MAXSERVSECURITYID) enMAXSERVSECURITY y utilizar el valorsecuencial siguiente.

ROWSTAMP Un ID exclusivo que es numérico. Porejemplo, puede consultar max(ROWSTAMP)en MAXSERVSECURITY y utilizar el valorsecuencial siguiente.

SERVICENAME El nombre de servicio registrado en laaplicación Configuración de base de datos(MAXSERVICE.SERVICENAME).

APP El nombre de aplicación en el que la opciónde firma se ha configurado en(MAXAPPS.APP).

METHODNAME El nombre del método anotado en el serviciode aplicación.

OPTIONNAME Este valor es una combinación de la tabla deopciones de firma para la aplicación y laopción de firma(SIGOPTION.OPTIONNAME).

Conceptos relacionados:“API de REST” en la página 243La API (interfaz de programación de aplicaciones) de REST (Representational StateTransfer) proporciona una manera para que las aplicaciones externas consulten yactualicen datos de aplicación en motor de automatización de procesos de Tivoli.

Soporte de idiomasSu base de datos puede contener algunos elementos, como descripciones ydescripciones largas, en varios idiomas. Los canales de publicación y los serviciosempresariales pueden incluir estas columnas traducidas. La infraestructura deintegración también permite el uso de formatos de idioma bidireccionales.

Una única base de datos puede contener datos en varios idiomas. Debe especificarel idioma base cuando instale la aplicación. Si su sistema utiliza un idioma que nosea el idioma base, puede habilitar la infraestructura de integración para enviar yrecibir datos que no estén en los datos del idioma base.

Procesamiento predeterminado de varios idiomasAl iniciar sesión, puede elegir un código de idioma que no sea el idioma base delsistema. En cualquier aplicación, luego puede especificar valores específicos delidioma para las columnas designadas como traducibles.

De forma predeterminada, las transacciones salientes contienen los valores decolumna aplicables en el idioma asociado con la sesión de inicio de sesión. Losvalores de idioma muestran si la transacción la iniciado una aplicación o la funciónde exportación de datos. Por ejemplo, si el idioma base de su sistema es el español,puede iniciar sesión como un usuario francés y actualizar un registro de parte conuna descripción en francés. El mensaje saliente contiene la descripción de la parteen francés, aunque la descripción también exista en español o en un tercer idioma.

Integración de datos con aplicaciones externas 231

Page 238: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Si una tabla de base de datos contiene columnas traducibles, la base de datoscontiene una tabla correspondiente denominada L_nombre_tabla, por ejemplo,PARTE y L_PARTE. La tabla L_nombre_tabla almacena los valores de idioma nobase para cada columna traducida excepto la descripción detallada. Lasdescripciones detalladas en todos los idiomas están en la tablaLONGDESCRIPTION.

Para incluir valores traducidos en la salida XML, incluya los objetosL_nombre_tabla y LONGDESCRIPTION en las estructuras de objeto aplicables.Proporcione los valores de idioma base como una entrada de servicio a estructurasde objeto que tienen L_nombre_tabla como componente de su definición de objeto.Su entrada de servicio debe estar en el objeto principal y todos los demás idiomasdeben estar en el objeto habilitado para el idioma adicional.

Por ejemplo, cuando el español es el idioma base, la tabla PARTE contiene ladescripción en español de una parte y la tabla L_PARTE contiene las descripcionesen francés y en alemán de dicha parte. La tabla LONGDESCRIPTION contiene lasdescripciones detalladas en español, francés y alemán.

Cuando agregue el objeto L_nombre_tabla a una estructura de objeto, asigne elmismo valor a los atributos transLanguage y baseLanguage. De lo contrario, losvalores de idioma base no están disponibles y se procesan para los camposhabilitados para varios idiomas.

Atributos multilingüesEl elemento raíz de la estructura XML para servicios y canales incluye atributos deidioma que especifican los atributos de idioma para el registro.

Se utilizan los atributos de idioma siguientes:v El atributo baseLanguage identifica el idioma base del sistema o aplicación que

genera XML saliente. Para las transacciones entrantes (XML entrante), esteatributo no se valida.

v El XML saliente incluye el atributo langenabled en cada columna traducible, talcomo se muestra en el ejemplo siguiente:<DESCRIPTION langenabled="1">Item 1 description</DESCRIPTION>

v El atributo transLanguage identifica el idioma en que se especifican los valorespara campos multilingües aplicables. Si este atributo falta o no contiene ningúnvalor, se supone que todos los datos están en el idioma base. Si el valortransLanguage no se puede interpretar, o si el valor no identifica un idiomaválido, se devuelve un error al solicitante del servicio.

Soporte para idiomas bidireccionalesLa infraestructura de integración soporta idiomas bidireccionales, como el árabe yel hebreo, y permite el intercambio de datos con sistemas externos que utilizanformatos de idioma bidireccional diferentes. Los idiomas bidireccionales combinancaracteres que se leen de derecha a izquierda con algunos caracteres, comonúmeros o fechas, que se leen de izquierda a derecha.

La infraestructura de integración puede transformar los formatos bidireccionales detodos los datos entrantes y salientes al formato bidireccional especificado para elsistema externo y desde éste. Las transformaciones se aplican a las comunicacionessíncronas y asíncronas para servicios empresariales, servicios de estructura deobjeto y servicios estándar. También puede transformar los formatos bidireccionalesde archivos que importe con una tarea cron o cuando utilice la función deimportación de datos.

232 Integración de datos con aplicaciones externas

Page 239: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Formatos de idiomas bidireccionalesLos formatos bidireccionales predeterminados que utiliza la infraestructura deintegración se basan en estándares Unicode. Estos formatos pueden variar de losformatos utilizados por los sistemas externos.

Los formatos bidireccionales tienen cinco parámetros.

Parámetro Valor Distintivos Predeterminado Detalles

Tipo de texto v Implícito

v Visual

v I

v V

I: Implícito (lógico)

Orientación del texto v LeftToRight

v RightToRight

v ContextualLeftToRight

v ContextualRightToLeft

v L

v R

v C

v D

L: LeftToRight

Intercambio simétricode texto

v Activado

v Desactivado

v Y

v N

Y: Activado

Modelado de texto v No modelado

v Modelado

v Aislado

v N

v S

v B

N: No modelado Sólo árabe

Modelado de numerales v Nacional

v Nominal

v ContextualNational

v ContextualNominal

v H

v N

v C

v T

N: Nominal Sólo árabe

Configuración del soporte de idioma bidireccional para lossistemas externosEspecifique el formato de idioma bidireccional que utiliza el sistema externo parapermitir la transformación correcta de los datos al (y desde el) formatopredeterminado.

Procedimiento1. Opcional: Seleccione la acción Formato bidireccional en la aplicación Sistemas

externos para los servicios empresariales o en la aplicación Canales deinvocación para los servicios de estructura de objeto.

2. Seleccione el formato de idioma bidireccional que utiliza el sistema externo enla lista de opciones y pulse Aceptar.

Resultados

Después de establecer el formato de idioma bidireccional que utiliza el sistemaexterno, se realiza automáticamente la transformación al formato correspondientedurante el proceso de integración.

Exportación e importación de datos basados en archivoEl administrador de integración puede iniciar la exportación e importación dedatos desde dentro de la aplicación Sistemas externos para permitir, por ejemplo,la integración de datos mediante archivos. El proceso de importación incluye lacapacidad de ver una vista previa de una carga de datos de un archivo paravalidar los datos antes de guardarlos en la base de datos. El proceso de

Integración de datos con aplicaciones externas 233

Page 240: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

importación también incluye una opción para gestionar errores resultantes de lacarga del archivo en el mismo formato de archivo que el archivo importado.

Puede utilizar la gestión de errores basada en archivo como alternativa a la gestiónde errores mediante la aplicación Nuevo proceso de mensajes. La importación dedatos de archivos, en formato de archivo sin formato o XML, se puede realizar deforma programada utilizando una tarea cron predefinida. Además, losadministradores pueden habilitar una aplicación para la exportación y laimportación y luego los usuarios pueden exportar e importar datos directamentedesde la aplicación habilitada.Conceptos relacionados:“Gestión de errores de la importación de datos basada en archivo” en la página207La infraestructura de integración soporta la gestión de errores con la aplicaciónNuevo proceso de mensajes, que permite examinar, corregir, reprocesar y suprimirmensajes que producen errores cuando se procesan desde una cola entrante.Cuando los datos se importan de un archivo XML o un archivo sin formato, haydisponible una segunda opción que gestiona los errores utilizando un archivodescargado en lugar de la aplicación Nuevo proceso de mensajes.

Exportación e importación de datos en la aplicación Sistemasexternos

Puede iniciar una exportación de datos en la ficha Canales de publicación de laaplicación Sistemas externos. Puede iniciar una importación de datos en la fichaServicios empresariales de la aplicación Sistemas externos.

Exportación de datos basados en archivoCon la función de exportación de datos, puede realizar una exportación masiva dedatos de mensaje desde un archivo a un sistema externo. Puede iniciar el procesode exportación para cada canal de publicación asociado con un sistema externo.

Antes de empezar

En un entorno multitenencia, puede utilizar la función de exportación de datossólo si el proveedor del sistema le proporciona acceso a un servidor de archivosque sea accesible para el servidor de aplicaciones. A continuación, deberáconfigurar un punto final basado en archivo para que apunte a la ubicación de esteservidor de archivos.

Debe habilitar tanto el sistema externo como el canal de publicación para poderexportar datos. Los datos para exportar deben estar en un formato de archivo XMLque cumpla con el esquema de estructura de objeto, o en un archivo sin formato ydelimitado, por ejemplo, separado por comas, que sea una versión plana delformato de esquema de la estructura de objeto.

Acerca de esta tarea

La consulta SQL opcional que el usuario proporciona en el campo Condición deexportación, puede afectar al tamaño del mensaje XML exportado. Puede filtrar elcontenido para limitar la cantidad de datos que se exportan. El proceso deexportación lleva a cabo el proceso estándar de salida sobre el conjunto deresultados de la consulta correspondiente al canal de publicación seleccionado.

234 Integración de datos con aplicaciones externas

Page 241: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Procedimiento1. En la aplicación Sistemas externos, pulse en la ficha Canales de publicación y

seleccione el canal de publicación que desee exportar.2. En el campo Punto final, especifique un manejador de punto final basado en

archivo, en formato de archivo XML o de archivo sin formato.3. Pulse en Exportación de datos.4. Opcional: Especifique una consulta SQL en el campo Condición de

exportación. La consulta debe ser para el objeto primario o el objeto de nivelsuperior de la estructura de objeto del canal de publicación.

5. Opcional: Especifique un valor entero en el campo Recuento de exportaciónpara limitar el número de registros contenidos en el archivo exportado. Si elresultado de la consulta contiene más registros que el número que hayaespecificado, dichos registros no se incluyen en el archivo exportado.

6. Pulse en Aceptar para iniciar el proceso de exportación de datos.

Qué hacer a continuación

Al ejecutar la exportación de datos, los datos seleccionados forman un mensaje yse incluyen en la cola saliente configurada para el canal de publicación y susistema externo correspondiente. A continuación, el mensaje se procesa de la colasaliente al punto final configurado. Si se produce un error durante la entrega de unmensaje a un punto final, puede gestionar y ver los mensajes de exportación dedatos señalados con un error en la aplicación Nuevo proceso de mensajes.

Importación de datos basados en archivoPuede utilizar la función de importación de datos para cargar datos de archivoXML o archivos sin formato delimitados para actualizar la base de datos deMaximo. Puede obtener una vista previa y validar los datos antes de cargar yconfirmarlos en la base de datos. Puede optar por gestionar errores con laaplicación Nuevo proceso de mensajes o extrayendo errores en un formato dearchivos que es el mismo que el formato de archivo importado.

Antes de empezar

Para importar datos, si piensa importar datos desde un archivo plano como unarchivo .csv, la estructura de objeto del servicio empresarial debe dar soporte a lasestructuras de archivos planos. Asegúrese de que se haya seleccionado la casilla deverificación Admitir estructura plana en el registro de estructura de objetoasociado de la aplicación Estructuras de objetos. También debe habilitar el sistemaexterno y el servicio empresarial para poder importar los datos.

Acerca de esta tarea

Los datos que importe deben estar en un formato de archivo plano delimitado,como separado por comas o XML. El proceso de importación de datos puedeutilizar un servicio empresarial predefinido o definido por el usuario.

Procedimiento1. En la aplicación Sistemas externos, visualice el sistema que contiene el servicio

empresarial desde el que desea importar datos.2. En la ficha Servicios empresariales, seleccione el servicio empresarial desde el

que desea importar los datos.3. Pulse Importar datos.

Integración de datos con aplicaciones externas 235

Page 242: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

4. Opcional: Seleccione la casilla de verificación Presentación preliminar deimportación para examinar los datos antes de importar y confirmar los datosen la base de datos. Utilice la opción de vista preliminar para el muestreo deregistros de datos. Esta función no está diseñada para dar soporte a un archivogrande que contiene cientos de registros. El proceso síncrono procesa el archivopara los objetos empresariales y devuelve los mensajes de error encontrados sinconfirmar las actualizaciones en la base de datos.

5. Especifique el tipo de archivo que desea utilizar para la importación dearchivos.

Opción Descripción

Archivo XML Los datos importados tienen el formatoXML.

Archivo plano Los datos importados tienen el formato deun archivo plano delimitado. Si esnecesario, modifique los valoresDelimitador y Calificador de texto.

6. En el campo Especificar archivo de importación, escriba la ruta del nombre dearchivo que utiliza el archivo importado para fines de identificación yalmacenamiento.

7. Seleccione la casilla de verificación Gestión de errores basada en archivos sidesea gestionar errores que encuentra mediante un archivo con el mismoformato que el archivo que se está importando. Esta opción es una alternativa ala gestión de errores con la aplicación Nuevo proceso de mensajes.

8. Pulse Aceptar para iniciar el proceso de importación de datos.

Qué hacer a continuación

Cuando se ejecuta la importación de datos, al archivo que se selecciona paraimportar se le da el formato de varios mensajes y se deja en la cola de entradaconfigurada para el servicio empresarial y su sistema externo correspondiente. Acontinuación, se procesan los mensajes desde la cola de entrada a los objetos deaplicación para actualización. El proceso de mensajes desde una cola de entradarequiere la habilitación de la tarea cron JMS cuando se utiliza la cola secuencial ola habilitación de beans controlados por mensajes para la cola continua. Si seproduce un error durante el proceso de un archivo, puede gestionar y ver losmensajes de importación de datos que se han etiquetado con un error en laaplicación Nuevo proceso de mensajes.

Tareas cron para procesar datos entrantesSi desea planificar cargas de archivo en lugar de utilizar la ventana de importaciónde datos, debe crear, configurar y habilitar la tarea cron XMLFILECONSUMER y latarea cron FLATFILECONSUMER para que pueda producirse el procesamiento demensajes de la tarea cron.

Tarea cron XMLFILECONSUMERLa tarea cron XMLFILECONSUMER es el mecanismo que utiliza para cargararchivos XML sin la intervención de ningún usuario de aplicación.

La tarea cron XMLFILECONSUMER tiene los siguientes parámetros predefinidos:

236 Integración de datos con aplicaciones externas

Page 243: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Parámetro Descripción

EXTERNALSYSTEM Un parámetro necesario que identifica elvalor del sistema externo que utiliza elproceso de carga de datos de tarea cron.

SOURCEDIRECTORY Un valor de parámetro necesario que defineel directorio donde se cargan los archivos deorigen. Este directorio debe existir en elservidor de aplicaciones.

ENTERPRISESERVICE Un valor de parámetro necesario queidentifica el nombre del servicio empresarialque utiliza la tarea cron para procesar todoslos archivos ubicados en el directorio deorigen.

FILENAME Un valor de parámetro opcional quedetermina si el proceso de carga de datos detarea cron selecciona los archivos de origenbasándose en su nombre de archivo.

USEREXITCLASS Un valor de clase de proceso personalizadoopcional que define la función de tarea cronadicional (por ejemplo, la orden de carga dearchivo).

TARGETENABLED Asegúrese de que el valor esté en el valorpredeterminado de 0 (false). Lafuncionalidad de este distintivo esreemplazada por la funcionalidad dedonotrun. Utilice el parámetro donotrun enla infraestructura de la tarea cron paracontrolar en qué servidores se ejecuta latarea cron.

ISFILEEXTRACT Cuando se establece en 1 (true), esteparámetro indica que se utiliza la gestión deerrores basada en archivos para el procesode mensajes de entrada.

Todos los archivos XML que están disponibles en el directorio de origen se asociancon un sistema externo o servicio empresarial específico cuando añade un valor alos parámetros EXTERNALSYSTEM, SOURCEDIRECTORY yENTERPRISESERVICE. Estos archivos XML se cargan también en la infraestructurade integración.

Los archivos que coinciden con la propiedad de nombre de archivo de tarea cronse asocian con un sistema externo o servicio empresarial específico y se cargan enel sistema cuando añade un valor a los parámetros EXTERNALSYSTEM,SOURCEDIRECTORY, ENTERPRISESERVICE y FILENAME.

Tarea cron FLATFILECONSUMERLa tarea cron FLATFILECONSUMER es el mecanismo que utiliza para cargararchivos planos sin la intervención de ningún usuario de aplicación.

Integración de datos con aplicaciones externas 237

Page 244: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Parámetros de tarea cron

La tarea cron FLATFILECONSUMER tiene los siguientes parámetros predefinidos:

Tabla 34. Parámetros de la tarea cron FLATFILECONSUMER

Parámetro Descripción

SOURCEDIRECTORY Un valor de parámetro necesario que defineel directorio donde se cargan los archivos deorigen. Este directorio debe existir en elservidor de aplicaciones.

DELIMITER Un parámetro necesario que indica elcarácter que se utiliza como delimitador decampo en el archivo plano. El valorpredeterminado es una coma.

USEREXITCLASS Un valor de clase de proceso personalizadoque habilita la función de tarea cronadicional (por ejemplo, la orden de carga dearchivo).

TEXTQUALIFIER Un valor de parámetro necesario que defineel carácter que se utiliza como calificador detexto en el archivo plano. El valorpredeterminado son las comillas dobles.

TARGETENENABLED Asegúrese de que el valor esté en el valorpredeterminado de 0 (false). Lafuncionalidad de este distintivo esreemplazada por la funcionalidad dedonotrun. Utilice el parámetro donotrun enla infraestructura de la tarea cron paracontrolar en qué servidores se ejecuta latarea cron.

ISFILEEXTRACT Cuando se establece en 1 (true), esteparámetro indica que se utiliza la gestión deerrores basada en archivos para el procesode mensajes de entrada.

Todos los archivos disponibles en el directorio de origen los procesa la tarea cronFLATFILECONSUMER cuando añade un valor al parámetro SOURCEDIRECTORY.El sistema externo y el servicio empresarial se identifican desde el primer registrodel archivo plano que se importa, el cual forma parte de la definición de archivoplano.

Propiedades de proceso de tarea cron

La tarea cron FLATFILECONSUMER utiliza las siguientes propiedades de procesopara los mensajes de entrada:v Orden de proceso de archivos: el orden en que se cargan los archivos en el

servidor se determina mediante la indicación de la hora de archivos XML. Sepuede utilizar la clase de salida de usuario de tarea cron para sobrescribir lalógica de proceso del mensaje de entrada.

v División de archivos: los archivos de múltiples sustantivos que procesa la tareacron FLATFILECONSUMER se dividen antes de grabarlos en la cola. La tareacron identifica si el archivo que se carga es un archivo XML de múltiplessustantivos. Si el archivo XML es un archivo de múltiples sustantivos, lainfraestructura de integración utiliza las columnas clave del servicio empresarial

238 Integración de datos con aplicaciones externas

Page 245: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

para identificar en qué lugar se lleva a cabo la división de archivos. Por ejemplo,PONUM y SITE en el servicio empresarial MXPOInterface.

v Proceso de cola: la tarea cron FLATFILECONSUMER identifica la cola en la quese carga el archivo plano. La ubicación está basada en la cola (continua osecuencial) especificada en el sistema externo y a nivel de servicio empresarial.

La tarea cron crea un archivo de índice (recovery_filename.txt) que contiene unareferencia al último sustantivo procesado correctamente cuando procesa un archivode múltiples sustantivos. La entrada del archivo de índice se actualiza cuando elsustantivo se compromete correctamente a la cola. Los archivos de índice estándisponibles en la carpeta RECOVERY que se crea en el directorio de origen detarea cron.

La tarea cron FLATFILECONSUMER utiliza el nombre de archivo de índice que seha procesado antes de que se encontrara el problema de servidor o de cola. Latarea cron continúa procesando el archivo XML comenzando en el últimosustantivo comprometido correctamente en el archivo de índice. Los errores que seidentifican después de grabar un mensaje correctamente en una cola de entrada, sedeben resolver en la aplicación Nuevo proceso de mensajes.

Configuración de una aplicación para la exportación y laimportación de datos

Para habilitar la importación de datos y la exportación basada en una aplicación,debe definir el contenido de una estructura de objeto y habilitar esta estructura deobjeto para la importación y la exportación.

Definición del contenido de una estructura de objetoSe puede otorgar acceso a los usuarios de aplicaciones para exportar o importardatos directamente desde una aplicación. Un administrador puede identificar unaestructura de objeto apropiada para una aplicación y otorgar funciones deexportación o importación (o ambas) a usuarios para gestionar datos de aplicaciónen un archivo, como un archivo.csv, que se puede mantener en una hoja de cálculo.

Acerca de esta tarea

Determine la estructura de objeto para utilizar para las transacciones deintegración y luego modifique el contenido de la estructura de objeto para limitarel intercambio de datos al contenido que se requiere.

Procedimiento1. En el Diseñador de aplicaciones, abra la aplicación que desee habilitar y anote

el valor en el campo Objeto principal del área de cabecera. Este valor debeser el objeto principal que se utiliza para la estructura de objeto.

2. En la aplicación Estructuras de objeto, especifique el nombre del objetoprincipal en el campo Estructura de objeto para filtrar estructuras de objetosegún este objeto. Si la búsqueda no devuelve ninguna estructura de objetobasada en el objeto principal, se debe crear una estructura de objeto y lospasos siguientes no se aplican.

3. Si la búsqueda devuelve varias estructuras de objeto, seleccione una estructurade objeto donde el valor del campo Consumido por esté establecido enIntegración.

4. Revise el contenido de la estructura de objeto y plantee las preguntassiguientes:

Integración de datos con aplicaciones externas 239

Page 246: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

a. ¿Es el objeto principal de la estructura de objeto el mismo que el objetoprincipal de la aplicación que desea habilitar para la exportación y laimportación de datos?

b. ¿Incluye la estructura de objeto objetos de nivel inferior que contienendatos que los usuarios no necesitan importar o exportar? Por ejemplo, elobjeto MXPERSON incluye los objetos de nivel inferior PHONE, EMAIL ySMS. Es posible que los usuarios deseen importar y exportar datos sólopara los objetos PERSON y PHONE.

5. Después de revisar el contenido de la estructura de objeto, puede optar porutilizar la estructura de objeto predefinida con todo su contenido existente oduplicar esta estructura de objeto y modificar su contenido. Si hace cambiosen una estructura de objeto predefinida, esto puede afectar a cualquier otroescenario de integración que utilice esta estructura de objeto. La duplicaciónde la estructura de objeto y el uso de ésta como plantilla no causa uncomportamiento imprevisto para otros usuarios de integración.

6. Suponiendo que duplique la estructura de objeto para proporcionar unaestructura de objeto nueva a este escenario, suprima cualquier objeto de nivelinferior que no sea necesario para sus usuarios de integración.

7. Para cada objeto que permanezca en la estructura de objeto, seleccione laopción Incluir/Excluir campos en el menú Seleccionar acción y deseleccionetodos los campos que los usuarios no necesiten importar o exportar. Este pasolimita los campos de datos a sólo los necesarios para los usuarios de laaplicación.

8. Si se necesitan archivos sin formato delimitados (para el uso en una hoja decálculo), seleccione la casilla de verificación Admitir estructura plana. Estepaso activa una validación para garantizar que cada columna para cada objetode la estructura de objeto tenga un nombre exclusivo. Si la validación falla, seestablece un indicador Conflicto de alias.

9. Si la estructura de objeto contiene un conflicto de alias, seleccione la opciónAgregar/Modificar alias del menú Seleccionar acción para asignar un aliasúnico para cualquier nombre de campo en el que exista un duplicado. Noexisten conflictos de alias en ninguna de las estructuras de objeto predefinidas.

10. Guarde la estructura de objeto.

Qué hacer a continuación

El contenido de la estructura de objeto ahora está configurado y se puede otorgarel acceso de aplicación a éste ello en la aplicación Estructuras de objetos.

Habilitación de la importación y exportación de datos en unaaplicaciónDespués de definir el contenido de la estructura de objeto, debe habilitar unaaplicación para la importación y exportación de datos. La habilitación de laimportación de datos es un procedimiento distinto a la habilitación de laexportación de datos. Como los procedimientos son independientes, puedehabilitar a algunos usuarios para exportar datos, habilitar a otros usuarios paraimportar datos o habilitar a un conjunto distinto de usuarios para importar yexportar datos.

Procedimiento1. En la aplicación Estructuras de objetos, seleccione la estructura de objeto que

desee habilitar.2. Seleccione la acción Agregar/Modificar soporte de exportación de aplicaciones.

240 Integración de datos con aplicaciones externas

Page 247: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

3. En la ventana Agregar/Modificar soporte de exportación de aplicaciones, pulseen Fila nueva. En la sección Detalles, el valor del campo Aplicación tiene comovalor predeterminado la aplicación que tiene el mismo objeto principal que elobjeto principal de la estructura de objeto.

4. Especifique Archivo XML o Archivo plano como formato para los archivos deexportación de datos.

5. En el campo Recuento máximo, puede especificar un valor que limite elnúmero de filas que se pueden exportar durante una sola ejecución. Aunque elusuario seleccione 1000 registros, si el límite está establecido en 100, entoncessólo se exportan 100 filas. Un valor de 0 o nulo permite el procesamiento de unnúmero ilimitado de filas.

6. Seleccione la casilla de verificación Es por omisión si habilita varias estructurasde objeto para la exportación de la aplicación y desea que esta estructura deobjeto sea la predeterminada.

7. Pulse en Aceptar para guardar la configuración de exportación.8. Seleccione la acción Agregar/Modificar soporte de importación de aplicaciones

y repita los mismos procedimientos para configurar la importación de datospara la aplicación.

9. Seleccione el grupo de usuarios para los usuarios de la aplicación en laaplicación Grupos de seguridad y otorgue acceso a la opción Exportación deaplicaciones, la opción de Importación de aplicaciones o ambas opciones.

Iniciación de la exportación y la importación de datos en unaaplicaciónDespués de habilitar la exportación y la importación de datos en una aplicación, seagregan iconos a la barra de herramientas de la aplicación para iniciar lastransacciones.

Inicio de la exportación de datos en una aplicación:

Después de que habilitar la exportación de datos para una aplicación, los usuariospueden iniciar transacciones de exportación desde la interfaz de usuario de laaplicación.

Procedimiento

1. En la ventana Lista de la aplicación, seleccione los datos para la exportación deuno de los modos siguientes:v Utilice las opciones de filtro para filtrar un conjunto de registros para

exportarlos y pulse en el icono Exportación de aplicaciones en la barra deherramientas.

v Seleccione un registro específico para exportarlo y pulse en el iconoExportación de aplicaciones. Esta opción sólo exporta los datos de un soloregistro.

2. En la ventana Exportación de datos, revise la configuración de exportación yhaga cualquier ajuste necesario:a. Opcional: Especifique un valor diferente en el campo Estructura de objeto

si no desea utilizar la estructura de objeto predeterminada para laexportación. Puede especificar una estructura de objeto alternativa sólo si seha habilitado otra estructura de objeto para esta aplicación. Si especifica unaestructura de objeto alternativa, la ventana se renueva para incluir la secciónExportar configuración, donde puede realizar configuraciones adicionales.

b. Opcional: Si el valor del campo Se ha seleccionado para exportar essuperior al valor del campo Límite de exportación, puede cancelar la

Integración de datos con aplicaciones externas 241

Page 248: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

exportación y utilizar un filtro distinto para reducir el número de registrosque se deben exportar. El valor del campo Límite de exportación loestablece el administrador y no se puede superar, independientemente delnúmero de registros seleccionados.

3. Opcional: En la sección Exportar configuración (sólo está expandida su haespecificado una estructura de objeto que no es la predeterminada), especifiqueel formato de datos:a. Si selecciona el formato XML, especifique la operación para la exportación,

como por ejemplo Sincronizar.b. Si selecciona el formato Archivo plano, especifique valores en los campos

Delimitador y Calificador de texto.4. Pulse en Aceptar para iniciar la exportación. Se abre un cuadro de diálogo

Guardar en el que puede especificar dónde se debe guardar el archivo. Paraque un archivo sin formato se abra en una aplicación de hoja de cálculo, puedecambiar el nombre de archivo de modo que utilice el sufijo .csv. Si el cuadro dediálogo Guardar no se abre, cambie la configuración de seguridad de sunavegador para habilitar la solicitud automática para las descargas.

Inicio de una importación de datos en una aplicación:

Después de habilitar la importación de datos para una aplicación, los usuariospueden iniciar transacciones de importación desde la interfaz de usuario de laaplicación.

Procedimiento

1. Desde cualquier lugar de la aplicación, pulse en el icono Importar datos en labarra de herramientas.

2. Opcional: En la ventana Importar datos, especifique un valor diferente en elcampo Estructura de objeto si no desea utilizar la estructura de objetopredeterminada para la importación. Si especifica una estructura de objetoalternativa, se expande la sección Importar configuración, donde debe realizarconfiguraciones adicionales.

3. Opcional: Si ha especificado una estructura de objeto alternativa, en la secciónImportar configuración expandida, especifique los valores siguientes:a. Si especifica el formato XML, no es necesario realizar configuraciones

adicionales porque el archivo XML de entrada especifica la operación, elcódigo de idioma y el código de acción.

b. Si especifica el formato de Archivo plano, puede especificar valores en loscampo Delimitador, Calificador de texto, Acción y Código del idioma opuede utilizar los valores predeterminados.

4. Opcional: Revise el valor del campo Límite de importación. Este valor no sepuede cambiar. Si el límite se establece, por ejemplo, en 100 registros, y elarchivo de importación contiene 200 registros, sólo se importan los 100primeros registros.

5. Pulsen en Explorar para navegar al archivo de importación y selecciónelo.6. Opcional: Si selecciona Presentación preliminar de importación, cuando ejecute

la importación, los objetos de negocios procesan el archivo pero los datos no seguardan en la base de datos. Puede utilizar esta opción para probar la carga dedatos y validar que no haya errores antes de la carga. Se muestra cualquiererror y se pueden aplicar correcciones al archivo de entrada e intentar laimportación otra vez.

7. Pulse en Aceptar para iniciar la importación. Como la importación de datos esun proceso síncrono, debe esperar en la interfaz de usuario hasta que la carga

242 Integración de datos con aplicaciones externas

Page 249: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

haya finalizado y aparezca un mensaje de confirmación. Si se producen erroresdurante la carga, no se cargan, ya que el archivo se procesa como una solatransacción con una sola confirmación.

API de RESTLa API (interfaz de programación de aplicaciones) de REST (Representational StateTransfer) proporciona una manera para que las aplicaciones externas consulten yactualicen datos de aplicación en motor de automatización de procesos de Tivoli.

La API de REST forma parte de la infraestructura de integración, y puede utilizarlapara integrar aplicaciones externas con aplicaciones de motor de automatización deprocesos. La API de REST expone los objetos de negocio y las estructuras de objetode integración como recursos de REST. La API de REST puede proporcionar datosde recursos en formato XML o JSON (JavaScript Object Notation). Las aplicacionesexternas pueden utilizar la API de REST para consultar y actualizar datos deaplicación.

Los recursos de la API de REST pueden utilizarse sin ninguna configuración. Lasestructuras de objeto que la API de REST puede consultar o actualizar tienen elvalor INTEGRATION en el campo Consumido por en la aplicación Estructuras deobjetos.

La API de REST soporta las operaciones de creación, consulta, actualización ysupresión de recursos, utilizando métodos estándar HTTP GET, POST, PUT yDELETE.Información relacionada:

Utilización de detalles de la Api de REST (se abre en una nueva ventana oficha del navegador)

REST con Maximo (se abre en una nueva ventana o ficha del navegador)

Infraestructura de la API de RESTLa API de REST forma parte de la infraestructura de integración y maneja lassolicitudes de los clientes externos.

El diagrama siguiente proporciona una visión general de cómo la API de RESTmaneja las solicitudes.

Integración de datos con aplicaciones externas 243

Page 250: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Cuando un consumidor externo inicia una solicitud, un controlador de la API deREST dirige la solicitud de recurso al manejador de recursos adecuado. Elmanejador de recursos interactúa con los recursos para ejecutar la solicitud.Cuando se completa la solicitud, el serializador de recursos procesa el recurso o lacolección de recursos. El serializador de recursos devuelve la representación comorespuesta del recurso. Se proporcionan serializadores para XML y JSON.

Puesto que la API de REST está dentro de la infraestructura de integración, la APIde REST puede utilizar la autenticación, la autorización y las propiedades delsistema de motor de automatización de procesos.

El controlador de la API de REST es un servlet. El rendimiento y el ajuste de cargay escalabilidad se realiza a nivel de servidor de aplicaciones, de la misma maneraque para otros componentes web.

Representaciones soportadasLa API de REST soporta XML y JSON como representaciones. Las representacionesestán soportadas por la implementación de clases de serializador que estánregistradas en las propiedades del sistema.

Las representaciones XML y JSON está registradas en las propiedades del sistemaAPI de REST siguientes:v mxe.rest.serializer.mbo.xml

v mxe.rest.serializer.os.xml

v mxe.rest.serializer.mbo.json

v mxe.rest.serializer.os.json

Puede ampliar serializadores para proceso personalizado. Puede crearserializadores para tipos de recurso existentes y para instancias individuales derecursos de objeto de negocio o de estructura de objeto.

Para recursos de estructura de objeto, el formato XML para la API de REST esparecido al formato soportado por la infraestructura de integración.Referencia relacionada:“Propiedades del sistema REST” en la página 275Las propiedades del sistema están disponibles para configurar cómo funciona laAPI de REST según sus requisitos específicos.

Consumidor externo

Solicitud derecurso

Respuesta delrecurso

Controlador dela API de REST

Manejador derecursos

Infraestructura de la API de REST

Infraestructura del motor de automatización de procesos de Tivoli

RecursosObjeto de negocio (MBO)Estructura de objeto (OS)

Serializador derecursos

Recurso representación(XML, JSON) Recurso/colección de recursos

244 Integración de datos con aplicaciones externas

Page 251: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Manejadores de recursos y URILa API de REST proporciona acceso a objetos de negocio y estructuras de objeto deintegración. Se registra una clase de manejador para cada recurso en una regiónpropiedad del sistema./

Las clases de manejador para los recursos de objeto de negocio y de estructura deobjeto se registran en las propiedades del sistema mxe.rest.handler.mbo ymxe.rest.handler.os.

Puede ampliar manejadores para proceso personalizado. Puede crear manejadorespara otros tipos de recurso y para instancias individuales de recursos de objeto denegocio o de estructura de objeto.

Los recursos de la API de REST se direccionan utilizando los identificadores derecurso que forman parte del URI (identificador universal de recursos). Los URI seutilizan para direccionar las entidades que se representan como recursos REST.

Por ejemplo, el siguiente URI accede a una colección de objetos de negocio Person.El mbo indica el tipo de recurso del objeto de negocio y person es el recurso:.../maxrest/rest/mbo/person

Para otro ejemplo, el siguiente URI accede a una colección de datos para laestructura de objeto Person. El os indica el tipo de recurso de la estructura deobjeto y mxperson es el recurso:.../maxrest/rest/os/mxperson

Método GETUtilice el método GET para recuperar recursos de objeto de negocio y recursos deestructura de objeto.

SintaxisGET uri?parámetro=valor?parámetro=valor&...

uri es un URI. La longitud de la ruta del URI no puede sobrepasar ningún límiteespecificado por el sistema.

parámetro es un parámetro de consulta.

valor es el valor del parámetro de consulta.

Ejemplo: recuperar un recurso de objeto de negocio

El método siguiente recupera un recurso de objeto de negocio:GET /maxrest/rest/mbo/asset/123

Se devuelve el XML siguiente:<?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><DESCRIPTION>HVAC System- 50 Ton Cool Cap/ 450000 Btu Heat Cap</DESCRIPTION>

Integración de datos con aplicaciones externas 245

Page 252: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

<ASSETUID>123</ASSETUID>..

</ASSET>

La respuesta del recurso se muestra en XML. El valor del formato predeterminadopuede configurarse en la propiedad del sistema mxe.rest.mbo.defaultformat.

Ejemplo: recuperar un recurso de estructura de objeto

El método siguiente recupera un recurso de estructura de objeto:GET /maxrest/rest/mbo/mxasset/123

Se devuelve el XML siguiente:<?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>

Los datos de recurso de estructura de objeto incluyen datos de activo, de medidorde activo y de especificación de activo basados en la configuración del objetodentro de la estructura de objeto MXASSET. Todos los campos que estánconfigurados para que se incluyan o excluyan se implementan en los datos.

La ruta del URI puede contener el ID del recurso como forma de seleccionar unrecurso específico. En el ejemplo anterior, el ID es 123. El valor del ID es un IDexclusivo para el objeto que está registrado en la tabla MAXATTRIBUTE. Si no se

246 Integración de datos con aplicaciones externas

Page 253: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

proporciona ningún ID, la respuesta incluye todas las apariciones del recurso,dependiendo de las restricciones de seguridad en el usuario. El ID es el únicocampo de objeto de negocio que puede formar parte de la ruta del URI paracriterios de selección. Los demás campos pueden utilizarse como parámetros deconsulta en el URI para filtrado de selección.

Ejemplo: seleccionar recursos de nivel inferior relacionados

El método siguiente solicita un recurso de OC para un recurso de objeto denegocio:GET /maxrest/rest/mbo/po/13

Se devuelve el XML siguiente:<?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>

Ejemplo: seleccionar líneas de OC relacionadas de una OC

El método siguiente solicita todas las líneas de OC relacionadas con la OCseleccionada en el ejemplo anterior:GET /maxrest/rest/mbo/po/13/poline

Se devuelve el XML siguiente:<?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>

Si selecciona POLINE, el nombre de relación que se especifica en el URI (POLINE)identifica la ruta desde el objeto de negocio (OC) a un objeto de negociorelacionado (POLINE). En este ejemplo, el objeto de negocio y la relación tienen elmismo nombre. Un objeto puede tener muchas relaciones entre dos objetos, lo cual

Integración de datos con aplicaciones externas 247

Page 254: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

puede tener como resultado la selección de datos distintos para el objetorelacionado. Las relaciones se definen en la tabla MAXRELATIONSHIP.

Para recuperar sólo la línea de un objeto de negocio POLINE específico, incluya elID del objeto de negocio POLINE en el URI:GET /maxrest/rest/mbo/po13/poline/10052

En este ejemplo, poline representa el nombre de relación y 10052 es el ID delobjeto de negocio POLINE que la relación recupera. Puede utilizar el mismométodo para especificar la ruta de POLINE a ITEM o POCOST:GET /maxrest/rest/mbo/po/13/poline/10052/item

GET /maxrest/rest/mbo/po/13/poline/10052/pocost

Cuando utiliza el recurso de estructura de objeto, los objetos de nivel inferior nopueden tener relaciones. La estructura de objeto da soporte a un gráficos de objetosde negocio relacionados. Las relaciones forman parte de la definición de estructurade objeto.

Puede atravesar los objetos de negocio relacionados para mover de un recurso aotro si existe una relación válida entre el objeto origen y destino.Referencia relacionada:“Propiedades de la cabecera HTTP” en la página 266Hay varias propiedades de la cabecera HTTP que son relevantes para la API deREST.

Parámetros de consulta y operadoresPara captar un recurso del que se conoce su ID exclusivo, puede proporcionar elID del recurso como parte de la ruta del URI. También puede utilizar parámetrosde consulta para filtrar y captar colecciones de recursos.

En una colección de recursos, la representación tiene un puntero al ID exclusivo decada recurso. El software de consumo utiliza el ID para crear el vínculo al recurso.El vínculo se utiliza para actualizar, suprimir y consultar el recurso.

A menudo, una interacción RESTful empieza capturando una colección de recursosy, a continuación, yendo a un recurso específico de la colección.

Puede utilizar cualquier campo de un recurso de objeto de negocio o un recurso deobjeto de negocio relacionado como parámetro de consulta. La infraestructura deconsulta por ejemplo (QBE) de objeto de negocio restringe la relación entre losobjetos de negocio a un nivel. Puede utilizarse como parámetro de consultacualquier campo de un recurso de estructura de objeto si el campo pertenece a unobjeto que reside en los dos niveles superiores de la estructura de objeto.

Si utiliza un atributo de objeto de negocio como parámetro de consulta, puedenutilizarse los operadores siguientes como parte del parámetro.

248 Integración de datos con aplicaciones externas

Page 255: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Operador Notación Ejemplo

Igual ~eq~ status=~eq~APPR Utilice eloperador de igualdad pararealizar una coincidenciaexacta. Una consultastatus=APPR implica unacomparación de operadorlike. Si utilizastatus=APPR&_exactmatch=1,se fuerza al procesador arealizar una coincidenciaexacta. Esta notación produceel mismo resultado questatus=~eq~APPR.

No igual ~neq~ status=~neq~APPR

Mayor que ~gt~ quantity=~gt~2.5

Mayor que igual ~gteq~ quantity=~gteq~2.5

Menor que ~lt~ quantity=~lt~2.5

Menor que igual ~lteq~ quantity=~lteq~2.5

Termina con ~ew~ description=~ew~APPR

Empieza por ~sw~ description=~sw~APPR

Como No se requiere notación description=APPR

Ejemplo: consulta por ubicación

El ejemplo siguiente consulta una ubicación utilizando el número de ubicacióncomo parámetro de consulta sin operador:GET maxrest/rest/mbo/locations?location=PT100

La consulta devuelve el XML siguiente:<?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>

Puesto que no se especifica ningún operador, se utiliza una comparación como y elresultado tiene dos ubicaciones. Si la solicitud utiliza el operador igual, sólo sedevuelve la ubicación PT100 para la solicitud de la consulta porque el operadorfuerza una coincidencia exacta:GET /maxrest/rest/mbo/locations?location=~eq~PT100

Integración de datos con aplicaciones externas 249

Page 256: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Ejemplo: uso de varios parámetros

El ejemplo siguiente muestra el uso de varios parámetros para consultar unacantidad acumulada anual de despacho mayor que 1 y una cantidad de pedidosmayor que 5:GET /maxrest/rest/mbo/inventory?issueytd=~gt~1&orderqty=~gt~5

Ejemplo: uso de la condición ormode

Puede solicitar varios valores para un solo campo utilizando la condición ormode.El ejemplo siguiente selecciona registros en los que la cantidad acumulada anualde despacho es igual a 7 o menor que 4:GET /maxrest/rest/mbo/inventory?issueytd.ormode=~eq~7&issueytd.ormode=~lt~4

Ejemplo: no se seleccionan registros

Si no se selecciona ningún registro como resultado de una solicitud de consulta, sedevuelve un conjunto de resultados vacío, no una condición de excepción.

Por ejemplo, la solicitud siguiente es para registros que tienen una cantidadacumulada anual de despacho 99:GET /maxrest/rest/mbo/inventory?issueytd=~eq~99

No se selecciona ningún registro como resultado de esta solicitud y, por tanto, sedevuelve un resultado vacío:<?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 _opmodeorUtilice el parámetro _opmodeor para evaluar varios campos utilizando unacondición OR entre los valores en lugar de la condición predeterminada AND.

Por ejemplo, la solicitud siguiente devuelve registros en los que la cantidadacumulada anual es mayor que 1 y la cantidad del pedido es mayor que 5:GET /maxrest/rest/mbo/inventory?issueytd=~gt~1&orderqty=~gt~5

La solicitud selecciona seis registros, tal como se muestra en el atributo rsTotal:<?xml version="1.0" encoding="UTF-8" ?>

<INVENTORYMboSet rsStart="0" rsTotal="6" rsCount="6"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"><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">

.

.

250 Integración de datos con aplicaciones externas

Page 257: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

La siguiente solicitud modificada establece el parámetro _opmodeor en true paradevolver registros en los que la cantidad acumulada anual es mayor que 1, o lacantidad del pedido es mayor que 5:GET /maxrest/rest/mbo/inventory?issueytd=~gt~1&orderqty=~gt~5&_opmodeor=1

La consulta modificada selecciona 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 y _maxItemsLos parámetros _rsStart y _maxItems se utilizan juntos para controlar el númerode registros devueltos para una solicitud y para permitir la paginación a través deuna gran volumen de registros.

Ejemplo: seleccionar todos los recursos de activos

La solicitud siguiente selecciona todos los recursos de activos en el sistema:GET maxrest/rest/mbo/asset?&_opmodeor=1

En este ejemplo, se seleccionan 757 activos:<?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>

En la solicitud siguiente, el parámetro _maxItems limita el número de filasseleccionadas. El número de filas está limitado a 20, tal como muestra el valor dersCount: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 las 20 filas siguientes, la solicitud siguiente añade el 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">

Se recuperan las 20 filas siguientes, empezando en la fila 20 y terminando en la 39.Conceptos relacionados:

Integración de datos con aplicaciones externas 251

Page 258: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

“Desplazamiento dentro de la sesión” en la página 256Cuando se desplaza por las páginas de datos, se puede mejorar el rendimientomanteniendo una colección de recursos.

Parámetro _orderbyascEl parámetro _orderbyasc controla el orden de clasificación de los datos devueltos.

Los atributos que se utilizan para el orden por cláusula se muestran en ordenascendente. Proporcione una lista de nombres de campo separados por comas paraque el objeto de recurso ordene el resultado.

Utilice el parámetro _orderbydesc de forma similar para ordenar en ordendescendente.

Ejemplo: ordenar una respuesta

La solicitud siguiente no incluye el parámetro _orderbyasc:GET /maxrest/rest/mbo/asset?_maxItems=20&_rsStart=20

Se devuelven los activos siguientes:<?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>..

La solicitud siguiente incluye el parámetro _orderbyasc especificando el campo deubicación del objeto de negocio de activo:GET /maxrest/rest/mbo/asset?_maxItems=20&_rsStart=20&_orderbyasc=location

La solicitud modificada devuelve los activos siguientes en el orden de clasificaciónsolicitado:<?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>

252 Integración de datos con aplicaciones externas

Page 259: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

.

.<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>..

Parámetros _includecols y _excludecolsUtilice los parámetros _includecols y _excludecols para controlar el contenido delos atributos que se devuelven en respuesta a una consulta.

Si no se especifica ninguno de estos parámetros, todos los atributos se devuelvenpara un recurso de objeto de negocio. Los parámetros _includecols y_excludecols sólo son válidos para un recurso de objeto de negocio.

Ejemplo: recuperar campos específicos

Si utiliza el parámetro _includecols, sólo se devuelven los atributos listados parael parámetro:GET /maxrest/rest/mbo/asset?_includecols=assetnum,serialnum

La solicitud sólo devuelve el número de activo y el número de serie:<?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>

Ejemplo: excluir un campo

El parámetro _excludecols identifica una lista de campos de objeto de negociopara excluir de la respuesta de la consulta:GET /maxrest/rest/mbo/asset?_excludecols=serialnum

En este ejemplo, la solicitud devuelve todos los campos del recurso de activoexcepto el número de serie.

Parámetro _dropnullsEstablezca el parámetro _dropnulls en false para incluir campos que tienen unvalor nulo en la respuesta de la consulta.

Integración de datos con aplicaciones externas 253

Page 260: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Una consulta devuelve todos los campos de recursos a menos que hayarestricciones por parte de otros parámetros o de la configuración de la estructurade objeto. Si no se proporciona el parámetro _dropnulls, se descartan los camposnulos de la respuesta de la consulta.

Ejemplo: incluir campos que tienen valores nulos

La consulta siguiente incluye el parámetro:GET /maxrest/rest/os/mxasset?_dropnulls=0&_maxItems=1

La consulta devuelve valores nulos, tal como se muestra en el XML siguiente:<?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 /><BUDGETCOST>0.0</BUDGETCOST><CALNUM /><CHANGEBY>WILSON</CHANGEBY>..

Parámetros _format y _compactLa API de REST soporta las representaciones (formatos) XML y JSON. Puedeutilizar el parámetro _format o la negociación de contenido para especificar unarepresentación de recurso. Puede utilizar el parámetro _compact para especificar elformato JSON compacto.

Si una solicitud no especifica un formato, se utiliza la representaciónpredeterminada. El valor predeterminado lo define la propiedad del sistemamxe.rest.mbo.defaultformat.

Si una solicitud especifica el parámetro _format, el valor se valida contra la lista deformatos soportados en la propiedad del sistema mxe.rest.supportedformats. Si elformato solicitado coincide con uno de los formatos soportados, el formatosolicitado se utiliza en el formato de respuesta. Si el formato solicitado no coincidecon la lista de formatos soportados, se genera un código de error HTTP 406.

El parámetro de consulta booleano _compact se aplica al formato JSON cuando larespuesta formateada se puede devolver en estilo compacto. La estructura de losdatos de respuesta se simplifica y no se devuelven metadatos para valores decampo individuales.

Ejemplo: especificar representación JSON

La solicitud siguiente es para un objeto Activo en representación JSON:GET /maxrest/rest/mbo/asset/123?_format=json

Se devuelve la respuesta siguiente:

254 Integración de datos con aplicaciones externas

Page 261: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

{

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"}

Ejemplo: especificar formato compacto

La solicitud siguiente especifica el formato compacto:GET /maxrest/rest/mbo/asset/123?_format=json&_compact=1

Se devuelve la respuesta siguiente:{

ASSET: {ASSETNUM: "11200"SERIALNUM: "3481-52"ASSETTAG: "3751"LOCATION: "BR200"DESCRIPTION: "HVAC System- 50 Ton Cool Cap/ 450000 Btu Heat Cap"VENDOR: "TRN"MANUFACTURER: "TRN"..

Conceptos relacionados:“Negociación de contenido de representaciones”La API de REST soporta la identificación del formato de representación utilizandola negociación de contenido como alternativa al uso del parámetro de consulta_format.

Negociación de contenido de representacionesLa API de REST soporta la identificación del formato de representación utilizandola negociación de contenido como alternativa al uso del parámetro de consulta_format.

Para los formatos XML y JSON, los valores de mimetype soportados estándefinidos en las propiedades de sistema siguientes:

Propiedad Valor

mxe.rest.format.json.mimetypes application/json

Integración de datos con aplicaciones externas 255

Page 262: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Propiedad Valor

mxe.rest.format.xml.mimetypes application/xml,text/xml

El formato es un alias para uno o muchos tipos mime, y se utiliza para identificarel serializador para un tipo mime solicitado. La API de REST utiliza el valor decabecera HTTP Accept para la negociación de contenido. La API de REST hacecoincidir el valor de cabecera con uno de los tipos mime especificados que estándefinidos en la propiedad del sistema. Si hay coincidencia, la API de REST utilizael valor como el formato correspondiente para el formato de respuesta. Si no haycoincidencia con la lista de formatos soportados, se genera un código de errorHTTP 406.

Los serializadores XML y JSON siempre responden con los valoresapplication/xml para la representación XML y application/json para larepresentación JSON en la propiedad de cabecera Content-Type. Si crea unserializador para dar soporte a otro formato, agregue su formato a la lista en lapropiedad del sistema mxe.rest.supportedformats.

Los valores en la propiedad del sistema mxe.rest.supportedformats estánrelacionados con los valores que se proporcionan en propiedades individuales paralos valores de tipo mime soportados correspondientes, por ejemplo,mxe.rest.format.NEW.mimetypes. Los valores de tipo mime se proporcionan en lasolicitud mediante la propiedad de cabecera Accept.

Por ejemplo, se utilizan las siguientes propiedades del sistema para añadir HTMLcomo formato de representación de recurso:

Propiedad Valor

mxe.rest.supportedformats html,xml,json,image

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

Cuando se proporciona el parámetro _format y la propiedad de cabecera Acceptpara una consulta, el parámetro de consulta tiene prioridad.Conceptos relacionados:“Parámetros _format y _compact” en la página 254La API de REST soporta las representaciones (formatos) XML y JSON. Puedeutilizar el parámetro _format o la negociación de contenido para especificar unarepresentación de recurso. Puede utilizar el parámetro _compact para especificar elformato JSON compacto.

Desplazamiento dentro de la sesiónCuando se desplaza por las páginas de datos, se puede mejorar el rendimientomanteniendo una colección de recursos.

Si especifica el parámetro _usc con el valor 1 en una consulta, el servidor mantienela colección de recursos en memoria. El navegador puede solicitar páginasadicionales de datos de la memoria en lugar de volver a seleccionar los datos delobjeto de negocio. La respuesta HTTP incluye el ID de la colección de recursos enla propiedad de cabecera RLID.

256 Integración de datos con aplicaciones externas

Page 263: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Las siguientes solicitudes de páginas adicionales pueden especificar los parámetros_maxitem, _rsStart y _rlid, que contiene el ID de la colección de recursos. Elservidor recupera la página siguiente de los datos que se conservan en memoriapara el ID especificado.

Los datos de la memoria caché del servidor se conservan hasta que la sesión denavegador finaliza o hasta que el navegador libera los datos. Por ejemplo, los datosse liberan si el ID del recurso lo especifica el parámetro _rlid y el parámetro _rlrqestá establecido en true.

Como alternativa al uso de los parámetros _maxitems y _rsStart paradesplazamiento dentro de la sesión, puede crear una propiedad del sistemamxe.rest.manejador.recurso.pagesize y asignarle un número de recursos para cadapágina de datos. A continuación, puede utilizar el parámetro de consulta _page enla solicitud para seleccionar una página específica de datos, por ejemplo, la página3.

Por ejemplo, si crea la propiedad del sistema mxe.rest.mbo.asset.pagesize y leasigna el valor 35, se devuelven 35 activos para cada página de datos.Conceptos relacionados:“Parámetros _rsStart y _maxItems” en la página 251Los parámetros _rsStart y _maxItems se utilizan juntos para controlar el númerode registros devueltos para una solicitud y para permitir la paginación a través deuna gran volumen de registros.Referencia relacionada:“Propiedades de la cabecera HTTP” en la página 266Hay varias propiedades de la cabecera HTTP que son relevantes para la API deREST.“Parámetros de consulta REST” en la página 271Utilizando parámetros de consulta, puede adaptar y filtrar las respuestas.

Almacenamiento en memoria caché de solicitudes GETHabilitando el almacenamiento en memoria caché de las solicitudes GET, puedemejorar los tiempos de repuesta de solicitudes de datos de recursos que el mismousuario ha sometido anteriormente.

Cuando está habilitado el almacenamiento en memoria caché, los datos serecuperan de la memoria caché del navegador en lugar de recuperarlos del objetode negocio en el servidor. El almacenamiento en memoria caché se utiliza para unasolicitud si el valor del rótulo de entidad (ETag) de la solicitud coincide con elvalor de la solicitud anterior. El almacenamiento en memoria caché es exclusivopara cada usuario y lo controla la propiedad de cabecera HTTP Cache-Control.

Habilitación del almacenamiento en memoria caché

Puede habilitar el almacenamiento en memoria caché para recursos individualescreando propiedades del sistema. Las propiedades del sistema deben tener elformato mxe.rest.manejador.recurso.cache, donde manejador es mbo o os y recurso esel nombre del objeto de negocio o estructura de objeto. Las propiedades delsistema deben tener el valor booleano 1.

Por ejemplo, si se establece la propiedad del sistemamxe.rest.mbo.workorder.cache en 1, se habilita el almacenamiento en memoriacaché para el objeto de negocio de orden de trabajo.

Integración de datos con aplicaciones externas 257

Page 264: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Cálculo y comparación del rótulo de entidad

Cuando se realiza una solicitud inicial para un recurso y el almacenamiento enmemoria caché está habilitado para el recurso, la infraestructura genera un valorde ETag para la respuesta del recurso. El ETag se calcula según el atributo MBOrowstamp, que cambia cuando se modifica un MBO. Para una colección derecursos, el ETag se calcula según un hash de la colección de valores de rowstampde los MBO en la colección.

Por ejemplo, la respuesta contiene lo siguiente en la cabecera HTTP:HTTP/1.1 200 OKETag: "123456789"Cache-control: privateContent-Length: 12195

Cache-control se marca como private para asegurar que sólo el usuario actualpuede reutilizar el contenido de la memoria caché.

Cuando el usuario realiza una solicitud repetida para el mismo recurso de lacolección, la solicitud es parecida a la siguiente:GET maxrest/rest/mbo/po HTTP/1.1Host: x.yIf-None-Match: "123456789"

El valor de If-None-Match es el valor de ETag de la solicitud anterior. Lainfraestructura lee el valor de la cabecera If-None-Match y lo compara con el nuevovalor de ETag calculado para el recurso de la colección para la segunda solicitud.Si los valores coinciden, el servidor responde con un HTTP 304, que implica que elcontenido de la memoria caché del cliente es válida y se puede utilizar. Larespuesta incluye la siguiente línea:HTTP/1.1 304 No modificado

Si el valor de ETag no coincide con el valor de la cabecera If-None-Match de lasolicitud, se crea la representación del recurso y se envía al cliente con un nuevovalor de ETag para que lo utilice el cliente para solicitudes posteriores para elrecurso o la colección:HTTP/1.1 200 OKETag: "98999999"Cache-control: privateContent-Length: 50004

Modalidad de almacenamiento en memoria caché pesimista

La modalidad predeterminada de almacenamiento en memoria caché es pesimista.En la modalidad pesimista de almacenamiento en memoria caché, las solicitudes seserializan pero los datos no se envían del servidor al cliente cuando el valor deETag de la solicitud coincide con el valor de la solicitud anterior.

Modalidad de almacenamiento en memoria caché optimista

Puede habilitar el almacenamiento en memoria caché optimista estableciendo lapropiedad del sistema mxe.rest.manejador.recurso.optimistic en 1. En lamodalidad de almacenamiento en memoria caché optimista, el valor de ETag secalcula antes de que se produzca la serialización de datos. Aunque elalmacenamiento en memoria caché optimista puede mejorar los tiempos derespuesta significativamente porque no se produce serialización, requiere másmemoria, especialmente para consultas que solicitan muchos registros.

258 Integración de datos con aplicaciones externas

Page 265: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

De forma predeterminada, el almacenamiento en memoria caché optimistadetermina el valor de ETag a partir del objeto raíz de una estructura de objeto. Portanto, si una estructura de objeto tiene objetos relacionados que no actualizan elobjeto raíz, es posible que el valor de ETag no sea exacto. Puede asegurar que elvalor de ETag se determine a partir de todos los objetos en la estructura de objeto,incluidos los objetos relacionados, estableciendo la propiedad del sistemamxe.rest.manejador.recurso.deepetag en 1. Sin embargo, al utilizar esta propiedaddel sistema, la mejora en el rendimiento no es tan grande y se utiliza másmemoria.

Límites de tiempo de la memoria caché

Puede configurar el periodo de tiempo de validez de la memoria cachéestableciendo la propiedad del sistema mxe.rest.manejador.recurso.maxage en unvalor en segundos.Referencia relacionada:“Propiedades de la cabecera HTTP” en la página 266Hay varias propiedades de la cabecera HTTP que son relevantes para la API deREST.“Propiedades del sistema REST” en la página 275Las propiedades del sistema están disponibles para configurar cómo funciona laAPI de REST según sus requisitos específicos.

Métodos PUT, POST y DELETEPuede modificar los recursos utilizando los métodos HTTP PUT, POST y DELETE.

Los métodos PUT, POST y DELETE se pueden utilizar para modificar los recursosde objeto de negocio y los recursos de estructura de objeto. Sin embargo, las reglasempresariales de un objeto pueden impedir que se actualice mediante una solicitudde la API de REST. Por ejemplo, una solicitud DELETE en un recurso de orden detrabajo puede fallar si las validaciones del objeto de negocio impiden lassupresiones a causa del estado actual del objeto de negocio.

Sintaxismétodo uri HTTP/1.1parámetro=valor&parámetro=valor&...

método es PUT, POST o DELETE

uri es un URI y los parámetros de consulta asociados

parámetro es un parámetro del recurso que se actualiza

valor es el valor del parámetro

método PUTUtilice el método PUT para actualizar o insertar un recurso. Una solicitud deactualización debe proporcionar el ID exclusivo del recurso. Para actualizar unrecurso de estructura de objeto, se requiere el ID del objeto principal.

Para actualizar o insertar un recurso de estructura de objeto, puede especificar elparámetro _action para identificar acciones proporcionadas por la infraestructurade integración, por ejemplo, las acciones Change o AddChange.

Integración de datos con aplicaciones externas 259

Page 266: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Ejemplo: actualizar un activo

El método siguiente actualiza el activo que tiene el ID 1234. La descripción delactivo se cambia por mi_nueva_descripción y el tipo se cambia por OPERATING:PUT maxrest/rest/mbo/asset/1234 HTTP/1.1description=mi_nueva_descripción&type=OPERATING

Ejemplo: actualizar un objeto de nivel inferior

El método siguiente actualiza el objeto de negocio assetspec, que es un nivelinferior de asset. El valor se cambia por nuevo_valor y la descripción se cambiapor mi_nueva_descripción:PUT maxrest/rest/mbo/assetspec/5678 HTTP/1.1value=mi_nuevo_valor&description=mi_nueva_descripción

Ejemplo: establecer el contexto de un objeto de nivel superior

Para insertar o actualizar un objeto de negocio de nivel inferior, es posible quetenga que establecer el contexto del objeto de negocio de nivel superior, como en elejemplo siguiente, en el que se actualiza la descripción de la línea de OC y seproporciona el ID de la OC para el contexto:PUT maxrest/rest/mbo/po/1234/poline/5678 HTTP/1.1description=mi_nueva_descripción

Método POSTUtilice el método POST para actualizar o insertar un recurso.

Para actualizar un recurso, debe especificar el ID del recurso. Para crear unrecurso, debe especificar la clave primaria y todos los campos necesarios que notienen un valor predeterminado, pero no es necesario ningún ID.

Para actualizar o insertar un recurso de estructura de objeto, puede especificar elparámetro _action para identificar acciones proporcionadas por la infraestructurade integración, por ejemplo, Change o AddChange.

Para actualizar o insertar un objeto de nivel inferior de un recurso de estructura deobjeto, los datos del formulario deben identificar cada aparición del objeto de nivelinferior.

Cuando utilice el método POST para crear un recurso, especifique el parámetro deconsulta _ulcr con el valor 1 para que la respuesta incluya un vínculo para que elcliente acceda al nuevo recurso. De lo contrario, el contenido del recurso se incluyeen la respuesta. El vínculo se incluye en la propiedad de cabecera Ubicación y elcódigo de respuesta HTTP es 201 para identificar que se proporciona un vínculo enlugar de los datos.

Ejemplo: insertar un activo

El método siguiente inserta el activo 127 dentro de la planta BEDFORD utilizandoun recurso de objeto de negocio. El activo y la planta forman la clave primaria.POST maxrest/rest/mbo/asset HTTP/1.1assetnum=127&siteid=BEDFORD&description=mi_nueva_descripción&type=OPERATING

Ejemplo: actualizar un activo especificando su ID

El método siguiente actualiza un activo proporcionando el ID como parte del URI:

260 Integración de datos con aplicaciones externas

Page 267: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

POST maxrest/rest/mbo/asset/1234 HTTP/1.1description=mi_nueva_descripción&type=OPERATING

Ejemplo: especificar una acción

El método siguiente utiliza el parámetro _action para especificar una acciónChange:POST maxrest/rest/mbo/asset/968 HTTP/1.1_action=Change&description=mi_nueva_descripción

Ejemplo: actualizar un registro que tiene varios objetos de nivelinferior

El método siguiente agrega dos líneas de orden de compra a una orden de compra,y cada línea tiene dos costes de orden 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=nueva_descripción&poline.id1.pocost.id1-1.costlinenum=1&poline.id1.pocost.id1-1.gldebitacct=nuew_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=nueva_descripción&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&

En el ejemplo, los identificadores identifican los parámetros siguientes:

Identificador degrupo Parámetros identificados

id1 Parámetros que pertenecen a POLINE 1

id1-1 Parámetros que pertenecen a POCOST 1 para POLINE 1

id1-2 Parámetros que pertenecen a POCOST 2 para POLINE 1

id2 Parámetros que pertenecen a POLINE 2

id2-1 Parámetros que pertenecen a POCOST 1 para POLINE 2

id2-2 Parámetros que pertenecen a POCOST 2 para POLINE 2

Referencia relacionada:“Propiedades de la cabecera HTTP” en la página 266Hay varias propiedades de la cabecera HTTP que son relevantes para la API deREST.

Método DELETEEl método DELETE requiere el ID exclusivo del recurso.

Para suprimir un recurso de estructura de objeto, se requiere el ID del objetoprincipal.

Ejemplo: suprimir un activo

El método siguiente suprime el activo 1234:DELETE maxrest/rest/mbo/asset/1234 HTTP/1.1

simultáneo simultáneas de recursosSe puede controlar el proceso de forma que sólo se actualice o suprima un recursosi éste no ha sido cambiado por otro usuario o aplicación después de la consultainicial.

Integración de datos con aplicaciones externas 261

Page 268: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Si el parámetro _urs se establece en el valor 1, la respuesta de la consulta incluyeel valor de identificador de fila para el recurso.

Ejemplo XML:<PO rowstamp=1234567890>

Ejemplo JSON:{"ASSET":{"rowstamp":"1234567890","Attributes":{"ASSETNUM":{"content":"1001"}

Ejemplo JSON en formato compacto:{"ASSET":{"rowstamp":"1234567890","ASSETNUM":"1001",

Para un recurso de estructura de objeto, se proporciona un valor de identificadorde fila para cada objeto que está en la estructura de objeto.

En una solicitud posterior para actualizar el recurso, el valor de identificador defila se puede proporcionar utilizando el parámetro _rowstamp para recursos deobjeto de negocio y de estructura de objeto, o especificando la propiedad decabecera If-Match para objetos de negocio.

Durante el proceso, el valor de identificador de fila se compara con el identificadorde fila inicial. Si los valores no coinciden, la operación de actualización o supresiónfalla y en la respuesta se devuelve el código de retorno HTTP 412.

Actualizaciones y consultas de métodos de serviciosSe puede utilizar la API de REST para llamar a métodos expuestos por losservicios de aplicaciones.

Los métodos expuestos por los servicios de aplicaciones normalmente se marcancon la anotación JSR (Java Specification Request) 181 @WebMethod, que los exponecomo métodos de servicios web. La API de REST proporciona una vista orientadaa recurso de estos métodos de servicios.

Los métodos de servicios están en las siguientes categorías:v Métodos que crean, actualizan o suprimen recursos utilizando el método HTTP

POST y que modifican el estado del sistema al hacerlo.v Métodos que captan recursos o colecciones de recursos utilizando el método

HTTP GET y que no modifican el estado del sistema.v Métodos que devuelven información del sistema, por ejemplo, la fecha o la

versión, utilizando el método HTTP GET y que no acceden a recursos.

Métodos de servicios que utilizan HTTP POST para actualizarrecursosLos métodos pueden crear, actualizar o suprimir recursos utilizando el métodoHTTP POST.

Los métodos que actualizan recursos modifican el estado del sistema.

La cabecera XMO (X-HTTP-Method-Override) califica el HTTP POST. La cabeceraXMO contiene el nombre del método expuesto por la anotación JSR 181.

262 Integración de datos con aplicaciones externas

Page 269: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

La infraestructura REST busca el servicio propietario del recurso, localiza elmétodo que se identifica en la cabecera XMO, deserializa los parámetros deformulario POST, llama al método y devuelve la representación serializada delrecurso modificado.

Ejemplo: anotar un método

Por ejemplo, el servicio ASSET tiene anotado el método de negociomoveSingleAsset:@WebMethodpublic void moveSingleAsset(@WSMboKey("ASSET") MboRemote asset, String newLocation,

String newSite, String newParent) throws MXException, RemoteException

El método mueve un activo de su ubicación actual a una nueva ubicación y, portanto, modifica el estado del sistema. Se utiliza la solicitud siguiente para llamar almétodo:POST maxrest/rest/mbo/asset/1234 HTTP/1.1x-http-method-override: "moveSingleAsset"

La solicitud de datos de formulario es la siguiente:~asset=this&~newLocation=Some_where&~newSite=some_site&~newParent=Some_one

Cuando se realiza la solicitud, se produce lo siguiente:1. Se carga el objeto de negocio de activo que tiene el identificador 1234.2. Se busca el servicio propietario (ASSET).3. Se encuentra el método denominado moveSingleAsset.4. Se referencia el activo que está en el URI al objeto de negocio ASSET mediante

la anotación @WSMboKey y se proporciona el objeto de negocio como primervalor de parámetro en la solicitud de datos de formulario.

5. Se deserializan y asignan los valores restantes, según sus nombres.6. Se devuelve el activo 1234 modificado al cliente en la representación solicitada.

Ejemplo: alterar un nombre de parámetro de método

Los nombres de parámetros de formulario son los mismos que los nombres deparámetros de método, con el prefijo ~ (tilde), a menos que se hayan anotado conla anotación @WebParam(name="...").

Por ejemplo, supongamos un caso en el que la definición de método tiene unnombre de operación definido en la anotación:@WebMethod(operationName="moveAssetLocation")public void moveSingleAsset(...)

En este caso, se utiliza la solicitud siguiente para llamar al método:POST maxrest/rest/mbo/asset/1234 HTTP/1.1x-method-override: "moveAssetLocation"

La solicitud de datos de formulario es la siguiente:~asset=this&~newLocation=Some_where&~newSite=some_site&~newParent=Some_one

El valor de la cabecera XMO debe utilizar el valor de atributo especificado en laanotación @WebMethod: moveAssetLocation.

Integración de datos con aplicaciones externas 263

Page 270: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Métodos de servicios que utilizan HTTP GET para consultarrecursosEl método HTTP GET puede acceder a un nombre de método o nombre deoperación anotada que empiece con las palabra clave get.

Por ejemplo, el método siguiente del servicio LOGGING devuelve la lista deobjetos de negocio MAXLOGGER como un conjunto de objetos de negocio:@WebMethod@WSMboSet(name="MAXLOGGER")public MboSetRemote getLoggerList()

La solicitud siguiente se utiliza para llamar al método y devuelve la colección deobjetos de negocio en la representación configurada:GET maxrest/rest/mbo/maxlogger?_qop=getLoggerList HTTP/1.1

En la siguiente variación del método, se proporciona un nombre de operación:@WebMethod(operationName=”getFilteredLoggers”)@WSMboSet(name="MAXLOGGER")public MboSetRemote getLoggerList(String someFilter)

La solicitud siguiente se utiliza para llamar al método:GET maxrest/rest/mbo/maxlogger?_qop=getFilteredLoggers&~someFilter=... HTTP/1.1

El valor de _qop especifica el nombre anotado. El parámetro someFilter lleva elprefijo ~ como parte de la solicitud.

Métodos virtuales

Si un nombre de método no empieza con la palabra clave get, no se le puedellamar directamente. Por ejemplo, si un cliente intenta llamar a la operaciónmoveSingleAsset utilizando HTTP GET, se genera un error HTTP 405. Sinembargo, puede definir un método virtual utilizando una propiedad del sistema.

Por ejemplo, supongamos que crea la propiedadmxe.rest.mbo.maxqueue.action.getQueueData y le asigna el valor_operation=viewQueue|~queueName=this.queuename.

Para el recurso maxqueue, el método virtual getQueueData se correlaciona con laoperación viewQueue en el servicio propietario de maxqueue, que es el servicioMIC. El carácter de conducto | separa los atributos. Por tanto, puede acceder a laoperación viewQueue utilizando la siguiente llamada HTTP GET:GET /maxrest/rest/mbo/maxqueue/4567?_qop=getQueueData&~selector=...&~count=-1

Puede especificar valores literales o derivados para un parámetro de método.

Por ejemplo, el método viewQueue tiene un parámetro queueName que secorrelaciona con el atributo maxqueue.queuename. maxqueue es el objeto denegocio en el contexto actual especificado por el URI de GET. Por tanto, lainfraestructura evalúa el valor derivado this.queuename comocurrent_mbo_in_context.queuename, que es el valor del atributo queuename demaxqueue identificado por el ID exclusivo 4567.

Como segundo ejemplo, supongamos que crea la propiedad del sistemamxe.rest.mbo.po.action.approve y le asigna el valor_operation=changeStatus|~status=APPR.

264 Integración de datos con aplicaciones externas

Page 271: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Se crea una operación virtual denominada approve y se correlaciona con laoperación denominada changeStatus en OC, que es el servicio propietario delobjeto de negocio de OC. Para mayor simplicidad en el ejemplo, el valor para elparámetro de estado está protegido en APPR. El valor protegido no sería prácticoporque el valor del parámetro de estado debe poderse convertir.

Si utiliza métodos virtuales, debe asegurarse de que los métodos HTTP GET no secorrelacionen con operaciones que modifican el estado del sistema o que tienenalgún otro efecto secundario.

Operación initiateWorkflow predefinida

La operación predefinida initiateWorkflow inicia un flujo de trabajo para unrecurso de objeto de negocio. Los dos ejemplos siguientes utilizan esta operación: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"

El método inicia la revisión activa de un flujo de trabajo denominado SOMEWFpara el objeto de negocio de orden de compra que tiene el ID exclusivo 6789. Si elflujo de trabajo tiene un nodo de espera o un nodo de tarea, es posible que seannecesarios otros pasos o un evento en segundo plano para reiniciarlo, lo cual estáfuera del ámbito de la API de REST.

Métodos de servicios que utilizan HTTP GET para consultardatos del sistemaAlgunas operaciones de servicios recuperan datos del sistema y no estánorientadas a recursos.

Por ejemplo, el siguiente HTTP GET recupera la fecha y la hora:GET /maxrest/rest/ss/system/getDate

Se devuelve el XML siguiente:<getDateResponse xmlns=....><result>una fecha ISO 8601</result></getDateResponse>

En este otro ejemplo, el siguiente HTTP GET devuelve información sobre laversión:GET /maxrest/rest/ssm/system/getMXServerVersion

Se devuelve el XML siguiente:<getMXServerVersionResponse xmlns=...><return>Motor de automatización de procesos de Tivoli 7.5.0.0 Build 20110127-1121DB Build V7500-673</return><return>...</return></getMXServerVersionResponse>

Para obtener una lista de todos los servicios, puede utilizar el siguiente métodoGET:GET /maxrest/rest/ss

Integración de datos con aplicaciones externas 265

Page 272: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Puede profundizar más en cada uno de los servicios de la lista para obtener unalista de las operaciones que se pueden llamar. Por ejemplo, el método siguientedevuelve las operaciones para el servicio que se llama system:GET /maxrest/rest/ss/system

Propiedades de la cabecera HTTPHay varias propiedades de la cabecera HTTP que son relevantes para la API deREST.

Tabla 35. Propiedades de la cabecera HTTP de la API de REST

Propiedad Descripción

Accept La proporciona el solicitante y se utiliza en la negociación decontenido para determinar el formato de la respuesta.

Accept-Language Proporciona los datos en el idioma solicitado. Esta propiedad sólose aplica a campos de aplicación que dan soporte a múltiplesidiomas. Los valores que se proporcionan (como EN o FR) debenestar soportados por la aplicación.

El parámetro de consulta _lang puede proporcionar el código deidioma y la misma prestación que la propiedad de cabeceraAccept-Language.

El parámetro de consulta _locale habilita que los números y lasfechas se devuelvan en el entorno local del solicitante.

Cache-Control Notifica al solicitante si está habilitado el almacenamiento enmemoria caché.

Si está habilitado, la propiedad Cache-Control tiene el valor privatepara asegurar que sólo el usuario actual puede reutilizar elcontenido en la memoria caché.

Cuando no está habilitado el almacenamiento en memoria caché, lapropiedad Cache-Control tiene el valor no-cache.

La solicitud del cliente puede contener la cabecera Cache-Control:no-cache para inhabilitar el almacenamiento en memoria caché parauna solicitud específica, aunque esté habilitado para el recurso.

Content-Length Contiene la longitud de la respuesta.

Content-Type Notifica al solicitante del formato de la representación que se envía.Por ejemplo, puede especificarse el valor application/xml (paraformato de respuesta XML) o application/json (para formato derespuesta JSON).

ETag Si el almacenamiento en memoria caché está habilitado, contiene elvalor Etag para el recurso que se solicita. La memoria caché delnavegador del solicitante conserva el valor para futuras solicitudespara el mismo recurso.

If-None-Match Si el almacenamiento en memoria caché está habilitado, contiene elvalor Etag para el recurso que se ha solicitado anteriormente, deforma que la API pueda determinar si el contenido de la memoriacaché puede volver a utilizarse.

Last-Modified Notifica al solicitante la fecha y hora en las que el recurso se hamodificado por última vez.

Location Contiene el enlace a un recurso (código HTTP 201) creado por unHTTP POST.

266 Integración de datos con aplicaciones externas

Page 273: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 35. Propiedades de la cabecera HTTP de la API de REST (continuación)

Propiedad Descripción

_rlid Contiene el ID de la colección de recursos y se utiliza paradesplazamiento dentro de la sesión.

Conceptos relacionados:“Almacenamiento en memoria caché de solicitudes GET” en la página 257Habilitando el almacenamiento en memoria caché de las solicitudes GET, puedemejorar los tiempos de repuesta de solicitudes de datos de recursos que el mismousuario ha sometido anteriormente.“Desplazamiento dentro de la sesión” en la página 256Cuando se desplaza por las páginas de datos, se puede mejorar el rendimientomanteniendo una colección de recursos.Referencia relacionada:“Método GET” en la página 245Utilice el método GET para recuperar recursos de objeto de negocio y recursos deestructura de objeto.“Parámetros de consulta REST” en la página 271Utilizando parámetros de consulta, puede adaptar y filtrar las respuestas.“Método POST” en la página 260Utilice el método POST para actualizar o insertar un recurso.“Propiedades del sistema REST” en la página 275Las propiedades del sistema están disponibles para configurar cómo funciona laAPI de REST según sus requisitos específicos.

Códigos de respuestaLos mensajes de los recursos REST se propagan de la instancia del recurso a larespuesta.

Los siguientes códigos de respuesta HTTP los implementa la API de REST.

Tabla 36. Códigos de respuesta HTTP

Código HTTP Causa

200 Éxito.

201 Éxito. La respuesta contiene un vínculo.

304 Éxito. Los datos se recuperan de la memoria caché.

400 No se puede recibir la solicitud a causa de un URI no válido, porejemplo.

401 Se ha producido una violación de autorización a causa de laconfiguración.

403 Se ha producido una violación de autorización porque el recurso estábloqueado por una propiedad del sistemamxe.rest.tiporecurso.blockaccess.

404 No se puede encontrar el recurso o se ha proporcionado un tipo derecurso no válido.

405 No se puede utilizar el método HTTP para el recurso. Por ejemplo, nopuede utilizar el método DELETE en un conjunto de objetos de negocio.

406 La representación solicitada no está soportada.

412 Otro usuario está actualizando el recurso.

Integración de datos con aplicaciones externas 267

Page 274: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 36. Códigos de respuesta HTTP (continuación)

Código HTTP Causa

500 Todos los demás errores.

Los mensajes dan soporte a los idiomas soportados por motor de automatizaciónde procesos de Tivoli.

Seguridad en la API de RESTmotor de automatización de procesos de Tivoli proporciona la capa deautenticación y el soporte de autorización para la API de REST.

No se produce ningún proceso específico relacionado con la autenticación dentrode la infraestructura de la API de REST.

La capa de autenticación puede proporcionar autenticación J2EE o autenticaciónnativa para la API de REST, y el servidor de aplicaciones proporciona soporteHTTPS.

autenticación J2EE

Para utilizar la autenticación básica HTTP, modifique el archivo web.xml para elmódulo web maxrest, quitando el símbolo de comentario de las líneas siguientes:<!--

<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>-->

La sección <security-constraint> anterior hace referencia a un solo rol,maximouser, que se define en la sección <security-role> del archivo. De formapredeterminada, la sección <security-role> tiene símbolos de comentario:<security-role>

<description>MAXIMO Application Users</description><role-name>maximouser</role-name></security-role>

Además, cambie el valor de useAppServerSecurity, de 0 a 1:

268 Integración de datos con aplicaciones externas

Page 275: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

<description>Indicates whether to use Application Serversecurity 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>

Autenticación nativa

Si se utiliza autenticación nativa, una solicitud puede proporcionar las credencialesespecificando una propiedad de cabecera MAXAUTH que contenga un usuario yuna contraseña codificados en Base64.

Si son necesarias solicitudes de inicio de sesión o cierre de sesión, utilice lassolicitudes siguientes:

GET /maxrest/rest/login

GET /maxrest/rest/logout

Comunicación entre módulos

Puede comunicarse con la API de REST desde los módulos web de maximo ymaxrest.

En la comunicación entre módulos, normalmente no quiere que el usuario vuelva aentrar las credenciales. Si utiliza la autenticación de servidor de aplicaciones, esteproblema no se produce porque el navegador propaga la señal de autenticación alos módulos web para cada solicitud. Para autenticación nativa, la API de RESTestá disponible como una biblioteca (commonweb) a la que puede accedercualquier módulo web.

Por ejemplo, el siguiente URI consulta un activo utilizando el módulo webmaxrest: http://site.example.com:9999/maxrest/rest/mbo/asset/46.

Por el contrario, el siguiente URI consulta un activo utilizando el módulo web dela interfaz de usuario: http://site.example.com:9999/maximo/rest/mbo/asset/46.

Autorización

Para estructuras de objeto, puede conectar un recurso a una aplicación deautorización en la ficha Estructura de objeto de la aplicación Estructuras de objetos.Si especifica una aplicación de autorización, esto afectará a todos los procesos deintegración que utilizan la estructura de objeto.

Para objetos de negocio, puede conectar un recurso a una aplicación deautorización en la ventana Autorización de aplicaciones para objetos de laaplicación Estructuras de objetos. La aplicación autoriza todas las solicitudes de laAPI de REST para el recurso MBO específico.

Puede restringir el acceso a recursos especificando una lista de nombres de recursoen las propiedades de sistema mxe.rest.mbo.blockaccess ymxe.rest.os.blockaccess.Referencia relacionada:“Propiedades del sistema REST” en la página 275Las propiedades del sistema están disponibles para configurar cómo funciona laAPI de REST según sus requisitos específicos.

Integración de datos con aplicaciones externas 269

Page 276: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Personalización de la API de RESTPuede personalizar la API de REST para dar soporte a distintas representacionesde recursos, por ejemplo, los formatos XHTML o Atom. También puedepersonalizarse añadiendo atributos a la representación de un recurso de objeto denegocio o cambiando la estructura de una representación.

Para dar soporte a una nueva representación de recurso, debe proporcionarserializadores personalizados que den soporte a los nuevos formatos.

Si añade atributos, por ejemplo, un atributo al recurso de MBO de orden de trabajoen representación JSON, debe añadir un serializador JSON personalizado para elrecurso. Para dar soporte a parámetros de consulta adicionales, debe ampliar elmanejador de SO o MBO.

Asegúrese de que las personalizaciones no afectan a los usuarios o procesos denegocio existentes. Para evitar efectos adversos, puede crear una instancia apartede la API de REST para los tipos de recurso.

Para cualquier personalización, los archivos de clase deben incluirse en el archivoEAR de la aplicación como parte de la biblioteca commonweb.

Ejemplo

Los pasos siguientes personalizan la API de REST:1. Cree una propiedad del sistema copiando la propiedad mxe.rest.handler.mbo,

denominándola mxe.rest.handler.abcmbo y asignándole el valorcom.ibm.tivoli.maximo.rest.ABCMboResourceRequestHandler.Si la personalización es genérica a todos los MBO, la clase personalizada amplíael manejador de MBO base. El contexto de URI es abcmbo y, por tanto, los URLtienen este formato: /maxrest/rest/abcmbo/workorder?...Este paso crea una instancia de la API de REST para el recurso de MBO.

2. Para manejar parámetros de consulta específicos del MBO de orden de trabajo,proporcione un manejador personalizado creando la propiedad del sistemamxe.rest.handler.abcmbo.workorder y asignándole el valorcom.ibm.tivoli.maximo.rest.WOMboResourceRequestHandler.La clase podría ampliar el manejador de MBO predeterminado utilizandoABCMboResourceRequestHandler para MboResourceRequestHandler, porejemplo.

3. Para personalizar el serializador JSON para el MBO de orden de trabajo,registre el serializador creando la propiedad del sistemamxe.rest.serializer.abcmbo.workorder.json y asignándole el valorcom.ibm.tivoli.maximo.rest.WOMboJSONSerializer.

4. Para dar soporte a un nuevo formato, como Atom, añada el valor atom a lapropiedad del sistema mxe.rest.supported.formats. El nombre atom identificade forma exclusiva al serializador para el formato. Puede especificar cualquiernombre, siempre y cuando no exista un serializador con ese nombre.

5. Añada una clase de serializador creando la propiedad del sistemamxe.rest.serializer.abcmbo.atom y asignándole el valorcom.ibm.tivoli.maximo.rest.MboATOMSerializer.

6. Para identificar el nuevo formato utilizando la cabecera HTTP Accept,proporcione la correlación del tipo mime creando la propiedad del sistemamxe.rest.format.atom.mimetypes y asignándole el valor application/atom+xml.

270 Integración de datos con aplicaciones externas

Page 277: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

7. Establezca el formato predeterminado asignando el valor atom a la propiedaddel sistema mxe.rest.abcmbo.defaultformat.

Siguiendo estos pasos, la personalización no afecta a otros manejadores de recursosde MBO o SO porque está dentro del contexto del manejador de abcmbo.

Parámetros de consulta RESTUtilizando parámetros de consulta, puede adaptar y filtrar las respuestas.

Puede especificar uno o más de los siguientes parámetros de consulta paracontrolar los datos que se seleccionan. Los valores booleanos deben establecerse en1 para verdadero (true) o en 0 para falso (false).

Tabla 37. Parámetros de consulta REST

Nombre Tipo o valor Descripción Predeterm.

_compact Booleano Si es true, los datos JSON se representan en unarepresentación compacta.

False

_dropnulls Booleano Si es true, los atributos se serializan sólo si elobjeto de negocio o el recurso de estructura deobjeto tiene un valor. Si es falso, se serializantodos los atributos, aunque sean nulos.

True

_exactmatch Booleano Si es true, se evalúan los valores de parámetropara una coincidencia exacta. Si es false, seproduce una evaluación LIKE.

False

_excludecols Lista separada porcomas de atributos MBO

Excluye los atributos listados de la respuesta delrecurso. Sólo es válido para el tipo de recurso deobjeto de negocio.

_fd Especifica un dominio de tabla de aplicación paraaplicar como filtro cuando se ejecuta la consulta.Puede utilizarse con los parámetros _fdorg y_fdsite.

_fdorg Especifica un ID de organización para aplicarcomo filtro cuando se ejecuta la consulta. Debeutilizarse con el parámetro _fd.

_fdsite Especifica un ID de planta para aplicar comofiltro cuando se ejecuta la consulta. Debeutilizarse con el parámetro _fd.

_format json o xml Especifica la representación de la respuesta delrecurso.

xml

_generic Booleano Si es true, los datos del campo de respuesta delrecurso se devuelven en un formato genérico.Sólo se aplica a datos JSON.

False

_glc Booleano Si es true, los datos del componente libro mayor(GL) se incluyen para todos los campos deaplicación de Plan contable del objeto de negocio.

En la mayoría de campos de Plan contable, seincluyen los datos de componente individual. Deforma predeterminada, este parámetro omite losdatos del componente y, por tanto, puede mejorarel rendimiento.

False

_includecols Lista separada porcomas de atributos MBO

Especifica los atributos que se incluyen comoparte de la respuesta del recurso. Sólo es válidopara el tipo de recurso de objeto de negocio.

Integración de datos con aplicaciones externas 271

Page 278: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 37. Parámetros de consulta REST (continuación)

Nombre Tipo o valor Descripción Predeterm.

_keys Booleano Si es true, sólo se serializan los atributos clave delobjeto de negocio. Los demás atributos sedescartan de la respuesta del recurso.

False

_lang Especifica el código de idioma del solicitante.

Si no se especifica este parámetro, se utiliza elparámetro accept-language de la cabecera HTTPpara determinar la preferencia de idioma delsolicitante. Si la cabecera HTTP no especifica elparámetro, se utiliza el valor del usuario deintegración predeterminado.

_lid y _lpwd Especifican un ID de usuario y una contraseña deinicio de sesión. Sólo para uso de desarrollo yprueba. Sólo es válido cuando está configurada laautenticación nativa.

_locale Booleano Si es true, se devuelve la versión de textoespecífica del entorno local del atributo de objetode negocio, junto con el valor de tipo firme.

False

_maxItems Numérico Especifica el número máximo de objetos denegocio que se serializan en la colección derecursos. Utilice este parámetro con el parámetro_rsStart para buscar la respuesta en coleccionesde recursos de gran tamaño. El nombre deparámetro es sensible a las mayúsculas yminúsculas.

_md Booleano Si es true, se devuelve la información demetadatos como, por ejemplo, oculto, sólo lecturay los valores necesarios.

False

_opmodeor Booleano Si es true, se aplica el operador OR entre variosparámetros de atributo. Si es false, se aplica eloperador AND.

False

_orderby Especifica cómo se ordenan los campos de unrecurso. El valor puede ser asc (ascendente) odesc (descendente). Para un recurso de estructurade objeto, este parámetro sólo se puede utilizarpara los campos de objetos de negocio que estánen el primer o segundo nivel de la estructura deobjeto.

_orderbyasc Lista separada porcomas de atributos MBO

Especifica los atributos que se utilizan para elorden por cláusula en orden ascendente.

_orderbydesc Lista separada porcomas de atributos MBO

Especifica los atributos que se utilizan para elorden por cláusula en orden descendente.

_page Especifica el número de página que debe devolverla solicitar. Este parámetro sólo se puede utilizarsi se crea una propiedad del sistema pagesizepara el recurso que se está consultando.

_qop Especifica un método de consulta para laoperación GET. Sólo es válido para recursos MBO.

272 Integración de datos con aplicaciones externas

Page 279: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 37. Parámetros de consulta REST (continuación)

Nombre Tipo o valor Descripción Predeterm.

_rcol.alias Especifica un campo de nombre de relación quese devuelve como parte de la respuesta a laconsulta. El alias es el nombre de alias del atributorelacionado.

Al especificar este parámetro, puede consultarcampos que están relacionados con el recursoMBO que se consulta. Por ejemplo, en elparámetro _rcol.polinecost=poline.linecost,polinecost es el nombre de alias ypoline.linecost es el atributo relacionado.

_retainmbos Booleano Sólo para uso interno.

_rlid Booleano Especifica el ID de una colección de recursos. Esteparámetro sólo se utiliza para desplazamientodentro de la sesión.

_rlrq Booleano Si es true, se libera la memoria caché para lacolección de recursos especificada por elparámetro _rlid.

False

_rootonly Booleano Si es true, sólo se serializa el objeto principal de laestructura de objeto. Sólo es válido para el tipo derecurso de estructura de objeto.

False

_rowstamp Para solicitudes de actualización, puedeproporcionarse el objeto de negocio deidentificador de fila para asegurarse de que elobjeto que se está actualizando no se hamodificado desde que se ha consultado.

_rsStart Numérico Especifica el índice de inicio del MBO en lacolección de recursos que serializa la respuestadel recurso. El nombre de parámetro es sensible alas mayúsculas y minúsculas.

0

_tc Booleano Si es true, se calcula el número total de registros yese número se asigna al atributo rsTotal. Elcálculo incrementa el tiempo de proceso, según eltamaño de la colección de recursos.

False

_tz Especifica el huso horario de la solicitud. Utiliceeste parámetro para ejecutar correctamenteconsultas relacionadas con la fecha cuando elhuso horario de la solicitud es distinto del husohorario de la aplicación.

_ulcr Booleano Si es true, un método POST devuelve un enlace alnuevo recurso en la propiedad Location de lacabecera HTTP.

False

_urs Booleano Si es true, una respuesta de consulta incluye elvalor de identificación de fila para el recurso.

_usc Booleano Si es true, se utiliza el desplazamiento en sesión yla respuesta HTTP incluye el ID de colección derecursos utilizando la propiedad _rlid.

False

Integración de datos con aplicaciones externas 273

Page 280: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 37. Parámetros de consulta REST (continuación)

Nombre Tipo o valor Descripción Predeterm.

_uw Especifica una cláusula SQL WHERE para que seutilice como criterio de selección. La cláusuladebe ser compatible con una cláusula que opereen búsquedas avanzadas en aplicaciones. Utilícelacon la propiedad del sistemamxe.rest.whereclause.usepolicy.

_verbose Booleano Si es true, la respuesta del recurso pararepresentación JSON se devuelve comoformateada.

False

_vt Booleano Si es true, se valida el XML para asegurar que loscaracteres XML sean válidos. Si establece esteparámetro en false, no se ejecuta la validación y,por tanto, es posible que el rendimiento sea másalto.

Si no se especifica este parámetro, la propiedaddel sistema mxe.int.validatexml determina si sevalida el XML.

True

Conceptos relacionados:“Desplazamiento dentro de la sesión” en la página 256Cuando se desplaza por las páginas de datos, se puede mejorar el rendimientomanteniendo una colección de recursos.“Parámetros _format y _compact” en la página 254La API de REST soporta las representaciones (formatos) XML y JSON. Puedeutilizar el parámetro _format o la negociación de contenido para especificar unarepresentación de recurso. Puede utilizar el parámetro _compact para especificar elformato JSON compacto.“Parámetro _dropnulls” en la página 253Establezca el parámetro _dropnulls en false para incluir campos que tienen unvalor nulo en la respuesta de la consulta.“Parámetros _includecols y _excludecols” en la página 253Utilice los parámetros _includecols y _excludecols para controlar el contenido delos atributos que se devuelven en respuesta a una consulta.“Parámetros _rsStart y _maxItems” en la página 251Los parámetros _rsStart y _maxItems se utilizan juntos para controlar el númerode registros devueltos para una solicitud y para permitir la paginación a través deuna gran volumen de registros.“Parámetro _opmodeor” en la página 250Utilice el parámetro _opmodeor para evaluar varios campos utilizando unacondición OR entre los valores en lugar de la condición predeterminada AND.“Parámetro _orderbyasc” en la página 252El parámetro _orderbyasc controla el orden de clasificación de los datos devueltos.

Referencia relacionada:“Propiedades de la cabecera HTTP” en la página 266Hay varias propiedades de la cabecera HTTP que son relevantes para la API deREST.“Propiedades del sistema REST” en la página 275Las propiedades del sistema están disponibles para configurar cómo funciona laAPI de REST según sus requisitos específicos.

274 Integración de datos con aplicaciones externas

Page 281: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Propiedades del sistema RESTLas propiedades del sistema están disponibles para configurar cómo funciona laAPI de REST según sus requisitos específicos.

Propiedades del sistema predefinidas

Utilice las propiedades del sistema siguientes para configurar cómo funciona laAPI de REST. Todas las propiedades empiezan por mxe.rest, por ejemplo,mxe.rest.format.json.mimetypes.

Tabla 38. Propiedades del sistema REST predefinidas

Nombre mxe.rest.propiedad Descripción Valor predeterminado

format.json.mimetypes Lista separada por comas de tiposMIME soportados para JSON quese incluye en la propiedad decabecera HTTP Accept. El valorsólo se utiliza para negociación decontenido y puede ser sustituidopor parámetros de consulta queespecifican un formato.

application/json

format.xml.mimetypes Lista separada por comas de tiposMIME soportados para XML quese incluye en la propiedad decabecera HTTP Accept. El valorsólo se utiliza para negociación decontenido y puede ser sustituidopor parámetros de consulta queespecifican un formato.

application/xml,text/xml

handler.mbo El archivo de clase de manejadorde recursos para objetos denegocio.

com.ibm.tivoli.maximo.rest.MboResourceRequestHandler

handler.os El archivo de clase de manejadorde recursos para estructuras deobjeto.

com.ibm.tivoli.maximo.rest.OSResourceRequestHandler

handler.ss El archivo de clase de manejadorde servicio estándar que dasoporte al acceso a los datos delsistema.

com.ibm.tivoli.maximo.rest.MaxServiceResourceRequestHandler

mbo.blockaccess Lista separada por comas deobjetos de negocio a los que la APIde REST no puede acceder. Estapropiedad sustituyetemporalmente las restricciones deautorización configuradas.

mbo.defaultformat La representación predeterminadapara todos los objetos de negocio.Esta propiedad puede sustituirsepor el valor de la cabecera Acceptque se utiliza en la negociación decontenido y por los parámetros deconsulta que especifican unarepresentación.

xml

mbo.imglib.defaultformat La representación predeterminadade REST para el objeto de negocioIMGLIB.

image

Integración de datos con aplicaciones externas 275

Page 282: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 38. Propiedades del sistema REST predefinidas (continuación)

Nombre mxe.rest.propiedad Descripción Valor predeterminado

os.blockaccess Lista separada por comas deestructuras de objetos a las que laAPI de REST no puede acceder.Esta propiedad sustituyetemporalmente las restricciones deautorización configuradas.

os.defaultformat La representación predeterminadapara todas las estructuras deobjetos. Esta propiedad puedesustituirse por el valor de lapropiedad de cabecera Accept quese utiliza en la negociación decontenido y por los parámetros deconsulta que especifican unarepresentación.

xml

serializer.mbo.imglib.image La clase de serializador para elobjeto de negocio IMGLIB que estáen formato de imagen.

com.ibm.tivoli.maximo.rest.ImageLibSerializer

serializer.mbo.json La clase de serializador paraobjetos de negocio que están enformato JSON.

com.ibm.tivoli.maximo.rest.MboJSONSerializer

serializer.mbo.xml La clase de serializador paraobjetos de negocio que están enformato XML.

com.ibm.tivoli.maximo.rest.MboXMLSerializer

serializer.os.json La clase de serializador paraestructuras de objetos que están enformato JSON.

com.ibm.tivoli.maximo.rest.OSJSONSerializer

serializer.os.xml La clase de serializador paraestructuras de objetos que están enformato XML.

com.ibm.tivoli.maximo.rest.OSXMLSerializer

serializer.ss.json La clase de serializador para datosdel sistema de servicio estándarque están en formato JSON.

com.ibm.tivoli.maximo.rest.ServiceMethodResponseJSONSerializer

serializer.ss.xml La clase de serializador para datosdel sistema de servicio estándarque están en formato XML.

com.ibm.tivoli.maximo.rest.ServiceMethodResponseXMLSerializer

ss.defaultformat La representación predeterminadapara todos los datos del sistema deservicio estándar. Esta propiedadpuede sustituirse por el valor de lapropiedad de cabecera Accept quese utiliza en la negociación decontenido y por los parámetros deconsulta que especifican unarepresentación.

xml

supportedformats La lista de representacionessoportadas.

xml,json,image

webappurl El URL para la aplicación web deautenticación de señal. Estapropiedad es sólo para usointerno.

276 Integración de datos con aplicaciones externas

Page 283: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 38. Propiedades del sistema REST predefinidas (continuación)

Nombre mxe.rest.propiedad Descripción Valor predeterminado

whereclause.usepolicy Especifica cómo se utiliza elparámetro de consulta _uw. Si elvalor es parse, se inspecciona lacláusula SQL WHERE paraimpedir la vulnerabilidadCross-site Scripting y los ataquesde inyección SQL. Si el valor esnoparse, no se inspecciona lacláusula. Cualquier otro valorcausa que se haga caso omiso de lacláusula WHERE.

parse

Propiedades opcionales del sistema para el almacenamiento enmemoria caché

Puede crear las propiedades siguientes para configurar el almacenamiento enmemoria caché en la API de REST. Todas las propiedades deben empezar pormxe.rest, por ejemplo, mxe.rest.mbo.wo.cache.

Tabla 39. Propiedades opcionales del sistema REST para el almacenamiento en memoria caché

Nombre mxe.rest.propiedad Tipo Descripción Ejemplos

manejador.recurso.cache Booleano Permite el almacenamiento enmemoria caché pesimista parael manejador y recursoespecificados.

El valor predeterminado esfalse.

mxe.rest.mbo.wo.cacheestablecido en 1

mxe.rest.os.mxwo.cacheestablecido en 1

manejador.recurso.deepetag Booleano Si está habilitado elalmacenamiento en memoriacaché optimista, especifica quese evalúan todos los objetos enla estructura de objeto, en lugarde sólo el objeto raíz.

El valor predeterminado esfalse.

Integración de datos con aplicaciones externas 277

Page 284: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 39. Propiedades opcionales del sistema REST para el almacenamiento en memoria caché (continuación)

Nombre mxe.rest.propiedad Tipo Descripción Ejemplos

manejador.recurso.optimistic Booleano Permite el almacenamiento enmemoria caché optimista parael manejador y recursoespecificados. Se aplica acolecciones de uno o másrecursos.

Para una estructura de objeto,sólo se evalúa el objeto denegocio principal para uncambio de estado. No seevalúan los objetos de negociode nivel inferior. Los atributosno persistentes de un objeto denegocio se excluyen de lasevaluaciones de cambios deestado.

Si habilita el almacenamiento enmemoria caché optimista,también puede especificar lapropiedad del sistemamanejador.recurso.deepetag.

El valor predeterminado esfalse.

mxe.rest.mbo.wo.optimisticestablecido en 1

mxe.rest.os.mxwo.optimisticestablecido en 1

manejador.recurso.maxage Entero, ensegundos

Especifica el periodo máximode tiempo, en segundos, queuna colección de recursos semantendrá en la memoriacaché.

mxe.rest.mbo.wo.maxageestablecido en 60

mxe.rest.os.mxwo.maxageestablecido en 60

Conceptos relacionados:“Almacenamiento en memoria caché de solicitudes GET” en la página 257Habilitando el almacenamiento en memoria caché de las solicitudes GET, puedemejorar los tiempos de repuesta de solicitudes de datos de recursos que el mismousuario ha sometido anteriormente.“Representaciones soportadas” en la página 244La API de REST soporta XML y JSON como representaciones. Las representacionesestán soportadas por la implementación de clases de serializador que estánregistradas en las propiedades del sistema.Referencia relacionada:“Parámetros de consulta REST” en la página 271Utilizando parámetros de consulta, puede adaptar y filtrar las respuestas.“Propiedades de la cabecera HTTP” en la página 266Hay varias propiedades de la cabecera HTTP que son relevantes para la API deREST.

Llamadas de servicios externosSe puede llamar a las API de REST externas utilizando un punto final HTTPconfigurado.

El manejador de HTTP que da soporte a cualquier punto final HTTP configuradopermite utilizar servicios basados en REST que utilizan una carga útil XML y que

278 Integración de datos con aplicaciones externas

Page 285: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

utilizan métodos POST y GET. Puede configurarse el punto final para enviarmensajes a través de un canal de publicación o un canal de invocación.

integración de OSLCMaximo Integration Framework admite la compartición de datos de ciclo de vidaentre aplicaciones basándose en la integración de Open Services for LifecycleCollaboration (OSLC) Con la integración de OSLC, una aplicación de consumidorpuede realizar, crear, actualizar y suprimir operaciones en los recursos de datosque una aplicación de proveedor proporciona para la integración a través de unproveedor de servicios de OSLC.

Una aplicación de proveedor de OSLC proporciona los contenedores de losrecursos de datos asociados para la integración a través de los proveedores deservicios. Las aplicaciones de consumidor luego utilizan estos proveedores deservicios para consultar los recursos y para crear, actualizar y suprimir los datos derecursos. En la figura siguiente se muestran las interacciones típicas de unaintegración de OSLC. La aplicación de consumidor envía una consulta alproveedor de servicios para los datos de recurso. El proveedor de serviciosproporciona en respuesta un enlace a los datos de recurso. La aplicación deconsumidor utiliza el enlace para crear, actualizar o suprimir los datos de recurso.

Proveedor deservicios

Aplicación delproveedor de OSLC

Consultar interacción

Enlaces de recursos

Aplicaciónconsumidora OSLC

Crear interacción

Enlace de recurso devuelto

La aplicación consumidora utiliza el enlace delrecurso para actualizar o eliminar un recurso

Enlace de recurso devuelto

Datos de recursos

Información relacionada:

Comunidad de Open Services for Lifecycle Collaboration

OSLC on OASIS Open Standards Network

Comunidad de la plataforma OSLC (IBM)

Implementación de OSLC en Maximo Asset ManagementLas especificaciones de OSLC para representar e intercambiar los datos enlazadosentre aplicaciones se mantienen y se desarrollan mediante el consorcio OASIS.Maximo Asset Management admite la versión 2.0 de la especificación central deOSLC que puede habilitar y ampliar con Maximo Integration Framework.

Las especificaciones de OSLC definen cómo se representan las aplicaciones de ciclode vida, el enlace y acceso a los recursos basándose en estándares establecidos deinternet y datos enlazados incluida la arquitectura REST (Representational StateTransfer), las especificaciones RDF (infraestructura de descripción de recursos) y

Integración de datos con aplicaciones externas 279

Page 286: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

los métodos HTTP (protocolo de transferencia de hipertexto). Las especificacionesestán diseñadas para ser de por sí mínimas para solucionar los casos de uso deintegración común y los integradores pueden ampliar estas especificaciones oañadir unas nuevas para solucionar casos prácticos específicos de integración.

Maximo Asset Management está configurado como un proveedor de OSLC con loscomponentes siguientes:v En la aplicación Recursos OSLC, se configuran los recursos de datos para la

integración. Cada recurso de OSLC se basa en una estructura de objeto queespecifica el objeto de negocio primario y los objetos de negocio hijo asociadosque se pueden integrar.

v Los recursos OSLC se generan como documentos de forma que describen losobjetos de recurso en formato RDF/XML. Un documento de forma indica cuálesson las características necesarias de un recurso y puede describir tambiénmuchos aspectos del objeto de recurso, incluidas sus dependencias, atributos ypropiedades. Un documento de forma de recurso puede incluir enlaces a losdocumentos de forma para los objetos hijo del recurso.

v Los recursos están agrupados por dominio funcional. Las agrupacionesfuncionales se pueden basar en las especificaciones de dominio existentesdesarrolladas y mantenidas por el grupo OASIS OSLC. Los integradores puedenampliar estas especificaciones de dominio existentes o crear especificaciones dedominio adicionales para admitir los requisitos empresariales.

v Los recursos de un dominio se ponen a disposición de los consumidores deOSLC mediante los proveedores de servicios.

v Se admite un proveedor de servicios único para cada dominio. Los proveedoresde servicios admiten la fábrica de creación OSLC y las operaciones de capacidadde consulta que proporcionan a los consumidores de OSLC el URI para crear obuscar los recursos admitidos.

v La infraestructura de seguridad admite la autenticación y autorización para losservicios OSLC. Se admiten las autenticaciones nativa de Maximo AssetManagement y J2EE. La estructura de objeto proporciona control de autorizaciónde un recurso y se aplican autorizaciones a nivel de aplicación y basadas enusuario.

Un consumidor de OSLC utiliza los métodos HTTP y los datos de cabecerasiguientes para interactuar con el proveedor de OSLC:v Envía una solicitud GET para realizar el inicio de sesión si se requiere un inicio

de sesión explícito e incluye una propiedad de autorización en la cabecera HTTPsi se utiliza autorización nativa. Si es necesario un cierre de sesión explícito, seutiliza también una solicitud GET.

v Envía solicitudes GET que incluyen parámetros de consulta de OSLC a un URIde proveedor de servicios para consultar los recursos OSLC.

v Envía una solicitud POST para crear una instancia de un recurso OSLC. Lasolicitud incluye un documento JSON que se ajusta al documento de formapublicado para el recurso OSLC. Cuando se crea la instancia de recursos, elproveedor de OSLC envía una respuesta HTTP que incluye el URI del nuevorecurso.

v Envía una solicitud PUT o PATCH para actualizar un recurso OSLC. Unasolicitud PUT actualiza todo el recurso. Una solicitud PATCH actualiza parte delrecurso.

280 Integración de datos con aplicaciones externas

Page 287: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

v Utiliza etiquetas de entidad (ETags) en las cabeceras HTTP para asegurarse deque una entidad de recurso es actual y puede combinar ETags con cabecerasIf-Match en las solicitudes PUT y PATCH para habilitar las actualizacionescondicionales.

v Puede solicitar una paginación estable en las solicitudes GET para larecopilación de recursos de modo que la respuesta redirige a la aplicación deconsumidor a un URI donde se cargan varias páginas. Para los recursos derecopilación, mejora el rendimiento porque el consumidor de OSLC puedecargar páginas estables sin acceder a la base de datos para cada página.

Configuración de OSLCLa configuración de Maximo Asset Management como proveedor de OSLCconlleva especificar los recursos dentro de los dominios, suministrar losproveedores de servicios para esos dominios, la configuración de seguridad yconfigurar el registro para recopilar información para ayudarle a la resolución deproblemas.

Especificación de recursos OSLCLos recursos OSLC se basan en estructuras de objeto de integración que estánconfiguradas para ser consumidas por OSLC. Cada estructura de objeto incluye elobjeto de negocio primario y los objetos de negocio hijo utilizados por unaaplicación. Los atributos de los objetos de la estructura de objeto se correlacionancon los tipos RDF y los predicados del recurso y especifican los espacios denombre y los tipos de recurso.

Cada tipo de recurso OSLC tiene propiedades que son predicados RDF quepueden pertenecer a una especificación de vocabulario que corresponde al espaciode nombre de las propiedades. Los atributos pueden correlacionarse con laspropiedades definidas en las especificaciones de vocabulario como la Dublin CoreMetadata Initiative.

Cada recurso tiene un nombre, una estructura de objeto asociada consumida porOSLC y el URI de espacio de nombre predeterminado del recurso. Para cadaatributo que debe integrarse, puede utilizar los valores RDF predeterminados oespecificar sus propios valores:v Los valores de tipo y espacio de nombre sirven como el tipo RDF del recurso.v Los valores de tipo y espacio de nombre sirven como predicado RDF del

recurso.

Un documento de forma de recurso es un documento RDF/XML que describe unrecurso, incluidas todas sus propiedades, atributos y dependencias. Un documentode forma en OSLC es un modo electrónico de ver a qué se parece un recursoincluidas todas sus dependencias, atributos y propiedades. Por ejemplo, undocumento de forma de orden de trabajo incluye propiedades que describen losrecursos de soporte como, por ejemplo, activo, tarea, mano de obra y registro detrabajo. Los documentos de forma pueden cubrir una variedad de áreas comoactivos, compañías, órdenes de compra y órdenes de trabajo. Un documento deforma también muestra lo que es necesario. Un documento de forma de recursopuede incluir enlaces a los documentos de forma para los objetos hijo.

Ejemplo: documento de forma de recurso de orden de trabajo

Un documento de forma de recurso de orden de trabajo enumera todas laspropiedades, atributos y dependencias de una orden de trabajo. El código siguientemuestra un fragmento de un documento de forma de orden de trabajo

Integración de datos con aplicaciones externas 281

Page 288: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

denominado oslcwodetail. Se incluyen tres propiedades en esta parte deldocumento de forma de recursos, pero el documento puede listar muchas máspropiedades. Las tres propiedades en esta parte del documento forma representantres tipos de nodos que se encuentran en documentos RDF. La primera propiedad,genforporevision, es un nodo local. La segunda propiedad, multiassetlocci, es unnodo en blanco, lo que significa que no se lista ningún URI o literal para estapropiedad en el RDF. La tercera propiedad, asset, es un nodo de 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>

Proveedores de servicios de dominioLos recursos OSLC están habilitados dentro de un dominio y están disponiblespara los consumidoras OSLC mediante el proveedor de servicios de OSLC para eldominio. Se puede utilizar un solo proveedor de servicios para cada dominio.

En Maximo Asset Management, puede descubrir qué proveedores de serviciosestán disponibles especificando el URI http:/host:puerto/maximo/oslc/sp en unnavegador. La respuesta incluye el URI del documento del proveedor de serviciospara cada dominio configurado para la integración de OSLC.

El URI del documento de proveedor de servicios para el dominio de gestión detrabajo, por ejemplo, es http://host:puerto/maximo/oslc/sp/WorkManagment. Eldocumento de proveedor de servicios está en formato RDF/XML y describe losrecursos disponibles y las correlaciones de espacio de nombre, las consultasguardadas y las operaciones admitidas para los recursos que admite. Unconsumidor de OSLC puede utilizar el documento de proveedor de servicios paradeterminar qué recursos están disponibles y qué servicios admite, como la consultao creación. La implementación actual da soporte a operaciones de creación,solicitud, actualización y supresión a nivel de datos pero no a los recursos enescenarios de interfaces de usuarios delegados.

282 Integración de datos con aplicaciones externas

Page 289: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

En la respuesta de ejemplo siguiente, el proveedor de servicios de OSLC seespecifica en la propiedad rdfs:member. El documento del proveedor de serviciospara el dominio muestra el URI para la gestión de trabajo:<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>

Espacios de nombres

OSLC define espacios de nombres comunes. La propiedad prefixDefinition exponetodas las correlaciones de prefijo a espacio de nombres que el proveedor deservicios utiliza para describir los recursos que gestiona. En la tabla siguiente semuestra un ejemplo de los espacios de nombres disponibles.

Prefijo Espacio de nombres

rdf http://www.w3.org/1999/02/22-rdf-syntax-ns#

oslc http://open-services.net/ns/core#

dcterms http://purl.org/dc/terms/

asset 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#

El extracto siguiente de la sección service del documento del proveedor deservicios muestra los espacios de nombres de OSLC y de 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>

La tabla siguiente muestra una correlación de ejemplo para una orden de trabajoque utiliza espacios de nombre comunes:

Prefijo de OSLC Prefijo existente

oslc:shortTitle wonum

dcterms:title Descripción

dcterms:description description_longdescription

dcterms:creator reportedby

dcterms:created reportdate

dcterms:identifier workorderid

Integración de datos con aplicaciones externas 283

Page 290: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

La tabla siguiente muestra las correlaciones para el objeto de persona al que sehace referencia desde dcterms:creator en la orden de trabajo.

Prefijo de OSLC Prefijo existente

foaf:name displayname

foaf:givenName firstname

foaf:familyName lastname

Fábrica de creación y operaciones de consulta

Un proveedor de servicios de OSLC permite las operaciones de fábrica de creacióny prestaciones de consulta para los recursos que están disponibles en el documentode proveedor de servicios. Una fábrica de creación proporciona el URI de creaciónoslc:creation que el usuario utiliza para crear recursos nuevos con una solicitudHTTP POST. El URI de consulta oslc:queryBase permite la selección de unacolección de recursos gestionados por el proveedor de servicios. Cuando se obtieneel recurso, ya sea por consulta o creación, el recurso se puede actualizar o suprimir.

Si el recurso da soporte a la creación, puede haber una operación de fábrica decreación. El siguiente fragmento de un documento de proveedor de serviciosmuestra la operación de fábrica de creación, el URI para la forma del recurso, y elURI para la operación de recurso de creación que crea la forma.<oslc:creationFactory><oslc:CreationFactory>

<oslc:resourceType rdf:resource="http://jazz.net/ns/ism/work/smarter_physical_infrastructure#WorkOrder"/>

<oslc:resourceShape rdf:resource="http://host:puerto/maximo/oslc/shapes/oslcwodetail"/><oslc:creation rdf:resource="http://host:puerto/maximo/oslc/os/oslcwodetail"/><oslc:label>Create WorkOrder</oslc:label><dcterms:title>OSLC creation factory for WorkOrder</dcterms:title>

</oslc:CreationFactory></oslc:creationFactory>

......

El URI de consulta es oslc:queryBase y el ejemplo siguiente muestra una búsquedade una orden de trabajo utilizando la solicitud:<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 guardadasCuando un recurso OSLC se define basándose en una estructura de objeto queapunta a una aplicación, todas las consultas públicas guardadas de la aplicaciónpasan a estar disponibles mediante el proveedor de servicios. Las consultas seexponen como prestaciones de consulta de OSLC en el documento del proveedorde servicios correspondiente a ese recurso OSLC.

De forma opcional, las estructuras de objetos se pueden conectar a una aplicación.Cuando una estructura de objeto está conectada a una aplicación, la aplicaciónproporciona autorización de seguridad y consultas públicas guardadas en elrecurso que está asociado con la estructura de objeto. Puede crear consultaspersonalizadas en la aplicación y hacerlas públicas para que las consultas estén

284 Integración de datos con aplicaciones externas

Page 291: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

disponibles al consultar el recurso. Para ejecutar una consulta guardada en unrecurso, debe realizar una solicitud HTTP GET en el URI base de la consultaproporcionado en la prestación de consulta para la consulta guardada. Se devuelveuna lista de recursos OSLC que coinciden con la consulta guardada.

Cada propiedad de prestación de consulta expone un URI denominado propiedadoslc:queryBase que permite a un consumidor consultar los recursos gestionadospor el proveedor de servicios. Cada prestación de consulta solo soporta un tipo derecurso denominado oslc:resourceType. La especificación OSLC permite que unaprestación de consulta utilice varios tipos de recurso. La prestación de consultalista todas las consultas públicas guardadas correspondientes a la aplicación queestá registrada en la estructura de objeto por la que se implementa el recursoOSLC. Si no hay ninguna consulta guardada públicamente para la aplicaciónregistrada o si no se ha registrado ninguna aplicación, solo una prestación deconsulta proporciona el URI de colección de la consulta genérica. Siempre hay almenos una prestación de consulta para cada tipo de recurso soportado por elproveedor de servicio.

Ejemplo: Consultas guardadas en la aplicación de orden de trabajo

Puede crear una consulta en la aplicación de orden de trabajo para buscar órdenesde trabajo que sean propias. Puede hacer la consulta pública para que la mismaaparezca en el documento del proveedor de servicios comosavedQuery=OWNER+IS+ME. La estructura de objeto de nivel superior de OSLCtambién debe ser una orden de trabajo.<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>......

Seguridad de OSLCLa infraestructura de seguridad de Maximo Asset Management proporcionasoporte de autenticación y autorización para los servicios OSLC. La autenticaciónbasada en J2EE como, por ejemplo, LDAP, tiene soporte a través del servidor deaplicaciones. El servidor de aplicaciones también proporciona soporte para HTTPS.

Autenticación para Maximo Asset Management

La solicitud del consumidor puede proporcionar los valores usuario:contraseñacodificados en base64 y que están en la propiedad de cabecera MAXAUTH HTTP.

Integración de datos con aplicaciones externas 285

Page 292: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

autenticación J2EE

Para configurar la autenticación de J2EE, debe modificar el archivo web.xml,establecer restricciones de seguridad y establecer la propiedaduseAppServerSecurity en true.

Puede modificar el archivo web.xml para el módulo web maximouiweb eliminandoel comentario de las líneas siguientes:<!--<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>-->

<!--servlet-mapping><servlet-name>OSLCServlet</servlet-name><url-pattern>/oslc/*</url-pattern>

</servlet-mapping

Para configurar las restricciones de seguridad, especifique el código siguiente para<web-resource-collection>:<web-resource-collection><web-resource-name>OSLC Servlet</web-resource-name><description>

OSLC Object Structure Servlet accesible por usuarios autorizados</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>

La propiedad useAppServerSecurity debe establecerse en true:<env-entry><description>

Indica si se debe utilizar o no la seguridad del servidor de aplicaciones</description><env-entry-nameuseAppServerSecurity</env-entry-name><env-entry-typejava.lang.String</env-entry-type><env-entry-valuefalse</env-entry-value></env-entry>

Inicio de sesión y cierre de sesión explícito

Si la aplicación de consumidor necesita ejecutar mandatos de inicio de sesiónexplícito, utilice la petición siguiente:GET /maximo/oslc/login

Si está utilizando autenticación nativa, debe añadir la propiedad de cabeceraMAXAUTH HTTP a la solicitud de inicio de sesión. Si la aplicación de consumidornecesita ejecutar mandatos de cierre de sesión explícito, utilice la petición siguiente:

286 Integración de datos con aplicaciones externas

Page 293: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

GET /maximo/oslc/logout

Autorización

El control de autorización se proporciona en el nivel de estructura de objeto delrecurso. Puede asociar la estructura de objeto a una aplicación en la aplicaciónEstructura de objeto. El proceso de seguridad de los datos de recurso se basa en laconfiguración de seguridad de la aplicación y en el grupo de usuarios del usuarioque ha realizado la solicitud HTTP. Cuando se procesan recursos OSLC, cualquieratributo de objeto que esté configurado como oculto mediante mecanismos deseguridad no se incluye en la respuesta a una petición de OSLC.

Registro de OSLCLa correlación de registro puede registrar información cuando se crean o actualizanrecursos OSLC. La información registrada incluye el tiempo total de respuesta y eltamaño del recurso en bytes. La información se puede utilizar para analizar elrendimiento. Por ejemplo, puede utilizar la información de registro para analizartiempos de respuesta.

Para habilitar la correlación de registro y registrar información al ejecutarpeticiones GET, POST y PUT, seleccione Configuración del sistema >Configuración de plataforma > Aplicación Propiedades del sistema y establezcala propiedad mxe.logging.CorrelationEnabled en 1.

La tabla siguiente muestra información que se puede registrar cuando habilita lapropiedad mxe.logging.CorrelationEnabled. Algunos de los atributos contenidos enla tabla pueden no estar disponibles para cada petición.

Atributo Descripción

ClientIP Dirección IP del cliente que realiza la petición al servidormediante OSLC.

InvokeAndSerTime Tiempo necesario para la invocación y serialización.

SendResponseTime Tiempo necesario para que el servidor responda a una peticiónde cliente.

RequestURI URI (Universal Resource Identifier) del cliente.

RequestParams Parámetros que se pasan en el URI del cliente.

ElapsedTime Tiempo total que transcurre entre la petición del cliente y larespuesta del servidor.

LoginID Nombre de usuario que está asociado a una petición deautenticación de cliente.

ResourceSize Tamaño del recurso en bytes.

EndUserClientIP Dirección IP del usuario final que realiza la petición alservidor.

EndUserMetaData Datos asociados al cliente final real. A menudo las peticionesse entregan mediante un servidor intermediario. Este atributo,cuando existe, siempre contiene datos de usuario final.

ClientPort Número de puerto que el cliente utiliza para realizar unapetición al servidor.

Transacciones HTTPLas interacciones entre el Consumidor de OSLC y los recursos OSLC suministradospor Maximo Asset Management utilizan solicitudes y respuestas HTTP estándar.

Integración de datos con aplicaciones externas 287

Page 294: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Los métodos de solicitud HTTP incluyen GET, POST, PUT y PATCH. Lasrespuestas HTTP proporcionan información en las cabeceras HTTP y se devuelvencódigos de error HTTP cuando no son satisfactorias las solicitudes.

Consultas de recursos OSLCOSLC define una sintaxis de consultas ligera basada en el estándar SPARQL paraconsultar los recursos. El parámetro de consulta OSLC que se establece en unasolicitud GET HTTP determina el tipo de información que el proveedor deservicios envía en respuesta.

Parámetro de propiedades de consulta:

El parámetro de consulta oslc.properties devuelve una lista de propiedades deun recurso OSLC y proporciona una representación parcial del recurso.

El parámetro oslc.properties sólo es aplicable cuando se recupera un únicorecurso basado en un ID de recurso. Otros parámetros de consulta se aplicancuando se desea consultar una colección de recursos que contiene cero o másinstancias de un recurso.

Ejemplo: Solicitud de atributos

La solicitud siguiente especifica que los valores para los atributos shortTitle eisTask se devuelven en los resultados de una consulta del recurso oslcwodetail conun ID de recurso 337:http://www.example.com:9999/maximo/oslc/os/oslcwodetail/337?oslc.properties=oslc:shortTitle,spi_wm:istask

Esta solicitud devuelve la información siguiente:{

oslc:shortTitle: "1024"spi_wm:istask: truerdf:about: "<some uri>"

}

Parámetro de la cláusula WHERE de consulta:

El parámetro de consulta oslc.where especifica una cláusula WHERE para filtrar elconjunto de resultados de una consulta. Por ejemplo, quizá desee ver una colecciónde recursos de orden de trabajo de OSLC que se crearon dentro de un rango detiempo donde se han aprobado por la dirección.

La cláusula WHERE de OSLC admite los operadores de comparación siguientes:

Símbolo Descripción

= Igualdad

!= Desigualdad

< Menor que

> Mayor que

<= Menor o igual que

>= Mayor o igual que

Los parámetros de la cláusula WHERE de OSLC tienen las característicassiguientes:

288 Integración de datos con aplicaciones externas

Page 295: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

v Las fechas se expresan en formato ISO 8601.v La especificación OSLC permite el uso de and como operador booleano entre

expresiones booleanas. El operador booleano or no está permitido.v Los valores de tipo de datos de serie van rodeados entre comillas pero los

valores de tipo de datos decimal no tienen comillas.v Los valores de tipo de datos decimal no están entrecomillados. En el ejemplo

siguiente, el valor literal para estado está entrecomillado porque la propiedadstatus tiene un tipo de datos serie. El valor para la cantidad no estáentrecomillado ya que es un tipo de datos decimal. Los valores enteros ybooleanos tampoco requieren comillas. Por ejemplo, spi_wm:status="Closed"and m:quantity>10,5 and m:active=true donde m:active tiene un tipo de datosbooleano.

v La cláusula WHERE admite el uso de or dentro de una propiedad individualmediante la utilización del operador in. Por ejemplo, la consulta siguientedevuelve todas las órdenes de trabajo que tienen estado APPR o WAPPR:spi_wm:status in ["APPR","WAPPR"]

Ejemplo: Búsqueda de órdenes de trabajo que se han creado durante un rangode tiempo y que se han aprobado

La cláusula WHERE siguiente devuelve una lista de recursos de orden de trabajoque se han creado dentro de un rango de tiempo 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"

Ejemplo: Búsqueda de todas las órdenes de trabajo creadas por un usuario

La cláusula WHERE siguiente devuelve todas las órdenes de trabajo que unusuario o persona específicos han creado:dcterms:creator= <http://host:port/oslc/os/oslcperson/<ID de URI para la persona Kelly Reese>

El valor de URI está delimitado por corchetes y no está entrecomillado, a diferenciade los valores literales de serie. El URI apunta al recurso de persona denominadaKelly Reese. Aunque el uso de un URI en la sintaxis de la consulta es efectivo paraintegraciones de sistemas del mismo nivel, los consumidores interactivos o de lainterfaz de usuario de la API de OSLC no conocen los URI correspondientes. Porejemplo, un usuario interactivo conocería un número de activo, pero no conoceríael URI que corresponde a ese activo. La consulta de cláusula WHERE siguiente seexpresa sin ningún URI:dcterms:creator{foaf:givenName=”Kelly” and foaf:familyName=”Reese”}

givenName y familyName son propiedades del recurso Persona referido por lapropiedad creator. Esta cláusula WHERE muestra que se puede buscar utilizandopropiedades de recursos enlazados.

Ejemplo: Búsqueda de todas las órdenes de trabajo en las que la propiedadparent del recurso de orden de trabajo es null

La consulta de cláusula WHERE siguiente devuelve todas las órdenes de trabajo denivel root:spi_wm:parent!=”*”

Integración de datos con aplicaciones externas 289

Page 296: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

En este ejemplo, * es un comodín que hace referencia a cualquier recurso y laconsulta parent!="*" es el equivalente semántico de una consulta parent="NULL".

Un derivado de esta consulta busca las órdenes de trabajo donde el valor padre noes NULL. La sintaxis de esta consulta es spi_wm:parent=”*”. Puede realizartambién una búsqueda LIKE con la sintaxis de consulta de cláusula WHERE deOSLC. Para buscar todas las órdenes de trabajo que tengan un valor de shortTitlecomo Inspect, utilice la consulta siguiente: oslc:shortTitle =”%Inspect%”.

Para buscar órdenes de trabajo que tengan un valor de shortTitle que empiece otermine con una palabra que especifique, mueva el %. Por ejemplo, utiliceoslc:shortTitle =”Inspect%” para buscar órdenes de trabajo que empiecen con lapalabra Inspect y utilice oslc:shortTitle =”%Inspect” para buscar órdenes detrabajo que terminen con la palabra Inspect.

Parámetro de búsqueda de consulta:

El parámetro de consulta oslc.searchTerms devuelve los recursos que contienenlos términos especificados. Por ejemplo, puede que desee ver todas las órdenes detrabajo que tengan las palabras database y performance en sus descripciones.

Para buscar términos, el campo de búsqueda debe estar configurado para labúsqueda en la aplicación Recursos OSLC.

Ejemplo: Búsqueda de órdenes de trabajo que hacen referencia a rendimiento debase de datos

La solicitud siguiente consulta recursos de orden de trabajo seleccionando el títuloabreviado (shortTitle), el estado (status) y la descripción (description), donde ladescripción contiene los términos database (base de datos) y performance(rendimiento):http://host:7001/maximo/oslc/os/oslcwodetail?oslc.select=oslc:shortTitle,spi_wm:status,dcterms:description&oslc.searchTerms=database,performance

La consulta devuelve la información siguiente:-"rdfs:member": [-{"oslc:shortTitle": "1001","rdf:about": "http://host/maximo/oslc/os/oslcwodetail/76","spi_wm:status": "INPRG","dcterms:description": "el rendimiento es clave<!--RICH TEXT -->"},-{

"oslc:shortTitle": "2004","rdf:about": "http://host/maximo/oslc/os/oslcwodetail/58","spi_wm:status": "INPRG",

"dcterms:description": "toda la base de datos y material<!--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",

290 Integración de datos con aplicaciones externas

Page 297: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

"spi_wm:status": "INPRG","dcterms:description": "El rendimiento es clave"

},-{

"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 ordenación de consulta:

El parámetro de consulta oslc.orderBy define el orden de los resultados de unaconsulta. Por ejemplo, una lista de órdenes de trabajo se puede ordenar por fecha opor ID.

Ejemplo: Especificar el orden de clasificación

La consulta oslc.orderBy siguiente devuelve las órdenes de trabajo basándose enla fecha de creación en orden ascendente y en la duración estimada en ordendescendente.+dcterms:created,-m:estimatedDuration

En esta consulta, + indica un orden de clasificación ascendente y – indica un ordende clasificación descendente. El parámetro oslc.orderBy siguiente no es válido:dcterms:created,-m:estimatedDuration pues la sintaxis de consulta de OSLC notiene un orden de clasificación predeterminado. Se debe especificar explícitamenteun signo + o - con el nombre de propiedad. El parámetro oslc.orderBy no sepuede utilizar para propiedades anidadas. Por ejemplo,dcterms:creator{+foaf:name} no está soportado.

Parámetro de selección de consulta:

El parámetro de consulta oslc.select solicita una representación de recursosparcial de los recursos de una colección de recursos. El parámetro oslc.selectsiempre se aplica a un recurso de colección. Puede especificar la lista depropiedades que desea incluir en la solicitud.

Ejemplo: Solicitud de recursos parcial

El parámetro oslc.select proporciona una lista separada por comas de nombresde propiedades cualificados. No se admite el parámetro oslc.prefix. La consultasiguiente solicita un recurso parcial:oslc.select=oslc:shortTitle, dcterms:creator

La consulta devuelve la información siguiente:{"rdf:about": "some uri","rdfs:member": [

Integración de datos con aplicaciones externas 291

Page 298: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

{"oslc:shortTitle": "1022","rdf:about": "some workorder uri","dcterms:creator":{

"rdf:about": "some person uri"}

Ejemplo: selección de propiedades de recursos referenciados

Con el parámetro oslc.select, puede seleccionar propiedades de recursosreferenciados. La consulta siguiente solicita el nombre del creador:oslc.select= oslc:shortTitle, dcterms:creator{foaf:name}

La consulta devuelve la información siguiente:{"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"

}

En este ejemplo, el recurso foaf:Person es el nombre de la persona especificada enel valor de la propiedad creator. Para obtener todas las propiedades del recurso,puede utilizar oslc.select=*. Se puede aplicar la misma sintaxis al parámetrooslc.properties cuando busca un recurso OSLC.

Creación de una instancia de recursosUna aplicación consumidora utiliza el método POST de HTTP para crear unainstancia de un recurso OSLC. Así, otras aplicaciones pueden compartir el recurso.

La aplicación consumidora utiliza el método POST de HTTP para enviar undocumento JSON que se ajusta a la forma publicada del recurso. El formato JSONde OSLC está asociado al tipo application/json MIME. Cuando la solicitud seprocesa de forma satisfactoria, la cabecera de las respuestas HTTP de la aplicaciónde proveedor incluye el URI del recurso recién creado.

Ejemplo: Creación de una instancia de un recurso

El método siguiente crea el recurso oslcwodetail: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:puerto/maximo/oslc/os/oslcasset/_MTMxNDUvQkVERk9SRA--"},"spi:location": {

"rdf:resource": "http://host:puerto/maximo/oslc/os/oslcoperloc/_U0hJUFBJTkcvQkVERk9SRA--"},"spi:status": "WAPPR"

}.....

292 Integración de datos con aplicaciones externas

Page 299: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Si la solicitud se procesa correctamente, la aplicación de consumidor recibe larespuesta HTTP siguiente:201 CreatedLocation: http://host:puerto/maximo/oslc/os/oslcwodetail/_ABCD--ETag: 1234567

El cuerpo del mensaje de la respuesta HTTP está vacío. Para obtener los detallesdel recurso recién creado, la aplicación de consumidor debe enviar una solicitudGET de HTTP al URI especificado en la propiedad location de la cabecera HTTP.La aplicación consumidora puede utilizar la propiedad ETag en la cabecera HTTPpara enviar una solicitud de actualización condicional a la aplicación de proveedor.

Las peticiones de OSLC pueden fallar por diversas razones, tales como validaciónde negocio, autenticación o autorización. Si una solicitud falla, la aplicaciónconsumidora recibe un código de error HTTP como una respuesta, como porejemplo un error 400 Bad Request y el cuerpo del mensaje contiene los detalles delerror.

Modificación de recursosEl método PUT HTTP sustituye un recurso OSLC y el método PATCH HTTPactualiza parcialmente un recurso OSLC.

Sustitución de recursos OSLC:

El método PUT HTTP sustituye a todas las propiedades de un recurso OSLC,incluidas las propiedades de tipo literal y las propiedades de recursos locales. Elmétodo PUT suprime también todas las propiedades de recurso local que no estánincluidas en la solicitud.

Cuando utiliza el método PUT para sustituir un recurso OSLC, se aplican las reglassiguientes:v Se actualizan todas las propiedades de tipo literal especificadas en el documento

de solicitud HTTP. Las propiedades de tipo literal no especificadas como partede la solicitud no se ven afectadas explícitamente por la solicitud. Sin embargo,pueden verse implícitamente afectadas por la lógica empresarial asociada alrecurso.

v Todas las propiedades de recursos locales se sustituyen por los valorescorrespondientes de la solicitud. Cuando se incluye una propiedad en unasolicitud PUT, el valor sustituye al valor en el servidor. Si no se incluye unapropiedad de recurso en una solicitud HTTP, la propiedad correspondiente sesuprime en el servidor.

v No puede actualizar explícitamente los recursos de referencia pero puedeactualizar las propiedades que hagan referencia al recurso, y las propiedadessiguen el modelo de actualización de propiedades de tipo literal.

En los ejemplos siguientes, un recurso de orden de trabajo tiene una propiedadliteral, title, y una propiedad de recurso wplabor. La propiedad wplabor apunta alWPLABOR del recurso local y está asociada con dos registros wplabor. Si unapetición PUT contiene la propiedad title y ninguna propiedad wplabor, seactualiza el título y se suprimen los datos de wplabor.

Ejemplo: Actualización de una propiedad literal

El método siguiente actualiza la propiedad literal, title y suprime la propiedadwplabor y los datos asociados:

Integración de datos con aplicaciones externas 293

Page 300: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

PUT /maximo/oslc/os/oslcwodetail/abc

{"dcterms:title": "Check-out Leaking – Modified for Test"

}

Si la solicitud se procesa correctamente, la aplicación consumidora recibe larespuesta HTTP siguiente:204 No ContentETag: 123456

El título se cambia a Check-out Leaking – Modified for Test. Dado que los datosde wplabor no están incluidos, los registros de wplabor se suprimen.

Ejemplo: Actualización de una propiedad de recurso

El método siguiente actualiza la propiedad de recurso, wplabor:PUT /maximo/oslc/os/oslcwodetail/abc

{“spi:wplabor”: [

{“spi_wm:wplaborid": "0000000067",

"spi_wm:rate": 18.5}

]}

Si la solicitud se procesa correctamente, la aplicación consumidora recibe larespuesta HTTP siguiente:204 No ContentETag: 123456

La solicitud inicia una búsqueda de un registro wplabor con el ID 0000000067. Sieste registro wplabor existe, se actualiza. Si no se encuentra ningún registrocoincidente, se crea un nuevo registro wplabor con el ID 0000000067. Se suprime elresto de los datos de wplabor para este recurso de orden de trabajo. Debido a quela propiedad title no está incluida, el título no es parte de la solicitud y el valorno se ve afectado.

Actualización parcial de recursos OSLC:

El método PATCH HTTP actualiza parte de los recursos OSLC. A diferencia delmétodo PUT, el método PATCH no suprime propiedades de recurso local que noestén incluidas en la solicitud. Es necesaria la cabecera x-method-override paraimplementar el método PATCH.

Cuando utiliza el método PATCH para sustituir un recurso OSLC, se aplican lasreglas siguientes:v Se actualizan todas las propiedades literales especificadas en el documento de

solicitud. Las propiedades de tipo literal no especificadas como parte de lasolicitud no se ven afectadas explícitamente por la solicitud. Sin embargo,pueden verse implícitamente afectadas por la lógica empresarial asociada alrecurso.

v Se actualizan o se sustituyen las propiedades de recursos locales si hay valoresde propiedad correspondientes de la solicitud PATCH. Si una propiedad derecurso no está incluida en la solicitud, el recurso local correspondiente no se ve

294 Integración de datos con aplicaciones externas

Page 301: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

explícitamente afectado por la solicitud. Si una propiedad de recurso estáincluida en la solicitud, el valor entrante sustituye o actualiza el valor en elservidor.

v No puede actualizar explícitamente los recursos de referencia pero puedeactualizar las propiedades que hagan referencia al recurso, y las propiedadessiguen el modelo de actualización de propiedades de tipo literal.

Las solicitudes PATCH HTTP se utilizan en los siguientes casos:v La solicitud PATCH sustituye una propiedad de tipo array (recurso local) por el

contenido de la solicitud. Este caso de uso es la implementación predeterminada.v Puede buscar y comparar los elementos de matriz de recursos contenidos en la

solicitud con los elementos de recurso correspondientes en el servidor.Dependiendo de si se ha encontrado una coincidencia de búsqueda, loselementos de matriz de recursos se actualizan o insertan. Un elemento de matriznunca se suprime de la propiedad de recurso local. Para utilizar una solicitudPATCH para comparar los elementos de matriz, la aplicación de consumidorestablece la cabecera de solicitud HTTP PATCHTYPE en el valor MERGE (sedistingue entre mayúsculas y minúsculas).

Ejemplo: Actualización de una propiedad literal

El método siguiente actualiza la propiedad title de una orden de trabajo:POST /maximo/oslc/os/oslcwodetail/abcdx-method-override: PATCH

{"dcterms:title": "Check-out Leaking – Modified for Test"

}

A diferencia del método PUT, el método PATCH no actualiza otras propiedades dela orden de trabajo.

Ejemplo: Actualización y fusión de una propiedad de recurso

El método siguiente actualiza el recurso con la cabecera PATCHTYPE establecidaen 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}

]}

La solicitud inicia una búsqueda de un registro wplabor con el ID 0000000067. Siese registro wplabor existe, se actualiza el registro. Si no se produce ningunacoincidencia de búsqueda, se crea un nuevo registro wplabor con el ID 0000000067.Debido a que la cabecera PATCHTYPE está establecida en MERGE, los demásregistros wplabor de este recurso de orden de trabajo permanecen sin cambios.

Integración de datos con aplicaciones externas 295

Page 302: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Ejemplo: Realización de una actualización condicional

El método siguiente actualiza el recurso si el valor de ETag es 1234567:POST /maximo/oslc/os/oslcwodetail/abcdx-method-override: PATCHif-match: 1234567

Si el valor de ETag es 1234567, se actualiza el recurso de orden de trabajo y seenvía una respuesta HTTP 204 a la aplicación de consumidor.

Si el valor de ETag no es 1234567, el servidor responde con el mensaje HTTP 412Precondition failed. El mensaje indica que algún otro proceso ha actualizado elrecurso y la aplicación de consumidor que realiza la solicitud tiene una copiaobsoleta del recurso. La aplicación de consumidor debe realizar una solicitud GETen el recurso abcd para obtener una copia nueva del recurso.

Cabeceras HTTPOSLC proporciona varios valores en la sección de cabecera de las solicitudes yrespuestas HTTP para intercambiar información adicional de transacciones. Estosvalores de cabecera admiten características como paginación estable,actualizaciones condicionales de recursos o para asegurarse de que no se producentransacciones duplicadas después de un anomalía de conexión HTTP.

Actualizaciones condicionales basándose en valores de Etag ycabeceras If-Match

Una etiqueta de entidad (ETag) es un valor incluido en una respuesta de cabeceraHTTP que representa el estado actual de un recurso. Cuando una aplicación deconsumidor de OSLC hace una solicitud GET, la cabecera de respuesta incluye unvalor de ETag. La aplicación de consumidor incluye el valor de ETag como partede una cabecera If-Match en solicitudes de actualización PUT y PATCH posteriorespara asegurarse de que los cambios son condicionales y que son realizados solo siel registro no ha cambiado desde que se ha creado el valor de ETag. El proceso deactualización condicional detecta actualizaciones incorrectas y condiciones decarrera, por ejemplo, cuando dos consumidores intentan actualizar el mismorecurso.

La aplicación de consumidor almacena el valor de cabecera de ETag y lo envíacomo parte de la cabecera HTTP If-Match para una solicitud de actualizaciónposterior. El servidor evalúa la cabecera If-Match y determina si la aplicación deconsumidor tiene una versión anterior o la versión más reciente del recurso. Si elservidor determina que la aplicación de consumidor tiene la versión más recientedel recurso, se implementa la actualización, a menos que se encuentrenrestricciones de base de datos o de validación empresarial. Si el servidor determinaque la solicitud contiene una versión anterior del recurso, devuelve una respuestaque indica una anomalía en una condición previa HTTP 412. La aplicación deconsumidor vuelve a obtener el recurso y somete una solicitud de actualizaciónque se basa en la ETag actualizada.

La aplicación de consumidor puede someter la solicitud de actualización sin lacabecera If-Match o con el valor de cabecera If-Match establecido en * (asterisco).El sometimiento de esta solicitud es semánticamente equivalente a no tener lacabecera If-Match en la solicitud de actualización. En ambos casos, la solicitud esincondicional. Si el recurso referido por el URI existe y no se encuentranrestricciones de validación empresarial o de base de datos, la actualización seimplementa.

296 Integración de datos con aplicaciones externas

Page 303: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Paginación estable de recursos de colección

La paginación estable de OSLC define un patrón de paginación en el que elrecurso que se pagina no cambia cuando se pagina con la aplicación deconsumidor, por ejemplo, con un dispositivo móvil. La paginación estable seadmite solo para los recursos de colección y no es el formato de paginaciónpredeterminado de los servidores HTTP. Para solicitar la paginación estable, laaplicación de consumidor de OSLC incluye el parámetro de consulta stablepagingen la solicitud HTTP o incluye una cabecera stablepaging en la solicitud. Elservidor carga el recurso de colección solicitado en memoria y la respuesta HTTPredirige la aplicación de consumidor de OSLC al URI donde se almacena el recursode colección cargado. Las solicitudes posteriores de las páginas siguientes siemprese cargan desde el recurso en memoria y nunca desde la base de datos. Lapaginación estable da como resultado un mejor rendimiento ya que la aplicaciónde consumidor pagina a través del resultado.

La paginación estable requiere que la solicitud posterior para la página siguientesea atendida por el mismo proceso de servidor o miembro de clúster que atendió ala solicitud inicial de paginación estable. El mismo proceso de servidor es necesarioporque el recurso se carga en la memoria de dicho proceso de servidor, no en losotros miembros del clúster. Si una solicitud posterior está equilibrada en cuanto acarga con otros miembros, la aplicación de consumidor recibe un error 404 No seha encontrado. Para impedir este error, asegúrese de que las solicitudes en sesiónde una aplicación de consumidor sean tratadas por el mismo proceso de servidor.

Ejemplo de paginación estable

El cliente solicita un recurso de activo:GET/oslc/os/oslcasset?stablepaging=true

La solicitud produce la siguiente respuesta:303 RedirectingLocation: http://host:port/../olscasset?stableid=1234

El cliente realiza una solicitud GET en el URI de redireccionamiento:GET../oslcasset?stableid=1234

La respuesta es la primera página de la colección. El URI para la siguiente páginaestá incluido en el objeto oslc:ResponseInfo como parte del mensaje. A medida queel cliente avanza por las páginas, las páginas caducan después de su carga. Si elcliente está en la página 3, la página 3 no se puede volver a cargar, ni tampocopuede la página 1 o la página 2. Cualquier intento de volver a cargar estas páginasgenera un error HTTP 410. El recurso cargado permanece en la memoria hasta quecaduca en función de un tiempo de caducidad desocupado que se controlamediante la propiedad del sistema mxe.oslc.idleexpiry. El tiempo de caducidaddesocupado indica el período en que el cliente no accedió al recurso. El clientepuede solicitar propiedades de miembro utilizando la cláusula oslc.select yordenar la colección resultante utilizando el parámetro de consulta oslc.orderBy.

Establecimiento de la cabecera PATCHTYPE en merge para lasactualizaciones de recursos parciales

Para minimizar el tamaño de mensajes, por ejemplo, para las aplicaciones móviles,las aplicaciones de consumidor pueden utilizar solicitudes PATCH para limitar lasactualizaciones a los datos modificados solo. Para actualizar los objetos hijo de unaestructura de objeto, por ejemplo, para actualizar el registro de trabajos asociado a

Integración de datos con aplicaciones externas 297

Page 304: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

una orden de trabajo, la aplicación de consumidor envía una solicitud PATCH,donde la propiedad de cabecera PATCHTYPE se establece en merge.

Devolución de propiedades de recursos en las cabeceras de respuestaHTTP

La implementación de motor de automatización de procesos de Tivoli de OSLCincluye una nueva propiedad de cabecera HTTP, denominada properties, queadmite la devolución de valores de atributo de recurso en las respuestas HTTP.Una aplicación de consumidor puede establecer la cabecera properties e incluir unaserie separada por comas de propiedades en una solicitud POST, PUT o PATCH.La respuesta HTTP incluye los valores de atributo solicitados en la respuestaHTTP. La cabecera properties se puede utilizar, por ejemplo, para recibir el númerode una orden de trabajo en la respuesta HTTP a la solicitud POST que ha creado laorden de trabajo.

Cómo impedir transacciones duplicadas después de anomalías deconexión

La implementación de motor de automatización de procesos de Tivoli de OSLCincluye una nueva propiedad de cabecera HTTP, denominada transactionid, queuna aplicación de consumidor puede utilizar para asignar un ID exclusivo a cadatransacción. La aplicación de proveedor almacena los ID de transacción en la tablade transacción de OSLC. Después de una anomalía de conexión de red, si laaplicación de consumidor vuelve a enviar una solicitud POST o PATCH, elservidor valida el ID de transacción con los valores de la tabla de transacción. Si yaexiste el ID de transacción, el servidor devuelve un error de conflicto detransacción en la respuesta HTTP.

Códigos de respuesta HTTPOSLC utiliza códigos de respuesta HTTP estándar. Por ejemplo, normalmente sedevuelve la respuesta HTTP 404 cuando no se encuentra una página web, y enOSLC se devuelve el código de respuesta 404 cuando no se puede encontrar elrecurso.

Algunos códigos de error existentes se correlacionan con códigos HTTP de formapredeterminada. Un implementador puede correlacionar códigos de respuestaadicionales si es necesario.

OSLC utiliza los códigos de respuesta HTTP siguientes:

Código HTTP Explicación de OSLC

200 Éxito

201 Éxito. La respuesta contiene un vínculo.

204 El recurso se ha actualizado correctamente. No hay ninguna entidad derespuesta.

400 Error de manejo de solicitud. Este error puede deberse al contenido dela solicitud o URI. Por ejemplo, es posible que haya un error devalidación de lógica empresarial en el lado del servidor.

401 Error de autenticación.

403 Prohibido. La contraseña del usuario ha caducado.

404 No se puede encontrar el recurso o se ha proporcionado un tipo derecurso no válido.

405 No se puede utilizar el método HTTP para el recurso.

298 Integración de datos con aplicaciones externas

Page 305: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Código HTTP Explicación de OSLC

406 La representación solicitada no está soportada.

410 La página de recursos estable ha caducado.

412 El recurso del lado del cliente es obsoleto y debe renovarse desde elservidor. La actualización condicional ha fallado porque el recurso hasido actualizado por otro usuario o proceso.

500 Todos los demás errores de servidor.

Los mensajes dan soporte a los idiomas soportados por motor de automatizaciónde procesos de Tivoli.

Integración como consumidor de OSLCSu aplicación o consumidor de OSLC se puede configurar para utilizar tres tiposde interacción: diálogo de selección, diálogo de creación y consulta. La aplicaciónde consumidor obtiene los enlaces a recursos a partir de la aplicación deproveedor.

La figura siguiente muestra las interacciones entre las aplicaciones de consumidory de proveedor. Como consumidor de OSLC, la aplicación puede consultar o crearrecursos en la aplicación de proveedor y conservar los enlaces a esos recursos.Mediante los enlaces, la aplicación de consumidor puede hacer peticiones a laaplicación de proveedor para consultar, actualizar o suprimir los recursos.

Enlaces de recursos

Aplicación del consumidorde OSLC(por ejemplo, SmartCloudControl Desk)

Interacción del diálogo de selección

Datos de recursos

Aplicación del proveedorde OSLC( Rational TeamConcert)por ejemplo,

Interacción del diálogo de creación

Previsualizar diálogo

Consultar interacción

Enlace de recursos devuelto

La aplicación del consumidor actualiza o suprimeun recurso utilizando el enlace de recursos

Creación de registros de proveedor de OSLCDebe crear un registro de proveedor en la aplicación Proveedores de OSLC paracada producto que registre en el registro de recursos de servicios de registro.Puede utilizar el registro de proveedor para crear interacciones que permitan a losusuarios compartir y actualizar datos entre productos.

Servicios de registro:

Servicios de registro es un servicio de integración de Jazz for Service Managementque proporciona mecanismos para que los servicios, recursos y consumidores de

Integración de datos con aplicaciones externas 299

Page 306: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Open Services for Lifecycle Collaboration (OSLC) puedan utilizar la interfaz deOSLC para trabajar en un entorno de gestión de servicios integrado.

Servicios de registro utiliza el registro de proveedores para supervisar los recursosque están disponibles en el entorno y utiliza el registro de recursos para supervisarlos recursos que se pueden gestionar para los entornos. motor de automatizaciónde procesos de Tivoli utiliza el registro de proveedores y el registro de recursospara integrar varios productos.

Registro de proveedores

El registro de proveedores es un directorio de Servicios de registro que contieneservicios proporcionados por varios productos entre los diferentes dominios. Elregistro de proveedores supervisa todos los proveedores de servicios de unentorno, proporciona información sobre cómo contactar con ellos y lista el tipo deacción que los proveedores realizan.

Como consumidor de OSLC, cuando crea una ventana de selección, una ventanade creación o una interacción de consulta, puede configurar la interacción paradescubrir proveedores de servicios en el registro de proveedores.

El proveedor de OSLC actualmente no permite registrar los proveedores deservicios de la aplicación en el registro de proveedores.

Registro de recursos

El registro de recursos es un directorio de Servicios de registro que contienerecursos gestionados o supervisados por varios productos entre los diferentesdominios.

Como consumidor de OSLC, puede utilizar el registro de recursos para consultarrecursos. Cuando crea una interacción de consulta, puede configurar el URIpúblico del registro de proveedor para que apunte al registro de recursos, ytambién puede configurar el punto final predeterminado PROVIDERREGISTRY.

El proveedor de OSLC actualmente no permite registrar los recursos de laaplicación en el registro de recursos.

Proveedores de servicios:

Un proveedor de servicios es un contenedor o colección de datos afines, tales comoun proyecto, una base de datos de usuario o un módulo. Los proveedores deservicios permiten agrupar recursos similares, tales como defectos o tareas, que sepueden configurar para la integración.

Un proveedor de servicios de una aplicación de proveedor de OSLC contiene datosde recurso que se pueden enlazar con datos de aplicación de consumidor mediantela integración de las aplicaciones. Para integrar una aplicación de consumidor yuna aplicación de proveedor, el consumidor debe descubrir o identificar losproveedores de servicios disponibles en la aplicación de proveedor.

La aplicación Proveedores de OSLC permite descubrir proveedores de servicios delas maneras siguientes:v Lista de catálogosv Proveedor de servicios individual

300 Integración de datos con aplicaciones externas

Page 307: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

v Registro de proveedores

Para utilizar la lista de catálogos o proveedor de servicios individual para eldescubrimiento, en la aplicación Proveedores de OSLC, especifique un URI en elcampo URI de lista de proveedores de servicios. El URI puede enlazarse a uncatálogo de proveedores de servicios, un listado de proveedores de servicios o unproveedor de servicios individual.

Para utilizar el registro de proveedores para el descubrimiento, en la aplicaciónProveedores de OSLC, seleccione la casilla Utilizar registro de proveedores. En laaplicación Puntos finales, se utiliza el punto final predefinido de HTTPdenominado PROVIDERREGISTRY para identificar la información de conexiónpara el registro de proveedores.

El punto final PROVIDERREGISTRY especifica un registro de proveedores dondelas aplicaciones de proveedor de OSLC pueden registrar datos de proveedor deservicios. El punto final necesita algún tipo de configuración antes de poderutilizarse. El punto final de HTTP para el registro de proveedores es diferente delos puntos finales OAuth o HTTP que se utilizan al ejecutar interacciones entreaplicaciones integradas.

Tipos de recurso y documentos de forma:

Un tipo de recurso identifica el tipo de datos, tal como una petición de cambio, quese enlaza entre aplicaciones integradas. Un tipo de recurso puede tener undocumento de forma asociado. Un documento de forma es similar a un esquemaXML, en la forma en la que define la estructura de datos del recurso.

En la aplicación Proveedores de OSLC, utilice la acción Añadir/modificar tipos derecurso para crear tipos de recurso. Debe crear un tipo de recurso para cada tipode datos que sea compatible como mínimo con un proveedor y con el que deseeestablecer un enlace. La aplicación de proveedor debe ser compatible con tipo derecurso mediante un proveedor de servicios para que el tipo de recurso estédisponible en una interacción de OSLC.

Un tipo de recurso se puede utilizar con varias interacciones para un proveedor. Sepueden utilizar tipos de recurso con varios proveedores de OSLC que soncompatibles con el mismo tipo de recurso.

Los datos de recurso de la aplicación de proveedor se pueden poner a disposiciónde la aplicación de consumidor en forma de usos. Un uso es una subclase de losdatos de recurso. Por ejemplo, un tipo de recurso de una solicitud de cambiopodría tener usos de defecto y tarea.

Un documento de forma es un archivo RDF (Resource Description Framework),que proporciona una descripción de los tipos de datos de recurso que puedenutilizarse en una interacción. Cuando crea un tipo de recurso, puede importar undocumento de forma para el tipo de recurso. El documento de forma contiene unalista de atributos del tipo de recurso.

Puntos finales en una integración de OSLC:

Un punto final es el punto de entrada a un servicio, proceso, aplicación o destinode tema. Se pueden utilizar dos tipos de punto final en la integración de OSLC. Seutiliza un punto final de integración de OSLC entre una aplicación de consumidory una aplicación de proveedor. Especifica cómo una aplicación de consumidor se

Integración de datos con aplicaciones externas 301

Page 308: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

comunica con la aplicación de proveedor de OSLC. El punto final de integraciónpuede ser un punto final OAuth o un punto final HTTP. Solo se utiliza un puntofinal de registro de proveedores si el método especificado para el descubrimientode proveedores de servicios es mediante el Registro de proveedores.

Puntos finales de integración

Cuando crea un registro de proveedor de OSLC, debe especificar el punto finalpara la aplicación de proveedor. El punto final se utiliza para todas lasinteracciones entre la aplicación de consumidor y la aplicación de proveedor. Laintegración de OSLC con algunos proveedores, tales como Rational Team Concert,debe utilizar un punto final cuyo tipo de manejador sea OAuth. Otros proveedorespueden necesitar un punto final HTTP o, dar soporte a un punto final HTTP o aun punto final OAuth.

OAuth es un estándar abierto para la autorización entre sitios o aplicaciones.OAuth permite compartir los recursos que se almacenan en un sitio con otro sitio,sin tener que proporcionar credenciales de autenticación completas. Hayinformación adicional sobre OAuth fácilmente disponible en la web.

Cree la definición de punto final en la aplicación Puntos finales. El punto finalespecifica los valores de atributo de la aplicación de proveedor, que permiten laintegración y el enlace de datos.

Importante: Utilice únicamente caracteres y numerales del idioma inglés en unnombre de punto final OAuth.

Los valores de las propiedades de punto final OAuth se basan en la configuraciónde la aplicación de proveedor.

Tabla 40. Propiedades de los puntos finales OAuth

Propiedad Descripción

ACCESSTOKENURL Obtiene el URL de señal de acceso a partirde la aplicación de proveedor de OSLC. Estevalor es necesario.

AUTHORIZATIONURL Obtiene el URL de señal de autorización apartir de la aplicación de proveedor deOSLC. Este valor es necesario.

CONSUMERKEY Es la clave de OAuth que debe ser utilizadapor la aplicación de consumidor, procedentede la aplicación de proveedor de OSLC. Estevalor es necesario.

CONSUMERSECRET Es la contraseña de OAuth que debe serutilizada por la aplicación de consumidor,procedente de la aplicación de proveedor deOSLC. Este valor se almacena en formatocifrado. Es un valor necesario.

COOKIES Son las cookies para pasar al punto final.

HEADERS Son las propiedades de cabecera para pasaral punto final. Por ejemplo, el código deidioma del lado de consumidor de laintegración podría estar incluido en laspropiedades de cabecera.

302 Integración de datos con aplicaciones externas

Page 309: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 40. Propiedades de los puntos finales OAuth (continuación)

Propiedad Descripción

HTTPMETHOD Es el método HTTP que se utiliza durante lapetición. El valor predeterminado es GET.Este valor es necesario. Asegúrese de que seha seleccionado Permitir anulación para lapropiedad HTTPMETHOD.

REQUESTTOKENURL Es el URL del proveedor de seguridad deOAuth. Obtiene este valor a partir de laaplicación de proveedor de OSLC. Este valores necesario.

URL Es el URL del tipo de uso del proveedor deservicios. Este valor es necesario. Asegúresede que se ha seleccionado Permitiranulación para la propiedad de URL.

Punto final de registro de proveedores

Puede especificar que su producto realice el descubrimiento de proveedores deservicios en el proveedor de OSLC mediante el Registro de proveedores. En estecaso, utiliza un punto final HTTP predefinido para el descubrimiento, además delpunto final OAuth o HTTP que se utiliza para la integración. El nombre del puntofinal, PROVIDERREGISTRY, está registrado en la propiedad del sistemamxe.oslc.prqueryep.

El producto IBM Open Service Delivery Platform (OSDP) tiene una versión delRegistro de proveedores que se puede utilizar en el programa TransparentDevelopment. Para obtener más información sobre el registro y para descargar laversión actual, consulte https://www.ibm.com/developerworks/servicemanagement/iosdp/index.html. Una vez implementado, este registro puedeconfigurarse como punto final PROVIDERREGISTRY.

El punto final PROVIDERREGISTRY está predefinido en la aplicación Puntosfinales, pero no están configuradas todas las propiedades. Debe configurar el puntofinal por completo para dar soporte al descubrimiento de proveedor de servicios através del Registro de proveedores.

Tabla 41. Propiedades del punto final HTTP PROVIDERREGISTRY

Propiedad Descripción

CONNECTTIMEOUT La cantidad de tiempo, en segundos, que sedebe esperar la conexión antes de generarun error de tiempo de espera.

COOKIES Son las cookies para pasar al punto final.

HEADERS Son las propiedades de cabecera para pasaral punto final. Por ejemplo, el código deidioma del lado de consumidor de laintegración podría estar incluido en laspropiedades de cabecera.

HTTPEXIT La clase de salida de Java que seproporciona para dar soporte al procesoespecífico del Registro de proveedores.

Integración de datos con aplicaciones externas 303

Page 310: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 41. Propiedades del punto final HTTP PROVIDERREGISTRY (continuación)

Propiedad Descripción

HTTPMETHOD Es el método HTTP que se utiliza durante lapetición. El valor predeterminado es GET.Este valor es necesario. Asegúrese de que seha seleccionado Permitir anulación para lapropiedad HTTPMETHOD.

PASSWORD Si el registro está protegido, es necesaria lacontraseña del nombre de usuariocorrespondiente.

READTIMEOUT La cantidad de tiempo, en segundos, que sedebe esperar una respuesta a una solicitudrealizada por la aplicación de consumidorantes de generar un error de tiempo deespera.

URL El URL del registro de proveedores.Obligatorio. El valor predeterminado eshttps://oslc-registry/oslc/pr. El valor debeestar actualizado para reflejar laimplementación local del registro. Asegúresede que se ha seleccionado Permitiranulación para la propiedad de URL.

USERNAME Si el registro está asegurado, se necesita elnombre de usuario y la contraseñacorrespondiente.

Cuando configura la definición de punto final PROVIDERREGISTRY, debeespecificar valores para al menos estas dos propiedades:v HTTPMETHOD: Configurado en GET.v URL: Tiene un valor predeterminado. Actualice el valor para reflejar la

implementación local del registro.

Es posible que también deba configurar los valores de USUARIO yCONTRASEÑA, en función de la configuración de seguridad del Registro deproveedores.

Inicio de sesión único

Si tiene previsto utilizar el inicio de sesión único, debe establecer la propiedadCOOKIES para el punto final HTTP en LtpaToken2.

Diseño de una interacción de OSLCLa integración de OSLC establece enlaces entre los datos de una de las aplicacionesde usuario y los datos contenidos en una aplicación de proveedor externa deOSLC. Utilice la aplicación Proveedores de OSLC para integrar aplicacionesmediante el diseño de interacciones de OSLC.

La aplicación Proveedores de OSLC permite crear interacciones de OSLC desde lainterfaz de usuario. Puede diseñar los tres tipos de interacciones siguientes, quepermiten que los usuarios enlacen sus datos de aplicación con datos de recurso deproveedor:v Una interacción de creación permite al usuario crear datos de recurso en la

aplicación de proveedor de OSLC y enlazar esos datos de recurso con unregistro de aplicación.

304 Integración de datos con aplicaciones externas

Page 311: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

v Una interacción de selección permite al usuario seleccionar datos de recursoexistentes en la aplicación de proveedor de OSLC y enlazar esos datos derecurso con un registro de aplicación.

v Una interacción de consulta permite al usuario seleccionar una consultapredefinida en la aplicación de proveedor de OSLC y recuperar datos derecurso.

Los registros siguientes deben estar en su lugar para poder diseñar unainteracción:v Debe existir un registro de punto final de integración de OAuth o HTTP para la

aplicación de proveedor en la aplicación Puntos finales.v Debe estar definido un registro para la aplicación de proveedor de OSLC en la

aplicación Proveedores de OSLC.v Deben estar disponibles uno o más tipos de recursos de proveedor. Puede añadir

tipos de recursos en la ventana Añadir/Modificar tipos de recursos en laaplicación Proveedores OSLC.

El asistente Crear interacción de OSLC de la aplicación Proveedores de OSLC leindica los tres pasos que debe seguir para diseñar una interacción de selección deOSLC. El asistente añade un paso adicional para una interacción de creación deOSLC y dos pasos adicionales para una interacción de consulta de OSLC.

Ejemplo: Diseño de una interacción de creación o selección de OSLC:

Desea diseñar una interacción de OSLC para que los usuarios de la aplicaciónPeticiones de servicio puedan crear un defecto en Rational Team Concert, laaplicación de proveedor. El defecto que se crea está enlazado con una petición deservicio en la aplicación Peticiones de servicio.

Trabajo preparatorio

En la aplicación Proveedores de OSLC, cree un registro de proveedor para RationalTeam Concert. Especifique el punto final OAuth y el URI público para RationalTeam Concert, y especifique cómo se identifica el proveedor de servicios.

Mediante la acción Añadir/modificar tipos de recurso, puede añadir tipos derecurso que están soportados en Rational Team Concert y especificar que losusuarios pueden enlazar desde la aplicación Peticiones de servicio.

Definir interacción y seleccionar el URI de utilización: paso 1

Seleccione la acción Crear interacción de OSLC.

Especifique Crear defecto como nombre de la interacción de OSLC para el registroRational Team Concert. Seleccione CREATIONDIALOG como el tipo deinteracción.

Seleccione un tipo de recurso, como solicitud de cambio, de la lista de valores. Lalista se llena con el tipo o tipos de recursos que ha creado anteriormente.

Se abrirá la página de inicio de sesión de Rational Team Concert, pues debe iniciaruna sesión en Rational Team Concert para continuar.

Después de iniciar una sesión, la lista de valores URI de utilización se llena desdeRational Team Concert con los tipos de uso de recursos correspondientes al tipo de

Integración de datos con aplicaciones externas 305

Page 312: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

recurso seleccionado. Seleccione el tipo de uso de defecto. Opcionalmente, puedeespecificar un URI de utilización.

Seleccionar proveedor de servicio y propiedad de asociación: paso 2

En el paso 2, especifique si todos los proveedores de servicio de Rational TeamConcert están disponibles para la interacción, o si únicamente un proveedor deservicio está disponible. También puede identificar una propiedad de asociación,de modo que se pueda establecer un enlace desde la aplicación del proveedor,Rational Team Concert, a la aplicación de consumidor, Peticiones de servicio.

Puede utilizar la selección predeterminada, que es que todos los proveedores deservicios están disponibles. Cuando un usuario de la aplicación Peticiones deservicio inicia la interacción en la aplicación Peticiones de servicio y existen variosproveedores de servicios compatibles con la combinación seleccionada de recurso yutilización, se abre una ventana de selección. Por ejemplo, la ventana de selecciónpuede mostrar una lista de proyectos de Rational Team Concert que soportandefectos. El usuario puede seleccionar el proveedor de servicios o contenedor en elque crear el defecto.

La otra opción es especificar un URI de un proveedor de servicios individual. Enese caso, la aplicación Peticiones de servicio se conecta directamente al proveedorde servicios que especifique.

Para habilitar un enlace desde Rational Team Concert con la aplicación Peticionesde servicio, debe especificar la propiedad de asociación. La propiedad deasociación está asociada al recurso de Rational Team Concert. Si un documento deforma está asociado al tipo de recurso, los valores que puede elegir para lapropiedad de asociación proceden del documento de forma. Si no hay ningúndocumento de forma asociado al tipo de recurso, puede especificar una propiedadde asociación. La propiedad de asociación se muestra en la interfaz de usuario deRational Team Concert, y la propiedad se llena con un enlace que apunta a lapetición de servicio. Un usuario de Rational Team Concert puede pulsar el enlacepara abrir la aplicación Peticiones de servicio y ver la petición de serviciorelacionada en Rational Team Concert.

Seleccionar la aplicación de consumidor para la interacción de OSLC: paso 3

En el paso 3, especifique la aplicación de consumidor que interactuará con laaplicación del proveedor, Rational Team Concert. La aplicación de consumidor esla aplicación Petición de servicio.

La configuración predeterminada es que los cambios de la interfaz de usuario en laaplicación de consumidor se generan automáticamente a través del asistente. Simantiene la configuración predeterminada, debe especificar el separador de laaplicación al que se añaden la tabla y el botón de interacción.

Especifique que el separador, la ventana de tabla y el botón, se han de añadir alseparador Registros relacionados de la aplicación Peticiones de servicio. De formapredeterminada, el nombre del botón pulsador es el nombre que especificó para lainteracción: Create Defect. Puede cambiar el nombre del botón.

Para que el botón sea visible para los usuarios, debe especificar los grupos deseguridad que están autorizados para ejecutar la interacción. Solo los usuarios enlos grupos que autorice verán el botón y crearán un defecto en Rational TeamConcert.

306 Integración de datos con aplicaciones externas

Page 313: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Como alternativa, puede deseleccionar la casilla Crear panel de interacción yutilizar el Diseñador de aplicaciones para crear todos los cambios de interfaz deusuario en la aplicación Peticiones de servicio.

Especificar correlaciones de campo de interacción: paso 4

El paso 4 solo está disponible para interacciones de creación. Opcionalmente,puede correlacionar datos de la aplicación de consumidor con los campos dedestino en la aplicación del proveedor. Cuando el usuario pulsa el botón para crearun recurso, los campos se correlacionan con la ventana de proveedor que semuestra en la aplicación de consumidor. Por ejemplo, desea que los usuarios dePeticiones de servicio vean el número de petición de servicio y la descripciónrellenada previamente en los campos de la ventana Crear recurso de Rational TeamConcert. Puede proporcionar más correlaciones de campo o revisar la correlaciónde campos, incluso después de completar la interacción.

El documento de forma para el recurso, identifica los atributos que soportanenlaces. Desde su aplicación, seleccione solo los campos que contengan enlacespara correlacionar con los campos de destino que soportan enlaces. Compruebeque el campo de destino sea visible en la interfaz de usuario de la ventana de laaplicación de proveedor para que los datos correlacionados sean visibles.

Desea correlacionar la descripción de petición de servicio con la descripción dedefecto en la ventana Rational Team Concert. Especifique :descripción como laexpresión de correlación de origen y, descripción como la propiedad de recurso dedestino.

Crear varias interacciones

Puede crear varias interacciones para una aplicación de consumidor. Por ejemplo,es posible que también desee crear una interacción de selección para la aplicaciónPeticiones de servicio. En la ventana de selección, un usuario puede pulsar unbotón para seleccionar un recurso existente, como por ejemplo, un defecto, enRational Team Concert. Si crea varias interacciones para la misma combinación detipo de recurso y utilización en el mismo panel de aplicación, los botones seañaden al mismo panel y ventana de tabla.

Si también diseña una interacción de selección para la aplicación Peticiones deservicio, los usuarios tienen las opciones siguientes:v Crear un defecto y enlazar la petición de servicio al nuevo defecto.v Seleccionar un defecto existente y enlazar la petición de servicio a él.

También puede diseñar una interacción de creación adicional para un tipo derecurso o tipo de uso soportado, tal como una tarea. Una combinación diferente detipo de recurso y utilización genera un panel y una ventana de tabla diferentespara el botón de interacción adicional.

Revisar las interacciones nuevas en la aplicación de consumidor

Después de completar la interacción, debe volver a iniciar una sesión. De estaforma se otorga el acceso de seguridad actualizado que especificó en el paso 3.Después de iniciar la sesión, puede navegar hasta la aplicación Peticiones deservicio para revisar los cambios realizados en la interfaz de usuario. En cualquier

Integración de datos con aplicaciones externas 307

Page 314: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

momento, puede utilizar la aplicación Diseñador de aplicaciones para refinar oañadir a la interfaz de usuario los cambios que se generaron automáticamente enla aplicación Peticiones de servicio.

Puede probar el botón o botones para verificar que la ventana de Rational TeamConcert se abre en la aplicación Petición de servicio de la forma prevista. Si laventana no se abre, o existen datos en campos inesperados, la causa puede ser unacorrelación de datos errónea. Puede revisar la correlación de datos para lainteracción en la tabla Correlación del registro de proveedor de OSLC.

Si los usuarios de la aplicación Petición de servicio no pueden ver los botonesrecién añadidos que enlazan con Rational Team Concert, asegúrese de que losusuarios inicien de nuevo una sesión y que pertenecen a los grupos de seguridadautorizados. También asegúrese de que los usuarios tienen credenciales válidas deinicio de sesión de Rational Team Concert.

Modificación de interacciones de creación o selección de OSLC

Después de completar el diseño de la interacción de OSLC, los cambios que puederealizar en ella son limitados. Puede actualizar la propiedad de asociación y puederevisar la correlación de campos.

Especificar una nueva propiedad de asociación establece un nuevo nombre depropiedad, que proporciona un enlace desde la aplicación de proveedor a laaplicación de consumidor.

En la tabla Correlaciones de interacción, puede revisar cualquier correlaciónexistente, suprimir o añadir correlaciones. El documento de forma para el recurso,identifica los atributos que soportan enlaces. Desde la aplicación de consumidorsolamente puede seleccionar campos que contengan enlaces de correlación concampos de destino que permiten el uso de enlaces. Compruebe que el campo dedestino sea visible en la interfaz de usuario de la ventana de la aplicación deproveedor para que los datos correlacionados sean visibles.

También puede especificar una clase Java para utilizarla como parte de la lógica decorrelación. Puede utilizar una clase Java cuando las definiciones de correlación decampos que se proporcionan no son suficientes. Especifique la clase Java en elcampo Clase de correlación de interacciones. Se puede proporcionar una clase decorrelación si la correlación de campos existe o no.

Supresión de interacciones de creación o selección de OSLC

La supresión de la interacción solo es posible si la aplicación de consumidor nocontiene enlaces que apunten a la interacción. Se deben suprimir todos los enlacesde aplicación asociados para poder suprimir una interacción en un registro deproveedor de OSLC.

Cuando suprime una interacción, se actualizan los correspondientes cambios en lainterfaz de usuario que se realizaron al diseñar la interacción. El botón para lainteracción se elimina de la aplicación. También se eliminan la ventana de tabla yel separador, pero solo si la ventana de tabla y separador creados por el asistente,donde existía el botón, no contiene botones para otras interacciones. Se suprimetambién la opción de firma y relación que se han creado para la interacción.

Si configuró manualmente los cambios en la interfaz de usuario para la interacción,debe utilizar el Diseñador de aplicaciones para eliminar esos cambios.

308 Integración de datos con aplicaciones externas

Page 315: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Enlaces huérfanos

Los enlaces creados entre el registro de objeto de la aplicación de consumidor y elrecurso de la aplicación de proveedor se almacenan en la tabla de base de datosOSLCLINK.

Si suprime un registro de objeto que tiene enlaces, la tabla OSLCLINK contendráuno o más enlaces huérfanos correspondientes al registro de objeto suprimido.

La tarea cron OSLCDeleteLinks suprime los enlaces huérfanos. De formapredeterminada, la tarea cron OSLCDeleteLinks está configurada para que seejecute una vez al día. Puede ver y editar la tarea cron en la aplicaciónConfiguración de tarea cron.

Ejemplo: Diseño de una interacción de consulta de OSLC:

Desea diseñar una interacción de OSLC para que los usuarios de la aplicaciónActivos puedan ejecutar una consulta y recuperar datos de recurso de unproveedor, tal como IBM Tivoli Application Dependency Discovery Manager.

Trabajo preparatorio

En la aplicación Proveedores de OSLC, Registro de recursos es el proveedorpredeterminado para interacciones de consulta. El punto finalPROVIDERREGISTRY se especifica como parte de los valores predeterminados,pero debe definir las propiedades del punto final y especificar el URI público delRegistro de recursos. También debe especificar cómo se identifica el proveedor deservicios.

Mediante la acción Añadir/Modificar tipos de recurso, añada el tipo de recurso otipos que estén soportados en Registro de recursos y asocie un documento deforma con el tipo de recurso, si está disponible. También puede especificar que losusuarios pueden enlazar con el Registro de recursos desde la aplicación Activos.

Definir interacción y seleccionar el URI de utilización: paso 1

Seleccione la acción Crear interacción de OSLC.

Especifique COMPUTER como nombre de la interacción de OSLC y seleccioneQUERYCAPABILITY como tipo de interacción.

Seleccione un tipo de recurso, tal como COMPUTERSY, en la lista de valores. Lalista se llena con el tipo o tipos de recursos que ha creado anteriormente.

Opcionalmente, puede especificar un URI de utilización. La lista de valores URI deutilización se llena desde el Registro de recursos con el tipo o tipos de uso derecursos correspondientes al tipo de recurso seleccionado. Si no especifica un URIde utilización, se utiliza el tipo de uso predeterminado del tipo de recurso.

Seleccionar proveedor de servicios y propiedad de enlace: paso 2

En el paso 2, especifique si están disponibles todos los proveedores de serviciospara la interacción, o solamente está disponible un solo proveedor de servicios.También puede identificar una propiedad de enlace y una etiqueta de enlace, paraque pueda establecerse un enlace desde la aplicación de proveedor, ResourceRegistry, a la aplicación de consumidor, Activos.

Integración de datos con aplicaciones externas 309

Page 316: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Utilice la selección predeterminada, que indica que sólo el proveedor de serviciosResource Registry está disponible. Cuando un usuario de la aplicación Activosinicia la interacción ejecutando una consulta y existen varios proveedores deservicios compatibles con la combinación seleccionada de recurso y utilización, seabre una ventana de selección. Por ejemplo, la ventana de selección puede mostraruna lista de proveedores de servicios que contienen datos que residen en el recursoespecificado. El usuario puede seleccionar el proveedor de servicios en el que sebasará la consulta.

La otra opción es especificar un URI de un proveedor de servicios individual. Laconsulta se ejecuta basándose en el proveedor de servicios que especifique. Lapropiedad de enlace se utiliza para recuperar los datos de recurso a partir delRegistro de recursos para el proveedor. El enlace y la etiqueta de enlace semuestran al usuario en la aplicación de consumidor cuando se proporcionan losresultados de la consulta.

Para habilitar un enlace entre el Registro de recursos y la aplicación Activos, laaplicación de proveedor debe permitir el uso de una propiedad de enlace. Lapropiedad de enlace está asociada al recurso contenido en el Registro de recursos.Si un documento de forma está asociado al tipo de recurso, los valores que puedeelegir para la propiedad de enlace proceden del documento de forma. Si no hayningún documento de forma asociado al tipo de recurso, puede especificar unapropiedad de enlace y una etiqueta de enlace.

Seleccionar la aplicación de consumidor para la interacción de OSLC: paso 3

En el paso 3, especifica la aplicación de producto que interacciona con la aplicaciónde proveedor, el Registro de recursos. La aplicación de consumidor puede sercualquier aplicación contenida en el producto, pero este ejemplo utiliza laaplicación Activos.

De forma predeterminada, el botón pulsador se crea automáticamente en laaplicación especificada. Si mantiene el valor predeterminado, debe especificar elpanel de la aplicación al que se añade el botón de interacción para permitir lainteracción de consulta.

Especifique que el botón se debe añadir al panel Principal de la aplicación Activos.De forma predeterminada, la etiqueta del botón pulsador es la misma que elnombre que especificó para la interacción: Computer. Puede cambiar la etiqueta delbotón.

Para que el botón sea visible para los usuarios, debe especificar los grupos deseguridad que están autorizados para ejecutar la interacción. Solamente losusuarios pertenecientes a los grupos autorizados pueden ver el botón y ejecutar laconsulta para recuperar los datos de recurso.

Especificar consultas y parámetros de consulta: paso 4

En el paso 4, creará las consultas para la interacción. Las consultas se utilizan paraconsultar los datos de recurso contenidos en el registro de recursos. La cláusulaSelect identifica los atributos que se seleccionan del recurso. Puede especificar unasterisco (*) para recuperar todos los valores o especificar una lista separada porcomas de atributos de recurso desde el documento de forma para filtrar la lista devalores a recuperar.

310 Integración de datos con aplicaciones externas

Page 317: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Puede definir la condición WHERE de la consulta utilizando uno de los métodossiguientes:v Implemente una clase Java para definir la condición WHERE.v Proporcione los datos para la condición WHERE.v Defina la condición WHERE utilizando valores de parámetro. Los valores de

parámetro se seleccionan del objeto principal de la aplicación y se comparan conlos atributos de los datos de recurso en la aplicación de proveedor.

Las consultas se ejecutan en el orden que se ha especificado en la tabla deconsultas. Si la primera condición no se cumple, todas las consultas posteriores seprocesan en orden hasta que se cumpla una condición de consulta. Cuando secumple una condición, los datos de recurso se recuperan y devuelven al usuario enla aplicación de consumidor. También puede identificar el parámetro de consultaorderby que ordena los datos devueltos en la respuesta de la consulta.

Las consultas que se crean durante el diseño de la interacción no se validan. Por lotanto, podría crear consultas que generan mensajes durante la ejecución. Porejemplo, puede crear la condición de consulta siguiente:Query Query Type Property Operand Mapped Expression Is Literal?10 Parameter http://open-services.net/ns/crtv#%7Dmanufacturer IN IBM, Dell Checked

Pero durante la ejecución se genera un error porque la consulta está buscando unsolo atributo "IBM, Dell" en lugar de dos atributos "IBM","Dell". El ejemplosiguiente muestra el formato de atributo correcto:Query Query Type Property Operand Mapped Expression Is Literal?10 Parameter http://open-services.net/ns/crtv#%7Dmanufacturer IN "IBM","Dell" Checked

Especificar el grupo de interacciones: paso 5

En el paso 5, puede añadir la interacción de la consulta a un grupo deinteracciones y especificar una condición para el grupo si no existe una.

Un grupo de interacciones le permite agrupar varias consultas afines bajo un solocontrol de interfaz de usuario. Cuando especifica un grupo de interacciones,permite que el usuario ejecute varias interacciones para distintos proveedoresbasándose en la condición que está asociada con la interacción dentro del grupo.

Todas las interacciones del grupo están basadas en el mismo objeto principal y tipode recurso. Si añade una interacción de consulta a un grupo de interacciones, esainteracción sólo se ejecuta como parte del grupo. La interacción de consulta no seejecuta de forma independiente. El orden de las interacciones en el grupodetermina la secuencia en la que se ejecuta la consulta para el grupo deinteracciones.

Puede especificar el grupo de interacciones CICOMPUTERSY y la condición XYZ. Si hacreado un grupo de interacciones, puede especificar detalles adicionales para elgrupo de interacciones utilizando la acción Añadir/Modificar grupos deinteracciones. En la aplicación Activos, cuando el usuario pulsa el botón paraejecutar una consulta y se cumple una condición, los resultados de la consulta semuestran en la ventana Vista previa.

Revisar las interacciones nuevas en la aplicación de consumidor

Después de crear la interacción de consulta, debe volver a iniciar una sesión. Deesta forma se otorga el acceso de seguridad actualizado que especificó en el paso 3.

Integración de datos con aplicaciones externas 311

Page 318: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Después de iniciar la sesión, puede navegar hasta la aplicación Activos para revisarlos cambios realizados en la interfaz de usuario.

Puede probar el botón para verificar que aparece en la aplicación Activos de laforma prevista. Puede ejecutar la consulta para verificar que es válida y que losdatos de recurso se devuelvan. Si no se devuelven resultados, puede que losparámetros de la consulta sean incorrectos. Revise los parámetros de la consulta enla aplicación Proveedores de OSLC y actualice los parámetros según sea necesario.

Si los usuarios no pueden ver el botón recién añadido después volver a iniciar lasesión, compruebe que los usuarios pertenecen a los grupos de seguridadautorizados.

Modificación de interacciones de consulta de OSLC

Después de completar el diseño de la interacción de consulta de OSLC, loscambios que puede realizar en ella son limitados. Puede actualizar la propiedad deenlace, actualizar los parámetros de consulta y revisar la correlación de campos.

Especificar una nueva propiedad de enlace establece un nuevo nombre depropiedad, que proporciona un enlace desde la aplicación de proveedor a laaplicación de consumidor.

En la tabla Correlaciones de consulta, puede revisar cualquier correlación existente,suprimir o añadir correlaciones. El documento de forma para el recurso, identificalos atributos que soportan enlaces. Desde la aplicación de consumidor solamentepuede seleccionar campos que contengan enlaces de correlación con campos dedestino que permiten el uso de enlaces. Compruebe que el campo de destino seavisible en la interfaz de usuario de la ventana de la aplicación de proveedor paraque los datos correlacionados sean visibles.

También puede especificar una clase Java para utilizarla como parte de la lógica decorrelación. Puede utilizar una clase Java cuando las definiciones de correlación decampos que se proporcionan no son suficientes. Especifique la clase Java en elcampo Clase de correlación de consulta. Se puede proporcionar una clase decorrelación si la correlación de campos existe o no.

La cláusula SELECT de la interacción de consulta se puede actualizar después decrear la interacción.

Supresión de interacciones de consulta de OSLC

La supresión de la interacción de consulta solo es posible si la interacción no estáasociada a un grupo de interacciones. Debe eliminar la interacción de un grupoantes de suprimir la interacción.

Cuando suprime una interacción, se actualizan los correspondientes cambios en lainterfaz de usuario que se realizaron al diseñar la interacción. El botón para lainteracción se elimina de la aplicación. Se suprime también la opción de firma yrelación que se han creado para la interacción.

Creación de grupos de interaccionesPuede utilizar grupos de interacciones para agrupar varias interacciones deconsulta bajo un mismo control de interfaz de usuario, tal como un botón. Estasinteracciones de consulta pueden ser para un proveedor individual o variosproveedores.

312 Integración de datos con aplicaciones externas

Page 319: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Antes de empezar

Para poder crear un grupo de interacciones, debe crear una o varias interaccionesde consulta.

Acerca de esta tarea

Cada interacción de consulta del grupo se ejecuta y devuelve datos al usuario deacuerdo con las condiciones definidas para la interacción. Si una interacción deconsulta contiene una condición que se basa en datos de la aplicación actual, elgrupo de interacciones utiliza los datos para ejecutar sólo las consultas apropiadas.Los resultados de varias consultas se combinan y muestran en la vista resultante.

Para crear una interacción de OSLC, el usuario debe estar en el idioma base. Puedetambién crear un grupo de interacciones en el asistente de interacción de consulta.

Procedimiento1. En la aplicación de proveedores de OSLC, seleccione la acción

Agregar/Modificar grupos de interacciones.2. Añada una fila nueva y especifique el nombre del grupo de interacciones y el

objeto principal que desee asociar al grupo.3. Opcional: Si desea asociar el grupo de interacciones con varios proveedores,

seleccione la casilla Soportar la vista combinada de varios proveedores.4. En el panel Interacciones, especifique al menos una interacción para que se

ejecute como parte del grupo. Las interacciones que son elegibles dependen delobjeto principal que está especificado para los grupos de interacciones.

5. En el panel Aplicaciones, especifique la aplicación a la que desee añadir elgrupo de interacciones.

6. Opcional: Si el objeto principal del grupo de interacciones no es un objetoprincipal de la aplicación especificada, debe especificar una relación. Si noexiste una relación entre la aplicación y el objeto principal especificado para elgrupo de interacciones, debe crear o modificar una relación en el panelRelaciones de la aplicación Configuración de base de datos.

7. Especifique una etiqueta de botón, una opción del menú Detalles, o ambos,dependiendo del lugar desde donde desee que la interacción esté disponible enla aplicación de consumidor.

8. En el panel Grupos de seguridad, seleccione el grupo de seguridad que seaplica a la aplicación y al grupo de interacciones.

9. Para añadir un grupo de interacciones a una opción del menú Detalles,seleccione el panel Menú de aplicación, especifique la ubicación en laaplicación de consumidor donde se debe añadir el grupo, pulse Aceptar yguarde el grupo. Los campos existentes en la aplicación de consumidor semuestran en el cuadro de diálogo Seleccionar menú de detalles.

Ejemplo: Ejecución de una interacción de OSLCComo usuario de aplicaciones, puede ejecutar interacciones de OSLC entreaplicaciones que un diseñador de integración ha integrado. Para iniciar lainteracción de OSLC, debe pulsar un botón en la aplicación de consumidor.Dependiendo del tipo de interacción, puede crear un registro de recurso en laaplicación de proveedor externa o enlazar con un recurso existente en la aplicaciónde proveedor.

En este ejemplo, su aplicación es el consumidor, y Rational Team Concert es el proveedor.Pero este proceso también puede trabajar con cualquier proveedor de OSLC.

Integración de datos con aplicaciones externas 313

Page 320: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Utilice la aplicación Peticiones de servicio para especificar solicitudes de arreglosdel software que su equipo esté desarrollando. El diseñador de integración hautilizado la aplicación Proveedores de OSLC para integrar la aplicación Peticionesde servicio con la aplicación Rational Team Concert. Se han creado dosinteracciones de OSLC. La aplicación Peticiones de servicio ahora contiene el panelDefectos dentro del panel Registros relacionados. El panel tiene una ventanaDefectos y dos pulsadores en la ventana: Crear defecto y Seleccionar defecto.

Ahora puede especificar una petición de servicio y crear un defecto asociado enRational Team Concert al mismo tiempo, sin salir de la aplicación Peticiones deservicio. O bien, puede asociar la solicitud con un recurso existente en RationalTeam Concert, utilizando el botón Seleccionar defecto.

Creación de un defecto

En la aplicación Peticiones de servicio, puede crear una petición de servicio,proporcionar una descripción y otra información, y guardar la solicitud. Abra elseparador Registros relacionados y pulse el botón Crear defecto en el separadorDefectos.

Debido a que está creando un registro de recurso en una aplicación externa,Rational Team Concert, debe iniciar sesión en Rational Team Concert. Se abre laventana de inicio de sesión de Rational Team Concert. Después de proporcionar elID de usuario y la contraseña, se visualiza la ventana Crear recurso. Ahora puedeacceder a la ventana Crear recurso de Rational Team Concert en la aplicaciónPeticiones de servicio como resultado de la integración de OSLC.

Especifique el tipo de recurso para crear un defecto. También debe proporcionarinformación en el campo Resumen, y especificar el proyecto o contenedor paraarchivar el defecto.

El diseñador de integración ha correlacionado el campo Descripción de peticiónde servicio con la propiedad de descripción deRational Team Concert cuando se hacreado la interacción. Como resultado, la descripción de petición de servicio estáen el campo Descripción en la ventana Crear recurso. Puede editar la descripciónsi es necesario.

Vista previa de los datos de registro de recurso de aplicaciones deproveedor

La creación del registro en Rational Team Concert también crea un fila en la tablaDefectos en la aplicación Peticiones de servicio. El campo Descripción contieneinformación sobre los recursos enlazados en Rational Team Concert. La fila de latabla también muestra el URL del registro de recurso enlazado.

El campo Descripción tiene un icono de información, un pequeño circulo azul conuna “i”. Puede pasar el ratón sobre el icono de información para visualizar unaventana que muestre datos del registro de defectos en Rational Team Concert. (Sino ha iniciado la sesión en la aplicación de proveedor, pase el puntero del ratónsobre el icono de información para ver un mensaje y un enlace para iniciar lasesión.Si la aplicación de proveedor no permite utilizar vistas previas de OSLC, aparece unsegundo icono en el que puede pulsar para ver una vista previa.

Puede utilizar la ventana de vista previa para comprobar el estado y demásinformación sobre el registro de defectos de Rational Team Concert desde laaplicación Peticiones de servicio.

314 Integración de datos con aplicaciones externas

Page 321: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Selección de un defecto

En la aplicación Peticiones de servicio, especifique una segunda petición deservicio. La solicitud es para arreglar una instancia de un problema que se hanotificado anteriormente, y para el que existe un defecto en Rational Team Concert.Para la segunda solicitud, puede desear enlazar con el defecto existente, en lugarde crear un registro de defectos. En la tabla Defectos, en el separador Registrosrelacionados, pulse Seleccionar defecto.

Es posible que necesite seleccionar el contenedor, como por ejemplo, el proyecto deRational Team Concert, para el defecto, si la aplicación de proveedor da soporte avarios contenedores.

En la ventana Seleccionar recurso, especifique Defecto como el tipo de recurso quedesea seleccionar. Proporcione información de búsqueda, como el número o ladescripción del defecto, para visualizar el defecto o defectos que coincidan con elcriterio de búsqueda. Cuando selecciona un defecto y pulsa Aceptar, se establece elenlace con el recurso de defectos de Rational Team Concert. Se añade una fila parael defecto a la tabla Defectos en la aplicación Peticiones de servicio. Puede utilizarel icono de información para visualizar la información de defectos, del mismomodo que para la fila que ha añadido al crear un defecto.

Cambios en el URI públicoSi una aplicación de proveedor de OSLC se traslada a otro servidor o su URIpúblico cambia por otra razón, puede cambiar el URI público en el registro deproveedor de OSLC. Cuando actualiza el URI público, los URI basados en el URIpúblico también se modifican, lo que impide que se interrumpan los enlaces.

En la aplicación Proveedores de OSLC, utilice la acción Cambiar URI público paraespecificar el nuevo URI público para un proveedor de OSLC. Después de cambiarel URI público, los URI basados en el URI público, tales como los URI deproveedor de servicios y de recurso, también se modifican. Actualice los enlacespara que coincidan con el nuevo URI público y mantenerlos así activos y viables.

Migración de integraciones de OSLCPuede migrar una definición de proveedor de OSLC y sus interacciones asociadasdesde una instancia a otra del producto. Por ejemplo, puede configurar unaintegración de OSLC en un entorno de desarrollo o de prueba. Después decomprobar que la integración funciona correctamente, puede migrarla a un entornode producción.

La migración de integraciones de OSLC aprovecha funciones existentes de laaplicación Gestor de migración y se realiza principalmente en esa aplicación. Laaplicación Proveedores de OSLC tiene una acción para generar el paquete que seha de migrar.

Antes de ejecutar la acción Migrar proveedor OSLC, debe realizar trabajos depreparación en la aplicación Gestor de migración. Se proporciona una definición depaquete OSLCPROVIDER en la aplicación Gestor de migración. Para la definiciónde paquete OSLCPROVIDER, especifique una base de datos de destino o destinode archivos, para el paquete que genere en la aplicación Proveedores de OSLC.

Utilice la acción Migrar proveedor OSLC en aplicación Proveedores de OSLC, paragenerar el paquete que después va a gestionar en la aplicación Gestor demigración. El paquete contiene el registro de proveedores de OSLC, las

Integración de datos con aplicaciones externas 315

Page 322: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

interacciones asociadas y los cambios correspondientes realizados en la interfaz deusuario de las aplicaciones de consumidor integradas.

Después de ejecutar la acción Migrar proveedor OSLC, se visualiza un mensaje desistema. La línea final del mensaje de registro muestra el nombre del paquete. Elpaquete se lista en el separador Paquete de la definición de paqueteOSLCPROVIDER, en la aplicación Gestor de migración en el entorno de origen.

En el entorno de destino, utilice la aplicación Gestor de migración para importar ydesplegar el paquete.

Si utiliza un archivo de correlaciones Java personalizado en la integración deOSLC, este archivo Java personalizado no se incluye en el paquete. Debe trasladarmanualmente el archivo de correlaciones personalizado y el archivo de clasecorrespondiente al entorno de destino, o añadirlos manualmente al paquete.

La acción Migrar proveedor de OSLC genera un paquete solo para el registro deproveedor actual de OSLC. Si tiene varios registros de proveedor de OSLC, debemigrar cada uno por separado.

El Gestor de migración no permite la migración de grupos de interacciones. Paramigrar los objetos de un grupo de interacciones, puede crear una estructura deobjeto nueva que utilice los objetos siguientes:OSLCINTGROUPOSLCGRPAPPSOSLCGRPAPPMENUOSLCGRPMEMBERS

Debe incluir la estructura de objeto nueva en el paquete de migraciónOSLCPROVIDER.

Modificación manual de la interfaz de usuarioEl diseño de interacciones de OSLC entre aplicaciones requiere realizar varioscambios en la interfaz de usuario de la aplicación de consumidor. Existen varioscasos de uso de la aplicación Diseñador de aplicaciones para realizar o refinarcambios en la interfaz de usuario como parte de la integración.

Implementación manual de cambios en la interfaz de usuario y seguridad parainteracciones:

Si decide que el asistente no genere automáticamente cambios en la interfaz deusuario de la aplicación de consumidor, debe modificar la interfaz manualmente.La interfaz de usuario debe hacer que la interacción esté disponible para losusuarios mediante un botón pulsador. Si no selecciona grupos de seguridad en elasistente, debe especificar qué grupos de seguridad tienen acceso a la interacción.

Incluso cuando no desee crear automáticamente cambios en la interfaz de usuario,la creación de una interacción de OSLC crea una relación de enlace y una opciónde firma de botón. El nombre de la relación de enlace se basa en el uso o tipo derecurso especificado. El nombre de la opción de firma se basa en el nombre de lainteracción. El nombre de la relación y de la opción de firma se lista en los detallesde interacción, en el separador Proveedor de OSLC. Estos dos valores sonnecesarios cuando implementa manualmente cambios de la IU.

Utilice la aplicación Diseñador de aplicaciones para modificar la interfaz deusuario de la aplicación de consumidor. Debe crear un botón pulsador para que la

316 Integración de datos con aplicaciones externas

Page 323: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

interacción de OSLC se pueda ejecutar y crear un enlace. Y debe proporcionar unpanel con una tabla que contenga enlaces a recursos de la aplicación de proveedor.Normalmente, el botón y la tabla de enlace se proporcionan juntos en el mismoseparador.

Utilice la aplicación Grupos de seguridad para especificar qué grupos tienen accesoal pulsador. Solo los usuarios en los grupos que autorice pueden ver el botón yutilizarlo para visualizar la ventana de aplicación de proveedor, y ejecutar lainteracción.

Mejoras de la interfaz de usuario:

Es posible que desee realizar mejoras o adiciones a la interfaz de usuario (IU) deaplicación de consumidor, incluso cuando los cambios de la IU se generanautomáticamente.

Después de diseñar una interacción de OSLC que genera automáticamente cambiosen la interfaz de usuario, revisar la interfaz de usuario de la aplicación podríarevelar que las revisiones son necesarias. Por ejemplo, puede desear editar lasetiquetas del nuevo panel, ventana de tabla o pulsador. O puede desear ajustar laposición de los elementos de la interfaz de usuario. Utilice la aplicación Diseñadorde aplicaciones para modificar o añadir elementos de la IU.

Durante el diseño de interacción, puede especificar que todos los proveedores deservicios estén disponibles para la interacción, en la aplicación de consumidor. Enestos casos, se muestra una ventana Seleccionar contenedor cuando se inicia lainteracción. La ventana se utiliza para especificar qué proveedor de servicios ocontenedor utilizar para la interacción. Es posible que desee proporcionar un textode cuadrícula de ayuda para la ventana Seleccionar contenedor. Por ejemplo,podría añadir textos de cuadrícula de ayuda para indicar que las opcionesrepresentan proyectos o bases de datos, o algún otro contenedor de recursos.También podría volver a etiquetar el título de la ventana, de modo que sea másclaro para el usuario lo que va a seleccionar.

Traducción de elementos de la interfaz de usuario no traducidos:

Utilice la aplicación Diseñador de aplicaciones para modificar y traducir algunoselementos de la interfaz de usuario (IU), como la ayuda contextual para iconos,que el diseño de interacción añade.

Algunos elementos de la interfaz de usuario que fueron añadidos al diseñar unainteracción de OSLC no aparecen en el idioma apropiado para la interfaz, debido aque las interacciones se deben crear en el idioma base. Los elementos se añadendespués de que se hayan traducido los elementos originales de la interfaz deusuario, antes del despliegue de la aplicación. Para traducir los elementos de lainterfaz de usuario al idioma de la interfaz de la aplicación, utilice la aplicaciónDiseñador de aplicaciones para modificar los elementos de texto no traducidos.

Propiedades de OSLCPuede utilizar propiedades del sistema para gestionar la integración deaplicaciones de Open Services for Lifecycle Collaboration (OSLC).

Tabla 42. Propiedades de OSLC

Propiedad Descripción Valor predeterminado

mxe.oslc.collectioncount Es el recuento total de la colección de OSLC. 0

mxe.oslc.defaultep Es el punto final predeterminado de OSLC. OSLCDEFAULT

Integración de datos con aplicaciones externas 317

Page 324: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 42. Propiedades de OSLC (continuación)

Propiedad Descripción Valor predeterminado

mxe.oslc.defaultformat Es el formato predeterminado de OSLC. oslcjson

mxe.oslc.dfltconsumerversion Es la versión predeterminada de OSLC que elconsumidor utiliza.

2.0

mxe.oslc.dfltversion Es la versión predeterminada de OSLC para unproveedor de OSLC.

2.0

mxe.oslc.enableprovider Habilita el proveedor de OSLC. 1

mxe.oslc.idleexpiry Es el tiempo de inactividad del sistema, ensegundos, que debe transcurrir antes de quecaduque la sesión.

300

mxe.oslc.prcreateep Es el punto final de creación del registro deproveedores.

mxe.oslc.preferproviderdesc Especifica si se prefiere la descripción delProveedor de OSLC para los URI reconciliados delregistro de recursos.

true

mxe.oslc.prettyjson Es el JSON de impresión con sangría. 1

mxe.oslc.prettyrdf Es el RDF de impresión con sangría. 1

mxe.oslc.prqueryep Es el punto final de consulta del registro deproveedores.

PROVIDERREGISTRY

mxe.oslc.webappurl Es el URI público del proveedor. http://localhost/maximo/oslc/

Consultas de integraciónLa infraestructura de integración soporta consultas de sistemas externos. El sistemaexterno envía un mensaje XML para realizar una consulta a la infraestructura deintegración y la infraestructura de integración devuelve un mensaje XML como unarespuesta a la consulta. Puede ejecutar una consulta para una estructura de objetoy servicios empresariales utilizando HTTP, Java™ RMI (invocación a métodoremoto) o una consulta SOAP (Protocolo de acceso a objectos simple) en unservicio web.

El soporte para las consultas XML se basa en la prestación QBE (Consulta porejemplo) del sistema, que está disponible en la ficha Lista de la mayoría de lasaplicaciones. Las consultas basadas en XML proporcionan el mismo soporte deconsulta que se proporciona en las aplicaciones excepto para las búsquedas deatributos que están disponibles en algunas aplicaciones del sistema. Los tiempos deespera excedidos de consulta de integración se controlan mediante la propiedaddel sistema mxe.db.Query.Timeout.Conceptos relacionados:“API de REST” en la página 243La API (interfaz de programación de aplicaciones) de REST (Representational StateTransfer) proporciona una manera para que las aplicaciones externas consulten yactualicen datos de aplicación en motor de automatización de procesos de Tivoli.

Servicios de consultaLos servicios de estructura de objeto y los servicios empresariales soportanoperaciones de consulta. Una fuente externa puede utilizar un servicio paraejecutar una consulta y recuperar datos de un sistema. En ambos casos, el esquemade estructura de objeto define el contenido XML para la solicitud de consulta y larespuesta de la consulta.

318 Integración de datos con aplicaciones externas

Page 325: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Para una estructura de objeto que tenga más de dos niveles de objetos de negocios,la infraestructura de consulta soporta el uso de atributos de objetos de negocios enlos dos niveles superiores de la solicitud XML. EL XML de respuesta de la consultacontiene todos los objetos de la estructura de objeto.

Todas las estructuras de objeto proporcionadas por el sistema que tienenINTEGRACIÓN como valor de Consumido por soportan la operación de consultade forma predeterminada. Puede configurar una estructura de objeto para darsoporte sólo a la operación de consulta y a ninguna otra operación que soporte laactualización de objetos. Puede utilizar la aplicación Estructuras de objetos paracrear estructuras de objeto adicionales que proporcionan soporte para la operaciónde consulta.

Creación de una consulta de servicio empresarialUna fuente externa puede utilizar un servicio empresarial para ejecutar unaconsulta y recuperar datos de un sistema.

Acerca de esta tarea

Se proporciona un servicio empresarial de ejemplo, MXINVBALQInterface. Puedeutilizar este ejemplo como referencia cuando cree servicios empresariales deconsulta.

Procedimiento1. Si no existe ninguna, cree una estructura de objeto que contenga los objetos a

los cuales debe acceder la consulta.2. Defina un servicio empresarial que implemente la estructura de objeto que

piensa utilizar para la consulta.3. Especifique Consulta como operación sobre el servicio empresarial.4. Asocie el servicio empresarial con un sistema externo y habilite el sistema

externo y su servicio empresarial.

Consultas de servicios webLos servicios de consulta que se crean en la aplicación Servicios empresariales y laaplicación Estructuras de objetos se pueden desplegar como servicios web. Paradar soporte a las consultas, se deben configurar los servicios web empresarialespara omitir las colas JMS.

Una respuesta satisfactoria a una consulta que se ejecuta en un servicio de webdevuelve el conjunto de resultados de la consulta. Si el conjunto de resultados estávacío (no contiene registros), el XML que se devuelve en el cuerpo SOAP contieneel siguiente código MXPERSONSet vacío:<max:QueryMXPERSONResponse xmlns: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>

Si se produce un error, se devuelve un código de respuesta HTTP 500, junto conun error de SOAP que detalla el mensaje de error.

Utilice el URL siguiente para el servicio web de consulta:http://nombre_host:puerto/meaweb/services/nombre servicio web

Integración de datos con aplicaciones externas 319

Page 326: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

v host:port/meaweb es el valor de la propiedad de URL de la aplicación web deintegración.

v nombre servicio web es el nombre del servicio web

Para desplegar servicios de empresariales y de estructura de objeto de consultacomo servicios web, utilice la aplicación Biblioteca de servicios web.

Estructura XML de consultaEl nombre del elemento raíz de una consulta es la concatenación de la operación(Consulta) y el nombre de la estructura de objeto asociada. Por ejemplo,QueryMXPERSON, siendo MXPERSON la estructura de objeto.

Elemento raíz

El nombre del elemento raíz de una consulta es la concatenación de la operación yel nombre de la estructura de objeto asociada. Por ejemplo, QueryMXPERSON,siendo MXPERSON la estructura de objeto. La tabla siguiente lista los atributosque puede aplicar específicamente al elemento raíz de una consulta, una respuestaa una consulta o ambas cosas. Todos los atributos de esta tabla son opcionales.

Atributo Descripción Tipo Aplicable a

uniqueResult Especifica si la consulta espera unoo varios registros en una respuesta.

Valor 0 (valor predeterminado): laconsulta puede devolver múltiplesregistros.

Valor 1: la consulta puede devolverun solo registro. De lo contrario, seproduce un error.

Booleano Consulta

maxItems Si la consulta puede devolvermúltiples registros, este atributolimita el número de registros quedevuelve cada vez.

Si no se especifica este atributo, larespuesta contiene el conjunto deresultados completo.

PositiveInteger Consulta

320 Integración de datos con aplicaciones externas

Page 327: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Atributo Descripción Tipo Aplicable a

rsStart En la solicitud de consulta:

Utilícelo con maxItems paraespecificar el primer registro que sedevolverá en una respuesta.

Si maxItems es igual a 10 y no seespecifica rsStart, la respuestadevuelve los resultados 0 a 9. Pararecibir los resultados 10 a 19, vuelvaa enviar la consulta con rsStart iguala 10.

Si no se especifica rsStart, larespuesta comienza por el primerregistro del conjunto de resultados.Si el número de registros delconjunto de resultados de laconsulta se establece en un valorinferior al valor de rsStart, larespuesta no devuelve ningúnregistro.

Entero Consulta

rsStart En la respuesta de la consulta:

Este valor se corresponde con elvalor de rstart en la solicitudcorrespondiente.

Si la solicitud correspondientecontiene un valor maxItems, el valorrsStart de las solicitudes de registrosadicionales es rsStart + rsCount + 1.

Si no se especifica este atributo, larespuesta comienza por el primerregistro del conjunto de resultados eincluye el número de registrosespecificado por el atributo rsCount.

Entero Respuesta

rsCount El número de registros que sedevuelven en el mensaje.

rsCount no refleja ninguna fila quese puede ignorar como parte de lacapa de proceso de respuesta.

Entero Respuesta

rsTotal El número total de registros delconjunto de resultados.

Si la consulta no especifica un valorpara maxItems, el valor de rsTotales el mismo que el valor dersCount.

Entero Respuestas(salida)

Por ejemplo, la respuesta para esta solicitud de consulta devuelve de 11 a 20registros del conjunto de resultados de la consulta establecido en virtud del valorde rstart configurado como 11 y el valor de maxItems configurado como 10.

Integración de datos con aplicaciones externas 321

Page 328: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

<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">

El siguiente conjunto de resultados de consulta contiene un total de 35 filas, comose indica mediante rsTotal, pero solamente se devuelven las filas 11 a 20.<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>

Operador de consulta

El tipo de datos QueryOperatorType soporta el uso de diferentes operadores. ElXML de solicitud de consulta puede utilizar diferentes operadores para filtrar losdatos devueltos en el origen externo de consulta.

Elemento QueryMXPERSON

El elemento QueryMXPERSON tiene los tipos siguientes:v El elemento QueryMXPERSON es de tipo QueryMXPERSONType.v QueryMXPERSONType tiene el elemento MXPERSONQuery, que es de tipo

MXPERSONQueryType.v MXPERSONQueryType tiene elementos para todos los atributos configurados

del objeto PERSON y todos sus objetos hijo (EMAIL, PHONE y SMS).

El elemento de operación QueryMXPERSON utiliza los atributos siguientes:v uniqueResults: es un valor booleano que cuando se establece en 1 (true), dirige

la consulta de modo que devuelve un solo registro exclusivo cuando se estableceel valor en 1 (true). Si se encuentra más de un registro, se devuelve un error.Cuando no se proporciona el atributo, el valor predeterminado es 0 (false).

v maxItems: cuando este valor se establece en 10 en la consulta, limita el númerode registros que se devuelven en la consulta a 10, incluso cuando el conjunto deresultados de la consulta puede ser mayor que 10. Cuando no se define elatributo, se devuelven todas las filas del conjunto de resultados de la consulta.

v rsStart: cuando se establece este valor en 11 en la consulta, todos los registros delconjunto de resultados se devuelven comenzando por el registro 11. Losresultados de la consulta ignoran los registros 1 a 10. Cuando no se define elatributo, se devuelven los registros comenzando por el registro 1 del conjunto deresultados.

El elemento de contenido MXPERSONQuery utiliza los siguientes atributosadicionales:v orderby: utilizar este valor es equivalente a utilizar Order By en una sentencia

SQL. El atributo puede contener una lista de nombres de campos separados porcomas que también incluye las opciones ASC y DESC. Cuando no se define elatributo, la consulta devuelve los registros en el orden en que los ha recuperadola base de datos.

322 Integración de datos con aplicaciones externas

Page 329: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

v operandMode: este valor tiene dos valores válidos, AND y OR. El sistema utilizaeste valor cuando se utilizan uno o varios campos para la evaluación de unaejecución de consulta. Cuando se utiliza el valor AND, todas las evaluaciones decampo deben ser verdaderas. Cuando se utiliza el valor OR, solo una de lasevaluaciones de campo deben ser verdaderas. Cuando no se define el atributo, elvalor predeterminado es AND.

Elemento QueryMXPERSONResponse

El elemento QueryMXPERSONResponse tiene los tipos siguientes:v El elemento QueryMXPERSONResponse es de tipo

QueryMXPERSONResponseType.v QueryMXPERSONResponseType tiene el elemento MXPERSONSet, que es de

tipo MXPERSONSetType.v MXPERSONSetType tiene elementos para todos los atributos configurados del

objeto PERSON y elementos para los objetos hijo definidos en la estructura deobjeto (PHONE, EMAIL, XYZ y SMS).

El elemento QueryMXPERSONResponse tiene los atributos siguientes:v rsStart: este valor contiene el valor establecido en la solicitud de consulta. Si no

se ha definido el valor en la solicitud, el valor de respuesta predeterminado es 1.v rsCount: este valor contiene el número de registros devueltos en la respuesta de

consulta.v total: este valor contiene el número de registros del conjunto de resultados de la

consulta final. El valor total puede ser mayor que el número de registrosdevueltos cuando se utiliza el atributo maxItems en la solicitud de consulta.

Criterios de selección de consultas

El elemento de la estructura de objeto de una solicitud de consulta contiene loscriterios de selección para la consulta. Una consulta puede seleccionar registrosbasados en un solo valor, un intervalo de valores, o una cláusula 'where'proporcionada. La infraestructura de integración soporta el uso de operadores deconsulta como = o >.

Los criterios de selección sólo se aplican a los atributos de objetos de los dosniveles superiores de la estructura de objeto; es decir el objeto principal y susobjetos de nivel inferior inmediatos. No obstante, la respuesta incluye datos detodos los objetos de la estructura de objeto.

Selección de campoUna consulta basada en campo compara el valor de un campo de base de datoscon el valor del archivo XML de la solicitud de consulta.

La consulta de ejemplo siguiente busca los empleados:<QueryMXPERSON><MXPERSONQuery><PERSON></PERSON></MXPERSONQuery></QueryMXPERSON>

La consulta de ejemplo siguiente busca los empleados en los que PERSONID esigual a ATI y STATUS es igual a ACTIVO.

Integración de datos con aplicaciones externas 323

Page 330: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

<QueryMXPERSON><MXPERSONQuery><PERSON><PERSONID operator ="=">ATI</PERSONID><STATUS operator ="=">ACTIVE</STATUS></PERSON></MXPERSONQuery></QueryMXPERSON>

El atributo operandMode del elemento MXPERSONQuery define la sentencia que seejecuta con una condición AND u OR entre las evaluaciones de campo. Lacondición predeterminada que utiliza el sistema es la condición AND. De formaadicional, el atributo operandMode se puede proporcionar a nivel de campo. En talcaso, un elemento de campo puede tener varias apariciones y evaluarse paradiferentes condiciones, como un campo de cantidad evaluado como menor que 2 omayor que 10.

La consulta de ejemplo siguiente busca los empleados en los que PERSONID escomo %ATI%. El operando representa el comportamiento predeterminado y norequiere ningún valor de operador.<QueryMXPERSON><MXPERSONQuery><PERSON><PERSONID>ATI</PERSONID></PERSON></MXPERSONQuery></QueryMXPERSON>

La consulta de ejemplo siguiente busca los balances de inventario en los que elnúmero de estante no es un valor nulo.<QueryMXINVBAL>

<MXINVBALQuery><INVBALANCES><BINNUM operator =”!="></BINNUM></INVBALANCES ></MXINVBALQuery></QueryMXINVBAL>

La consulta de ejemplo siguiente busca los balances de inventario en los que elnúmero de estante es un valor nulo.<MXINVBAL><INVBALANCES><BINNUM>NULL</BINNUM></INVBALANCES ></MXINVBAL>

La consulta de ejemplo siguiente utiliza el equivalente de una cláusula IN de SQLpara buscar los empleados con estado ACTIVO o INACTIVO.<QueryMXPERSON><MXPERSONQuery><PERSON><STATUS>ACTIVO,INACTIVO</STATUS></PERSON></MXPERSONQuery></QueryMXPERSON>

La consulta de ejemplo siguiente busca los empleados en los que su PERSONIDempieza por la letra A.

324 Integración de datos con aplicaciones externas

Page 331: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

<QueryMXPERSON><MXPERSONQuery><PERSON><PERSONID operator ="SW">A</PERSONID></PERSON></MXPERSONQuery></QueryMXPERSON>

La consulta de ejemplo siguiente busca los empleados en los que su PERSONIDacaba con la letra Z.<QueryMXPERSON><MXPERSONQuery><PERSON><PERSONID operator ="EW">Z</PERSONID></PERSON></MXPERSONQuery></QueryMXPERSON>

Evaluación de camposEl atributo de operador compara el valor de un campo de la base de datos con unoo varios valores y tiene el formato operador = valor.

El atributo de valor puede tener los valores siguientes.

Valor Descripción

= igual a

!= no igual a

&lt; menor que

&lt;= inferior o igual que

&gt; mayor que

&gt;= mayor o igual que

EW Termina con

SW Empieza por

Utilice los atributos menor que y mayor que sólo con valores numéricos y camposde fecha.

Por ejemplo, para encontrar todos los empleados que tienen un estado ACTIVO,especifique la consulta con el formato siguiente:<QueryMXPERSON><MXPERSONQuery><PERSON><STATUS operator ="=">ACTIVE</STATUS></PERSON></MXPERSONQuery></QueryMXPERSON>

Selección de rangoUna consulta puede buscar registros con un valor que se encuentre dentro de unrango de valores. El formato depende de si los criterios de selección sonindefinidos o contienen un rango superior e inferior.

La consulta de ejemplo siguiente busca las órdenes de compra en las queDEPARTMENT es mayor que 1000.

Integración de datos con aplicaciones externas 325

Page 332: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

<QueryMXPERSON><MXPERSONQuery><PERSON>< DEPARTMENT operator="&gt;=">1000</DEPARTMENT></PERSON></MXPERSONQuery></QueryMXPERSON>

La consulta de ejemplo siguiente busca los registros de persona en los quePERSONID es mayor que 1000 e inferior que 20000. La consulta utiliza dosinstancias de un solo elemento de campo, la primera con el criterio de selecciónDesde y la segunda con el criterio de selección Hasta:<QueryMXPERSON><MXPERSONQuery><PERSON>< PERSONID operator="&gt;=">1000</PERSONID >< PERSONID operator="&lt;=">20000</PERSONID ></PERSON></MXPERSONQuery></QueryMXPERSON>

Selección de la cláusula WhereUna consulta puede buscar registros basados en una cláusula Where de SQL que sepuede proporcionar como parte del XML de consulta de integración. La cláusulaWhere ofrece soporte para consultas más complejas y consultas de datosrelacionados con la clasificación.

El uso de la cláusula Where es mutuamente exclusivo del uso de elementosindividuales. Si una solicitud de consulta proporciona datos para el elementoWhere y para otros elementos del XML, solo se utiliza el elemento WHERE alejecutar la consulta.

El elemento WHERE se ubica en el mismo nivel que el objeto de nivel superior enuna estructura de objeto (orden de compra), como en el siguiente ejemplo:<QueryMXPO xmlns="http://www.ibm.com/maximo">

<MXPOQuery><PO> </PO>

<WHERE> </WHERE></MXPOQUERY>

</QueryMXPO>

El elemento WHERE solo está disponible en el esquema cuando se trata de unaoperación de consulta, y solo puede existir una vez. Para combinar varias tablas enla consulta, utilice 'exists' dentro de la cláusula Where, de la misma manera que lacláusula WHERE del separador Lista de una aplicación. La siguiente consulta deejemplo, que utiliza la estructura de objeto MXPO, recupera órdenes de compraque tienen una línea OC para el artículo número 1002:<QueryMXPO xmlns="http://www.ibm.com/maximo">

<MXPOQuery><WHERE>(siteid = ’BEDFORD’) and (exists (select 1 from maximo.poline where(i temnum=’1002’) and (ponum=po.ponum and revisionnum=po.revisionnum andsiteid=po.siteid)))</WHERE></MXPOQUERY>

</QueryMXPO>

El resultado de esta consulta ha recuperado dos órdenes de compra (no todos loselementos están incluidos en el ejemplo):<?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"

326 Integración de datos con aplicaciones externas

Page 333: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

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>

Integración de datos con aplicaciones externas 327

Page 334: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

.

.

.</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>

Tablas de interfazLas tablas de interfaz son una opción para la integración con sistemas que utilizantablas de base de datos para intercambiar datos. Esta opción integrada sólo seaplica a los servicios empresariales y los canales de publicación y siempre seprocesa de forma asíncrona mediante colas JMS.

Dentro de un sistema externo, puede haber más de un canal de publicación yservicios empresariales que se utilizan para la integración con las tablas deinterfaz. Cualquier canal o servicio que esté utilizando una tabla de interfaz debeestar asociado con una estructura de objeto que esté configurada para dar soportea archivos sin formato y deben haberse resuelto todos los conflictos de alias.

Ubicación de las tablas de interfaz

La definición de punto final de un sistema externo o canal de publicación apunta ala base de datos en la que se almacenan las tablas de interfaz. La base de datospuede ser la base de datos de aplicación local o una base de datos remota. Elcontenido predefinido incluye el punto final de la tabla de interfaz MXIFACETABLEque apunta a la base de datos de aplicación. Puede añadir puntos finalesadicionales para las bases de datos remotas.

Nombres de las tablas de interfaz

La infraestructura de integración registra los nombres de la tabla de interfaz en unservicio empresarial o un canal de publicación. No se proporcionan nombrespredeterminados para las tablas de interfaz. Aplique las directrices siguientescuando asigne nombres a las tablas de interfaz:v Los canales de publicación y los servicios empresariales que utilizan la misma

estructura de objeto pueden utilizar el mismo nombre de tabla de interfaz odiferentes nombres de tabla de interfaz.

v Los canales de publicación y los servicios empresariales que utilizan unaestructura de objeto diferente deben utilizar nombres de tabla de interfazdiferentes.

328 Integración de datos con aplicaciones externas

Page 335: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tablas de cola de interfaz

Las tablas de cola de interfaz identifican la secuencia en la que un sistema receptorprocesa los registros en las tablas de interfaz respectivas. Existen dos tablas decola, una para las transacciones de entrada y la otra para las transacciones desalida. Algunas transacciones dependen del proceso correcto de una transacciónanterior, por ejemplo, debe crear un usuario para poder añadir dicho usuario a ungrupo de seguridad. El sistema receptor debe procesar los registros en la mismasecuencia en la que el sistema de envío ha creado los registros.

Tabla 43. Tabla de cola de interfaz

Tabla de cola de interfaz Dirección

MXOUT_INTER_TRANS Salida

MXIN_INTER_TRANS Entrada

Las aplicaciones externas que extraen datos para mensajes de salida puedenutilizar la tabla de colas de interfaz de salida (mxout_inter_trans). No obstante, lasaplicaciones externas también pueden seleccionar otros métodos para consumir losmensajes de salida que reúnen los requisitos de integración.

Todas las transacciones de entrada y salida deben tener un registro que se insertaen la tabla de cola de entrada o salida correspondiente. Este registro contiene unvalor TRANSID, un identificador exclusivo que identifica la tabla de interfaz en laque se graban los datos de transacción. La tabla de interfaz correspondiente utilizael valor TRANSID para identificar el o los registros asociados a la transacción.Puede identificar el contenido de una transacción buscando todos los registros conun valor de TRANSID dado en la tabla de interfaz correspondiente.

La secuencia de TRANSID identifica la secuencia en la que la infraestructura deintegración procesa los registros. Por ejemplo, cuando los usuarios y grupos deseguridad se entran en el sistema, los valores de TRANSID para el registro deusuario deben ser inferiores a los valores de TRANSID para los registros del grupode seguridad que hacen referencia a dicho usuario.

La diferencia entre las tablas de colas MXIN_INTER_TRANS yMXOUT_INTER_TRANS es la dirección de los registros de la tabla de interfaz quesiguen. El sistema externo debe grabar en la tabla de cola MXIN_INTER_TRANS yla infraestructura de integración debe leer en la misma. La infraestructura deintegración graba en la tabla de cola MXOUT_INTER_TRANS y el sistema externolee de la misma.

El sistema externo puede utilizar la tabla MXOUT_INTER_TRANS o recuperar losregistros de salida de las tablas de interfaz. Las tablas de cola de interfaz segeneran la primera vez que crea tablas de interfaz para un punto final. Cada puntofinal tiene sus propias tablas de cola de interfaz y un contador para mantener elvalor TRANSID de salida.

Creación de tablas de interfazCuando un servicio empresarial y un canal de publicación utilizan la misma tablade interfaz, la ventana Crear tablas de interfaz muestra una lista de tablas deinterfaz basada en la exclusividad del nombre de la tabla de interfaz y su puntofinal correspondiente.

Integración de datos con aplicaciones externas 329

Page 336: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Puede crear tablas de interfaz para servicios empresariales y canales de publicacióncuando las estructuras de objeto asociadas estén marcadas soportadas para serplanas. La casilla de verificación Admitir estructura plana debe estar seleccionadoen la estructura de objeto. También deben resolverse todos los conflictos de alias dela estructura de objeto para poder crear una tabla de interfaz.

Puede crear tablas de interfaz para la sincronización de datos en serviciosempresariales y en canales de publicación. La tabla de interfaz no soporta lasoperaciones de Consulta e Invocación. Puede crear tablas de interfaz para unpunto final específico. Debe identificar dónde se crean las tablas.

La ubicación de la base de datos a la que hace referencia el punto final puede seruna base de datos local o una base de datos remota. Cuando se crean tablas deinterfaz en una base de datos local, las columnas se registran en el diccionario dedatos de sistema. Las tablas de interfaz locales que utilizan una tabla de base dedatos y una columna de base de datos muestran todas las actualizaciones (exceptoinserciones y supresiones) de un atributo de columna base (como el tipo de datos)cuando se ejecuta la operación de configuración de base de datos. Cuando seagregan o suprimen columnas de la tabla base, se debe regenerar el servicioempresarial correspondiente y las tablas de interfaz del canal de publicación paraaplicar los cambios de columna. No se aplican cambios a las bases de datosremotas. Debe regenerar las tablas de interfaz remotas para aplicar los cambios decolumna.

Regeneración de las tablas de interfazCuando se agregan o suprimen columnas en las tablas de base de datos delsistema, debe volver a generar todas las tablas de interfaz locales y remotasasociadas con estas estructuras de objeto.

Puede volver a generar tablas de interfaz utilizando la acción Crear tablas deinterfaz en la aplicación de sistemas externas. Si selecciona la casilla de verificaciónCambiar nombre existente, la aplicación realiza una copia de seguridad de losdatos existentes de la tabla de interfaz correspondiente en la tablaINTERFACETABLENAME_BAK.

Si es necesario, puede restaurar los datos en la tabla nueva. En función de laconfiguración del entorno de multitenencia, puede que necesite solicitar la ayudadel proveedor del sistema para acceder a los datos que desea restaurar. Si norealiza una copia de seguridad de la tabla, la tabla se descarta y los datos sepierden cuando se vuelve a generar la tabla. No se puede volver a generar unatabla de interfaz cuando la tabla de cola MXIN_INTER_TRANS contiene unregistro que apunta a dicha tabla de interfaz. Cuando existe una fila en dicha tablade cola, la transacción entrante correspondiente está lista para su procesamiento ola transacción entrante es errónea.

El proceso de creación de tablas de interfaz no comprueba si hay registros en latabla de cola MXOUT_INTER_TRANS.

Supresión de tablas de interfaz y registrosCuando los registros de transacción entrantes relacionados se procesancorrectamente en una tabla de interfaz, el registro correspondiente se suprime de latabla de cola MXIN_INTER_TRANS. La supresión indica que la transacción se haentregado correctamente a la cola JMS entrante.

330 Integración de datos con aplicaciones externas

Page 337: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Los registros se suprimen de la tabla de cola MXIN_INTER_TRANS y no de lastablas de interfaz individuales. El administrador del sistema determina cuándo ycómo se deben suprimir registros de las tablas de interfaz.

Para las transacciones salientes, el sistema externo debe gestionar la supresión y elarchivado de datos en la tabla de cola y las tablas de interfaz. No puede suprimirlas tablas de interfaz en la interfaz de usuario o suprimiendo la estructura deobjeto correspondiente. Un administrador debe gestionar el archivado de datos enlas tablas de interfaz y puede eliminar la tabla, si es necesario.

Formato de las tablas de interfazUna tabla de interfaz tiene el mismo formato que la estructura de objetocorrespondiente, que incluye las columnas persistente y no persistente, y excluyelas columnas excluidas de la estructura de objeto.

La tabla de interfaz incluye columnas adicionales que identifican la secuencia en laescribe el sistema de envío y en la que el sistema de recepción procesa los registrosen las distintas tablas de interfaz.

Columnas clave

Si la tabla de interfaz representa una estructura de objeto jerárquica con relacionesde objetos de nivel superior e inferior, la tabla no incluye ninguna parte de lascolumnas de clave de objeto de nivel inferior que están incluidas en las columnasde clave de objeto de nivel superior. Por ejemplo, PERSONID es una columna declave en los registros PERSON, PHONE, EMAIL y SMS. La columna PERSONIDsólo aparece en el nivel superior (PERSON) en la tabla de interfazMXPERSON_IFACE.

Columnas y alias duplicados

La representación XML de una estructura de objeto jerárquica contiene nombres decolumnas duplicados, pero no la representación de tabla de interfaz y archivo sinformato. Si una estructura de objeto tiene nombres de columnas duplicados que noson de clave en un objeto de nivel superior y un objeto de nivel inferior, seproduce un error de nombre de columna duplicado cuando se genera un registrode interfaz de tabla o de archivo sin formato.

Para resolver este problema, cambie el nombre de alias de uno de los nombres decolumna duplicados. Cada columna de base de datos del sistema puede tener unnombre alternativo de alias. Cuando existe un alias, el sistema utiliza el aliascuando se generan las tablas de interfaz y los archivos sin formato. Cambie el aliaspara eliminar el error de nombre de columna duplicado.

La mayoría de columnas no tienen un alias, pero algunas columnas tienen aliasque admiten canales de publicación o servicios empresariales predefinidos.

Una columna dentro de una estructura de objeto puede tener un solo alias. Sivarios canales de publicación y servicios empresariales utilizan el objeto, el cambiode un alias afecta a cada tabla de interfaz asociada con la estructura de objeto.

Las columnas de las estructuras de objeto predefinidas tienen alias asignados porel sistema. Compruebe si hay duplicados cuando cree la estructura de objetojerárquica o cuando agregue un objeto a una estructura de objeto predefinida. Laventana Agregar/modificar alias muestra los campos y los alias de los objetos en

Integración de datos con aplicaciones externas 331

Page 338: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

una estructura de objeto seleccionada, e identifica los nombres de alias duplicadoscon una marca en la columna duplicada. Si existe un alias duplicado, sobrescribasu valor en la columna ALIASNAME.

Columnas restringidas

El campo HASLD es una columna del sistema interna que se excluye de todas lasestructuras de objetos. No incluya esta columna en ninguna estructura de objetoque esté asociada con una tabla de interfaz. El campo LANGCODE también seexcluye de las estructuras de objetos predefinidas.

Columnas de proceso de integración

La tabla siguiente muestra las columnas que se utilizan en la secuenciación, larecuperación y el proceso de la tabla de interfaz. Algunas columnas están en lastablas de cola de interfaz, las tablas de interfaz, o en ambas.

Tabla 44. Columnas de proceso de integración

Nombre de columna

Tabla decola deinterfaz

Tabla deinterfaz Descripción

IFACENAME Sí No La columna IFACENAME contiene el nombre del servicioempresarial o el canal de publicación que se utiliza en unatransacción. La columna se rellena en las transacciones salientes.Para las transacciones entrantes, el sistema externo debe rellenar lacolumna con el nombre del servicio empresarial o el canal depublicación correspondiente a la fila que se inserta en una tabla deinterfaz.

TRANSID Sí Sí La columna TRANSID en una tabla de cola de interfaz es unnúmero secuencial que identifica de forma exclusiva unatransacción de integración. El TRANSID y el nombre de la tabla deinterfaz identifican una transacción exclusiva. La tabla de cola deinterfaz puede contener un registro con un valor TRANSID. Latabla de interfaz correspondiente puede tener uno o variosregistros con TRANSID, dependiendo del número de registros quese graben en la tabla de interfaz como parte del servicioempresarial o el canal de publicación.

Si una transacción graba en varias tablas de interfaz, la tabla decola de interfaz contiene un registro aparte con un valor deTRANSID exclusivo para cada tabla de interfaz.

Cada tabla de cola de interfaz mantiene su propio contador deTRANSID. El valor de TRANSID saliente se inicializa cuando segeneran los registros de la tabla de cola de interfaz. Debe crear ymantener los contadores de TRANSID que rellenan las tablas decola entrantes y los registros de tabla de interfaz.

Si los sistemas externos no gestionan correctamente los contadoresde TRANSID entrantes, no se garantiza el proceso secuencial.Asegúrese de que los valores de TRANSID que genera el sistemano dupliquen el valor de TRANSID generado. Se producen erroressi existen valores de TRANSID duplicados y cuando procesa lamisma estructura de objeto en la dirección entrante y salienteutilizando una única tabla de interfaz.

Cada punto final tiene su propio conjunto de tablas de cola deinterfaz y su propio contador de TRANSID saliente.

332 Integración de datos con aplicaciones externas

Page 339: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 44. Columnas de proceso de integración (continuación)

Nombre de columna

Tabla decola deinterfaz

Tabla deinterfaz Descripción

TRANSSEQ No Sí Cuando varios registros de una tabla de interfaz comparten elmismo valor de TRANSID, la columna TRANSSEQ proporciona unnúmero de secuencia secundario que indica la secuencia en la quese deben procesar los registros.

EXTSYSNAME Sí No La columna EXTSYSNAME en las tablas de cola de interfaz puedecontener datos entrantes o salientes. Para las transaccionesentrantes, la columna contiene el nombre de un sistema externoválido y habilitado que se define en la infraestructura deintegración. Para las transacciones salientes, la columna contiene elnombre del sistema externo que es el destino de la transacción.

ACTION Sí No La columna ACTION contiene la acción que se realiza en elsistema externo (saliente) o en la infraestructura de integración(entrante). Pueden utilizarse las siguientes acciones:

v Add: inserta los datos que se proporcionan en el mensaje.

v Delete: suprime los datos de nivel superior y los datos de nivelinferior relacionados de la base de datos.

v Change: actualiza el contenido de los datos de nivel superior einferior del mensaje, pero no suprime los datos de nivel inferiorexistentes que no se especifican de forma explícita en el mensaje.

v Replace: sustituye los registros existentes por el contenido delmensaje y suprime los datos de nivel inferior existentes que noestán referenciados en el mensaje.

v AddChange: si el registro primario no existe, se procesa comouna acción add; de lo contrario, se procesa como una acciónchange.

v Null: si el registro primario no existe, se procesa como unaacción add; de lo contrario, se procesa como una acción replace.

IMPORTMESSAGE Sí(utilizadosólo paraentrante)

No La columna IMPORTMESSAGE mantiene los mensajes de errorque se han producido al mover la fila de la tabla de interfaz a lacola entrante.

TRANSLANGUAGE Sí No la columna TRANSLANGUAGE identifica el idioma de latransacción. Para una transacción saliente, este valor indica elidioma del usuario que ha iniciado la transacción. Para unatransacción entrante, este valor indica el idioma de la transacción.Los atributos que admiten un entorno de varios idiomas se esperaque estarán en el idioma definido por el valor deTRANSLANGUAGE.

MESSAGEID Sí(utilizadosólo parasaliente)

No La columna MESSAGEID es un identificador exclusivo que asignael sistema a cada transacción saliente.

IFACETBNAME Sí(utilizadosólo parasaliente)

No La columna IFACETBNAME es el nombre de la tabla de interfazcorrespondiente a la columna IFACENAME. Esta columna sólo seaplica a las transacciones salientes.

Integración de datos con aplicaciones externas 333

Page 340: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Columnas de descripción detallada en una Oracle Database

Las columnas de descripción detallada se almacenan en una columna CLOB(Objeto de caracteres grande) en una Oracle Database. Las tablas de interfazcontienen dos versiones de cada columna CLOB, una con un tipo de datos CLOB yotra con un tipo de datos ALN con una longitud de caracteres de 4000. En elsiguiente ejemplo, el nombre de la columna CLOB es el alias de columna. Elnombre de la columna alfanumérica es el alias de columna con el sufijo 2.

Tabla 45. Columnas de descripción detallada en una Oracle Database

Tipo de datos Nombre de la columna de descripción

CLOB PERSON_DESCRIPTION_LD

ALN PERSON_DESCRIPTION_LD2

El sistema rellena ambas columnas en las transacciones salientes. Para lastransacciones entrantes, la infraestructura de integración utiliza el valor de lacolumna ALN si no es nulo; de lo contrario, utiliza el valor de la columna CLOB.

Sondeo de tablas de interfazUna tarea cron predefinida sondea la tabla de colas de interfaz y utiliza los valoresde IFACENAME, EXTSYSNAME y TRANSID para colocar los registroscorrespondientes en la cola JMS entrante apropiada para su procesamiento. Elproceso de sondeo de la interfaz comprueba que los nombres del sistema externo yel servicio empresarial sean válidos y estén habilitados.

Debe configurar la tarea cron para iniciar el sondeo de tablas de interfaz. Tambiénpuede realizar tareas adicionales para mejorar el rendimiento durante el sondeo dela interfaz.

Tarea cron de sondeo de la tabla de interfazLa tarea cron IFACETABLECONSUMER es una tarea cron predefinida que sondeala tabla de cola de interfaz de entrada en busca de nuevos registros para procesar.

El proceso de sondeo de la tabla de interfaz comprueba que los nombres delsistema externo y del servicio empresarial sean válidos y estén habilitadosactualmente. Si no es así, el registro se marca como en error y permanece en latabla de interfaz.

Si inhabilita el sondeo de la tabla de interfaz, los nuevos registros permanecen enlas tablas de interfaz. Los mensajes enviados a la cola JMS de entrada se procesan.

Debe configurar un mecanismo para recuperar transacciones de salida desde lastablas de interfaz. Puede utilizar un programa de sondeo, como hace el sistemapara transacciones de entrada, desencadenantes o cualquier otro mecanismo.

La tarea cron tiene los parámetros siguientes que puede configurar. Todos losparámetros son opcionales.

Tabla 46. Parámetros de tarea cron de sondeo de tabla de interfaz

Parámetro Descripción

EXITCLASS Clase de salida Java que permite lamanipulación de los datos antes degrabarlos en una cola de entrada.

334 Integración de datos con aplicaciones externas

Page 341: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 46. Parámetros de tarea cron de sondeo de tabla de interfaz (continuación)

Parámetro Descripción

ENDPOINT Punto final asociado a la tabla de interfaz. Elvalor predeterminado es el valor de puntofinal predefinido que apunta a la base dedatos local.

ENTERPRISESERVICE Servicio empresarial que se ha de sondear.El valor predeterminado (valor nulo) estodos los servicios empresariales. Siespecifica un valor para este parámetro,también debe especificar un valor para elparámetro EXTSYSNAME. Los valoreslimitan la hebra de sondeo a un servicioempresarial específico, y no en sucomportamiento predeterminado que sondeatodos los servicios empresariales.

TARGETENABLED Asegúrese de que el valor esté en el valorpredeterminado de 0 (false). Lafuncionalidad de este distintivo esreemplazada por la funcionalidad dedonotrun. Utilice el parámetro donotrun enla infraestructura de la tarea cron paracontrolar en qué servidores se ejecuta latarea cron.

EXTSYSNAME Sistema externo que se ha de sondear.

QUEUETABLE Tabla de cola de servicios empresariales. Elvalor predeterminado esMXIN_INTER_TRANS.

Sondeo de tablas de interfaz avanzadoPuede realizar la configuración avanzada del proceso de sondeo de tablas deinterfaz para mejorar su rendimiento al leer datos de tablas de interfaz.

Si envía mensajes entrantes por la cola JMS continua y no necesita que semantengan mensajes en una secuencia "primero en entrar, primero en salir", puedemejorar el rendimiento del sondeo de las tablas de interfaz.

Varias tareas cron

El proceso de sondeo de tablas de interfaz utiliza una sola tarea cron para leertodos los mensajes de todas las tablas de interfaz para todos los sistemas externosque graban en la tabla. Para mejorar el rendimiento, puede configurar variasinstancias de la tarea cron IFACETABLECONSUMER con valores de propiedaddiferentes. El sondeo multihebra resulta útil en una configuración en clúster,porque las hebras diferentes se pueden ejecutar en servidores diferentes,equilibrando de este modo la carga.

Para designar una instancia de la tarea cron para que se ejecute en un servidor deaplicaciones específico, en la aplicación Configuración de tarea cron, establezca lapropiedad TARGETENABLED en 1 y, en el servidor de aplicaciones, establezca-DIFACETBCONSUMER.instance1=1. Al implementar varias tareas cron, también debeimplementar selectores mutuamente excluyentes para evitar procesar un mensajemás de una vez.

Integración de datos con aplicaciones externas 335

Page 342: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Para definir selectores, asigne valores a los parámetros EXTSYSNAME yENTERPRISESERVICE en la aplicación Configuración de tarea cron. Puede, porejemplo, establecer EXTSYSNAME=EXTSYSNAME1 yENTERPRISESERVER=MXPERSONInterface. Utilice un delimitador de barravertical para agregar varias tablas, como por ejemplo SetENTERPRISESERVICE=MXPERSONInterface|MXPHONEInterface.

Si configura varias instancias de una tarea cron, los selectores deben sermutuamente exclusivos, de modo que los mensajes no se procesen varias veces.Los selectores deben recuperar todas las transacciones de servicio empresarial queutilice, de modo que no quede ningún mensaje sin procesar.

Varias colas

Puede mejorar el rendimiento configurando varias tablas de cola de interfaz. Porejemplo, puede grabar cada interfaz en una tabla de cola distinta y definir tareascron distintas para procesar las tablas de cola independientemente las unas de lasotras. También puede configurar tablas de cola distintas para cada sistema externoy, dentro de cada tabla de cola, definir selectores para cada interfaz. Según lacomplejidad de la integración, puede utilizar varias tablas de cola en lugar devarios selectores. Para configurar varias tablas de cola, cree las tablas de cola en lamisma base de datos que las tablas de interfaz e incluya todas las columnas queestán en la tabla de cola MXIN_INTER_TRANS. Debe diseñar el sistema externopara grabar en las tablas de cola apropiadas. Asegúrese de que el sistema externono inserte un mensaje de tabla de interfaz en más de una tabla de cola de modoque el mensaje no se procese varias veces.

Proceso de tablas de interfaz en un sistema externoPara que un sistema externo pueda utilizar tablas de interfaz, debe crear tablas deinterfaz, definir procedimientos de copia de seguridad para restaurar las tablas deinterfaz y configurar el archivado de las tablas de interfaz.

Habilitación del proceso de entradaPara configurar el proceso de entrada de datos de tabla de interfaz de un sistemaexterno, debe crear un contador TRANSID y crear registros para la tabla deinterfaz y la cola.

Antes de empezar

Para utilizar las tablas de interfaz, debe crear las tablas y configurar la tarea cronIFACETABLECONSUMER.

Procedimiento1. Cree e inicialice el contador TRANSID saliente.2. Cree registros para cada tabla de interfaz en la cual una transacción entrante

escriba, llenando cada registro con la información siguiente:a. Los datos de transacciónb. El valor de TRANSID incrementadoc. Si existen varios registros para la misma tabla de interfaz, el valor de

TRANSSEQ incrementado3. Cree un registro de cola MXIN_INTER_TRANS con la información siguiente:

a. El mismo valor de TRANSID contenido en el registro de la tabla de interfazb. El nombre del servicio empresarial que corresponde a la tabla de interfaz,

en la columna IFACENAME

336 Integración de datos con aplicaciones externas

Page 343: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

c. Opcional: El valor de ACTIONd. El identificador del sistema externo, en la columna EXTSYSNAME

4. Realice una sola confirmación, para confirmar todos los registros para unatransacción de una sola vez.

Habilitación del proceso de salidaPara configurar el proceso saliente, debe configurar un proceso, como un programade sondeo o un desencadenante, para recuperar transacciones de la tabla de colaMXOUT_INTER_TRANS.

Antes de empezar

Para utilizar las tablas de interfaz, debe crear las tablas.

Procedimiento1. Configure un proceso para recuperar transacciones de tabla de interfaz

utilizando la tabla de cola MXOUT_INTER_TRANS. Puede utilizar unprograma de sondeo, un desencadenante o cualquier otro mecanismo.

2. Para que el programa de sondeo procese transacciones secuencialmente,configúrelo para leer los registros en la tabla de cola MXOUT_INTER_TRANSen la secuencia de TRANSID.

3. Habilite cada registro de la tabla de cola MXOUT_INTER_TRANS:a. Acceda a la tabla de interfaz que acaba de identificar y recupere el primer

registro en el que el valor de TRANSID coincida con el valor de TRANSIDde registro de cola MXOUT_INTER_TRANS actual. Si la tabla de interfazcontiene varios registros con el mismo valor de TRANSID, recupérelos yprocéselos en la secuencia de TRANSSEQ.

b. Procese los datos según el valor en la columna ACTION de la tabla de colade interfaz.

4. Confirme todos los registros para una sola transacción de base de datos.5. Suprima el registro actual de la tabla de cola MXOUT_INTER_TRANS.

Qué hacer a continuación

Implemente la gestión de errores, según los requisitos de su sistema externo.

Módulos de integraciónUn módulo de integración proporciona un mecanismo para que un producto degestión de procesos invoque un producto de gestión de operaciones externo. Puedeconfigurar un módulo de integración para automatizar operaciones de gestiónlógicas, como el despliegue de software, utilizando un producto de gestión deoperaciones.

Un producto de gestión de procesos puede invocar un módulo de integración deuna aplicación, un proceso de flujo de trabajo o un proceso de escalabilidad. Elmódulo de integración invoca luego un producto de gestión de operaciones. Elproducto de gestión de operaciones automatiza un proceso de gestión de servicios,como el despliegue de software. La implementación devuelve los resultados alproducto de gestión de procesos.

Si los módulos predefinidos se proporcionan con el producto de gestión deoperaciones, utilice el instalador de la solución de procesos para cargarlos en la

Integración de datos con aplicaciones externas 337

Page 344: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

infraestructura de integración. Si está familiarizado con la interfaz de programaciónpara el producto de gestión de operaciones, puede crear módulos de integracióncuando no existan.

Componentes de módulo de integraciónUn módulo de integración consta de componentes de infraestructura deintegración definidos. Puede configurar el módulo de integración para que seimplemente como una clase Java o como un canal de invocación.

Cuando se instala un módulo de integración predefinido, se proporcionan losartefactos del módulo de integración con la clase Java y los archivos XSL. Unmódulo de integración también proporciona definiciones de operaciones de gestiónlógica.

Definiciones de módulos de integraciónAl instalar un módulo de integración, las opciones que seleccione se utilizarán paraformar las definiciones del módulo.

La definición del módulo de integración incluye la información siguiente:v El nombre, la versión y la descripción de la integración.v El producto de gestión de operaciones y su versión.v El manejador que identifica el protocolo que el módulo de integración utiliza

para invocar un producto de gestión de operaciones.v La opción de implementación del módulo de integración, ya sea una clase Java o

un canal de invocación.

Los componentes siguientes están incluidos en la definición del módulo deintegración:v Las operaciones de gestión lógicas que el módulo de integración soporta.v Las propiedades del módulo de integración exclusivas del módulo de

integración. Utilice las propiedades para configurar el comportamiento delmódulo de integración.

Productos de gestión operativosUn producto de gestión operativo automatiza los procesos del sistema como, porejemplo, el despliegue de software. Los servicios del producto de gestión operativose ejecutan en activos como, por ejemplo, en servidores. Los activos se denominanartículos de configuración.

En un entorno de producción, pueden existir varias instancias de productos degestión operativos. Más de un producto de gestión operativo puede gestionar unartículo de configuración individual. Cada producto de gestión operativo tiene supropio identificador exclusivo, un token de origen, para cada artículo deconfiguración.

La base de datos incluye un repositorio de información de artículos deconfiguración y productos de gestión operativos. Esta información incluye lasrelaciones entre los productos de gestión operativos y los artículos deconfiguración, y los tokens de origen que controlan la integración entre losproductos de gestión de procesos y los productos producto de gestión operativos.

Operaciones de gestión lógicaLas operaciones de gestión lógica identifican las acciones que admiten los módulosde integración como, por ejemplo, Obtener estado y Desplegar software. Una

338 Integración de datos con aplicaciones externas

Page 345: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

operación de gestión lógica está formada por un origen de datos, un destino y losatributos de campo de objeto específicos que el origen y el destino utilizan durantela invocación de un proceso.

Las operaciones de gestión lógica actúan como interfaces entre el producto degestión de procesos y el módulo de integración. Puede diseñar y desarrollarmódulos de integración y productos de gestión de procesos de formaindependiente. Puede instalar definiciones de operaciones de gestión lógica con unproducto y también puede crear operaciones de gestión lógica en la aplicaciónOperaciones de gestión lógica.

La definición de una operación de gestión lógica contiene las siguientespropiedades:

Propiedad Descripción

Nombre El nombre de la acción, por ejemplo,Obtener estado o Desplegar software.

Espacio de nombres Un calificador exclusivo, por ejemplo,com.ibm.tivoli.deployment.

Patrón de invocación v Síncrono: el producto de gestión deprocesos emite una solicitud y el módulode integración devuelve los resultados dela operación inmediatamente.

v Una vía asíncrona: el producto de gestiónde procesos emite una solicitud y no sedevuelve ninguna respuesta.

v Respuesta diferida asíncrona: el productode gestión de procesos emite una solicitudy un token identifica la instancia de lasolicitud. El producto de gestión deprocesos pasa el token como entrada aotra operación de gestión lógica que, acontinuación, obtiene el estado de lasolicitud original.

v Devolución de llamada asíncrona: elproducto de gestión de procesos emiteuna solicitud y un token identifica lainstancia de la solicitud. El producto degestión operativo utiliza un token paraejecutar una devolución de llamada paraidentificar y notificar el estado de lasolicitud original. La devolución dellamada que proporciona el módulo deintegración inserta o actualiza un objetode negocio.

Objeto de negocio de origen El objeto de entrada de la operación degestión lógica.

Objeto de negocio de destino Resultado del objeto para la operación degestión lógica.

Atributos de objeto de negocio Los atributos específicos de los objetos quese necesitan para la entrada o la salida y sustipos de datos.

Los objetos de entrada y los atributos de los objetos de entrada identifican losdatos que el producto de gestión de procesos pasa al módulo de integración. Si la

Integración de datos con aplicaciones externas 339

Page 346: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

operación de gestión lógica está configurada con atributos de entrada y nocontiene un objeto de entrada, el producto de gestión de procesos puede pasarcualquier objeto de negocio que tenga los atributos de entrada necesarios. Si seespecifica un objeto de entrada, el producto de gestión de procesos debe pasar elobjeto de negocio al módulo de integración. El objeto de respuesta y los atributosidentifican los datos que devuelve el módulo de integración.

Requisitos previos para la implementaciónAntes de que se produzca cualquier implementación de módulo de integración,debe garantizar que la operación de gestión lógica esté asociada a uno o variosmódulos de integración. El módulo de integración debe tener luego una asociacióncon un producto de gestión de operaciones. Finalmente, las operaciones de gestiónlógica de cada producto de gestión de operaciones deben estar habilitadas.

Asociaciones de operaciones de gestión lógica

Normalmente, hay una comunicación de uno a uno entre una operación de gestiónlógica y una función del producto de gestión de operaciones. No obstante, una solainvocación de una operación de gestión lógica puede hacer que el módulo deintegración invoque un producto de gestión de operaciones varias veces.

Un módulo de integración que utiliza un canal de invocación puede ejecutaroperaciones de gestión lógica sólo en las circunstancias siguientes:v El objeto de origen definido en la operación de gestión lógica debe coincidir con

el objeto principal de la estructura de objeto de solicitud que defina en el canalde invocación.

v Si el canal de invocación no está configurado para procesar una respuesta, nopodrá asociar un objeto de respuesta con la operación de gestión lógica.

v El objeto de respuesta que defina en la operación de gestión lógica debecoincidir con el objeto principal de la estructura de objeto de respuesta quedefina en el canal de invocación. La coincidencia se debe producir cuandoconfigure el canal de invocación para procesar una respuesta.

Asociaciones de productos de gestión de operaciones

El módulo de integración puede dar soporte a varias operaciones de gestión lógicapara un producto de gestión de operaciones. Cuando ejecute el módulo deintegración, los valores de nombre y de espacio de nombres de la operación degestión lógica especifican la acción que se debe realizar.

Las asociaciones del producto de gestión de operaciones y el módulo deintegración se crean cuando los valores OMPPRODUCTNAME y OMPVERSION seagregan al módulo de integración. Si se utilizan varias versiones del producto degestión de operaciones con el módulo de integración, utilice un valor nulo paraOMPVERSION.

Habilitación de la gestión de operaciones lógica

Más de un módulo de integración puede implementar la misma operación degestión lógica en un producto de gestión de operaciones. Utilice el atributoISPRIMARY para identificar el módulo de integración preferido para la operaciónde gestión lógica en el producto de gestión de operaciones. Sólo un módulo deintegración puede tener el conjunto de valores ISPRIMARY establecido en truepara cualquier combinación específica de operación de gestión lógica - producto degestión de operaciones.

340 Integración de datos con aplicaciones externas

Page 347: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Propiedades de implementaciónLa infraestructura de integración puede procesar automáticamente datos deintegración cuando se implementa un módulo de integración. Puede personalizarla implementación si desea pasar por alto partes del proceso automático.

Parámetros del módulo de integraciónLa infraestructura de integración proporciona parámetros de entrada del módulode integración, incluidos los objetos de origen y respuesta y los conjuntos deobjetos y nombres de puntos finales. Estos parámetros se pasan cuando ejecuta unmódulo de integración como una clase Java o como un canal de invocación.

La tabla siguiente lista los parámetros de la interfaz psdi.iface.omp.IMConstants ysus nombres.

Nombre Descripción

IM El objeto ServiceInvoker de la instancia quepuede ser un módulo de integración Java oun canal de invocación.

IMNAME El nombre del módulo de integración.

IMVERSION La versión del módulo de integración.

LMONAME El nombre de la operación de gestión lógicaque se invoca.

LMONAMESPACE El espacio de nombres de la operación degestión lógica que se invoca.

OMPGUID El identificador exclusivo global (GUID) delproducto de gestión operativa que utiliza elmódulo de integración.

ENDPOINTNAME El nombre del punto final que utiliza elmódulo de integración para comunicarse conel producto de gestión operativa.

ENDPOINTPROP Una correlación de las propiedadesString.psdi.iface.mic.MaxEndPointPropInfo quealteran temporalmente las propiedades depunto final.

USERNAME El nombre de usuario que utiliza lainfraestructura de integración paracomunicarse con el punto final.

PASSWORD La contraseña para USERNAME.

Flujo de procesos de módulos de integraciónLos módulos de integración basados en Java llenan el objeto de respuesta o elconjunto de objeto de respuesta de operación de gestión lógica con los resultadosde la operación. Para los canales de invocación, puede especificar una correlaciónde la respuesta del producto de gestión de operaciones al objeto o conjunto deobjetos de respuesta. La infraestructura de integración copia los datos en el objetoo conjunto de objetos de respuesta.

Los módulos de integración deben volver rápidamente a sus interlocutores. Si elservicio externo es un servicio de ejecución larga, el módulo de integración debecrear otra hebra. La hebra nueva hace la llamada al producto de gestión deoperaciones, mientras que la hebra original vuelve al interlocutor.

Los módulos de integración realizan las tareas de procesamiento siguientes:

Integración de datos con aplicaciones externas 341

Page 348: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

1. Recuperar la entrada del objeto de origen o el conjunto de objetos de origen.2. Si procede, recuperar las propiedades de integración específicas del módulo.3. Realizar toda la lógica de proceso que la operación de gestión lógica requiere

antes de que llamar al producto de gestión de operaciones.4. Llamar al producto de gestión de operaciones.5. Si procede, manejar ala respuesta del producto de gestión de operaciones.6. Si procede, llenar el objeto de respuesta o el conjunto de objetos de respuesta

con los datos de retorno.7. Devolver información de procesamiento al interlocutor.

Puntos finalesUn módulo de integración que contiene un canal de invocación debe utilizar unpunto final. Un módulo de integración de clase Java puede utilizar un punto finalo utilizar un método personalizado para las invocaciones de servicios externos.

Los puntos finales contienen propiedades de URL y propiedades de manejador queespecifican el mecanismo de transporte que se ha de utilizar. Un punto final conun manejador de servicios web tiene propiedades diferentes a las de un punto finalcon un manejador de línea de mandatos. Los puntos finales del módulo deintegración y las propiedades de punto final se pueden sobrescribir durante laejecución cuando el producto de gestión de proceso pasa las propiedades de puntofinal como entrada al módulo de integración. Las propiedades USERNAME yPASSWORD que se devuelven desde el correlacionador de credenciales tambiénpueden alterar temporalmente las propiedades de punto final.

Los módulos de integración Java se pueden comunicar directamente con unproducto de gestión de operaciones o con un módulo de integración externo, sinutilizar un punto final. Si no utiliza un punto final, elimina la necesidad de que elmódulo de integración Java convierta los objetos de origen al formato XMLnecesario. Cuando excluye el uso del punto final, puede utilizar cualquierprotocolo de comunicaciones soportado por el producto de gestión de operaciones.No es necesario que los módulos de integración utilicen los puntos finales. Puedeconfigurar el módulo de integración para la comunicación con un producto degestión de operaciones utilizando las propiedades del módulo de integración.

La infraestructura de integración proporciona manejadores predefinidos que dansoporte a los protocolos de comunicaciones como HTTP y servicios web. Si no haydisponible un manejador predefinido para dar soporte al protocolo de servicios deproductos de gestión operativa, implemente un módulo de integración externo. Elmódulo de integración externo actúa como una interfaz para el servicio deproductos de gestión de operación que puede utilizar uno de los protocolos demanejador disponibles. Una solución alternativa es escribir un manejadorpersonalizado que admita el protocolo del servicio de productos de gestión deoperaciones.

Configure un punto final diferente para que cada producto de gestión deoperaciones establezca los protocolos individuales de cada producto. El manejadorque defina para el punto final debe coincidir con el manejador que configure parael módulo de integración.

Los módulos de integración basados en los canales de invocación requieren unpunto final. El nombre de punto fina es uno de los parámetros de lainfraestructura de integración que se pasa como entrada al canal de invocación. Elque llama al módulo de integración puede alterar temporalmente el nombre delpunto final.

342 Integración de datos con aplicaciones externas

Page 349: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Independientemente de si utiliza un manejador de punto final para comunicarsecon el producto de gestión de operaciones, el módulo de integración debe manejarescenarios que requieren múltiples invocaciones del producto de gestión deoperaciones para una sola ejecución de la operación de gestión lógica.

Canal de invocación o implementación de clase JavaPuede implementar un módulo de integración como una clase Java o como uncanal de invocación. Antes de desarrollar un módulo de integración, revise lasventajas y desventajas del uso de un canal de invocación o una clase Java.

Comparación entre los canales de invocación y las clases JavaAntes de que desarrollar un módulo de integración, considere las ventajas ydesventajas de utilizar una clase Java o un canal de invocación.

Ventajas y desventajas de utilizar un canal de invocación

La implementación de un módulo de integración utilizando un canal de invocacióntiene las ventajas siguientes:v Un canal de invocación resulta útil cuando se pasan datos complejos al punto

final. También resulta útil cuando se puede definir una correlación clara entre loscampos del objeto de origen y la entrada que el punto final requiere.

v Puede dar soporte a estructuras de objeto jerárquicas en transacciones deentrada y salida.

v La infraestructura de integración gestiona la conversión de objetos a XML y deXML a objetos.

v Se puede configurar para utilizar clases de procesamiento, salidas de usuario ycorrelaciones de XSL para transacciones entrantes y salientes.

v La infraestructura de integración realiza la invocación de puntos finales.v Se puede invocar directamente sin una asociación a un módulo de integración o

a una operación de gestión lógica.v Se puede implementar una integración simple utilizando una configuración del

sistema que no requiere que reinicie el servidor de aplicaciones.

La implementación de un módulo de integración utilizando un canal de invocacióntiene las desventajas siguientes:v Requiere más registro y configuración de artefactos del sistema, aunque la

invocación sea simple.v El módulo de integración no puede ser utilizado por varias aplicaciones con

objetos de negocios diferentes.v Requiere conocimiento adicional de la infraestructura de integración.v Sólo soporta una única invocación del punto final configurado. Requiere

codificación adicional para permitir varias invocaciones.v Requiere codificación adicional para dar soporte a un servicio de larga ejecución.

De forma predeterminada, el canal de invocación espera una respuesta del puntofinal.

Ventajas y desventajas de utilizar una clase Java

La implementación de un módulo de integración utilizando una clase Java tiene lasventajas siguientes:v Requiere menos registro y configuración de artefactos del sistema.

Integración de datos con aplicaciones externas 343

Page 350: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

v La pueden utilizar aplicaciones diferentes al utilizar objetos de negociosdiferentes.

v Se puede diseñar para realizar varias invocaciones externas.v Puede utilizar protocolos de comunicación diferentes para operaciones de

gestión lógica y productos de gestión de operaciones diferentes.v Soporta el uso de otra hebra para acomodar un servicio de larga ejecución.v Puede implementar varias operaciones de gestión lógica, incluso cuando la

configuración de entrada y la configuración de salida sean diferentes.v Es menos probable que requiera el uso de un módulo de integración externo.

La implementación de un módulo de integración utilizando una clase Java tiene lasdesventajas siguientes:v Requiere la elaboración de más código Java.v No soporta una estructura de objeto con una relación de nivel superior y nivel

inferior como entrada o salida. Sólo se puede utilizar el objeto de nivel superiorcomo entrada y el código Java debe encontrar la relación de nivel inferior.

v Las conversiones de objetos a XML y de XML a objetos deben estar codificadascuando se utiliza un manejador de punto final.

v La personalización debe estar incorporada en el diseño del módulo deintegración. La personalización no se puede agregar posteriormente sin volver adesplegar el código.

v El uso de cualquier componente de infraestructura de integración, como unmanejador de punto final, debe estar codificado en la clase Java.

Implementación de canales de invocaciónLos canales de invocación utilizan estructuras de objeto en sus implementacionespara expandir el contenido de datos del mensaje. La estructura de objeto utiliza elobjeto que el producto de gestión de proceso pasa como objeto de origen paracrear un registro entero que puede consistir de varios objetos relacionados.

Los objetos identificados en las estructuras de objeto se utilizan en la creación demensajes XML. Cuando se utiliza un canal de invocación, los datos deben serconformes a los esquemas XML especificados para las estructuras de objetoasociadas, y se debe definir un punto final para el canal de invocación.

Los canales de invocación soportan clases de salida de procesamiento entrantes ysalientes opcionales. La infraestructura de integración utiliza clases de salida deprocesamiento para implementar lógica adicional. Las clases de salida deprocesamiento entrantes y salientes deben ser instancias de la clase Javapsdi.iface.migexits.ExternalExit.

Para las transacciones salientes, la infraestructura de integración llama al métodosiguiente:public StructureData setDataOut(StructureData irData)

Para las transacciones entrantes, la infraestructura de integración llama al métodosiguiente:public StructureData setDataIn(StructureData erData)

Cuando sustituya uno de estos métodos, puede realizar el procesamiento demódulos de integración adicional. Las propiedades que se pasan al canal deinvocación están disponibles para las clases de procesamiento.

344 Integración de datos con aplicaciones externas

Page 351: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

EL código de clase de proceso saliente siguiente muestra cómo recuperar elidentificador exclusivo global del producto de gestión de operaciones al ejecutar uncanal de invocación:import psdi.server.MXServer;import psdi.iface.omp.IMConstants;import psdi.iface.omp.OmpServiceRemote;import psdi.iface.mic.*;import psdi.iface.migexits.*;...public class OutboundCIExit extends ExternalExit implements IMConstants{public StructureData setDataOut(StructureData irData)throws MXException, RemoteException{IntegrationContext cntx = IntegrationContext.getCurrentContext();String ompGUID = cntx.getStringProperty(OMPGUID);...

}}

Entre las funciones adicionales del canal de invocación figuran las clases Java desalida de usuario y una capa de correlación de XSL. Puede configurar la capa decorrelación de XSL para realizar la correlación de XML o la transformación dedatos.

Si la estructura de objeto que necesita para su invocación de módulo deintegración no existe, puede crear una estructura de objeto en la aplicaciónEstructuras de objetos. También puede utilizar XML con la estructura de objetoMXINTOBJECT para crear estructuras de objeto como parte del proceso deinstalación.

Implementación de clases JavaSe pueden implementar módulos de integración para utilizar archivos de claseJava. La utilización de un archivo de clase Java elimina la necesidad de registro yconfiguración de componentes de integración. Además, todas las implementacionesde módulo de integración subyacentes son transparentes para el producto degestión de procesos.

Los módulos de integración de clase Java deben implementar la interfazpsdi.iface.mic.ServiceInvoker. La interfaz Java del invocador de servicios seincluye en el archivo businessobjects.jar. Incluya la clase Java del módulo deintegración en la ruta de clase del sistema en el tiempo de ejecución.

La interfaz Java del invocador de servicios tiene variaciones de la firma de métodosiguiente:

public byte[] invoke(Map String,Object metaData, MboRemote sourceMbo,MboRemote targetMbo, String endPointName) throws MXException,RemoteException;

v metaData es una correlación de las propiedades de nombre y valor que incluye:– El nombre y la versión del módulo de integración.– El nombre y el espacio de nombres de la operación de gestión lógica.– El identificador exclusivo global del producto de gestión de operaciones.

Integración de datos con aplicaciones externas 345

Page 352: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

– El nombre del punto final y cualquier propiedad de punto final que sesobrescriba.

v sourceMbo es el objeto de origen que definió en la operación de gestión lógica.v targetMbo es el objeto de respuesta que definió en la operación de gestión lógica.v endPointName es el nombre del punto final que se utiliza para la comunicación

con el producto de gestión de operaciones.

Si configura el módulo de integración para implementar varias operaciones degestión lógica, el módulo de integración debe determinar a qué operación degestión lógica se está llamando. En tiempo de ejecución, el módulo de integraciónrecupera las propiedades LMONAME y LMONAMESPACE de la correlación deentrada metaData:import psdi.iface.omp.IMConstants;...String lmoName = metaData.get(IMConstants.LMONAME);String lmoNamespace = metaData.get(IMConstants.LMONAMESPACE);

El módulo de integración puede recuperar datos de operación de gestión lógica delobjeto de origen. El código de ejemplo siguiente recupera valores de operación degestión lógica del objeto de origen:String guid = sourceMbo.getString("GUID");int packID = sourceMbo.getInt("PACKID");boolean hasSubs = sourceMbo.getBoolean("HASSUBS");

En el ejemplo, la operación de gestión lógica tiene un atributo de entradaalfanumérico denominado identificador exclusivo global, un atributo enterodenominado PACKID y un atributo booleano denominado HASSUBS.

Los métodos de invocador de servicios pueden tomar un conjunto de valoresMboSetRemote como entrada de origen en lugar de un solo valor MboRemote. Enalgunos casos, el módulo de integración pasa todos los objetos del conjunto deobjetos al producto de gestión de operaciones. En otros casos, el módulo deintegración sólo pasa el primer objeto del conjunto. No hay ninguna regla definidaque se aplique al comportamiento del módulo de integración, pero se debe definirclaramente el comportamiento previsto en la descripción de la operación de gestiónlógica.

Procesamiento de módulos de integraciónLos productos de gestión de procesos utilizan una acción del sistema para iniciarun módulo de integración. La acción se puede asociar con una escalabilidad o unflujo de trabajo o se puede iniciar desde un menú o un botón. El producto degestión de procesos proporciona una clase de acción que invoca el módulo deintegración y procesa la respuesta que el módulo de integración devuelve.

Identificación de los componentes de integraciónLa clase de acción de iniciación identifica los componentes necesarios para laintegración, incluida la operación de gestión lógica, el producto de gestiónoperaciones y el módulo de integración.

La operación de gestión lógica ejecuta un proceso, por ejemplo, el despliegue desoftware, en un artículo de configuración utilizando un producto de gestión deoperaciones. El producto de gestión de operaciones proporciona la entradanecesaria al módulo de integración, en función de los objetos de negocio deentrada y los atributos definidos en la operación de gestión lógica.

346 Integración de datos con aplicaciones externas

Page 353: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

La clase de acción Java identifica un producto de gestión operativa que ejecuta laoperación de gestión lógica en el artículo de configuración seleccionado. Cuandoinstala los artículos de configuración y los productos de gestión operativa, tambiénse instalan las relaciones de componentes.

Un registro de módulo de integración identifica qué operaciones de gestión lógicase admiten en un producto de gestión operativa. Cuando se registran módulos deintegración, artículos de configuración y productos de gestión de operaciones, laclase Java del producto de gestión de operaciones realiza una búsqueda. La claseJava determina qué módulos de integración invoca basándose en los artículos deconfiguración que utiliza.

La infraestructura de integración incluye un servicio que proporciona los siguientesmétodos de programa de utilidad para ayudar a la clase con las búsquedas demódulo de integración.

Método de programa de utilidad Función

psdi.iface.app.omp.OmpSetRemote getOMPListForIM(String imName, String imVersion)

Recupera una lista de productos de gestión deoperaciones asociados con el módulo de integración.

psdi.iface.app.im.MaxIMSetRemote getIMListForLMO(String lmoName, String lmoNamespace)

Recupera una lista de módulos de integración queimplementa la operación de gestión lógica especificada.

psdi.iface.app.im.MaxIMSetRemotegetIMListForLMOWithOMP (String lmoName, StringlmoNamespace)

Recupera una lista de módulos de integración queimplementa la operación de gestión lógica especificadaen cualquier producto de gestión de operaciones.

psdi.iface.app.im.MaxIMSetRemote getIMListForOMP(String ompGuid)

Recupera una lista de módulos de integración queimplementa al menos una operación de gestión lógica enel producto de gestión de operaciones.

Collection getIMListForOMPAndLMO (String ompGUID,String lmoName, String lmoNamespace)

Recupera la lista de módulos de integración queimplementa la operación de gestión lógica en el productode gestión de operaciones especificado.

Devuelve una colección de objetospsdi.iface.omp.OmpImLmoRelInfo.

Collection getIMListForOMPAndLMO (String ompHostname,String ompProductname, String ompManufacturer,String lmoName, String lmoNamespace)

Recupera la lista de módulos de integración queimplementa la operación de gestión lógica en losproductos de gestión de operaciones especificados.

Devuelve una colección de objetospsdi.iface.omp.OmpImLmoRelInfo.

psdi.iface.omp.OmpImLmoRelInfo getPreferredIM(String ompGUID, String lmoName, StringlmoNamespace)

Recupera el módulo de integración preferido queimplementa la operación de gestión lógica en el productode gestión de operaciones especificado.

psdi.iface.omp.OmpImLmoRelInfo getPreferredIM(String ompHostname, String ompProductname, StringompManufacturer, String lmoName, StringlmoNamespace)

Recupera el módulo de integración preferido queimplementa la operación de gestión lógica en el productode gestión de operaciones especificado.

Invocación del módulo de integraciónLos módulos de integración se pueden implementar como clases Java o comocanales de invocación. Las instancias del módulo de integración se denominaninvocadores de servicios porque implementan la interfaz Javapsdi.iface.mic.ServiceInvoker.

Integración de datos con aplicaciones externas 347

Page 354: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

La interfaz del invocador de servicios oculta la implementación subyacente alinterlocutor. La invocación del módulo de integración por parte del interlocutor esigual, independientemente de la implementación subyacente.

Correlación de propiedades de invocador de servicios:

Los métodos del programa de utilidad de invocador de servicios devuelven unacorrelación de nombres y pares de valores.

La interfaz Java psdi.iface.omp.IMConstants define los nombres de laspropiedades que se devuelven en la correlación. La propiedad IMConstants.IMcontiene la instancia del módulo de integración que el producto de gestión deproceso invoca.

La propiedad IMConstants.ENDPOINTNAME contiene el nombre del punto finalasociado con el producto de gestión de operaciones, el módulo de integraciones yla relación de operaciones de gestión lógica. En la mayoría de casos, la propiedadde punto final es el valor que el producto de gestión de procesos pasa al módulode integración. No obstante, en casos poco habituales, la clase de acciónsobrescribe el punto final configurado.

Si hay un correlacionador de credenciales configurado, los métodos del programade utilidad del invocador de obtención servicios llaman al correlacionador decredenciales para recuperar el nombre de usuario y la contraseña utilizados para lacomunicación del punto final. Estas propiedades las devuelven los métodos deprograma de utilidad en una correlación identificada por la propiedadIMConstants.ENDPOINTPROPS. El interlocutor puede sobrescribir cualquier propiedadde punto final añadiéndola a esta correlación.

Antes de que la clase de acción llame al módulo de integración, debe llenar elobjeto de origen con los campos de entrada de la operación de gestión lógica. Laclase de acción pasa entonces los datos de objeto del objeto de origen al módulo deintegración con la correlación que devuelve el método de programa de utilidad deinvocador de obtención de servicios. La clase de acción proporciona el objeto derespuesta de operación de gestión lógico al módulo de integración cuando esnecesario.

El objeto de respuesta de operación de gestión lógica requiere atributos. La clasede acción debe garantizar que el objeto de respuesta tenga los atributos deoperación de gestión lógica. Los atributos pueden ser persistentes o no persistentes.El objeto de respuesta suele contener los datos del objeto de origen.

Métodos de invocación:

La infraestructura de integración proporciona algunos métodos de invocación queutiliza el interlocutor para invocar un módulo de invocación. Los métodos deinvocación utilizan propiedades para determinar qué datos de objetos se devuelvenal interlocutor. Las propiedades también determinan qué acción se realiza en losdatos devueltos y cómo se comunica la infraestructura de integración con elinterlocutor.

La interfaz de invocador de servicio tiene cuatro firmas de método de invocación: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)

348 Integración de datos con aplicaciones externas

Page 355: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

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)

La clase action pasa las siguientes propiedades cuando invoca uno de los métodosde invocación en el invocador de servicio para el que se ha creado una instancia.

Propiedad Descripción

metaData La correlación de propiedades que devuelveel método del programa de utilidad delinvocador de servicios.

Objeto de origen y conjunto de objetos El objeto con los atributos de entrada que sehan definido en la operación de gestiónlógica. Esta propiedad puede contener unvalor nulo.

Objeto de destino y conjunto de objetos El objeto y el conjunto de objetos quecontiene los datos devueltos. Esta propiedadpuede contener un valor nulo.

Acción Este parámetro indica si se actualizan losobjetos existentes en targetMboSet o si seagregan nuevos objetos.

Los posibles valores para la acción son:

v psdi.mbo.MboSetRemote.INSERTONLY

v psdi.mbo.MboSetRemote.UPDATEONLY

Nombre de punto final El nombre del punto final que utiliza elmódulo de integración para lacomunicación.

Método de servicio del producto de gestión de operaciones:

Utilice el método de servicio del producto de gestión de operaciones cuando laclase de acción tenga una relación con un artículo de configuración o cuando tengaun atributo de identificador exclusivo global (CIGUID) de artículo deconfiguración.

Cuando la clase de acción tiene un artículo de configuración autorizado, en lugarde un artículo de configuración real, puede utilizar el atributo de identificadorexclusivo global del artículo de configuración autorizado.

El método de servicio siguiente recupera una lista de los módulos de integraciónpreferidos (invocadores de servicios). Los módulos de integración implementan laoperación de gestión lógica especificada en los productos de gestión deoperaciones que gestionan el artículo de configuración real especificado.

public Collection Map getServiceInvokerListForCIAndLMO(String actCIGUID,String lmoName, String lmoNamespace, UserInfo userInfo)

Cada producto de gestión de operaciones que tiene una relación con el artículo deconfiguración real especificado devuelve el módulo de integración preferido parala operación de gestión lógica.

Integración de datos con aplicaciones externas 349

Page 356: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Métodos del programa de utilidad de invocación de servicios:

El programa de utilidad getServiceInvoker incluye métodos que recuperan unainstancia de un módulo de integración para una operación de gestión lógica y unproducto de gestión operativa.

La tabla siguiente lista los métodos del programa de utilidad que se proporcionancon el programa de utilidad getServiceInvoker.

Método de programa de utilidad Función

Map<String, Object> getServiceInvoker(psdi.iface.omp.OmpImLmoRelInfo ompImLmoReMInfo,psdi.security.UserInfo userInfo)

Recupera el invocador de servicios para el módulo deintegración especificado, la operación de gestión lógica yel producto de gestión operativa.

Map<String, Object> getServiceInvoker(psdi.iface.app.im.OmpImLmoRelRemoteompImLmoRelRemote, psdi.security.UserInfo userInfo)

Recupera el invocador de servicios para el módulo deintegración especificado, la operación de gestión lógica yel producto de gestión operativa.

Map<String, Object> getServiceInvoker (StringompGUID, String imName, String imVersion, StringlmoName, String lmoNamespace, psdi.security.UserInfouserInfo)

Recupera el invocador de servicios para el módulo deintegración especificado, la operación de gestión lógica yel producto de gestión operativa.

Map<String, Object> getServiceInvoker (StringompGUID, String lmoName, String lmoNamespace,psdi.security.UserInfo userInfo)

Recupera el invocador de servicios para el módulo deintegración preferido para el producto de gestiónoperativo especificado y la operación de gestión lógica.

Collection<Map> getServiceInvokerListForCIAndLMO(String actCIGUID, String lmoName, StringlmoNamespace, psdi.security.UserInfo userInfo)

Recupera una lista de invocadores de servicio para losmódulos de integración preferidos que implementan laoperación de gestión lógica especificada en los productosde gestión operativa.

Los productos de gestión operativa tienen una relacióncon el artículo de configuración.

Procesamiento de respuestas de módulos de integraciónSi una operación de gestión lógica tiene un objeto de respuesta, el módulo deintegración actualiza el objeto de respuesta con los resultados de su invocación. Laclase de acción determina si hay que guardar los resultados en la base de datos. Sila clase de acción no guarda los resultados, puede guardar los datos cuando vealos resultados de la respuesta en la interfaz de usuario.

Si el objeto de respuesta es el objeto principal de la aplicación o si el objetoactualizado se basa en una relación con el objeto principal de la aplicación, la clasede acción no guarda el objeto. En lugar de esto, la interfaz de usuario solicitaguardar el objeto. No obstante, si el objeto actualizado no guarda relación con elobjeto de aplicación principal, la clase de acción guarda y confirma los cambios.

Configuración de módulos de integraciónLos módulos de integración reciben solicitudes de datos de productos de gestiónde procesos y devuelven los datos de respuesta de productos de gestión deoperaciones.

Creación de módulos de integraciónPuede crear un módulo de integración para pasar datos entre aplicaciones internasy externas. Dependiendo de sus necesidades, puede implementar un módulo deintegración como un canal de invocación o como una clase Java. Tanto el canal de

350 Integración de datos con aplicaciones externas

Page 357: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

invocación como la clase Java tienen acceso a la base de datos y a todos los objetosde la memoria en el momento en que un producto de gestión de procesos invocaun módulo de integración.

Procedimiento1. En la aplicación Módulos de integración, pulse Nuevo módulo de integración.2. En los campos Nombre y Versión, indique una combinación exclusiva de

nombre y número de versión del módulo de integración. El campo de versióndebe empezar por V e ir seguido de un entero de 0 a 9, ambos incluidos. Elentero puede ir seguido de un separador decimal (.) y de hasta 17 enterosadicionales. Por ejemplo, V2.99. o V9.123456.

3. Opcional: Especifique valores en los campos siguientes:

Opción Descripción

Nombre de producto de gestión operativo El producto de gestión operativo queinvoca el módulo de integración. Si unmódulo de integración funciona con variosproductos, no debe especificar un nombrede producto.

Versión de producto de gestión operativo El valor de versión del producto queinvoca el módulo de integración. Si unmódulo de integración funciona con variasversiones de un producto de gestiónoperativo, no debe especificar un valor deversión.

Nombre del manejador El protocolo que utiliza el módulo deintegración para invocar el producto degestión operativo. Si el canal de invocacióntiene un punto final asociado, no puedeconfigurar un manejador para el módulode integración.

Nombre del canal de invocación El nombre del canal de invocación queejecuta el módulo de integración. Elmódulo de integración utiliza un canal deinvocación o una clase Java. Especifiquesólo uno de los dos.

Nombre de clase El nombre de la clase Java que ejecuta elmódulo de integración. El módulo deintegración utiliza un canal de invocacióno una clase Java. Especifique sólo uno delos dos.

4. Pulse Guardar módulo de integración.

Qué hacer a continuación

Puede asociar una operación de gestión lógica con un módulo de integración paradefinir las acciones que ejecutan los gestores de procesos. También puede asociarun producto de gestión operativo con un módulo de integración para definir lasaplicaciones externas que se pueden invocar desde un producto de gestión deprocesos.

Integración de datos con aplicaciones externas 351

Page 358: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Selección de operaciones de gestión lógica para módulos deintegraciónPuede utilizar el cuadro de diálogo Seleccionar operaciones para asociar una ovarias operaciones de gestión lógica a un registro de módulo de integración. Lasoperaciones de gestión lógica definen una acción que ejecuta un producto degestor de procesos desde una aplicación.

Antes de empezar

Debe asociar la operación de gestión lógica con un producto de gestión operativopreviamente para que el producto de gestión operativo pueda ejecutar unaoperación de gestión lógica. Los registros de operación de gestión lógica que asociacon un módulo de integración que utiliza un canal de invocación deben tener unvalor de nombre de objeto de origen. Este valor debe ser el mismo que el objeto deorigen superior registrado en el canal de invocación. Además, los registros deoperación de gestión lógica deben tener un valor de nombre de objeto de respuestaen el canal de invocación que procesa respuestas. Este valor debe ser el mismo queel objeto superior registrado en el canal de invocación. Puede definir la operaciónde gestión lógica y los valores de objeto de respuesta en la aplicación Operacionesde gestión lógica.

Procedimiento1. En la aplicación Módulos de integración, seleccione el módulo de integración

que desee asociar a las operaciones de gestión lógica.2. En la ficha Operaciones de gestión lógica, pulse Seleccionar operaciones.3. Seleccione las operaciones de gestión lógica que desee asociar al registro de

módulo de integración.4. Pulse Aceptar.5. Pulse Guardar módulo de integración.

Qué hacer a continuación

Puede asociar un producto de gestión de procesos con un módulo de integraciónpara definir las aplicaciones externas que puede invocar desde un producto degestión de procesos.

Selección de operaciones de gestión lógicas para productos de gestión deprocesos:

Puede utilizar el cuadro de diálogo Seleccionar operaciones para asociar una ovarias operaciones de gestión lógicas a un producto de gestión de procesos. Laasociación que realice al producto de gestión de procesos habilita la operación degestión lógica. La habilitación indica que la operación de gestión lógica está listapara el uso.

Antes de empezar

Una operación de gestión lógica se debe asociar con un módulo de integraciónpara que se pueda habilitar en un producto de gestión de procesos.

Procedimiento

1. En la aplicación Módulos de integración, seleccione el módulo de integraciónque desee asociar a las operaciones de gestión lógica.

352 Integración de datos con aplicaciones externas

Page 359: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

2. En la subficha Productos de gestión de operaciones seleccione el producto degestión de procesos que desee asociar a las operaciones de gestión lógica.

3. En la ventana de tabla Operaciones de gestión lógica para producto de gestiónde operaciones, pulse en Seleccionar operaciones.

4. Seleccione los productos de gestión lógica que desee habilitar para el productode gestión de procesos.

5. Pulse Aceptar.6. Pulse Guardar módulo de integración.

Asociación de una operación de gestión lógica con un módulode integraciónPuede asociar una operación de gestión lógica con un módulo de integración paradefinir las acciones que se realizan en un producto de gestión operativo. Losproductos de gestión de procesos como, por ejemplo, Cambiar o Desplegar, llamana un módulo que integración para ejecutar un producto de gestión operativo. Elproducto de gestión operativo ejecuta el producto de gestión lógica, como porejemplo el despliegue de software, y notifica al producto de gestión de procesosdel estado de la acción.

Antes de empezar

Debe asociar la operación de gestión lógica con un producto de gestión operativopreviamente para que el producto de gestión operativo pueda ejecutar unaoperación de gestión lógica. Los registros de operación de gestión lógica que asociacon un módulo de integración que utiliza un canal de invocación deben tener unvalor de nombre de objeto de origen. Este valor debe ser el mismo que el objeto deorigen superior registrado en el canal de invocación. Además, los registros deoperación de gestión lógica deben tener un valor de nombre de objeto de respuestaen el canal de invocación que procesa respuestas. Este valor debe ser el mismo queel objeto superior registrado en el canal de invocación. Puede definir la operaciónde gestión lógica y los valores de objeto de respuesta en la aplicación Operacionesde gestión lógica.

Acerca de esta tarea

El valor del patrón de invocación determina si la operación de gestión lógica es delarga duración. También determina cómo espera el producto de gestión deprocesos una respuesta del producto de gestión operativo.

Procedimiento1. En la aplicación Módulos de integración, seleccione el módulo de integración

que desee asociar con una operación de gestión lógica.2. En la subficha Operaciones de gestión lógica, pulse Fila nueva.3. Especifique valores en los campos siguientes:

Opción Descripción

Nombre de operación de gestión lógica Identifica las acciones que admiten losmódulos de integración y las acciones quesolicitan los productos de gestión deprocesos.

Espacio de nombres Identifica el dominio del nombre de laoperación de gestión lógica. Por ejemplo,com.ibm.mss.

Integración de datos con aplicaciones externas 353

Page 360: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

4. Pulse Guardar módulo de integración.

Qué hacer a continuación

Puede asociar un producto de gestión de procesos con un módulo de integraciónpara definir las aplicaciones externas que puede invocar desde un producto degestión de procesos.

Asociación de un producto de gestión de procesos con un módulo deintegración:

Puede asociar un producto de gestión de procesos con un módulo de integraciónpara definir las aplicaciones externas que puede invocar desde un producto degestión de procesos. Los productos de gestión de procesos, como Cambiar oDesplegar, llaman a un módulo de integración para ejecutar un producto degestión de procesos. A continuación, el producto de gestión de procesos ejecuta elproducto de gestión lógica, como el despliegue de software, y notifica al productode gestión de procesos el estado de la acción.

Antes de empezar

Antes de que un producto de gestión de procesos pueda llamar a un módulo deintegración para ejecutar una operación de gestión lógica en un producto degestión de procesos, configure los componentes siguientes:v Definir y configurar una operación de gestión lógicav Asociar el módulo de integración a la operación de gestión lógica y al producto

de gestión de procesosv Habilitar la operación de gestión lógica para el módulo de integración en el

producto de gestión de procesos

Acerca de esta tarea

Puede crear y configurar relaciones entre módulos de integración, productos degestión de procesos y operaciones de gestión lógica. También puede realizar lasacciones siguientes:v Asociar varios productos de gestión de procesos con un módulo de integraciónv Habilitar operaciones de gestión lógica en el producto de gestión de procesos

para el módulo de integraciónv Especificar un módulo de integración predeterminado para utilizarlo para una

operación de gestión lógica determinada en un producto de gestión de procesosv Configurar el punto final para una combinación del producto de gestión de

procesos y el módulo de integración cuando el canal de invocación no tienepuntos finales asociados

Procedimiento

1. En la aplicación Módulos de integración, seleccione el módulo de integraciónque desee asociar con un producto de gestión de procesos.

2. En la subficha Productos de gestión de operaciones, pulse Fila nueva.3. Especifique valores en los campos siguientes:

v Producto de gestión de operaciones

v Punto final

4. En la ventana de tabla Operaciones de gestión lógica, pulse en Fila nueva.

354 Integración de datos con aplicaciones externas

Page 361: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

5. Especifique un valor en el campo Nombre de gestión de operaciones lógicas.Se muestran valores predeterminados en los campos Espacio de nombres yDescripción.

6. Opcional: Seleccione la casilla de verificación Es primario para que el módulode integración se convierta en el predeterminado para la operación de gestiónlógica seleccionada. Seleccione la casilla de verificación Es primario al habilitarla operación de gestión lógica seleccionada o más de un registro de módulo deintegración.

7. Pulse Guardar módulo de integración.

Qué hacer a continuación

Puede asociar una operación de gestión lógica con un módulo de integración paradefinir las acciones que se llevan a cabo en un producto de gestión de procesos.

Configuración de operaciones de gestión lógicaPuede crear una operación de gestión lógica, para definir una acción para que laejecute un producto de gestión lógica desde la infraestructura de integración.También puede definir los atributos de campo de objeto específicos que laoperación de gestión lógica utiliza.

Creación de operaciones de gestión lógicaPuede definir el patrón de invocación en una operación de gestión lógica. El valordel patrón determina si la operación de gestión lógica es de larga ejecución y cómoespera el producto de gestión de procesos una respuesta del producto de gestiónoperativa.

Antes de empezar

Debe definir una relación de operación de gestión lógica para un producto degestión operativa y un módulo de integración antes de poder invocar ningúnproceso.

Procedimiento1. En la aplicación Aplicaciones de gestión lógica, pulse Operación de gestión

lógica nueva.2. En el campo Nombre, especifique un identificador de operación de gestión

lógica.3. Especifique valores en los campos siguientes:

Opción Descripción

Nombre de objeto de origen El objeto de entrada para la operación degestión lógica.

Patrón de invocación El patrón de una invocación de operaciónde gestión lógica.

Espacio de nombres El identificador secundario del registro dela operación de gestión lógica.

Nombre de objeto de respuesta Resultado del objeto para la operación degestión lógica.

4. Pulse Guardar operación de gestión lógica.

Integración de datos con aplicaciones externas 355

Page 362: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Adición de atributos a operaciones de gestión lógicaPuede agregar atributos a una operación de gestión lógica para identificar losatributos de campo de objeto específicos que utilizan el origen y destino de datosde la operación de gestión lógica. Puede definir las entradas de atributosindividuales para las invocaciones de operaciones de gestión lógica tanto deentrada como de salida.

Acerca de esta tarea

Los atributos de objeto de entrada identifican los datos que el producto de gestiónde procesos pasa al módulo de integración. Los atributos de objeto de salidaidentifican los datos que el módulo de integración devuelve. Sólo los atributosrespectivos de los objetos de origen y de respuesta seleccionados están disponiblespara las selecciones de campos. Si no ha definido un objeto de origen ni derespuesta, se pueden seleccionar todos los atributos del objeto.

Procedimiento1. En la aplicación Operaciones de gestión lógica, seleccione la operación de

gestión lógica a la que desee agregar un atributo.2. En la ventana Atributos para OGL, pulse Fila nueva.3. Especifique un valor en el campo Nombre.4. Opcional: Deseleccione la casilla de verificación Entrada para indicar que el

atributo es para la salida de una invocación de operación de gestión lógica.5. Opcional: Deseleccione la casilla de verificación Requerido para indicar que el

atributo del campo no es necesario en la invocación de la operación de gestiónlógica.

Función de Inicio contextualPuede utilizar la aplicación Inicio contextual para crear y modificar registros deentrada de ejecución que abren una aplicación externa en la misma sesión delnavegador o en una sesión diferente. Puede abrir aplicaciones independientementeo como parte de un escenario de integración de aplicaciones.

El registro de entrada de ejecución puede utilizar las opciones siguientes en elDiseñador de aplicaciones para abrir una aplicación externa:v Elemento de menú de acciónv Hipervínculosv Botones

La aplicación Inicio contextual se utiliza para crear y actualizar entradas deejecución. Una entrada de ejecución define un URL que abre una consola para unaaplicación externa. La entrada de ejecución puede pasar datos, que se conocencomo contexto, de la aplicación a la consola externa. Puede configurar un URL deconsola para cualquier aplicación con una consola basada en la web. Además,puede configurar URL de consola para consolas que utilicen Java™ Web Start. Nopuede utilizar una entrada de ejecución para abrir aplicaciones que no esténhabilitadas para la web. Puede configurar un punto de ejecución desde cualquieraplicación.

356 Integración de datos con aplicaciones externas

Page 363: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Preparación de la aplicación externaLa mayor parte de las aplicaciones externas tienen una consola basada en la webque puede abrir desde un URL en un navegador web. La función de iniciocontextual soporta los tipos de consola de aplicación de web (servlet o JSP), portalJava Web Start.

Para realizar una navegación, la consola de aplicación externa debe soportar laprestación de destino según contexto que acepta datos que se le pasan en un URL.La consola externa utiliza el URL para abrir una ventana con los datos pasados enel URL.

Si la aplicación externa no ofrece la prestación de destino según contexto, lafunción de inicio contextual puede abrir una página de inicio estándar dentro de laconsola, sin los datos contextuales. Si la aplicación soporta la autenticación deinicio de sesión único, se autentica a los usuarios de la aplicación y se les dirige ala consola externa. Si la autenticación de inicio de sesión único no se implementa,la consola externa abrirá un panel de inicio de sesión para autenticar al usuario dela aplicación.

URL de entrada de ejecución en una aplicación externaUn valor de URL de entrada de ejecución puede contener variables de sustituciónque utilizan datos de los objetos de negocios relacionados que se visualizan en laaplicación.

Por ejemplo, para una entrada de ejecución que se implementa en la aplicaciónPersona, puede sustituir el valor de nombre en la serie del URL utilizando elnombre de atributo, {nombre_atributo}. El URL siguiente es un URL para laaplicación Persona que utiliza el atributo PERSONNAME:

https://extsyshost:9045/tcWebUI/interactionhandler?actionId=viewPerson&Person={PERSONNAME}

También puede proporcionar un atributo de un objeto relacionado con el objeto denegocios principal especificando el nombre de la relación y el nombre del atributo{nombre_relación.nombre_atributo}. El URL siguiente incluye un atributo deciudad de una dirección. Utilice este URL en la aplicación Persona cuando el objetoADDRESS esté relacionado con un objeto PERSON con una relación denominadaADDRESS:

https://extsyshost:9045/WebUI/interactionhandler?actionId=viewCity&cityname={ADDRESS.CITY}

Utilice los valores {sourcetoken} y {reportinghostname} en un URL cuando deseeiniciar una consola del producto de gestión de operaciones.

URL de entrada de ejecución en una aplicación del productoUn valor de URL de entrada de ejecución puede contener variables de atributo yuna variable de cláusula Where de SQL.

Una aplicación externa puede ejecutarse en el producto, abrir una aplicación delproducto específica y buscar objetos de negocios específicos para mostrarlos.

Al realizar la ejecución en el producto, se presenta la pantalla de inicio de sesión.Después de que el usuario inicie sesión, se abre la aplicación especificada.

Integración de datos con aplicaciones externas 357

Page 364: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Opcionalmente, puede incluir el nombre de usuario y la contraseña en el URL paraomitir la pantalla de inicio de sesión, pero sólo si se ha configurado una capa desockets seguros (SSL) para proteger el acceso HTTP.

El URL para la ejecución en el producto tiene el formato siguiente:

http://<servidor>:<puerto>/<maximo>/ui/<product.jsp>?event=loadapp&value=<IDapl>

El URL del ejemplo siguiente abre la aplicación Seguimiento de órdenes de trabajoy muestra la orden de trabajo con un ID de 1000

http://<servidor>:<puerto>/<maximo>/ui/<maximo.jsp>?event=loadapp&value=<wotrack>&attrname1=<WONUM>&attrvalue1=<1000>:

La búsqueda de un registro tiene un comportamiento similar al de la ficha Lista deuna aplicación, donde la fila de filtro tiene varios valores cumplimentados a travésde las columnas. Los nombres de los atributos son los nombres de la base de datosdel MBO primario para la aplicación que se está ejecutando.

Si se requiere la búsqueda avanzada, puede agregar una cláusula SQL WHERE alURL, en el formato utilizado en el ejemplo siguiente:

http://:<servidor>:<puerto>/maximo/ui/maximo.jsp?event=loadapp&value=wotrack&sqlwhere=WONUM%3D1000

El remitente debe proporcionar URL válidos. En el ejemplo anterior, un valor "="no válido se ha convertido a "%3D".

Si un URL incluye tanto parámetros de tipo de atributo como un parámetro decláusula SQL Where, se utiliza el parámetro de cláusula SQL Where y losparámetros de tipo de atributo se pasan por alto.

Habilitación del inicio contextualPara abrir una ventana de navegador en una aplicación externa que puedecontener datos contextuales, un usuario debe ser capaz de activar el inicio en laaplicación de origen. El usuario también debe tener derechos de seguridad paraver el elemento de menú i el botón de la barra de herramientas. La aplicación dedestino se debe configurar para aceptar la solicitud de la ventana de una aplicaciónremota y se deben haber realizado las disposiciones adecuadas para garantizar latransacción.

Creación de una entrada de ejecuciónPuede crear una entrada de ejecución para abrir una aplicación externa en lamisma sesión de navegador o en una nueva. Los registros de las entradas deejecución crean vínculos basados en sitios web entre aplicaciones y productos ositios web de gestión operativa.

Procedimiento1. En la aplicación Inicio contextual, pulse Nueva entrada de ejecución.2. En el campo Nombre de la entrada de ejecución, especifique un identificador

de la entrada de ejecución.3. En el campo URL de consola, especifique el URL de un sitio web o de la

consola para un producto de gestión de operaciones que desee abrir en unasesión de navegador.

358 Integración de datos con aplicaciones externas

Page 365: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

4. En el campo Ventana de navegador de destino, especifique uno de lossiguientes valores:v Se abre el valor _usecurrent (valor predeterminado) abre una aplicación o

sitio web en la sesión de navegador actual.v El valor _blank abre una aplicación o sitio web en una sesión de navegador

nueva.5. Opcional: Si el destino de la entrada de ejecución es una consola para un

producto de gestión operativa, especifique su nombre y versión en los camposNombre de producto de PGO y Versión de PGO.

6. En la tabla Ejecutar contextos, pulse Fila nueva.7. En el campo Nombre de objeto de recurso, puede especificar un objeto

empresarial que restrinja el uso del registro de la entrada de ejecución a lasaplicaciones que dan soporte a este objeto. Una entrada de ejecución puedesoportar uno o varios objetos empresariales. No se aplican restricciones al usode la entrada de ejecución si no selecciona ningún objeto empresarial.Atributos de valores de clasificación de la entrada de ejecución. El valor declasificación puede restringir las entradas de ejecución visualizadas. Variosobjetos empresariales dan soporte al atributo de clasificación. La restricción declasificaciones se implementa durante la ejecución cuando utiliza condicionesdel sistema. Se dispone de condiciones predefinidas para controlar elcomportamiento de la entrada de ejecución. También puede crear sus propiascondiciones. Por ejemplo, si especifica PERSONA en este campo, puede utilizarla entrada de ejecución solamente en la aplicación Persona. Puede utilizar elregistro de entrada de ejecución en cualquier aplicación cuando el valor delcampo sea nulo.

8. En el campo Clasificación de recursos, si se definen atributos de clasificaciónpara el objeto de recurso especificado, puede seleccionar atributos querestringen la visualización de las entradas de ejecución. Muchos objetosempresariales dan soporte a los atributos de clasificación. La restricción declasificaciones se implementa durante la ejecución cuando utiliza condicionesdel sistema. Se dispone de condiciones predefinidas para controlar elcomportamiento de la entrada de ejecución. También puede crear sus propiascondiciones.

9. Seleccione la casilla de verificación Incluir clasificación de niveles inferiorespara incluir clasificaciones de recursos para objetos de nivel inferior en elregistro de la entrada de ejecución.

10. Pulse en Guardar entrada de ejecución.

Qué hacer a continuación

Puede asociar registros de entrada de asociación con opciones de firma en laaplicación Diseñador de aplicaciones. Estas asociaciones definen y controlanacciones de menú para uso de la entrada de ejecución.

Propiedades específicas de productos de gestión de operaciones:

Cuando se crea un registro de entrada de lanzamiento, algunas propiedades sonexpresamente para el uso con productos de gestión operacionales.

Cuando se usted asocia un producto de gestión de operaciones a una entrada deejecución, las búsquedas de infraestructura para el nombre del producto en losservidores de producto de gestión de gestión de operaciones en la base de datosque gestiona el artículo de configuración. Si se proporciona la versión del producto

Integración de datos con aplicaciones externas 359

Page 366: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

de gestión de operaciones, la infraestructura busca la versión especificada. Losdatos del servidor llenan las variables {sourcetoken} y {reportinghostname} en elURL de ejecución.

Para determinar con qué artículo de configuración trabaja, la infraestructura deintegración busca un atributo de identificador exclusivo global (CIGUID) deartículo de configuración en el objeto de negocios que se visualiza. Si visualiza elobjeto de negocio del artículo de configuración, en su lugar se utiliza el atributo deidentificador exclusivo global (GUID) en su lugar.

La señal de origen es un atributo del artículo de configuración y la relación con elservidor de producto de gestión de operaciones. La consola del producto degestión de operaciones acepta la señal de origen como identificador del artículo deconfiguración. Al incluir un {sourcetoken} en el URL de inicio, la infraestructuralo sustituye por la señal de origen correspondiente para el servidor del productode gestión de operaciones seleccionado.

El nombre del host que informa es el nombre de host del servidor del producto degestión de operaciones seleccionado. Cuando el valor de {reportinghostname} estáen el URL para la entrada de ejecución, la infraestructura lo sustituye por elnombre de host del producto de gestión de operaciones seleccionada. Lainformación de nombre de host y la señal de origen se cargan del motor dedescubrimiento. Si la información del nombre de host no se carga del motor dedescubrimiento, debe agregar la información del servidor de productos de gestiónoperacional a su base de datos.

Configuración de una opción de firma para un punto deejecuciónCuando cree una opción de firma para un punto de ejecución, estará disponiblepara utilizarla dentro de los controles de la interfaz de usuario.

Procedimiento1. En el Diseñador de aplicaciones, seleccione la aplicación donde desee

configurar un punto de ejecución.2. Seleccione la acción Agregar/Modificar opciones de firma.3. En la ventana Agregar/Modificar opciones de firma, pulse en Fila nueva.4. Especifique valores en los campos Opción y Descripción.5. En la tabla Opciones de firma avanzadas, seleccione la opción Asociar a

entrada de inicio para habilitar el inicio contextual. Para acceder a la tablaOpciones de firma avanzadas, desplácese al final de la ventanaAgregar/Modificar opciones de firma y pulse en Maximizar para mostrar lasopciones disponibles.

6. En el campo Nombre de la entrada de ejecución, especifique el nombre de laentrada de ejecución.

7. Pulse en Aceptar para regresar al Diseñador de aplicaciones.8. Pulse en Guardar definición de aplicación para confirmar las modificaciones

de la aplicación en la base de datos.

Adición de un punto de ejecución a un menú de aplicaciónDespués de configurar una opción de firma para punto de ejecución, puede añadirla opción a un menú de aplicación. El procedimiento es similar para añadir elpunto de inicio en una acción o en un menú de barra de herramientas.

360 Integración de datos con aplicaciones externas

Page 367: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Procedimiento1. En Application Designer, elija una de las acciones siguientes:

v Agregar/Modificar menú Seleccionar acción

v Agregar/Modificar menú Barra de herramientas

2. Pulse Fila nueva.3. En el campo Tipo de elemento, especifique el valor OPTION.4. En el campo Valor clave, especifique el nombre de la opción de firma que ha

configurado para el punto de ejecución.5. En el campo Posición, especifique un número para indicar la posición relativa

del elemento del menú.6. En el campo Fichas, seleccione uno de los valores siguientes:

v Seleccione el valor MAIN si el URL de ejecución contiene variables desustitución.

v Seleccione el valor ALL si el URL de ejecución no contiene las variables desustitución.

7. Especifique valores en otros campos opcionales, según sea necesario.8. Pulse en Aceptar para regresar al Diseñador de aplicaciones.9. Pulse en Guardar definición de aplicación para confirmar las modificaciones

de la aplicación en la base de datos.

Qué hacer a continuación

Para que los usuarios puedan ver el nuevo elemento de menú o botón de la barrade herramientas, debe otorgarle privilegios de acceso de usuario y grupo. Otorguelos privilegios en la sección Opciones de la ficha Aplicaciones en la aplicaciónGrupos de seguridad.

Adición de un botón como un punto de ejecuciónPara agregar un botón a una aplicación que actúa como un punto de ejecución,configure un botón para utilizar la opción de firma para el punto de ejecución.

Procedimiento1. En el Diseñador de aplicaciones, pulse en Paleta de control.2. Arrastre un control de pulsador al espacio de trabajo de la aplicación.3. Abra la ventana Propiedades correspondiente al control del pulsador.4. En el campo Etiqueta, especifique el nombre que desee que aparezca en el

botón.5. En el campo Evento, especifique el nombre de la opción de firma.6. Pulse en Aceptar para regresar al Diseñador de aplicaciones.7. Pulse en Guardar definición de aplicación para confirmar las modificaciones

de la aplicación en la base de datos.

Adición de una condición a un punto de ejecuciónPuede crear una condición y luego asociar la condición con la opción de firma parael punto de ejecución. Cuando se asocia una condición con una opción de firma, elcomportamiento de la interfaz de usuario se cambia de acuerdo con la condición ylos datos que se están visualizando.

Procedimiento1. En la aplicación Grupos de seguridad, seleccione el grupo para el que desee

aplicar una condición.

Integración de datos con aplicaciones externas 361

Page 368: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

2. En la ficha Aplicación, seleccione la aplicación para la que desee aplicar lacondición.

3. En la tabla Opciones, seleccione el valor de la condición que haya creado.4. Pulse en Guardar grupo.

Condiciones de opción de firma:

Puede aplicar condiciones para controlar el comportamiento de la interfaz deusuario según los datos que se estén viendo.

La infraestructura de integración proporciona una clase de condición predefinida,psdi.iface.app.launch.LaunchCICondition, para ocultar partes del menú de entradade ejecución cuando la clasificación del objeto actual no coincida con el valor declasificación de entrada de ejecución. Esta condición se aplica a cualquier de objetoque tenga un atributo de clasificación.

Las partes de menú de entrada de ejecución también se pueden ocultar cuando elproducto de gestión de operaciones que se configura en la entrada de ejecución nogestione el artículo de configuración. Esta condición se aplica a las entradas deejecución que se asocian con un objeto de artículo de configuración o un objeto deartículo de configuración real.

Puede configurar una condición para utilizar la clase de condición predefinida.También puede configurar una condición para implementar una condiciónpersonalizada utilizando la aplicación Administrador de expresiones condicionales.

El punto de ejecución está disponible desde la aplicación, sin tener en cuenta losdatos que se estén viendo, cuando no se utilice una condición. Los datos que ve selimitan a la configuración de seguridad de la opción de firma para un grupo deusuarios. También puede configurar sus ajustes de seguridad para ocultar unpunto de ejecución, según los privilegios de acceso del grupo establecidos.

Si utiliza una clase de condición de Java, debe cambiar el atributo EXPRESIÓN decondición por nombre de la entrada de lanzamiento. La clase Java puedeidentificar qué entrada de ejecución se ejecuta. El valor del atributo de expresióndebe ser una coincidencia exacta con el nombre de la entrada de ejecución y losvalores distinguen mayúsculas y minúsculas.

Información de referencia de integraciónLa información de referencia incluye una guía de las estructuras y los esquemasXML utilizados por la infraestructura de integración, las propiedades del sistemaque se pueden establecer y conmutadores de colaboración predefinidosproporcionados con las aplicaciones.

Propiedades del sistema de integraciónLas propiedades del sistema definen el comportamiento y las características de lainfraestructura de integración. Para revisar o cambiar las propiedades de lainfraestructura de integración, fíltrelas en la aplicación Propiedades del sistema.

362 Integración de datos con aplicaciones externas

Page 369: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Propiedades generales de integración

Para ver una lista de propiedades generales de integración, especifique mxe.intcomo término de filtro en la aplicación Propiedades del sistema. Para laspropiedades booleanas (true/false), un valor 0 significa false y un valor 1 significatrue.

Tabla 47. Propiedades generales de integración

Propiedad Descripción Valor predeterminado

mxe.int.containerdeploy Despliega servicios web en el contenedor del servidorde aplicaciones. Cuando se establece en 0 (false), losservicios web se despliegan en el contenedor delproducto.

0

mxe.int.credentialmapperclassname El nombre de clase de correlacionador de credencialeses un archivo de clase que puede utilizarse paracorrelacionar información de credenciales cuando seimplementa un módulo de integración.

mxe.int.genboolasbool Generar booleano como booleano de esquema. 1

mxe.int.globaldir Especifica el directorio global de integración. 1

mxe.int.queueusercachesize Número de usuarios almacenados en la memoriacaché para los mensajes de cola entrantes.

10

mxe.int.resolveschema Resuelve todas las inclusiones de esquema para quecontengan una definición de esquema incorporado.

1

mxe.int.servicedeployer La clase de desplegador de servicios web es una claseJava personalizada para el despliegue de serviciosweb cuando no se utiliza la clase de desplegadorpredeterminada.

mxe.int.uddiinqurl Representa el URL de consulta de registro UDDI deintegración.

mxe.int.uddiname Representa el ID de usuario del registro UDDI deintegración.

mxe.int.uddipassword Contraseña de registro UDDI de integración.

mxe.int.uddipuburl URL de publicación de registro UDDI de integración.

mxe.int.validatedbupdates Valida las actualizaciones de las bases de datosrealizadas por la integración. Cuando se establece en1 (true), la supresión de objetos de negocio, atributos,índices y relaciones realizada por el usuario en laaplicación Configuración de base de datos se validacon el contenido de integración. La validacióngarantiza que ningún componente de integración hagareferencia a los datos que se están suprimiendo. Siexiste una referencia, el usuario no puede completarla acción de supresión.

1

mxe.int.validatemmpackage Valida las actualizaciones de la base de datos delgestor de migración realizadas por la integración.

0

mxe.int.verifywebappurl Verifica el URL de aplicación web cuando se generanarchivos de esquema.

1

mxe.int.webappurl Representa el URL de aplicación web de integración.Configure esta propiedad para que contenga elnombre de host y el número de puerto correctos.

http://localhost:9998/meaweb

mxe.int.wsdlcurrentschema Muestra la definición de esquema actual en WSDL. 1

mxe.int.wsdlincludesschema Incluye el esquema directamente en WSDL. 1

mxe.int.wsdlnamespace Representa el espacio de nombres WSDL deintegración.

http://www.ibm.com/maximo/wsdl

mxe.int.xmlnamespace Representa el espacio de nombres XML deintegración.

http://www.ibm.com/maximo

Integración de datos con aplicaciones externas 363

Page 370: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 47. Propiedades generales de integración (continuación)

Propiedad Descripción Valor predeterminado

mxe.int.binarytext Convierte un valor de texto en un valor codificado enbase 64.

10

mxe.int.defaultaction La acción predeterminada para la importación dearchivos sin formato.

AddChange

mxe.int.defaultoperation La operación predeterminada para la exportación deaplicaciones.

Sincronización

mxe.int.dfltuser Representa el usuario de inicio de sesiónpredeterminado de integración.

mxintadm

mxe.int.doclink.maxfilesize Representa el tamaño máximo de archivo (MB) paralos adjuntos que se incluyen como parte de unmensaje de integración.

10

mxe.int.enabledatemillis Permite la fecha con la parte de milisegundos. 0

mxe.int.expupdatesender Actualiza el campo SENDERSYSID en el objetoprimario durante la exportación de datos.

0

mxe.int.extracttrycount El Recuento de reintentos de extracción de archivos esel número de veces que se reintenta un mensaje deerror durante la importación de datos cuando seutiliza la gestión de errores basada en archivos.

0

mxe.int.flatfiledelimiter Delimitador de texto del archivo sin formato deintegración es el valor de delimitador predeterminadoque se utiliza para la habilitación de importación deaplicaciones y la importación de datos.

,

mxe.int.flatfilenewline Retiene el nuevo carácter de línea en archivos sinformato. Para los campos que pueden contenercaracteres de nueva línea como, por ejemplo, lasdescripciones, los caracteres se mantienen en losmensajes de integración cuando el valor de lapropiedad es 1 (true).

0

mxe.int.interactiveimport Realiza la importación de la aplicación de formainteractiva.

0

mxe.int.keyresponse Proporciona un contenido de respuesta para losmensajes de integración entrantes de todas lasoperaciones. Cuando se establece en 1 (true), seproporciona un contenido de respuesta, que incluyelos valores de clave de objeto primaria, para todas lasoperaciones de servicio. Cuando se establece en 0(false), sólo se proporciona un contenido de respuestapara las operaciones Consultar y Crear.

1

mxe.int.maxextractdocs Representa el número de documentos de error que segraban en cada archivo temporal al crear un archivode extracción.

1000

mxe.int.mdbdelay Representa el tiempo de espera en milisegundos antesde procesar un mensaje de la cola de errores.

-1

mxe.int.propagateuser Propaga el usuario autenticado a través de la colaentrante. Cuando se establece en 1 (true), el usuariodel mensaje de integración se guarda con el mensajede la cola y se utiliza durante el proceso del mensajeporque se procesa desde la cola en los objetos denegocio.

0

mxe.int.savemessage Indica que se guarde el mensaje JMS. 0

mxe.int.setclobasaln Controla el recorte de caracteres que se envían a lastablas de interfaz.

0

mxe.int.textqualifier El calificador de texto de archivo sin formato es elvalor de calificador de texto predeterminado en lahabilitación de la importación de aplicaciones y en laimportación de datos.

"

364 Integración de datos con aplicaciones externas

Page 371: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 47. Propiedades generales de integración (continuación)

Propiedad Descripción Valor predeterminado

mxe.int.updatecoafromglcomp Actualiza el Plan contable que contiene uncomponente identificado. Cuando se establece en 1(true), el proceso de los datos de componente de LMentrantes inicia actualizaciones relacionadas en losdatos del plan contable que hagan referencia alcomponente de LM.

1

mxe.int.usescientific Utiliza notación científica para los valores dobles. 1

mxe.int.validatexmltext Valida el valor de elementos XML para los caracteresXML no válidos. Cuando se establece en 1 (true), sevalida un mensaje saliente para garantizar que todoslos datos del mensaje utilizan caracteres XML válidos.Si hay mensajes con caracteres no válidos, laoperación se detiene y no se entrega ningún mensajesaliente.

0

mxe.int.whereclausepolicy Establece la política de cláusula Where para unaconsulta de integración.

parse

mxe.int.adminfromemail La dirección de correo electrónico (FROM) desde laadministración de integración, que se utiliza comodirección de correo electrónico Desde cuando laintegración inicia un correo electrónico. Debe ser unformato de dirección de correo electrónico válido, porejemplo, [email protected].

mxe.int.admintoemail La dirección de correo electrónico (TO) para laadministración de integración, que se utiliza comodirección de correo electrónico Para cuando laintegración inicia un correo electrónico. Debe ser unformato de dirección de correo electrónico válido, porejemplo, [email protected]. Puede proporcionar más deuna dirección de correo electrónico en una listaseparada por comas.

Tabla 48. Propiedades generales de integración.

Propiedad Descripción Valor predeterminadoQuién puede editar lapropiedad

mxe.int.containerdeployDespliega servicios web en el contenedor delservidor de aplicaciones. Cuando se establece en0 (false), los servicios web se despliegan en elcontenedor del producto.

0 Administrador global

mxe.int.credentialmapperclassnameEl nombre de clase de correlacionador decredenciales es un archivo de clase que puedeutilizarse para correlacionar información decredenciales cuando se implementa un módulo deintegración.

Administrador global

mxe.int.genboolasboolGenerar booleano como booleano de esquema.

1 Administrador global

mxe.int.globaldirEspecifica el directorio global de integración.

1 Administrador global

mxe.int.queueusercachesizeNúmero de usuarios almacenados en la memoriacaché para los mensajes de cola entrantes.

10 Administrador global

mxe.int.resolveschemaResuelve todas las inclusiones de esquema paraque contengan una definición de esquemaincorporado.

1 Administrador global

mxe.int.servicedeployerLa clase de desplegador de servicios web es unaclase Java personalizada para el despliegue deservicios web cuando no se utiliza la clase dedesplegador predeterminada.

Administrador global

Integración de datos con aplicaciones externas 365

Page 372: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 48. Propiedades generales de integración (continuación).

Propiedad Descripción Valor predeterminadoQuién puede editar lapropiedad

mxe.int.uddiinqurlRepresenta el URL de consulta de registro UDDIde integración.

Administrador global

mxe.int.uddinameRepresenta el ID de usuario del registro UDDI deintegración.

Administrador global

mxe.int.uddipasswordContraseña de registro UDDI de integración.

Administrador global

mxe.int.uddipuburlURL de publicación de registro UDDI deintegración.

Administrador global

mxe.int.validatedbupdatesValida las actualizaciones de las bases de datosrealizadas por la integración. Cuando se estableceen 1 (true), la supresión de objetos de negocio,atributos, índices y relaciones realizada por elusuario en la aplicación Configuración de base dedatos se valida con el contenido de integración.La validación garantiza que ningún componentede integración haga referencia a los datos que seestán suprimiendo. Si existe una referencia, elusuario no puede completar la acción desupresión.

1 Administrador global

mxe.int.verifywebappurlVerifica el URL de aplicación web cuando segeneran archivos de esquema.

1 Administrador global

mxe.int.webappurlRepresenta el URL de aplicación web deintegración. Configure esta propiedad para quecontenga el nombre de host y el número depuerto correctos.

http://localhost:9998/meaweb

Administrador global

mxe.int.wsdlcurrentschemaMuestra la definición de esquema actual enWSDL.

1 Administrador global

mxe.int.wsdlincludesschemaIncluye el esquema directamente en WSDL.

1 Administrador global

mxe.int.wsdlnamespaceRepresenta el espacio de nombres WSDL deintegración.

http://www.ibm.com/maximo/wsdl

Administrador global

mxe.int.xmlnamespaceRepresenta el espacio de nombres XML deintegración.

http://www.ibm.com/maximo Administrador global

mxe.int.binarytextConvierte un valor de texto en un valorcodificado en base 64.

10 Administrador global,administrador deinquilinos

mxe.int.defaultactionLa acción predeterminada para la importación dearchivos sin formato.

AddChange Administrador global,administrador deinquilinos

mxe.int.defaultoperationLa operación predeterminada para la exportaciónde aplicaciones.

Sincronización Administrador global,administrador deinquilinos

mxe.int.dfltuserRepresenta el usuario de inicio de sesiónpredeterminado de integración.

mxintadm Administrador global,administrador deinquilinos

mxe.int.doclink.maxfilesizeRepresenta el tamaño máximo de archivo (MB)para los adjuntos que se incluyen como parte deun mensaje de integración.

10 Administrador global,administrador deinquilinos

mxe.int.enabledatemillisPermite la fecha con la parte de milisegundos.

0 Administrador global,administrador deinquilinos

mxe.int.expupdatesenderActualiza el campo SENDERSYSID en el objetoprimario durante la exportación de datos.

0 Administrador global,administrador deinquilinos

366 Integración de datos con aplicaciones externas

Page 373: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 48. Propiedades generales de integración (continuación).

Propiedad Descripción Valor predeterminadoQuién puede editar lapropiedad

mxe.int.extracttrycountEl Recuento de reintentos de extracción dearchivos es el número de veces que se reintentaun mensaje de error durante la importación dedatos cuando se utiliza la gestión de erroresbasada en archivos.

0 Administrador global,administrador deinquilinos

mxe.int.flatfiledelimiterDelimitador de texto del archivo sin formato deintegración es el valor de delimitadorpredeterminado que se utiliza para la habilitaciónde importación de aplicaciones y la importaciónde datos.

, Administrador global,administrador deinquilinos

mxe.int.flatfilenewlineRetiene el nuevo carácter de línea en archivos sinformato. Para los campos que pueden contenercaracteres de nueva línea como, por ejemplo, lasdescripciones, los caracteres se mantienen en losmensajes de integración cuando el valor de lapropiedad es 1 (true).

0 Administrador global,administrador deinquilinos

mxe.int.interactiveimportRealiza la importación de la aplicación de formainteractiva.

0 Administrador global,administrador deinquilinos

mxe.int.keyresponseProporciona un contenido de respuesta para losmensajes de integración entrantes de todas lasoperaciones. Cuando se establece en 1 (true), seproporciona un contenido de respuesta, queincluye los valores de clave de objeto primaria,para todas las operaciones de servicio. Cuando seestablece en 0 (false), sólo se proporciona uncontenido de respuesta para las operacionesConsultar y Crear.

1 Administrador global,administrador deinquilinos

mxe.int.maxextractdocsRepresenta el número de documentos de errorque se graban en cada archivo temporal al crearun archivo de extracción.

1000 Administrador global,administrador deinquilinos

mxe.int.mdbdelayRepresenta el tiempo de espera en milisegundosantes de procesar un mensaje de la cola deerrores.

-1 Administrador global,administrador deinquilinos

mxe.int.propagateuserPropaga el usuario autenticado a través de la colaentrante. Cuando se establece en 1 (true), elusuario del mensaje de integración se guarda conel mensaje de la cola y se utiliza durante elproceso del mensaje porque se procesa desde lacola en los objetos de negocio.

0 Administrador global,administrador deinquilinos

mxe.int.savemessageIndica que se guarde el mensaje JMS.

0 Administrador global,administrador deinquilinos

mxe.int.setclobasalnControla el recorte de caracteres que se envían alas tablas de interfaz.

0 Administrador global,administrador deinquilinos

mxe.int.textqualifierEl calificador de texto de archivo sin formato esel valor de calificador de texto predeterminado enla habilitación de la importación de aplicaciones yen la importación de datos.

" Administrador global,administrador deinquilinos

mxe.int.updatecoafromglcompActualiza el Plan contable que contiene uncomponente identificado. Cuando se establece en1 (true), el proceso de los datos de componentede LM entrantes inicia actualizacionesrelacionadas en los datos del plan contable quehagan referencia al componente de LM.

1 Administrador global,administrador deinquilinos

Integración de datos con aplicaciones externas 367

Page 374: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 48. Propiedades generales de integración (continuación).

Propiedad Descripción Valor predeterminadoQuién puede editar lapropiedad

mxe.int.usescientificUtiliza notación científica para los valores dobles.

1 Administrador global,administrador deinquilinos

mxe.int.validatexmltextValida el valor de elementos XML para loscaracteres XML no válidos. Cuando se estableceen 1 (true), se valida un mensaje saliente paragarantizar que todos los datos del mensajeutilizan caracteres XML válidos. Si hay mensajescon caracteres no válidos, la operación se detieney no se entrega ningún mensaje saliente.

0 Administrador global,administrador deinquilinos

mxe.int.whereclausepolicyEstablece la política de cláusula Where para unaconsulta de integración.

parse Administrador global,administrador deinquilinos

mxe.int.adminfromemailLa dirección de correo electrónico (FROM) desdela administración de integración, que se utilizacomo dirección de correo electrónico Desdecuando la integración inicia un correo electrónico.Debe ser un formato de dirección de correoelectrónico válido, por ejemplo,[email protected].

Administrador dearrendatarios

mxe.int.admintoemailLa dirección de correo electrónico (TO) para laadministración de integración, que se utilizacomo dirección de correo electrónico Para cuandola integración inicia un correo electrónico. Debeser un formato de dirección de correo electrónicoválido, por ejemplo, [email protected]. Puedeproporcionar más de una dirección de correoelectrónico en una lista separada por comas.

Administrador dearrendatarios

Propiedades de integración de REST

Para ver una lista de propiedades de integración de la API de REST, especifiquemxe.rest como término de filtro en la aplicación Propiedades del sistema. Para laspropiedades booleanas (true/false), un valor 0 significa false y un valor 1 significatrue.

Tabla 49. Propiedades de integración de la API de REST

Propiedad Descripción Valor predeterminado

mxe.rest.format.json.mimetypes Los tipos MIME soportados porREST para JSON.

application/json

mxe.rest.format.xml.mimetypes Los tipos MIME soportados porREST para JSON.

application/xml,text/xml

mxe.rest.handler.mbo El manejador de recursos MBOde REST.

com.ibm.tivoli.maximo.rest.MboResourceRequestHandler

mxe.rest.handler.os El manejador de recursos deestructura de objeto de REST.

com.ibm.tivoli.maximo.rest.OSResourceRequestHandler

mxe.rest.handler.ss El manejador de recursos deservicio estándar de REST.

com.ibm.tivoli.maximo.rest.MaxServiceResourceRequestHandler

mxe.rest.serializer.mbo.imglib.image

El serializador REST para elMBO imagelib para el formatode imagen.

com.ibm.tivoli.maximo.rest.ImageLibSerializer

mxe.rest.serializer.mbo.json El serializador REST para MBOpara el formato JSON.

com.ibm.tivoli.maximo.rest.MboJSONSerializer

mxe.rest.serializer.mbo.xml El serializador REST para MBOpara el formato xml.

com.ibm.tivoli.maximo.rest.MboXMLSerializer

368 Integración de datos con aplicaciones externas

Page 375: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 49. Propiedades de integración de la API de REST (continuación)

Propiedad Descripción Valor predeterminado

mxe.rest.serializer.os.json El serializador REST de lasestructuras de objetos para elformato JSON.

com.ibm.tivoli.maximo.rest.OSJSONSerializer

mxe.rest.serializer.os.xml El serializador REST de lasestructuras de objetos para elformato xml.

com.ibm.tivoli.maximo.rest.OSXMLSerializer

mxe.rest.serializer.ss.json El serializador REST de serviciosestándar para el formato JSON.

com.ibm.tivoli.maximo.rest.ServiceMethodResponseJSONSerializer

mxe.rest.serializer.ss.xml El serializador REST de serviciosestándar para el formato xml.

com.ibm.tivoli.maximo.rest.ServiceMethodResponseXMLSerializer

mxe.rest.webappurl URL de autenticación por testigode aplicación web.

mxe.rest.mbo.blockaccess Bloquea el acceso a la lista deMBO separados por comas.

mxe.rest.mbo.defaultformat El formato predeterminado deREST para todos los MBO.

xml

mxe.rest.mbo.imglib.defaultformat El formato predeterminado deREST para el MBO imglib.

image

mxe.rest.os.blockaccess Bloquea el acceso a la lista deestructuras de objetos separadaspor comas.

10

mxe.rest.os.defaultformat El formato predeterminado deREST para todas las estructurasde objetos.

xml

mxe.rest.ss.defaultformat El formato predeterminado deREST para todas las respuestasde servicios estándar

xml

mxe.rest.supportedformats Los formatos soportados deREST para una respuesta.

xmljsonimage

mxe.rest.whereclausepolicy Establece la política de cláusulawhere para la consulta REST.

parse

Propiedades de integración de OSLC

Para ver una lista de propiedades de integración de OSLC, especifique mxe.oslccomo término de filtro en la aplicación Propiedades del sistema. Para laspropiedades booleanas (true/false), un valor 0 significa false y un valor 1 significatrue.

Tabla 50. Propiedades de integración de OSLC

Propiedad Descripción Valor predeterminado

mxe.oslc.dfltconsumerversion La versión de OSLC predeterminada queel consumidor utiliza.

2

mxe.oslc.dfltversion La versión de OSLC predeterminada paraun proveedor de OSLC.

2

mxe.oslc.enableprovider Habilita el proveedor OSLC. 1

mxe.oslc.idleexpiry Indica el tiempo de caducidaddesocupado.

300

mxe.oslc.webappurl El URL público del proveedor. http://localhost/maximo/oslc/

mxe.oslc.collectioncount Añade el recuento total de la colección deOSLC.

0

mxe.oslc.defaultep El punto final OSLC predeterminado. OSLCDEFAULT

mxe.oslc.defaultformat El formato predeterminado para OSLC. oslcjson

Integración de datos con aplicaciones externas 369

Page 376: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tabla 50. Propiedades de integración de OSLC (continuación)

Propiedad Descripción Valor predeterminado

mxe.oslc.errorresponse El formato de respuesta de error deOSLC.

1

mxe.oslc.preferproviderdesc Dar preferencia a la descripción delproveedor de OSLC para los URLcombinados de registro de recursos.

false

mxe.oslc.prefersmallpreview Dar preferencia a la vista previa pequeñapara el Consumidor OSLC.

false

mxe.oslc.prettyjson JSON impreso. 0

mxe.oslc.prettyrdf RDF impreso. 0

mxe.oslc.prqueryep El punto final de consulta de registro deproveedor.

PROVIDERREGISTRY

mxe.oslc.prcreateep Es el punto final de creación del registrode proveedores.

XML de integraciónLa mayoría de los mensajes XML de integración se basan en una estructura deobjeto y una operación que un canal o servicio realiza. Los servicios estándar, sinembargo, no soportan las estructuras de objeto y se utilizan esquemas XMLpredefinidos para construir estos mensajes XML.

Descripción generalAl configurar estructuras de objeto, la infraestructura de integración especifica unesquema XML adecuado que define el contenido y la estructura de los mensajes deintegración.

Contenido de los mensajes

Para los mensajes XML basados en una estructura de objeto se pueden utilizar loscanales y los servicios siguientes:v Canal de invocaciónv Canal de publicaciónv Servicio empresarialv Servicio de estructura de objeto

Se admiten las siguientes operaciones:v Crearv Deletev Invocarv Publicarv Consultav Sincronizaciónv Actualizar

Los valores de operación distinguen entre mayúsculas y minúsculas.

Estructura de los mensajes

El formato estándar para un mensaje XML de integración empieza con unelemento raíz que contiene un elemento de estructura de objeto. El elemento deestructura de objeto contiene elementos para el objeto principal y sus campos y

370 Integración de datos con aplicaciones externas

Page 377: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

para los objetos de nivel inferior definidos para la estructura de objeto. El ejemplosiguiente se basa en la estructura de objeto PERSON, en la que el objeto principal ysus campos preceden al objeto de nivel inferior y sus campos.<?xml version="1.0" encoding="UTF-8"?><max:SyncMXPERSON xmlns:max="http://www.ibm.com/maximo"> (elemento raíz)

<max:MXPERSONSet> (define el elemento de estructura de objeto)<max:PERSON> (elemento de objeto para el objeto principal)

<max:PERSONID>Valor</max:PERSONID> (elemento de campo de objeto)<max:EMPLOYEETYPE>Valor</max:EMPLOYEETYPE> (elemento de campo de objeto)

.

.

.<max:PHONE> (elemento de nivel inferior)

<max:PHONENUM>Valor</max:PHONENUM> (elemento de campo de objeto de nivelinferior)

<max:TYPE>Valor</max:TYPE> (elemento de campo de objeto de nivelinferior)

</max:PHONE><max:EMAIL> (elemento de objeto de nivel inferior)

<max:EMAILADDRESS>Nuevo valor para actualizar</max:EMAILADDRESS><max:TYPE>Valor</max:TYPE> (elemento de campo de objeto de nivel

inferior)</max:EMAIL>

.

.

.</max:PERSON>

</max:MXPERSONSet></max:SyncMXPERSON>

El nombre del elemento raíz es una concatenación de la operación especificadapara el canal o servicio y el nombre de la estructura de objeto. En este ejemplo, elelemento raíz SyncMXPERSON combina la operación Sincronizar y la estructura deobjeto MXPERSON.

Cada elemento puede contener uno o varios atributos. En este mensaje XML deejemplo, el elemento raíz incluye el atributo de espacio de nombres.

Generación de esquemas

Para generar el esquema y ver el XML generado, filtre por un registro específico yseleccione la acción Generar esquema/Ver XML en cualquiera de las aplicacionessiguientes:v Servicios empresarialesv Canales de invocaciónv Estructuras de objetosv Canales de publicaciónv Biblioteca de servicios web

Estructura XMLUn mensaje XML de integración típico tiene un elemento raíz, un elemento de laestructura de objeto y elementos para los objetos definidos para la estructura deobjeto. Los elementos de objeto contienen elementos para los campos de objeto, ylos elementos pueden contener uno o varios atributos. Los nombres y valores deatributo distinguen entre mayúsculas y minúsculas.

Integración de datos con aplicaciones externas 371

Page 378: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Elemento raíz y atributos:

El elemento raíz de un mensaje XML está basado en una estructura de objeto y unaoperación especificada para el canal o servicio utilizado para la comunicación. Elelemento raíz puede contener uno o varios atributos.

La siguiente tabla muestra los atributos que puede aplicar a los elementos raíz. Losnombres y valores de atributo distinguen entre mayúsculas y minúsculas. Todoslos atributos son opcionales.

Atributo Descripción Tipo Aplicable a

baselanguage El lenguaje base en el quese proporcionan los valoresde contenido.

string Todas las operaciones deentrada y salida

creationDateTime Fecha y hora en que se hagenerado el contenido.

dateTime Todas las operaciones deentrada y salida

maximoVersion La versión principal, laversión menor, lacompilación y lacompilación de base dedatos generadas para todoel XML publicado.

MaximoVersionType Todas las operaciones deentrada y salida

messageID Identificador exclusivogenerado para todos losmensajes.

string Todas las operaciones deentrada y salida

transLanguage El idioma en el que seproporcionan los camposhabilitados para variosidiomas.

string Todas las operaciones deentrada y salida

event El origen de un mensajeXML de salida. Los valoresválidos son:

v 0 (false), indica que elmensaje lo genera lafunción de exportación.

v 1 (true), indica que elmensaje lo genera unaescucha de eventos deintegración de salida(esto es, la entrada dedatos de una aplicación).

eventType Todas las operaciones desalida

uniqueResult Especifica si la consultaespera uno o variosregistros en una respuesta.Si el valor es 0, o elatributo no se haespecificado, la consultapuede devolver múltiplesregistros. Si el valor es 1, laconsulta puede devolversolamente un registro y, delo contrario, se produce unerror.

Booleano Consultas (entrada)

372 Integración de datos con aplicaciones externas

Page 379: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Atributo Descripción Tipo Aplicable a

maxItems Si una consulta puededevolver múltiplesregistros, este atributolimita el número deregistros que devuelve cadavez. Si no se especifica esteatributo, la respuestacontiene el conjunto deresultados completo.

positiveInteger Consultas (entrada)

rsStart Especifica el primer registroque se ha de devolver en larespuesta. Si no seespecifica, la respuestacomienza por el primerregistro del conjunto deresultados. Si el número deregistros del conjunto deresultados de la consulta seestablece en un valorinferior al valor de rsStart,la respuesta no devuelveningún registro.

Si se especifica un valor demaxItems, la respuestadevuelve el número deregistros especificado,comenzando por el valorde rsStart, si se estableceuno.

Por ejemplo, si no seespecifican maxItems=10 yrsStart, la respuestadevuelve los resultados de1 a 10. Para recibir losresultados 11 a 20, vuelva aenviar la consulta conrsStart=11.

integer Consultas (entrada)

rsStart Este valor se correspondecon el valor de rsStart enla consulta correspondiente.

Si la consulta contiene unvalor de maxItems, el valorde rsStart en lassolicitudes de registrosadicionales es rsStart másel valor de rsCount más 1.

Si no se especifica esteatributo, la respuestacomienza con el primerregistro del conjunto deresultados e incluye elnúmero de registrosespecificado mediante elatributo rsCount.

integer Respuestas (salida)

Integración de datos con aplicaciones externas 373

Page 380: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Atributo Descripción Tipo Aplicable a

rsCount El número de registros quese devuelven en unmensaje. Si la consultaoriginal especifica un valorde maxItems, el valor dersStart en la siguientesolicitud de registrosadicionales es rsStart másel valor de rsCount más 1.

integer Respuestas (salida)

rsTotal El número total de registrosdel conjunto de resultados.Si la consulta no especificaun valor de maxItems, elvalor de rsTotal es elmismo que el valor dersCount.

integer Respuestas (salida)

Elemento de estructura de objeto:

El elemento de estructura de objeto contiene un elemento para el objeto principal yelementos para cualquier objeto de nivel inferior definido para la estructura deobjeto. Este elemento puede soportar varias apariciones del objeto principal y susobjetos de nivel inferior.

El elemento de objeto principal contiene elementos para cada campo de objeto. Loselementos de objeto de nivel inferior, que contienen elementos para sus campos deobjeto, figuran en una lista después del objeto principal.

Elementos de objeto y atributos:

Un elemento de objeto contiene elementos para los campos de objeto. Cadaelemento de objeto puede contener uno o varios atributos.

La tabla siguiente muestra los atributos que pueden aplicarse a un elemento deobjeto. Los nombres y valores de atributo distinguen entre mayúsculas yminúsculas. Todos los atributos son opcionales.

Atributo Descripción Tipo Aplicable a

action Este valor se deriva delatributo de acción delobjeto primario en elmensaje. Para los mensajessalientes, este atributo sólose utiliza a efectosinformativos.

Para los mensajes entrantes,la lógica de proceso utilizaeste valor sólo para laoperación desincronización. Para lasdemás operaciones, estevalor se ignora.

ProcessingActionType Todas las operaciones deentrada y salida

374 Integración de datos con aplicaciones externas

Page 381: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Atributo Descripción Tipo Aplicable a

relationship Identifica la relación queutiliza el sistema pararecuperar el objetoutilizando el objeto de nivelsuperior.

string Todas las operaciones deentrada y salida

deleteForInsert Identifica un objeto de nivelinferior que debesuprimirse antes de volvera insertarse. Este atributosólo se aplica a losmensajes entrantes en losque la operación essincronizar y la acción escambiar.

string Todas las operaciones deentrada y salida

Referencia relacionada:“Atributos de acción” en la página 377Un atributo de acción es un atributo opcional que indica al sistema receptor el tipode proceso que debe llevar a cabo en un mensaje XML. Los atributos de acción seaplican a los mensajes XML entrantes que sincronizan datos, mediante la operaciónSincronizar, y a los mensajes XML salientes que utilizan canales de publicación.

Elementos y atributos de campos de objetos:

Si el mismo campo está incluido en la clave tanto para un objeto de nivel superiorcomo para un objeto de nivel inferior de una estructura de objeto, el campo estácontenido sólo en el objeto de nivel suprior. Cada campo de objeto puede incluiruno o varios atributos.

Atributo de campo cambiado:

Se puede establecer un valor booleano en 1 (verdadero) en mensajes XML salientespara indicar que el valor del campo ha cambiado. El atributo cambiado no seestablece en el XML generado por la función de exportación de datos.

El atributo cambiado se establece en los mensajes XML salientes sólo cuando latransacción satisface todas las condiciones siguientes:v Una transacción saliente basada en eventos crea el mensaje.v El atributo de acción de cambio o el atributo de acción de sustitución se

establecen en el objeto principal.v La estructura de objeto que realiza el envío tiene la misma relación de objeto de

nivel superior-nivel inferior que la aplicación de recepción.

En el ejemplo siguiente, se establece el atributo de acción de sustitución (Replace)para el objeto de nivel superior y el atributo cambiado se establece en 1 para elcampo ADDRESSLINE.<MXPERSON>

<PERSON action="Replace"><PERSONID>123</PERSONID><ADDRESSLINE1 changed="1" >1 Main Street</ADDRESSLINE1>

Para los campos de libro mayor (GL), el atributo cambiado siempre se establece enel elemento de nombre, que es GLDEBITACCT en el ejemplo siguiente:

Integración de datos con aplicaciones externas 375

Page 382: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

<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 de libro mayor:

El atributo glorder se establece en los elementos GLCOMP en campos queidentifican cuentas de libro mayor (GL), como por ejemplo un campoGLDEBITACCT. Cada elemento GLCOMP contiene parte del número de cuenta yel atributo glorder identifica cómo combinar estos elementos para construir el valorde GL.

En los mensajes XML salientes, el valor de un campo de tipo de libro mayor,incluidos los delimitadores, se establece en el elemento de nivel inferior VALUEdel campo. Los componentes del valor, según la definición de la base de datos delos componentes, se incluyen los elementos GLCOMP. El atributo glorder de cadaelemento GLCOMP identifica el orden del componente, empezando de 0 (cero) yhasta un máximo de 20. En el ejemplo siguiente, el número de cuenta tiene trescomponentes GL.<GLDEBITACCT>

<VALUE>6600-800-SAF</VALUE><GLCOMP glorder="0">6600</GLCOMP><GLCOMP glorder="1">800</GLCOMP><GLCOMP glorder="2">SAF</GLCOMP>

</GLBDEBITACCT>

Los mensajes XML entrantes pueden establecer un número de cuenta del libromayor en elemento VALUE o en elementos GLCOMP con atributos glorderasociados. Si el mensaje incluye elementos GLCOMP, el número de cuenta sevuelve a crear de acuerdo con los delimitadores definidos en la tablaGLCONFIGURE. Si tanto el VALOR como los elementos GLCOMP se incluyen enel mensaje, se utiliza el elemento VALUE y los elementos GLCOMP se pasan poralto.

Atributo de campo traducible:

El atributo langenabled está establecido en 1 (verdadero) en todos los campos quese pueden traducir en mensajes XML salientes.

Atributo de campo sinónimo:

Para los mensajes salientes, los campos asociados con un dominio de tipo sinónimoespecifican el valor interno correspondiente utilizando el atributo maxvalue. Estevalor está disponible para la personalización o el procesamiento de la salida segúnsea necesario. El atributo sólo es informativo y no se utiliza para el procesamientode mensajes entrantes.

En el ejemplo siguiente, se establece un maxvalue de NOLOT para el campoLOTTYPE.<MXITEM><ITEM><ITEMNUM>560-00</ITEMNUM><DESCRIPTION>Tubing, Copper-1 In ID X .030 In Wall Test</DESCRIPTION><LOTTYPE maxvalue="NOLOT">NOLOT</LOTTYPE>

376 Integración de datos con aplicaciones externas

Page 383: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Atributo de campo cifrado:

Cuando los datos de un campo, como un campo de contraseña, está cifrado, elatributo booleano, maxencrypted, se establece en 1 (true). Los sistemas externosutilizan este valor para determinar si se ha de aplicar un proceso de descifrado a lainformación del campo.

El siguiente ejemplo utiliza la estructura de objeto MXPERSUSER paraproporcionar información de usuario, incluida una contraseña, y el atributomaxencrypted se establece en el campo PASSWORD del objeto MAXUSER.<MXPERUSER><PERSON action="Replace"><PERSONID>123</PERSONID><MAXUSER><MAXUSERID>10</MAXUSERID><PASSWORD maxencrypted=”1”> dmFzdG8=</PASSWORD><MAXUSER><PERSON><MXPERUSER>

Atributos de acción:

Un atributo de acción es un atributo opcional que indica al sistema receptor el tipode proceso que debe llevar a cabo en un mensaje XML. Los atributos de acción seaplican a los mensajes XML entrantes que sincronizan datos, mediante la operaciónSincronizar, y a los mensajes XML salientes que utilizan canales de publicación.

La descripción siguiente explica el proceso de los mensajes entrantes utilizando laoperación Sincronizar. El sistema externo debe evaluar el código de acción que seproporciona con los mensajes salientes y determinar el proceso adecuado para laaplicación externa.

Los atributos de acción pueden aplicarse al contenido del objeto de nivel superiory a los objetos de nivel inferior de una estructura de objeto. Un atributo de acciónque se aplica a un objeto de nivel superior especifica la acción de proceso globalpara los registros de nivel superior e inferior. Si se aplica a un objeto de nivelinferior, la acción indica el proceso específico para dicho registro. Si un atributo seproporciona para un objeto de nivel inferior, solo se evalúa cuando el objetoprincipal tiene un valor de acción Cambiar. Cuando la acción del objeto principalno es Cambiar, se ignoran las acciones del objeto de nivel inferior.

Las reglas de negocio prevalecen sobre los atributos de acción. Si una regla denegocio prohíbe una acción especificada en un mensaje XML entrante, se produceun error. Por ejemplo, si una transacción entrante intenta actualizar una orden decompra cerrada, se produce un error.

Si un mensaje XML contiene varias instancias de una estructura de objeto, cadainstancia de la estructura de objeto puede especificar un atributo de accióndiferente. En el ejemplo siguiente, el registro COMPANIES tiene diversos registrosCOMPCONTACT de nivel inferior, y cada instancia tiene su propio atributo deacción.<MXVENDOR>

<COMPANIES action="Cambiar"><COMPANY>TEST4

<NAME>prueba</NAME><ADDRESS1>Calle principal 100</ADDRESS1><COMPCONTACT action="Agregar">

<NAME>SMITH</NAME>

Integración de datos con aplicaciones externas 377

Page 384: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

<TITLE>ADMINISTR</TITLE></COMPCONTACT><COMPCONTACT action="Cambiar">

<NAME>JONES</NAME><TITLE>IGNENIERO</TITLE>

</COMPCONTACT></COMPANY>

</COMPANIES></MXVENDOR>

El atributo de acción puede tener los valores siguientes, los cuales distinguen entremayúsculas y minúsculas:v Addv Deletev Cambiarv Replacev AddChangev Nulo

Valor Descripción

Add Agregar registros a la base de datos delsistema receptor.

Delete Suprimir registros de la base de datos delsistema receptor.

Cambiar Actualizar registros existentes de la base dedatos del sistema receptor.

Replace Agregar o sustituir registros del sistemareceptor en función de si el registro principalexiste en la base de datos.

AddChange Agregar o actualizar registros existentes dela base de datos del sistema receptor.

Nulo Agregar o sustituir registros del sistemareceptor en función de si el registro principalexiste en la base de datos.

Proceso de acción predeterminado

Cuando un mensaje XML entrante no contiene ningún atributo de acción, elmensaje se procesa de la forma siguiente:v Si el registro principal no existe en la base de datos, se aplica la acción Agregar.v Si el registro principal existe en la base de datos, se aplica la acción Sustituir.

Si un mensaje proviene de un archivo sin formato o una tabla de interfaz,únicamente puede proporcionar un código de acción para el objeto principal. No seadmite la especificación de códigos de acción para objetos de nivel inferior.

Acción Agregar

La acción Agregar agrega registros a la base de datos del sistema receptor.

Para las transacciones salientes, se produce un error si los datos ya existen. Si laacción Agregar está establecida en un objeto de nivel superior, la acción se amplíaa los objetos de nivel inferior y no es necesario especificar la acción a nivel de

378 Integración de datos con aplicaciones externas

Page 385: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

objeto de nivel inferior. Las transacciones salientes contienen una acción Agregarcuando al insertar un objeto se genera la transacción.

Acción Suprimir

La acción Suprimir suprime registros de la base de datos del sistema receptor.

Si la acción Suprimir está establecida en un objeto de nivel superior, la acción seamplía a los objetos de nivel inferior y no es necesario especificar la acción a nivelde objeto de nivel inferior.

Si la acción Suprimir está establecida en el objeto de nivel superior en un mensajeXML saliente que no incluye los objetos de nivel inferior, el sistema receptor es elresponsable de identificar y suprimir los objetos de nivel inferior.

Si la acción Suprimir está establecida en el objeto de nivel superior en un mensajeXML entrante, la infraestructura de integración suprime los objetos de nivelinferior relacionados. Si el objeto de nivel superior no existe en la base de datos, nose informa de ningún error al sistema de envío.

Acción Cambiar

La acción Cambiar actualiza los registros existentes en la base de datos del sistemareceptor.

Una acción Cambiar en el objeto principal de un mensaje XML indica que elmensaje contiene uno o varios registros de nivel superior o inferior que se agregan,cambian o suprimen. El mensaje siempre contiene el nivel superior de cualquierregistro de nivel inferior que se deba actualizar, incluso cuando el nivel superiorno se modifica.

La acción Cambiar en el objeto principal es el único caso en el que puedeproporcionar una acción para el objeto de nivel inferior. Cuando el objeto principalde un mensaje XML entrante o saliente contiene una acción Cambiar, los objetos denivel inferior del mensaje pueden contener una de las acciones siguientes.

Atributo de acción del objeto de nivelinferior Acción de proceso

Añadir Añadir el registro de nivel inferior. Si elregistro de nivel inferior existe, se genera unerror.

Delete Suprimir el registro de nivel inferior. Si elregistro de nivel inferior no existe, se generaun error.

Cambiar Actualizar el registro de nivel inferior. Si elregistro de nivel inferior existe, se genera unerror.

Nulo o ninguna acción especificada Si el registro de nivel inferior existe, seactualiza. Si el registro de nivel inferior noexiste, se agrega.

Acción Sustituir

La acción Sustituir actualiza los registros existentes en la base de datos del sistemareceptor.

Integración de datos con aplicaciones externas 379

Page 386: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Una acción Sustituir en el objeto principal de un mensaje XML indica que elmensaje contiene un conjunto completo de objetos que representa el resultado delas adiciones, los cambios y las supresiones en la estructura de objeto. Estos objetossustituyen los registros de base de datos existentes y se suprimen todos losregistros a los que el mensaje XML no hace referencia.

Para el proceso saliente, siempre se utiliza la acción Sustituir, y no la acciónCambiar.

Para el proceso entrante, se suprimen todos los registros de nivel inferior que elmensaje no menciona explícitamente. Los sistemas externos también debensuprimir los registros de nivel inferior que no se incluyen en el mensaje XML.

La acción Sustituir únicamente se puede aplicar a los objetos principales de unmensaje XML. Si un registro de nivel inferior de un mensaje XML entrantecontiene una acción Sustituir cuando el objeto principal contiene una acciónCambiar, el mensaje no se procesa. Si un registro de nivel inferior contiene unaacción Sustituir cuando el nivel superior contiene una acción diferente de Cambiar,se ignora la acción en el registro de nivel inferior.

Acción AddChange

La acción AddChange agrega o actualiza los registros existentes en la base de datosdel sistema receptor. La acción AddChange es parecida a la acción Sustituir salvoque la acción AddChange no se aplica a los objetos de nivel inferior.

Una acción AddChange en el objeto principal agrega el registro principal y todoslos subregistros especificados en el mensaje, si el registro principal no existe en labase de datos. Si el registro principal existe, se actualiza el registro, además decualquier registro de nivel inferior incluido en el mensaje. Los registros de nivelinferior existentes que no se especifican en el mensaje entrante no se suprimen.

La acción AddChange es útil cuando la estructura de objeto incluye elementos queno existen en el sistema externo. Por ejemplo, un sistema externo puede mantenerinformación de distribuidores, pero la información de contacto únicamente sealmacena en la base de datos. Un mensaje de entrada con un registro dedistribuidor con un valor de acción de NULL suprime la información de contactoen la base de datos. Si la acción está establecida en AddChange para estatransacción, la información de distribuidores se actualiza y la información decontacto sigue igual.

Comparación de las acciones Cambio, Sustituir y AddChange

Las acciones Cambio, Sustituir y AddChange varían en la información queincluyen en el mensaje XML y el proceso que requieren del sistema receptor.

Combinaciones de atributos de acción

La tabla siguiente muestra las combinaciones de atributos de acción que puedeincluir en los registros principales y de nivel inferior.

Registro denivelinferior Add Delete Cambiar Replace AddChange

Ningúnvalor Comentarios

Registroprincipal

380 Integración de datos con aplicaciones externas

Page 387: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Registro denivelinferior Add Delete Cambiar Replace AddChange

Ningúnvalor Comentarios

Add N/A N/A N/A N/A N/A N/A Se ignorantodos losvalores denivel inferior

Delete N/A N/A N/A N/A N/A N/A Se ignorantodos losvalores denivel inferior

Cambiar Sí Sí Sí No No Sí (insertar,actualizar)

Sustituir yAddChangeno sepermiten enel nivelinferior

Replace N/A N/A N/A N/A N/A N/A Se ignorantodos losvalores denivel inferior

AddChange N/A N/A N/A N/A N/A N/A Se ignorantodos losvalores denivel inferior

Ningúnvalor

N/A N/A N/A N/A N/A N/A Se ignorantodos losvalores denivel inferior

Referencia relacionada:“Elementos de objeto y atributos” en la página 374Un elemento de objeto contiene elementos para los campos de objeto. Cadaelemento de objeto puede contener uno o varios atributos.

Tipos de valor de campo:

La infraestructura de integración especifica el comportamiento del proceso de losdistintos tipos de datos utilizados para dar formato a los valores de campo.

Columnas booleanas

En las transacciones entrantes, un elemento que representa un campo booleanodebe contener un valor 0 (false) o 1 (true). Si el elemento no contiene un 0 o un 1,se genera un error. Si el XML no incluye un elemento para un campo booleano, elvalor de base de datos correspondiente se actualiza con el valor predeterminado (0o 1) definido para dicha columna.

Campos cifrados

En las transacciones entrantes, el atributo que representa el campo maxencrypteddebe contener un valor 0 (false) o 1 (true). Cuando el valor de atributo es 1, seaplica un proceso de descifrado a los datos recibidos. Cuando el valor de atributoes 0, los datos recibidos no se descifran.

Integración de datos con aplicaciones externas 381

Page 388: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Si el atributo no contiene un 0 o un 1, los datos recibidos no se descifran. Si elcampo XML no incluye un elemento para un campo cifrado, los datos recibidos nose descifran.

Codificación de caracteres

El XML de integración utiliza la codificación UTF-8. Si una transacción entranteespecifica otro tipo de codificación, el mensaje completo debe utilizar dichacodificación. Si se produce un error durante el proceso de una transacción entranteque utiliza una codificación distinta de UTF-8, el XML de error completo que segraba se codifica como UTF-8.<?xml version="1.0" encoding="ISO-8859-2"?>

Formato de fecha

El XML de integración da soporte al siguiente formato de fecha ISO 8601:2011-04-06T10:11:58-05:00

Columnas nulas

Si un elemento en una transacción entrante no contiene ningún valor, la columnade base de datos correspondiente se actualiza con un valor nulo. Si el XML noincluye un elemento para un determinado campo, el campo no se actualiza en labase de datos.

Para los datos entrantes que se obtienen de un archivo sin formato o una tabla deinterfaz, puede establecer un campo en nulo proporcionando ~NULL~ como valorde campo en el archivo sin formato o la tabla de interfaz. El proceso de integracióncrea un rótulo vacío en el mensaje XML correspondiente para los valores ~NULL~proporcionados. Esta función no da soporte a los campos numéricos o de fecha deun origen de tabla de interfaz.

Formato de número

Independientemente del valor de entorno local del servidor de aplicaciones o labase de datos, en todos los campos de decimales se debe utilizar un punto (.) comoseparador decimal. No formatee los números situados a la izquierda del indicador.Este formato se aplica a los datos entrantes y salientes.

$1,738,593.64 debe tener este formato: 1738593.64

Esquemas de XML de integraciónLos esquemas XML para canales y servicios, excluidos los servicios estándar, sebasan en la configuración de los objetos incluidos en la estructura de objeto. Puedegenerar esquemas en las aplicaciones de integración.

Vista general de esquemas XML:

Un esquema de infraestructura de integración incluye un componente de esquemapredefinido para los metadatos y componentes de esquema basados en objetosconfigurados, estructuras de objeto y servicios estándar.

Se pueden generar esquemas para dar soporte a los escenarios de integraciónbasados en XML en los que se utilizan los siguientes componentes:v Servicio de estructura de objeto

382 Integración de datos con aplicaciones externas

Page 389: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

v Canal de publicaciónv Canal de invocaciónv Servicio empresarialv Servicio estándar

Campos de clave

La anotación de esquema XML identifica los campos de clave para un servicio ocanal de la definición de estructura de objeto y las definiciones de diccionario dedatos para el objeto correspondiente.

En el ejemplo siguiente, el elemento ITEMNUM se identifica como el campo declave del esquema para la estructura de objeto MXITEM.<xsd:element name="ITEMNUM" minOccurs="0" type="MXString">

<xsd:annotation><xsd:documentation>ITEMNUM es un campo de clave</xsd:documentation>

</xsd:annotation></xsd:element>

Validación XML

Las transacciones XML entrantes y salientes no se validan en el esquema XMLcorrespondiente. Las reglas de negocio de integración se aplican a los datos deentrada, independientemente de la validación de esquema. Para la estructura deobjeto y los servicios empresariales, la integración debe cumplir el formato deesquema en el punto en el que la capa de estructura de objeto procesa el mensaje.

Propiedad de espacio de nombres

Puede cambiar la designación del espacio de nombres XML actualizando lapropiedad mxe.int.xmlnamespace en la aplicación Propiedades del sistema. El valorde la propiedad de espacio de nombres predeterminada es http://www.ibm.com/maximo Si cambia la propiedad de espacio de nombres, se vuelve a general elarchivo MXMeta.xsd. Este archivo contiene la información de esquema de metadatosque se utiliza para compilar el resto de los esquemas. La infraestructura deintegración valida el espacio de nombres proporcionado con los mensajes XMLentrantes.

Generación de esquemas

Al cambiar una estructura de objeto o el diccionario de datos, debe volver agenerar los esquemas afectados. También debe volver a generar los esquemasdespués de los cambios siguientes:v Hacer que un campo de base de datos sea opcional o necesariov Cambiar el tipo de datos de un campo de base de datosv Agregar o eliminar campos de una estructura de objetov Cambiar la estructura de una estructura de objeto

Los esquemas se generan automáticamente al desplegar un servicio web.

Puede generar esquemas manualmente seleccionando un registro y, a continuación,seleccionando la acción Generar esquema/Ver XML en las aplicaciones siguientes:v Servicios empresarialesv Canales de invocación

Integración de datos con aplicaciones externas 383

Page 390: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

v Estructuras de objetosv Canales de publicaciónv Biblioteca de servicios web

Directorio y archivos de esquema

Los archivos de esquema generados se ubican en los subdirectorioscorrespondientes del directorio de esquema en el servidor.

Grupo Subdirectorio Descripción

Metadatos <raíz>/schema/common/meta Archivo de esquema demetadatos, MXMeta.xsd

Estructura de objeto <raíz>/schema/common/mos Archivos de esquema deestructura de objeto

Objeto <raíz>/schema/common/mbo Archivos de esquema deobjeto

Servicio <raíz>/schema/service Archivos de esquema deservicio de estructura deobjeto y servicio empresarial

Servicio estándar <raíz>/schema/service/ss Archivos de esquema deservicio estándar

Estructuras de esquema:

Las estructuras de esquema incluyen el componente de esquema de Metadatospredefinido y componentes para objetos, estructuras de objeto, servicios y serviciosestándar. Todos ellos se generan en el momento de la creación del esquema

Esquema de metadatos:

El archivo MXMeta.xsd contiene la información de metadatos que se utiliza paracrear los demás esquemas. No modifique el archivo MXMeta.xsd, por lo que loscambios pueden generar esquemas incorrectos y problemas con los servicios web.El sistema regenera este esquema cuando alguien cambia la propiedad Namespace.

Además del contenido de los datos, el archivo de esquema de metadatos incluye lasiguiente información adicional sobre los mensajes:v Grupos de atributosv Tipos de contenidov Tipos de datos de consultav Tipos de datos de soporte

384 Integración de datos con aplicaciones externas

Page 391: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Grupos de atributos

En la tabla siguiente se enumeran los atributos por grupo.

Grupo Atributos Se aplica a

CommonContentGroup v baseLanguage

v creationDateTime

v maximoversion

v messageID

v transLanguage

El elemento raíz de todos los tipos deesquema de entrada y salida.

ObjectStructurePropertyGroup v action

v relationship

v deleteForInsert

El elemento de objeto de todos lostipos de esquema de entrada y salida.

PublishingContentGroup v event El elemento raíz de todos los tipos deesquema de salida.

QueryContentGroup v maxItems

v rsStart

v uniqueResult

El elemento raíz de todos los tipos deesquema de entrada de consulta.

ResponseContentGroup v rsCount

v rsStart

v rsTotal

El elemento raíz de todos los tipos deesquema de salida de respuesta.

Tipos de contenido

En la tabla siguiente se enumeran los tipos de contenido en el esquema demetadatos.

Tipo Descripción Atributos

MaximoVersionType Serie concatenada que identifica:

v versión principal

v versión menor

v build

v build de base de datos

Identifica la versión de software

MXBooleanType Extensión de integer modificado

MXDateTimeType Extensión de dateTime modificado

MXDomainType Extensión de string; identifica elMaxvalue correspondiente para unvalor de dominio.

modificado

maxvalue

MXDoubleType Extensión de double modificado

MXFloatType Extensión de float modificado

MXGLAccountType Tipo complejo con 2 valores: VALUEy GLCOMP; identifica loscomponentes de LM individuales ysu orden secuencial para una cuenta.

modificado

Integración de datos con aplicaciones externas 385

Page 392: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Tipo Descripción Atributos

MXGLComponentType Extensión de string; identifica elorden secuencial de los componentesde LM en la estructura del plancontable.

glorder

MXIntType Extensión de integer modificado

MLLangStringType Extensión de MXString modificado

languageEnabled

MXLongType Extensión de long modificado

MXStringType Extensión de string modificado

Tipos de consulta

En la tabla siguiente se enumeran los tipos de consulta en el esquema demetadatos.

Tipo Descripción Atributo

MXBooleanQueryType Extensión de integer operador

MXDateTimeQueryType Extensión de dateTime operador

MXDomainQueryType Extensión de string operador

maxvalue

MXDoubleQueryType Extensión de double operador

MXFloatQueryType Extensión de float operador

MXGLAccountQueryType Tipo complejo con un valor VALUE operador

MXGLComponentQueryType Extensión de string operador

MXIntQueryType Extensión de integer operador

MXLongQueryType Extensión de long operador

MXStringQueryType Extensión de string operador

Tipos de datos

En la tabla siguiente se enumeran los tipos de datos en el esquema de metadatos.

Tipo Descripción Valores restringidos

BooleanType Indica si el resultado de una pruebalógica es true o false.

v 0 (false)

v 1 (true)

ChangeIndicatorType Indica si un campo tiene un nuevovalor.

Sólo se aplica a las estructuras deobjetos generadas por un evento.

1 (true)

386 Integración de datos con aplicaciones externas

Page 393: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

EventType Indica si una estructura de objetopublicada es el resultado de unevento. Si el valor es 1, la estructurapublicada es el resultado de unevento.

EventType es una extensión deBooleanType.

v 0 (false)

v 1 (true)

ProcessingActionType Acciones de proceso que admiten losservicios de integración.

v Add

v Cambiar

v Replace

v Delete

v AddChange

QueryOperatorType Identifica la acción de Consultamediante ejemplo que se ejecuta en elcampo correspondiente.

v =

v !=

v &lt

v &lt;=

v &gt

v &gt;=

v SW

v EW

Esquemas de estructura de objeto:

Los esquemas de estructura de objeto definen el contenido de una estructura deobjeto. Cada estructura de objeto tiene su propio esquema, que incluye todos loscampos persistentes y no persistentes que se han definido para cada objeto en laestructura. Los esquemas de estructura de objeto se utilizan para definir los tiposde entrada y salida, y no se utilizan directamente como entrada o salida de unservicio.

Nombres de archivo y su ubicación

El convenio de denominación de los esquemas de estructura de objeto es elnombre de la estructura de objeto, por ejemplo, MXPERSON.xsd. Todos los esquemasde estructura de objeto incluyen el archivo de esquema MXMeta.xsd. Los esquemasgenerados se ubican en el directorio schema/common/mos.

Generación de esquemas

Cuando genera los siguientes componentes, se vuelven a generar los esquemas deestructura de objeto:v El esquema de estructura de objeto mediante el uso de una acción en la

aplicación de estructuras de objetov El esquema de servicio empresarial, donde el servicio hace referencia a la

estructura de objetov El esquema de canal de publicación, donde el canal hace referencia a la

estructura de objeto

Integración de datos con aplicaciones externas 387

Page 394: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Contenido de la estructura de objeto del esquema

Un esquema de estructura de objeto tiene los siguientes elementos:v Objetov Conjunto de objetosv Consulta de objeto

Por ejemplo, el esquema de la estructura de objeto MXPERSON tiene los siguienteselementos:

Elemento Nombre de elemento Tipo

Objeto MXPERSON MXPERSONType

Conjunto de objetos MXPERSONSet MXPERSONSetType

Consulta de objeto MXPERSONQuery MXPERSONQueryType

Contenido del objeto del esquema

El elemento de objeto tiene el siguiente contenido:v El elemento MXPERSON tiene un tipo MXPERSONType.v El MXPERSONType es un tipo complejo y tiene el elemento PERSON, que tiene

un tipo MXPERSON_PERSONType.v El tipo complejo MXPERSON_PERSONType tiene elementos para todos los

atributos configurados del objeto PERSON y elementos para los objetos de nivelinferior en la estructura de objeto.

v Los objetos adicionales del esquema tienen un tipo complejo correspondientecomo, por ejemplo, MXPERSON_PERSONType, que define el objeto PERSON.

Elemento Tipo

PERSON (objeto primario) MXPERSON_PERSONType

PHONE (objeto de nivel inferior) MXPERSON_PHONEType

EMAIL (objeto de nivel inferior) MXPERSON_EMAILType

SMS (objeto de nivel inferior) MXPERSON_SMSType

El siguiente ejemplo muestra la estructura del XML correspondiente:<MXPERSON>

<PERSON><PHONE></PHONE>

.

.

.<EMAIL></EMAIL>

.

.

.<SMS></SMS>

.

.

.</PERSON>

</MXPERSON>

388 Integración de datos con aplicaciones externas

Page 395: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Contenido del conjunto de objetos

Para el ejemplo MXPERSON, el elemento MXPERSONSet sustituye al elementoMXPERSON y MXPERSONSetType sustituye al tipo complejo MXPERSONType. Elresto se mantiene. El elemento de conjunto actúa como un derivador para variasapariciones del objeto primario (MXPERSON) y sus objetos de nivel inferior.

Contenido de la consulta de objeto

Sólo puede utilizar elementos de consulta en el contexto de un esquema de nivelde servicio.

El siguiente formato de contenido está en el elemento de consulta de objeto:v El elemento MXPERSONQuery es de tipo MXPERSONQueryType.v MXPERSONQueryType es un tipo complejo y tiene elementos para todos los

atributos configurados del objeto primario (PERSON) de la estructura de objeto.

La consulta de objeto y el conjunto de objetos varían en lo siguiente:v El elemento de consulta sólo incluye el objeto primario de la estructura de

objeto.v El elemento de consulta no incluye columnas no persistentes.v El elemento de consulta puede incluir dos apariciones de los elementos para dar

soporte a una consulta de un rango, por ejemplo, un intervalo de fechas.

Por ejemplo, como la consulta sólo incluye el objeto superior de la estructura, no esposible consultar a una persona por número de teléfono. El número de teléfonoexiste en el objeto PHONE de nivel inferior.

Esquemas de objeto:

Los esquemas de objeto definen el contenido de los objetos. Cada objeto tiene unesquema diferente, que incluye todos los campos persistentes de un objetopersistente y todos los campos no persistentes definidos para un objeto nopersistente. Los esquemas de objeto se utilizan para definir los tipos de entrada ysalida, y no se utilizan directamente como entrada o salida de un servicio.

Nombres de archivo y su ubicación

El convenio de denominación de los esquemas de objeto es el nombre de objeto,por ejemplo, PERSON.xsd y los archivos se ubican en el directorioschema/common/mbo.

Generación de esquemas

Los archivos de esquemas de objeto se generan cuando genera los siguientescomponentes:v Un esquema de estructura de objeto que contiene el objetov Un servicio de estructura de objeto o un esquema de servicio empresarial que

hace referencia a una estructura de objeto que incluye el objetov Un esquema de servicio estándar que contiene el objeto

Todos los esquemas de objeto incluyen el archivo de esquema MXMeta.xsd.

Integración de datos con aplicaciones externas 389

Page 396: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Contenido del esquema

El esquema tiene los siguientes elementos (utilizando MXPERSON como ejemplo)

Elemento Tipo Comentarios

PERSONMbo PERSONMboType Este tipo contiene unainstancia del elementoPERSONMbo

PERSONMboSet PERSONMboSetType Este tipo contiene variasinstancias del elementoPERSONMbo.

PERSONMboKey PERSONMboKeyType Este tipo contiene sólo unainstancia del elementoPERSON que esPERSONKeyType.PERSONKeyType contiene elatributo que es la claveprimaria del objeto PERSON,PERSONID.

Si varios atributos forman laclave primaria de un objeto,objectKeyType contiene losatributos que forman la claveprimaria.

Este elemento se incluye enla respuesta a una operaciónde creación.

PERSONMboKeySet PERSONMboKeySetType Este tipo contiene variasinstancias del elementoPERSON que esPERSONKeyType.

PERSONKeyType contiene elatributo que es la claveprimaria del objeto PERSON,PERSONID.

Si varios atributos forman laclave primaria de un objeto,objectKeyType contiene losatributos que forman la claveprimaria.

Este elemento se incluye enla respuesta de unaoperación de creación.

PERSONMboQuery PERSONMboQueryType Este tipo contiene dosinstancias del elementoPERSON. Dos instanciaspermiten una consulta paraespecificar un rango, porejemplo, Desde fecha y Hastafecha.

390 Integración de datos con aplicaciones externas

Page 397: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Mensajes con varios nombres:

Un mensaje XML puede contener varios nombres.<MXPERSON>

<MXPERSONSET><PERSON>..<SMS></SMS></PERSON><PERSON>..<SMS></SMS></PERSON>

</MXPERSONSET></MXPERSON>

Esquemas de nivel de servicio:

Los esquemas de nivel de servicio se aplican a los servicios empresariales, losservicios de estructuras de objetos y los servicios estándar. El mismo esquemadescribe los servicios empresariales y los servicios de la estructura de objeto. Unesquema diferente describe los servicios estándar.

Los servicios empresariales, los servicios de la estructura de objeto y los serviciosestándar utilizan objetos y estructuras de objetos como entrada y salida de lasoperaciones que soportan. Múltiples servicios pueden realizar la misma operaciónutilizando la misma entrada y salida.

La entrada y salida predefinidas para los canales de publicación y los canales deinvocación se utiliza para implementar estos canales de modo que se invoquenservicios externos o para su correlación con otros formatos de salida.

Nombres de archivo y su ubicación

El convenio de nombres para los esquemas de estructuras de objetos y losesquemas de servicios empresariales es nombre servicio aplicación más Service, porejemplo, PERSONService.xsd, donde PERSON es el nombre del servicio deaplicación.

El convenio de nombres para los esquemas de nivel de servicio es estructura deobjeto más Service, por ejemplo, MXPERSONService.xsd.

Los archivos de esquema se encuentran en el directorio /schema/service.

Los archivos de esquema se encuentran en el directorio <raíz>/schema/common/service.

Generación de esquemas

No se proporcionan archivos de esquema de nivel de servicio predefinidos.Cuando despliega un servicio web, se genera un archivo de esquema de nivel deservicio para la estructura de objeto asociada, si existe. También puede generar unesquema de nivel de servicio utilizando una acción en la aplicación de bibliotecade servicios web.

Integración de datos con aplicaciones externas 391

Page 398: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Todos los esquemas de nivel de servicio incluyen el archivo del esquema demetadatos, la estructura de objeto aplicable y los archivos del esquema de objetos.

Contenido del esquema

Se genera un archivo de esquema para cada estructura de objeto con múltiplestipos de datos dentro de cada archivo. Cada tipo de datos se corresponde a cadaoperación de entrada y salida que se puede desplegar o procesar como un servicio.Los diferentes servicios reutilizan los tipos de datos de estos esquemas. Ningúnservicio individual utiliza todos los tipos de datos de un solo esquema.

Los esquemas de nivel de servicio contienen los tipos siguientes, utilizando elejemplo MXPERSON:v CreateMXPERSONv CreateMXPERSONResponsev DeleteMXPERSONv InvokeMXPERSONv InvokeMXPERSONResponsev publishMXPERSONv QueryMXPERSONv QueryMXPERSONResponsev SyncMXPERSONv UpdateMXPERSON

Entrada y salida de esquemas de servicio estándar:

Las aplicaciones proporcionan servicios estándar para realizar operacionesespecíficas sobre objetos y estos servicios estándar pueden exponer varios métodoscomo servicios web. Los servicios estándar sólo están disponibles para los métodosque están correctamente anotados dentro del servicio.

Los esquemas de nivel de servicio que se generan para los servicios estándar sóloson utilizados por las acciones correspondientes.

Estructura de objetos y entrada y salida de servicio empresarial:

La estructura de objeto contiene el contenido para el servicio de la estructura deobjeto y los esquemas del servicio empresarial. Un servicio de estructura de objetoda soporte a todas las operaciones definidas pero un servicio empresarial dasoporte simplemente a una operación específica. Se deben crear varios serviciosempresariales para dar soporte a múltiples operaciones incluso cuando hacenreferencia a la misma estructura de objeto y utilizan el mismo esquema.

La estructura de objeto y los esquemas de servicio empresarial identifican losiguiente:v Los tipos de entrada y salida de la estructura de objeto y de los servicios

empresarialesv La entrada y salida de un canal de invocaciónv La salida proporcionada por un canal de publicación

Todas las operaciones dan soporte a un tipo de salida:

392 Integración de datos con aplicaciones externas

Page 399: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

v La salida para las operaciones de creación, actualización, supresión ysincronización son las claves de objeto primario, el campo de ID interno y losvalores de autoclave.

v La salida de una operación de consulta es un conjunto de resultados deestructuras de objetos.

Los ejemplo siguientes, basados en la estructura de objeto MXPERSON, describenel contenido de la estructura de objeto y los servicios empresariales.

Elemento CreateMXPERSON

El elemento CreateMXPerson tiene las siguientes definiciones:v El elemento CreateMXPERSON es de tipo CreateMXPERSONType.v El CreateMXPERSONType tiene el elemento MXPERSONSet, que es de tipo

MXPERSONSetType. MXPERSONSet se deriva del esquema de la estructura deobjeto.

v MXPERSONSetType tiene elementos para todos los atributos configurados delobjeto PERSON y elementos para los objetos de nivel inferior definidos en laestructura de objeto.

Las definiciones de los siguientes elementos y tipos se pueden comparar con elelemento y tipo CreateMXPERSON:

Elemento Tipo

UpdateMXPERSON UpdateMXPERSONType

SyncMXPERSON SyncMXPERSONType

InvokeMXPERSON InvokeMXPERSONType

InvokeMXPERSONResponse InvokeMXPERSONResponseType

Crear elemento MXPERSONResponse

El elemento CreateMXPERSONResponse tiene las definiciones siguientes:v El elemento CreateMXPERSONResponse es de tipo

CreateMXPERSONResponseType.v CreateMXPERSONResponseType tiene el elemento PERSONMboKeySet, que es

de tipo PERSONMboKeySetType.v PERSONMboKeySetType tiene el elemento PERSON, que es de tipo

PERSONKeyType.v PERSONKeyType sólo contiene el atributo PERSONID del objeto PERSON, que

es la clave primaria del objeto PERSON.

Elemento PublishMXPERSON

El elemento PublishMXPERSON tiene las definiciones siguientes:v El elemento PublishMXPERSON es de tipo PublishMXPERSONType.v PublishMXPERSONType tiene el elemento MXPERSONSet, que es de tipo

MXPERSONSetType. MXPERSONSet se deriva del esquema de la estructura deobjeto.

v MXPERSONSetType tiene elementos para todos los atributos configurados delobjeto PERSON y elementos para los objetos de nivel inferior (PHONE, EMAILy SMS) definidos en la estructura de objeto.

Integración de datos con aplicaciones externas 393

Page 400: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

El elemento Publicar es como el elemento Crear pero utiliza un atributo adicional,event, que se define en PublishingContentGroup en el esquema de metadatos.

Elemento DeleteMXPERSON

El elemento DeleteMXPERSON tiene las siguientes definiciones:v El elemento DeleteMXPERSON es de tipo DeleteMXPERSONType.v DeleteMXPERSONType tiene el elemento MXPERSONDelete, que es de tipo

MXPERSONDeleteType.v MXPERSONDeleteType tiene elementos para todos los atributos configurados

del objeto PERSON. La supresión sólo da soporte al objeto de nivel superior(principal) de la estructura de objeto.

Elemento QueryMXPERSON

El elemento QueryMXPERSON tiene las definiciones siguientes:v El elemento QueryMXPERSON es de tipo QueryMXPERSONType.v QueryMXPERSONType tiene el elemento MXPERSONQuery, que es de tipo

MXPERSONQueryType.v MXPERSONQueryType tiene elementos para todos los atributos configurados

del objeto PERSON. La consulta sólo permite consultar el objeto de nivelsuperior (principal) de la estructura de objeto.

El elemento Query utiliza los atributos adicionales uniqueResults, maxItems yrsStart, que están definidos en QueryContentGroup en el esquema de metadatos.

Elemento QueryMXPERSONResponse

El elemento QueryMXPERSONResponse tiene las siguientes definiciones:v El elemento QueryMXPERSONResponse es de tipo

QueryMXPERSONResponseType.v QueryMXPERSONResponseType tiene el elemento MXPERSONSet, que es de

tipo MXPERSONSetType.v MXPERSONSetType tiene elementos para todos los atributos configurados del

objeto PERSON y elementos para los objetos hijo definidos en la estructura deobjeto (PHONE, EMAIL, XYZ y SMS).

v Aunque el elemento QueryMXPERSON restringe las consultas al objeto de nivelsuperior de la estructura de objeto (PERSON), la respuesta puede contenerobjetos de nivel inferior (PHONE, EMAIL y SMS).

El elemento Query Response utiliza los atributos adicionales rsStart, rsCount yTotal, que están definidos en ResponseContentGroup en el esquema de metadatos.

Conmutadores de colaboraciónLos conmutadores de colaboración utilizan un concepto de propiedad para ayudara los usuarios a gestionar la sincronización de datos entrantes entre lainfraestructura de integración y un sistema externo. Los conmutadores permitencontrolar subprocesos específicos dentro de una aplicación, según la propiedad deobjetos de datos diferentes dentro de una transacción.

El objeto principal de la estructura de objeto para la mayor parte de los datosmaestros y los objetos de integración de documento incluyen un atributoOWNERSYSID. De forma predeterminada, el procesamiento de integración

394 Integración de datos con aplicaciones externas

Page 401: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

entrante no especifica ningún valor en el campo OWNERSYSID y los serviciosempresariales se procesan de forma estándar.

Formato de los conmutadores de colaboraciónLos conmutadores de colaboración ofrecen una forma flexible y definida por elusuario de controlar el proceso de algunas transacciones de entrada eludiendo elproceso predeterminado para determinados tipos de transacciones. Losconmutadores de colaboración se encuentran en la tabla MXCOLLAB.

Elementos de los conmutadores

Todos los conmutadores de colaboración contienen cuatro elementos, tres de loscuales se combinan para crear una clave exclusiva. La tabla siguiente lista estoselementos; los elementos que componen la clave exclusiva aparecen marcados conun asterisco (*).

Elemento Campo MXCOLLAB correspondiente

ID de control de procesos* PCID

ID del sistema 1* OWNER1SYSID

ID del sistema 2* OWNER2SYSID

Valor de control de procesos PCVALUE

ID de control de procesos

El ID de control de procesos identifica un proceso empresarial en un aplicación,como la validación de una coincidencia de factura, la creación de una actualizaciónde OC global y la actualización de un recuento de inventario físico.

La tabla siguiente muestra el prefijo del ID de control de procesos e indica laaplicación a la que se aplica.

Prefijo del ID de control de procesos Aplicación correspondiente

INV Factura

ITM Item

IV Inventory

LT Labor

PO Orden de compra

PR Solicitud de compra

WO Orden de trabajo

Por ejemplo, los conmutadores de colaboración IVRC, IVRCY, e IVWO estánrelacionados con el proceso de inventario.

Valores de ID del sistema

El ID del sistema 1 y el ID del sistema 2 identifican los sistemas internos yexternos. Los valores de estos campos varían en función de la transacción y de losobjetos de la transacción. En general, el ID del sistema 1 identifica el sistema quecrea un objeto, y el ID del sistema 2 identifica el sistema que crea el registro que seactualiza o al que se hace referencia.

Integración de datos con aplicaciones externas 395

Page 402: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Valor de control de procesos

El valor de control de procesos identifica si los componentes empresariales eludenel proceso predeterminado para el tipo de transacción que indica el ID de controlde procesos, el ID del sistema 1 y el ID del sistema 2. El valor de control deprocesos puede ser 0 (falso) o 1 (verdadero) y puede tener los significadossiguientes:

Valor del control de procesos Descripción

0 Realiza el proceso predeterminado

1 Elude el proceso predeterminado

Recuperación de un conmutador de colaboraciónCada ID de control de proceso está asociado al menos con tres conmutadores decolaboración, los conmutadores predeterminados y cualquier conmutador que elusuario agregue. La infraestructura de integración proporciona la lógica quedetermina qué valores de ID del sistema se deben establecer al recuperar unconmutador de colaboración de la tabla MXCOLLAB.

Procedimiento1. La infraestructura de integración determina los valores para el ID del sistema

1 y el ID del sistema 2 según el ID de control de proceso en una transacciónentrante. Por ejemplo, si el ID de control del proceso es PRDEL, el ID delsistema 1 es THISMX y el ID del sistema 2 es el sistema propietario del PR.

2. Si el valor del ID del sistema 1 está en blanco, es nulo o es igual al valor de lafila MXSYSID de la tabla MAXVARS, se establece THISMX como ID delsistema 1.

3. Si el valor del ID del sistema 2 está en blanco, es nulo o es igual al valor de lafila MXSYSID de la tabla MAXVARS y el ID de control de proceso no esPRPAB, se establece THISMX como ID del sistema 2.

4. Si el ID de control de proceso es PRPAB, el valor del ID del sistema 2 seestablece como nulo después del paso 1 y el ID del sistema 2 se establece enEXT (si no existe una OC en blanco).

5. Si tanto el ID del sistema 1 como el ID del sistema 2 están establecidos ahoraen THISMX, se utiliza el procesamiento predeterminado y la lógica restante nose aplica.

6. Se comprueba la tabla MXCOLLAB para identificar si contiene un registro conla clave. Si el registro existe, el valor de control del proceso del registro indicasi hay que utilizar o pasar por alto el procesamiento estándar y la lógicarestante no se aplica.

7. Si no existe un registro coincidente en la base de datos, la clave se modifica dela manera siguiente:v Si el ID del sistema 1 ahora es igual a THISMX y el ID del sistema 2 no es

igual a THISMX, EXT se establece como valor para el ID del sistema 2.v Si el valor del ID del sistema 1 no es igual a THISMX y el ID del sistema 2

es igual a THISMX, EXT se establece como valor para el ID del sistema 1.8. Se vuelve a comprobar la tabla MXCOLLAB para identificar si contiene un

registro con la clave modificada. Si el registro existe, el valor de control delproceso del registro indica si hay que utilizar o pasar por alto elprocesamiento estándar y la lógica restante no se aplica.

9. EXT se establece como valor para el ID del sistema 1 y el ID del sistema 2.

396 Integración de datos con aplicaciones externas

Page 403: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

10. El registro con la clave modificada se recupera de la tabla MXCOLLAB. Esteregistro siempre existe, porque cada valor de control del proceso tiene unconmutador de colaboración predeterminado con ambos ID de sistemaestablecidos en EXT.

11. El valor de control del proceso del registro indica si hay que utilizar o pasarpor alto el procesamiento estándar.

Configuración de conmutadores de colaboraciónPuede utilizar conmutadores de colaboración predefinidos y puede configurarconmutadores nuevos si es necesario.

Visualización de conmutadores de colaboración:

Utilice cualquier herramienta de base de datos para ejecutar una consulta SQL paraver los valores en la tabla MXCOLLAB o generar un informe para ver sucontenido.

Procedimiento

1. Para ver los conmutadores de colaboración para un solo ID de control deproceso, utilice la consulta SQL siguiente:select pcid, owner1sysid, owner2sysid, pcvaluefrom mxcollabwhere pcid = ’PCID’order by pcid, owner1sysid, owner2sysid;

2. Para ver todos los conmutadores de colaboración, utilice la consulta SQLsiguiente:select pcid, owner1sysid, owner2sysid, pcvaluefrom mxcollaborder by pcid, owner1sysid, owner2sysid;

3. Para ver una descripción breve de los ID de control de proceso, utilice laconsulta SQL siguiente:select * from mxcollabref order by pcid;

Modificación de un conmutador de colaboración:

Los usuarios autorizados pueden modificar el valor de control de proceso de unconmutador de colaboración. No cambie el valor de PCID ni valores deOWNER1SYSID ni OWNER2SYSID en conmutadores de colaboración existentes.

Acerca de esta tarea

Los valores de la tabla MXCOLLAB distinguen entre mayúsculas y minúsculas.

Procedimiento

1. Utilice una herramienta de base de datos para conectarse a la base de datos deMaximo.

2. Utilice la sentencia SQL siguiente para cambiar el valor de control del procesoen un conmutador de colaboración:updatemxcollabset pcvalue = PCVALUEwhere pcid = 'PCID'and owner1sysid = 'OWNER1SYSID'and owner2sysid = 'OWNER2SYSID';

Integración de datos con aplicaciones externas 397

Page 404: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

3. Reinicie el servidor de aplicaciones para renovar los valores almacenados en lamemoria caché para los conmutadores de colaboración.

Adición de un conmutador de colaboración a la base de datos:

Los usuarios autorizados pueden añadir conmutadores de colaboración a la tablaMXCOLLAB. Los nuevos conmutadores deben utilizar un ID de control de procesoexistente pero pueden utilizar los ID del sistema nuevos.

Acerca de esta tarea

Solamente los conmutadores de colaboración predeterminados pueden utilizar losvalores THISMX y EXT en los campos de ID del sistema.

Procedimiento

1. Utilice una herramienta de base de datos para conectarse a la base de datos deMaximo.

2. Utilice la siguiente sentencia SQL para añadir un conmutador de colaboración:insert into mxcollab(pcid, owner1sysid, owner2sysid, pcvalue)values ('PCID', 'OWNER1SYSID', 'OWNER2SYSID', PCVALUE);

Ejemplo

Por ejemplo, puede configurar la infraestructura de integración de modo que seintegre con un sistema de finanzas de Oracle y otras aplicaciones. Cuando elsistema de finanzas de Oracle despacha el inventario propiedad del sistema, lainfraestructura de integración acepta la transacción y actualiza los balances deinventario y los costes en la base de datos de Maximo. Cuando otras aplicacionesdespachan inventario propiedad del sistema, la infraestructura de integraciónacepta la transacción pero no actualiza los balances de inventario ni los costes en labase de datos de Maximo.

Antes de modificar la tabla MXCOLLAB para que refleje estas condiciones, losconmutadores de colaboración INV tienen los valores siguientes:

ID de control deprocesos ID del sistema 1 ID del sistema 2

Valor de control deprocesos

INV THISMX EXT 1

INV EXT THISMX 0

INV EXT EXT 1

Para modificar la tabla MXCOLLAB, para dar soporte a este escenario:1. Para actualizar el conmutador de colaboración, utilice la sentencia SQL

siguiente:update

mxcollabset pcvalue = 1where pcid = ’INV’and owner1sysid = ’EXT’and owner2sysid = ’THISMX’;

Esta sentencia cambia el valor de los conmutadores de colaboración INV/EXT/ THISMX a 1 para ignorar el proceso de actualización normal.

398 Integración de datos con aplicaciones externas

Page 405: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

2. Utilice la siguiente sentencia SQL para añadir un conmutador de colaboraciónnuevo para transacciones desde el sistema de finanzas de Oracle:

insert into mxcollab(pcid, owner1sysid, owner2sysid, pcvalue)values (’INV’, ’ORC’, ’THISMX’, 0);

El nuevo conmutador de colaboración establece ORC como el ID del sistema yestablece el valor de control de proceso en 0, de modo que se aplica el procesonormal para el despacho de las transacciones recibidas desde la aplicación definanzas de Oracle. Si OWNERSYSID está en blanco, se utiliza el valor delcontrol de integración de DEFEXTSYS.

Después de realizar este procedimiento, los conmutadores de colaboración INVtienen los valores siguientes.

ID de control deprocesos ID del sistema 1 ID del sistema 2

Valor de control deprocesos

INV THISMX EXT 1

INV EXT THISMX 1

INV EXT EXT 1

INV ORC THISMX 0

Por ejemplo, cuando establece el valor del control de integración ISUIN en 1, lastransacciones de despacho se aceptan desde un sistema externo. El conmutador decolaboración INV controla la actualización del balance de inventario y el costerelacionado con los despachos. Puede ajustar el valor de este conmutador, si esnecesario, para ignorar dicho proceso de actualización.

El conmutador de colaboración INV/EXT/THISMX controla el proceso delinventario (donde el ID de control de proceso es igual a INV) que se hadespachado en el sistema externo (el ID del sistema 1 es igual a EXT) y espropiedad del sistema (el ID del sistema 2 es igual a THISMX).

Si el valor del conmutador de colaboración INV/EXT/THISMX es 0, se aplica elproceso predeterminado y se actualizan los valores de balance de inventario ycoste.

Si el valor del conmutador de colaboración INV/EXT/THISMX es 1, se ignora elproceso predeterminado y no se actualizan los valores de balance de inventario ycoste.

En el ejemplo, ISUIN acepta cualquier despacho en el sistema. El conmutador decolaboración INV/EXT/THISMX determina de qué modo el componenteempresarial de inventario procesa un tipo de despacho específico.

Conmutadores de colaboración predefinidosPuede utilizar los conmutadores de colaboración predeterminados y losconmutadores de colaboración predefinidos que se proporcionan.

Conmutadores de colaboración predeterminados:

Para cada ID de control de proceso se crean tres conmutadores de colaboraciónpredeterminados, con diferentes combinaciones de valores de ID del sistema. Losusuarios autorizados pueden crear conmutadores adicionales, según sea necesario.

Integración de datos con aplicaciones externas 399

Page 406: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Los conmutadores predeterminados utilizan diferentes combinaciones de losvalores siguientes en los campos ID del sistema 1 e ID del sistema 2:

Valor deID delsistema Significado

THISMX El sistema identificado en MAXVARS.MXSYSID

Los conmutadores de colaboración no utilizan el valor real en MXSYSID.

EXT Cualquier sistema distinto al identificado en MAXVARS.MXSYSID.

Los usuarios autorizados pueden actualizar solamente el valor de control deproceso en los conmutadores de colaboración predeterminados. Si se suprime unconmutador de colaboración predeterminado o modificar un campo distinto alvalor de control de proceso se puede producir una anomalía del sistema.

Conmutadores de colaboración de inventario:

Se proporcionan conmutadores de colaboración predefinidos para la aplicaciónInventario.

ID de control deprocesos Descripción Valor y acción

Derivación de IDde sistema 1

Derivación de IDde sistema 2

INV Actualizar inventario.

Se utiliza al creardespachos, devoluciones, orecepciones o ajustesvarios. El inventario debeexistir en este sistema.

0

1

Actualizarinventario.

No actualizarinventario.

INVTRANS oMATUSETRANS

INVENTORY

INVDEL Suprimir inventario.

Se utiliza al suprimirinventario de propiedadexterna. Si el valor es 1, lacombinaciónparte-almacén todavíaexistirá en las SC, OC,SDC y órdenes de trabajo,entre otras, que esténabiertas y relacionadas.Esto puede provocarproblemas alrecibir/aprobar estaslíneas.

0

1

Suprimir parte sipasa lasvalidaciones desistema normales.

Suprimirinventario sinninguna validacióny suprimir elregistroINVBALANCESpara la parte.

“THISMX” INVENTORY

INVISS Especificar despachos departes.

Se utiliza al despacharmaterial.

0

1

Permitir despachosde material para elinventario.

No permitirdespachos dematerial para elinventario.

TRANSUSMAT INVENTORY

400 Integración de datos con aplicaciones externas

Page 407: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

ID de control deprocesos Descripción Valor y acción

Derivación de IDde sistema 1

Derivación de IDde sistema 2

INVISSR Especificar devolucionesde despachos de partes.

Se utiliza al devolvermaterial.

0

1

Permitirdevoluciones dematerial.

No permitirdevoluciones dedespachos para elmaterial.

TRANSUSMAT INVENTORY

INVISSWO Actualizar coste real deorden de trabajo,INVCOST de equipo.

Se utiliza al procesardespachos o devoluciones.Se utiliza para manejar loscasos de sistema a sistemaen los que estasactualizaciones serealizarán por separado.

0

1

Actualizar coste dematerial real deorden de trabajo,INVCOST deequipo.

No actualizar costede material real deorden de trabajo,INVCOST deequipo.

TRANSUSMAT WORKORDER

INVPHY Especificar recuentosfísicos externos.

Se utiliza al crearrecuentos físicos.

0

1

Permitir recuentofísico para elinventario.

No permitirrecuento físicopara el inventario.

INVTRANS INVENTORY

INVTR Actualizar Desde almacénen una transferencia o larecepción de una OCinterna.

Se utiliza al creartransferencias o crearrecepciones para una OCinterna.

0

1

ActualizarINVBALANCESen Desde almacén.

No actualizarINVBALANCESen Desde almacén.

TRANSRECMAT LOCATIONS(almacén para latransferencia;distribuidor parala OC interna)

ITMDEL Suprimir partes.

Se utiliza al suprimirpartes de las cuales estesistema no es propietario.

Atención: si el valor es 1,la parte todavía existirá enlas SC, OC; SDC y órdenesde trabajo, etc. que esténasociadas y abiertas. Estopuede provocar problemasal recibir/aprobar estaslíneas.

0

1

Suprimir parte sipasa lasvalidaciones desistema normales.

Suprimir parte sinningunavalidación.Suprimir tambiénlos registrosINVENTORY,INVBALANCES eINVVENDOR dela parte.

“THISMX” ITEM

Conmutadores de colaboración de facturas:

Se proporcionan conmutadores de colaboración predefinidos para la aplicaciónFactura.

Integración de datos con aplicaciones externas 401

Page 408: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

ID de control deprocesos Descripción Valor y acción

Derivación de IDde sistema 1

Derivación de IDde sistema 2

IVILC Actualizar últimocoste de inventario.

Se utiliza al aprobarfacturas.

0

1

Actualizar últimocoste de inventario.

No actualizarúltimo coste deinventario.

INVOICE INVENTORY

IVINV Actualizar costemedio deinventario.

Se utiliza al aprobarfacturas.

0

1

Actualizar costemedio deinventario.

No actualizar costemedio deinventario.

INVOICE INVENTORY

IVMATCH Utilizar y validarcoincidencia defacturas.

Se utiliza al aprobarfacturas.

Si está establecidoen 1, IVPO tambiéndebería estarestablecido en 1.

0

1

Validarcoincidencia.

No validar ningunacoincidenciaproporcionada.

“THISMX” INVOICE

IVPO Actualizar OC yrecepciones.

Se utiliza al aprobarfacturas.

0

1

Actualizar estadode OC yrecepciones.

No actualizarestado de OC nirecepciones.

INVOICE PO

IVPRO Comprobar yprorrateardiferencias entrecabeceras y líneasde factura.

Se utiliza al aprobarfacturas.

0

1

Prorratear ladiferencia entre eltotal de línea ycabecera.

No prorratear ladiferencia entre eltotal de línea ycabecera.

“THISMX” INVOICE

IVRC Crear recepcionesde servicio paralíneas de factura sinreferencia de OC.

Se utiliza al aprobarfacturas quecontienen una líneasin una referenciade OC.

0

1

Generar recepcionesde servicio para laslíneas de facturaque no tienen unareferencia de OC.

No generar unarecepción deservicio para laslíneas de facturaque no tienen unareferencia de OC.

“THISMX” INVOICE

402 Integración de datos con aplicaciones externas

Page 409: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

ID de control deprocesos Descripción Valor y acción

Derivación de IDde sistema 1

Derivación de IDde sistema 2

IVRCY Crear recepcionesde servicio paralíneas de facturacon una referenciade OC yRECEIPTREQD =N.

Se utiliza al aprobarfacturas quecontienen una líneacon una referenciade OC, cuando laPOLINEcorrespondiente esun servicio yRECEIPTREQD =N.

0

1

Generar unarecepción deservicio para lalínea de factura.

No generar unarecepción deservicio para lalínea de factura.

INVOICE PO

IVTOL Realizar validaciónde comprobaciónde tolerancia defactura.

Se utiliza al aprobarfacturas.

0

1

Realizar todas lascomprobaciones detolerancia en lafactura.

No realizarcomprobaciones detolerancia en lafactura.

“THISMX” INVOICE

IVVLC Actualizar últimocoste dedistribuidor.

Se utiliza al aprobarfacturas.

0

1

Actualizar últimocoste dedistribuidor.

No actualizarúltimo coste dedistribuidor.

INVOICE INVVENDOR

IVWO Actualizar órdenesde trabajo.

Se utiliza al aprobaruna factura.

0

1

Actualizar orden detrabajo.

No actualizar ordende trabajo.

INVOICE WORKORDER

Conmutadores de colaboración de transacción de mano de obra:

Se proporcionan conmutadores de colaboración predefinidos para las transaccionesde mano de obra.

ID decontrol deprocesos Descripción Valor y acción

Derivaciónde ID delsistema 1

Derivaciónde ID delsistema 2

LTSRC Generar recepciones deservicio para OC.

Se utiliza al creartransacciones de manode obra o al cambiar elestado. La OC debeexistir en este sistema.

0

1

Permitir la definición del valor deLABTRANS. GENAPPRSERVRECEIPT en Y;configurable en Configuración deaplicación.

Dejar el valor de LABTRANS.GENAPPRSERVRECEIPT en N.

LABTRANS OC

Integración de datos con aplicaciones externas 403

Page 410: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Conmutadores de colaboración de órdenes de compra:

Se proporcionan conmutadores de colaboración predefinidos para las órdenes decompra.

ID decontrol deprocesos Descripción Valor y acción

Derivación deID de sistema1

Derivación deID de sistema2

PODEL Suprimir OC.

Se utiliza al suprimirOC. Utilíceloúnicamente al suprimiry, posteriormente, volvera agregar una OCdebido a modificaciones.

Borre las PRLINES quecontengan unareferencia a la OC. Si esnecesario, vuelva a abrirla solicitud de compra.Al volver a agregar unaOC, se volverán aestablecer las PRLINEs.

0

1

No suprimir OC.

Suprimir OC y PRLINES; nosuprimir POSTATUS.

“THISMX” PO

POINV No permitir inventarioexterno sin referenciapara OC internas.

Se utiliza al agregar oactualizar líneas de OCy cambiar el estado deOC internas.

0

1

Si la combinación parte-distribuidorno se encuentra en la tablaINVENTORY, error.

Si la combinación parte-distribuidorno se encuentra en la tablaINVENTORY (donde PO.VENDOR =LOCATIONS.LOCATION), ignorar elerror.

PO LOCATIONS,dondedistribuidor esel almacén

POIVM Crear información dedistribuidor deinventario para elinventario.

Se utiliza al aprobar OC.

0

1

Actualizar o crear registroINVVENDOR.

No crear registro INVVENDOR.

PO ITEM dePOLINE

POPR Actualizar estado de SC.

Se utiliza al copiarlíneas de SC a las OC,crear OC desde SC,volver a abrir SC.

0

1

Cambiar el estado de la solicitud decompra (cierre automático basado enel valor MAXVAR), o volver a abrircuando se suprima la POLINE con lareferencia de solicitud de compra, uotras instancias de abrir de nuevo.

No cambiar el estado de la SC.

PO PR

404 Integración de datos con aplicaciones externas

Page 411: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

ID decontrol deprocesos Descripción Valor y acción

Derivación deID de sistema1

Derivación deID de sistema2

POREL Crear actualizacionespara OC globales.

Se utiliza cuando alaprobar una SC y laslíneas de la SCzcontienen referenciasglobales, y cuando laactualización se creadirectamente desde unaOC sin SC.

0

1

Generar actualización de OC. (SiPRLINE. AGREEMENTPONUM no está enla OC, no generar actualización deOC).

No volver a generar actualizacionesde OC.

PR PO global

PORES Procesa las reservas demateriales.

Se utiliza al cambiar elestado de OC internas.

0

1

Generar reservas de inventario. Si lacombinación parte-distribuidor (en laque distribuidor es el almacéninterno) no se encuentra en la tablaINVENTORY, no generar reservas deOC. Esto puede ocurrir si POINV es0.

No generar reservas de inventario.

PO INVENTORY

Conmutadores de colaboración de solicitudes de compra:

Se proporcionan conmutadores de colaboración predefinidos para las solicitudes decompra.

ID de controlde procesos Descripción Valor y acción

Derivación deID de sistema1

Derivación deID de sistema2

PRDEL Suprimir SC.

Se utiliza alsuprimir SC.Utilíceloúnicamente alsuprimir y,posteriormente,volver aagregar una SCdebido amodificaciones.

Si WPMATERIAL oMRLINEcontienenreferencias a laSC, bórrelas. Sevolverán aestablecer alleer la SC.

0

1

No suprimir SC.

Suprimir SC y PRLINES; no suprimirPRSTATUS.

“THISMX” PR

Integración de datos con aplicaciones externas 405

Page 412: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

ID de controlde procesos Descripción Valor y acción

Derivación deID de sistema1

Derivación deID de sistema2

PRINV No permitirinventarioexterno sinreferencia enSC internas.

Se utilizacuando losalmacenes semantienen enun sistemaexterno. Laspartes seencuentran enel maestro deartículos en elsistema; elalmacén sedefine comoLOCATION;INVENTORYno se definepara lacombinaciónparte-almacénporque no espropiedad delsistema.

El propietariode la SC es elMXSYSID delsistema quecrea la SC. Lavalidación seproducecuando unacombinaciónparte-almacén(INVENTORY)se valida enPRLINE. ElOWNERSYSIDdel almacén secompara conOWNERSYSIDde la SC, y eldistintivodetermina si sepermite lacombinación.

0

1

Si la combinación parte-distribuidorno se encuentra en la tabla INVENTORY,error.

Si la combinación parte-distribuidor(distribuidor es el almacén interno) nose encuentra en la tabla INVENTORY,donde

PR.VENDOR = LOCATIONS.LOCATION,ignorar error. LOCATIONS debe existir;es decir, pasar la validación estándarpara la ubicación.

PR LOCATIONS,dondedistribuidor esel almacéninterno

406 Integración de datos con aplicaciones externas

Page 413: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

ID de controlde procesos Descripción Valor y acción

Derivación deID de sistema1

Derivación deID de sistema2

PRPAB No permitiracuerdos decompraexternos sinreferencia oglobales.

Se utiliza alagregar oactualizarlíneas de SC ycambiar elestado de SCinternas.

0

1

Si PRLINE.AGREEMENTPONUM no está enla OC, error.

Si PRLINE.AGREEMENTPONUM no está enla OC, ignorar el error.

PR “EXT”

Normalmenteserá a partir dela OC delacuerdo global,pero en estecaso la OCglobal noexiste.

Conmutadores de colaboración de recepción:

Se proporcionan conmutadores de colaboración predefinidos para las recepciones.

ID de control deprocesos Descripción Valor y acción

Derivación de IDde sistema 1

Derivación de IDde sistema 2

RC Especificarrecepciones deOC.

Se utiliza al crearrecepciones.

0

1

Permitir recepciónen OC.

No permitirrecepción en OC.

MATRECTRANSoSERVRECTRANS

PO

RCILC Actualizar últimocoste deinventario.

Se utiliza alaprobarrecepciones.

0

1

Actualizar últimocoste deinventario.

No actualizarúltimo coste deinventario.

TRANSRECMAT INVENTORY

RCINV Actualizarinventario.

Se utiliza alrecibir o aprobarrecepciones.

0

1

Actualizarinventario siexiste.

No actualizarinventario.

TRANSRECMAT INVENTORY

RCIV Generar facturaspara recepcionesde OC.

Se utiliza alaprobarrecepciones.

0

1

Generar factura siel valor dePayOnReceiptestá establecido.

No generarfactura aunque elvalor dePayOnReceiptesté establecido.

MATRECTRANSoSERVRECTRANS

PO

Integración de datos con aplicaciones externas 407

Page 414: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

ID de control deprocesos Descripción Valor y acción

Derivación de IDde sistema 1

Derivación de IDde sistema 2

RCPO Actualizar OCexterna.

Se utiliza alaprobar unarecepción.

0

1

Actualizar OC.

No actualizar OC.

MATRECTRANSoSERVRECTRANS

PO

RCR Especificardevolución derecepción de OC.

Se utiliza al crearuna devoluciónde recepción.

0

1

Permitirdevoluciones derecepción para laOC.

No permitirdevoluciones derecepción para laOC.

MATRECTRANSoSERVRECTRANS

PO

RCVLC Actualizar últimocoste dedistribuidor.

Se utiliza alaprobar unarecepción orecibir una líneade OC.

0

1

Actualizar últimocoste dedistribuidor.

No actualizarúltimo coste dedistribuidor.

TRANSRECMAT INVVENDOR

RCWO Actualizarórdenes detrabajo.

Se utiliza alaprobarrecepciones.

0

1

Actualizar ordende trabajo.

No actualizarorden de trabajo.

MATRECTRANSoSERVRECTRANS

WORKORDER

Conmutadores de colaboración de las órdenes de trabajo:

Se proporcionan conmutadores de colaboración predefinidos para las órdenes detrabajo.

ID de control deprocesos Descripción Valor y acción

Derivación de IDde sistema 1

Derivación de IDde sistema 2

WORES Procesa lasreservas demateriales.

Se utiliza cuandocambia el estadode una orden detrabajo. Debeexistir uninventario en estesistema.

0

1

Genera unareserva deinventario.

No genera unareserva deinventario.

WORKORDER INVENTORY

408 Integración de datos con aplicaciones externas

Page 415: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Avisos

Esta información se ha desarrollado para productos y servicios ofrecidos enEstados Unidos.

Puede que IBM no ofrezca en otros países los productos, servicios o característicasque se explican en este documento. Consulte a su representante local de IBM lainformación sobre los productos y servicios disponibles actualmente en su área.Cualquier referencia a un producto, programa o servicio de IBM no pretendeindicar o implicar que sólo se pueda utilizar ese producto, programa o servicio deIBM. En su lugar, se puede utilizar cualquier producto, programa o serviciofuncionalmente equivalente que no infrinja los derechos de propiedad intelectualde IBM. Sin embargo, es responsabilidad del usuario evaluar y verificar elfuncionamiento de cualquier producto, programa o servicio que no sea de IBM.

Puede que IBM tenga patentes o solicitudes de patentes pendientes relacionadascon el tema principal que se describe en este documento. El presente documentono le confiere ningún derecho sobre estas patentes. Puede enviar sus consultassobre licencias, por escrito, a:

IBM Director of LicensingIBM CorporationNorth Castle DriveArmonk, NY 10504-1785EE.UU.

Para consultas sobre licencias relativas a información de doble byte (DBCS),póngase en contacto con el Departamento de propiedad intelectual de IBM de supaís o envíe las consultas, por escrito, a:

Intellectual Property LicensingLegal and Intellectual Property LawIBM Japan Ltd.1623-14, Shimotsuruma, Yamato-shiKanagawa 242-8502, Japón

El párrafo siguiente no se aplica al Reino Unido ni a ningún otro país donde estasdisposiciones sean incompatibles con la legislación local: INTERNATIONALBUSINESS MACHINES CORPORATION PROPORCIONA ESTA PUBLICACIÓNTAL CUAL, SIN NINGÚN TIPO DE GARANTÍA, EXPLÍCITAS NI IMPLÍCITAS,INCLUYENDO PERO NO LIMITÁNDOSE A ELLAS, LAS GARANTÍASIMPLÍCITAS DE NO VULNERACIÓN, COMERCIALIZACIÓN O IDONEIDADPARA UN PROPÓSITO DETERMINADO. Algunos países no contemplan laexclusión de garantías, ni implícitas ni explícitas, en determinadas transacciones,por lo que cabe la posibilidad de que esta declaración no se aplique en su caso.

Esta información puede incluir imprecisiones técnicas o errores tipográficos.Periódicamente se efectúan cambios en la información aquí contenida; dichoscambios se incorporarán a las nuevas ediciones de la publicación. IBM puederealizar en cualquier momento mejoras o cambios en los productos o programasdescritos en esta publicación sin notificación previa.

© Copyright IBM Corp. 2008, 2014 409

Page 416: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Las referencias contenidas en esta información a sitios web no IBM sólo seproporcionan por comodidad del usuario y de ningún modo constituyen unrespaldo de dichos sitios web. Los materiales de estos sitios web no forman partede los materiales para este producto IBM, y la utilización de dichos sitios web es acuenta y riesgo del usuario.

IBM puede utilizar o distribuir la información que proporcione el usuario decualquier manera que considere adecuada sin incurrir por ello en ningunaobligación con el usuario.

Los titulares de licencias de este programa que deseen obtener información sobre elmismo con el fin de permitir: (i) el intercambio de información entre programascreados independientemente y otros programas (incluido éste) y (ii) el uso mutuode la información intercambiada, deberán ponerse en contacto con:

IBM Corporation2Z4A/10111400 Burnet RoadAustin, TX 78758 EE.UU.

Esta información puede estar disponible, sujeta a los términos y condicionespertinentes, e incluir en algunos casos el pago de una cantidad.

El programa bajo licencia que se describe en este documento y todo el materialbajo licencia disponible para él lo proporciona IBM, de acuerdo con los términosdel contrato con el cliente de IBM, del contrato internacional de programas bajolicencia de IBM o de cualquier acuerdo equivalente entre ambos.

La información relacionada con productos que no son de IBM se ha obtenido delos proveedores de dichos productos, de sus anuncios publicados o de otrasfuentes de disponibilidad pública. IBM no ha comprobado estos productos y nopuede confirmar la precisión en cuanto a rendimiento, compatibilidad u otrosaspectos relacionados con los productos que no son de IBM. Las preguntas sobrelas prestaciones de los productos no IBM se deberán dirigir a los proveedores deestos productos.

Esta información contiene ejemplos de datos e informes utilizados en operacionescomerciales diarias. Para ilustrarlos lo mejor posible, los ejemplos pueden incluirnombres de personas, compañías, marcas y productos. Todos estos nombres sonficticios y cualquier parecido con nombres y direcciones utilizados por empresascomerciales reales es mera coincidencia.

LICENCIA DE COPYRIGHT:

Esta información contiene programas de aplicaciones en idioma de origen, queilustran técnicas de programación en diversas plataformas operativas. El usuariopuede copiar, modificar y distribuir estos programas de ejemplo como lo creaconveniente sin tener que realizar ningún pago a IBM, con fines de desarrollo,utilización, marketing o distribución de programas de aplicaciones conforme a lainterfaz de programación de aplicaciones para la plataforma operativa en la que sehan escrito los programas de ejemplo. Estos ejemplos no se han comprobado deforma exhaustiva bajo todas las condiciones. Por lo tanto, IBM, no puedegarantizar ni ofrecer fiabilidad, ni prestar servicios de estos programas. Losejemplos de programa se proporcionan "TAL CUAL", sin garantía de ningún tipo.IBM no se responsabiliza de ningún daño derivado del uso de estos ejemplos deprograma.

410 Integración de datos con aplicaciones externas

Page 417: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

Marcas registradasIBM, el logotipo de IBM e ibm.com son marcas registradas o marcas comercialesregistradas de International Business Machines Corp. en varias jurisdicciones detodo el mundo. Otros nombres de productos y servicios pueden ser marcasregistradas de IBM u otras compañías. Hay una lista actualizada de marcasregistradas de IBM disponible en la web en “Información de Copyright y marcasregistradas” en www.ibm.com/legal/copytrade.shtml.

Java y todas las marcas registradas y logotipos basados en Java son marcascomerciales o marcas registradas de Oracle y/o sus filiales.

Linux es una marca registrada de Linus Torvalds en los Estados Unidos y/o enotros países.

Microsoft, Windows y el logotipo de Windows son marcas registradas de MicrosoftCorporation en Estados Unidos, otros países o en ambos.

UNIX es una marca registrada de The Open Group en los Estados Unidos y/o enotros países.

Avisos 411

Page 418: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

412 Integración de datos con aplicaciones externas

Page 419: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas
Page 420: Integraci.n de datos con aplicaciones externasprotocolo de transferencia de hipertexto (HTTP) y Java Message Service (JMS) v Soporte para distintos formatos de datos, incluidos tablas

����

Impreso en España