Informatica (Versión 9.5.1) Guía del usuario de Data Transformation

Informatica (Versión 9.5.1) Guía del usuario de Data Transformation Informatica Guía del usuario de Data Transformation Versión 9.5.1 Diciembre 2012 Copyright (c) 2001-2012 Informatica Corporation. Todos los derechos reservados. Este software y esta documentación contienen información privada de Informatica Corporation y se facilitan bajo un acuerdo de licencia que incluye restricciones sobre el uso y la divulgación y también están protegidos por leyes de copyright. Está prohibida la ingeniería inversa del software. Ninguna parte de este documento puede ser reproducida o transmitida de cualquier forma o manera (electrónica, fotocopia, grabación o mediante otros métodos) sin el consentimiento previo de Informatica Corporation. Este Software puede estar protegido por Patentes de los Estados Unidos y/o patentes internacionales y otras patentes pendientes. El uso, la duplicación o la divulgación del software por parte del gobierno de los Estados Unidos están sujetos a las restricciones puntualizadas en el acuerdo de licencia de software vigente y según se establece en la reglamentación DFARS 227.7202-1(a) and 227.7702-3(a) (1995), DFARS 252.227-7013©(1)(ii) (OCT 1988), FAR 12.212(a) (1995), FAR 52.227-19 o FAR 52.227-14 (ALT III), según proceda. La información contenida en este producto o documentación está sujeta a cambios sin previo aviso. Si encuentra algún problema en este producto o documentación, infórmenos por escrito. Informatica, Informatica Platform, Informatica Data Services, PowerCenter, PowerCenterRT, PowerCenter Connect, PowerCenter Data Analyzer, PowerExchange, PowerMart, Metadata Manager, Informatica Data Quality, Informatica Data Explorer, Informatica B2B Data Transformation, Informatica B2B Data Exchange Informatica On Demand, Informatica Identity Resolution, Informatica Application Information Lifecycle Management, Informatica Complex Event Processing, Ultra Messaging e Informatica Master Data Management son marcas comerciales o marcas comerciales registradas de Informatica Corporation en Estados Unidos y en las jurisdicciones de todo el mundo. Los demás nombres de productos y empresas pueden ser nombres o marcas comerciales de sus respectivos titulares. Hay fragmentos de este software y/o documentación que están sujetos a copyright perteneciente a terceros, incluido, entre otros: Copyright DataDirect Technologies. Todos los derechos reservados. Copyright © Sun Microsystems. Todos los derechos reservados. Copyright © RSA Security Inc. Todos los derechos reservados. Copyright © Ordinal Technology Corp. Todos los derechos reservados.Copyright © Aandacht c.v. Todos los derechos reservados. Copyright Genivia, Inc. Todos los derechos reservados. Copyright Isomorphic Software. Todos los derechos reservados. Copyright © Meta Integration Technology, Inc. Todos los derechos reservados. Copyright © Intalio. Todos los derechos reservados. Copyright © Oracle. Todos los derechos reservados. Copyright © Adobe Systems Incorporated. Todos los derechos reservados. Copyright © DataArt, Inc. Todos los derechos reservados. Copyright © ComponentSource. Todos los derechos reservados. Copyright © Microsoft Corporation. Todos los derechos reservados. Copyright © Rogue Wave Software, Inc. Todos los derechos reservados. Copyright © Teradata Corporation. Todos los derechos reservados. Copyright © Yahoo! Inc. Todos los derechos reservados. Copyright © Glyph & Cog, LLC. Todos los derechos reservados. Copyright © Thinkmap, Inc. Todos los derechos reservados. Copyright © Clearpace Software Limited. Todos los derechos reservados. Copyright © Information Builders, Inc. Todos los derechos reservados. Copyright © OSS Nokalva, Inc. Todos los derechos reservados. Copyright Edifecs, Inc. Todos los derechos reservados. Copyright Cleo Communications, Inc. Todos los derechos reservados. Copyright © International Organization for Standardization 1986. Todos los derechos reservados. Copyright © ej-technologies GmbH. Todos los derechos reservados. Copyright © Jaspersoft Corporation. Todos los derechos reservados. Copyright © International Business Machines Corporation. Todos los derechos reservados. Copyright © yWorks GmbH. Todos los derechos reservados. Copyright © Lucent Technologies. Todos los derechos reservados. Copyright © University of Toronto. Todos los derechos reservados. Copyright © Daniel Veillard. Todos los derechos reservados. Copyright © Unicode, Inc. Copyright IBM Corp. Todos los derechos reservados. Copyright © MicroQuill Software Publishing, Inc. Todos los derechos reservados. Copyright © PassMark Software Pty Ltd. Todos los derechos reservados. Copyright © LogiXML, Inc. Todos los derechos reservados. Copyright © 2003-2010 Lorenzi Davide. Todos los derechos reservados. Copyright © Red Hat, Inc. Todos los derechos reservados. Copyright © The Board of Trustees of the Leland Stanford Junior University. Todos los derechos reservados. Copyright © EMC Corporation. Todos los derechos reservados. Copyright © Flexera Software. Todos los derechos reservados. Este producto incluye software desarrollado por la Apache Software Foundation (http://www.apache.org/) y otro software protegido por la licencia Apache License, versión 2.0 (la "Licencia"). Puede obtener una copia de la Licencia en la dirección http://www.apache.org/licenses/LICENSE-2.0. A no ser que lo requiera la ley vigente o se acuerde por escrito, el software distribuido bajo la Licencia se distribuye "TAL CUAL", SIN GARANTÍAS NI CONDICIONES DE NINGÚN TIPO, ya sean expresas o implícitas. Consulte la Licencia para conocer los permisos y las limitaciones que rigen para cada idioma específico según la Licencia. Este producto incluye software desarrollado por Mozilla (http://www.mozilla.org/), copyright del software de The JBoss Group, LLC, todos los derechos reservados; copyright del software © 1999-2006 de Bruno Lowagie y Paulo Soares y otro software protegido con licencia por el acuerdo GNU Lesser General Public License Agreement, que se puede encontrar en la dirección http://www.gnu.org/licenses/lgpl.html. Los materiales se facilitan gratuitamente por parte de Informatica, "tal cual", sin garantía de ningún tipo, ya sea expresa o implícita, incluidas, entre otras, las garantías implícitas de adecuación para un propósito determinado y de validez para el comercio. El producto incluye software ACE(TM) y TAO(TM) con copyright de Douglas C. Schmidt y su grupo de investigación de la Washington University, University of California, Irvine y Vanderbilt University, Copyright (©) 1993-2006, todos los derechos reservados. Este producto incluye software desarrollado por el OpenSSL Project para uso en el OpenSSL Toolkit (copyright The OpenSSL Project. Todos los derechos reservados) y la redistribución de este software está sujeta a los términos especificados en http://www.openssl.org y http://www.openssl.org/source/license.html. Este producto incluye software Curl con Copyright 1996-2007, Daniel Stenberg, . Todos los derechos reservados. Los permisos y las limitaciones relativos a este software están sujetos a los términos disponibles en la dirección http://curl.haxx.se/docs/copyright.html. La autorización para utilizar, copiar, modificar y distribuir este software para cualquier propósito con o sin tasas se concede por el presente, siempre que el aviso de copyright anterior y este aviso de permiso aparezcan en todas las copias. El producto incluye copyright de software 2001-2005 (©) MetaStuff, Ltd. Todos los derechos reservados. Los permisos y las limitaciones relativos a este software están sujetos a los términos disponibles en la dirección http://www.dom4j.org/license.html. El producto incluye copyright de software © 2004-2007, The Dojo Foundation. Todos los derechos reservados. Los permisos y las limitaciones relativos a este software están sujetos a los términos disponibles en la dirección http://dojotoolkit.org/license. Este producto incluye software ICU con copyright de International Business Machines Corporation y otros. Todos los derechos reservados. Los permisos y las limitaciones relativos a este software están sujetos a los términos disponibles en la dirección http://source.icu-project.org/repos/icu/icu/trunk/license.html. Este producto incluye copyright de software © 1996-2006 Per Bothner. Todos los derechos reservados. Su derecho a utilizar estos materiales está establecido en la licencia que puede encontrarse en la dirección http://www.gnu.org/software/kawa/Software-License.html. Este producto incluye software OSSP UUID con Copyright © 2002 Ralf S. Engelschall, Copyright © 2002 The OSSP Project Copyright © 2002 Cable & Wireless Deutschland. Los permisos y las limitaciones relativas a este software están sujetos a los términos disponibles en la dirección http://www.opensource.org/licenses/mit-license.php. Este producto incluye software desarrollado por Boost (http://www.boost.org/) o protegido por la licencia de software de Boost. Los permisos y las limitaciones relativos a este software están sujetos a los términos disponibles en la dirección http://www.boost.org/LICENSE_1_0.txt. Este producto incluye copyright de software © 1997-2007 University of Cambridge. Los permisos y las limitaciones relativos a este software están sujetos a los términos disponibles en la dirección http://www.pcre.org/license.txt. Este producto incluye copyright de software © 2007 The Eclipse Foundation. Todos los derechos reservados. Los permisos y las limitaciones relativos a este software están sujetos a los términos especificados en http://www.eclipse.org/org/documents/epl-v10.php. Este producto incluye software protegido por licencia según los términos especificados en http://www.tcl.tk/software/tcltk/license.html, http://www.bosrup.com/web/overlib/? License, http://www.stlport.org/doc/ license.html, http://www.asm.ow2.org/license.html, http://www.cryptix.org/LICENSE.TXT, http://hsqldb.org/web/hsqlLicense.html, http:// httpunit.sourceforge.net/doc/ license.html, http://jung.sourceforge.net/license.txt , http://www.gzip.org/zlib/zlib_license.html, http://www.openldap.org/software/release/ license.html, http://www.libssh2.org, http://slf4j.org/license.html, http://www.sente.ch/software/OpenSourceLicense.html, http://fusesource.com/downloads/license-agreements/ fuse-message-broker-v-5-3- license-agreement; http://antlr.org/license.html; http://aopalliance.sourceforge.net/; http://www.bouncycastle.org/licence.html; http:// www.jgraph.com/jgraphdownload.html; http://www.jcraft.com/jsch/LICENSE.txt. http://jotm.objectweb.org/bsd_license.html; . http://www.w3.org/Consortium/Legal/2002/ copyright-software-20021231; http://www.slf4j.org/license.html; http://developer.apple.com/library/mac/#samplecode/HelpHook/Listings/HelpHook_java.html; http:// nanoxml.sourceforge.net/orig/copyright.html; http://www.json.org/license.html; http://forge.ow2.org/projects/javaservice/, http://www.postgresql.org/about/licence.html, http:// www.sqlite.org/copyright.html, http://www.tcl.tk/software/tcltk/license.html, http://www.jaxen.org/faq.html, http://www.jdom.org/docs/faq.html, http://www.slf4j.org/license.html; http://www.iodbc.org/dataspace/iodbc/wiki/iODBC/License; http://www.keplerproject.org/md5/license.html; http://www.toedter.com/en/jcalendar/license.html; http:// www.edankert.com/bounce/index.html; http://www.net-snmp.org/about/license.html; http://www.openmdx.org/#FAQ; http://www.php.net/license/3_01.txt; http://srp.stanford.edu/ license.txt; http://www.schneier.com/blowfish.html; http://www.jmock.org/license.html; http://xsom.java.net; y http://benalman.com/about/license/. Este producto incluye software protegido por licencia conforme a las licencias Academic Free License (http://www.opensource.org/licenses/afl-3.0.php), Common Development and Distribution License (http://www.opensource.org/licenses/cddl1.php), Common Public License (http://www.opensource.org/licenses/cpl1.0.php), Sun Binary Code License Agreement Supplemental License Terms, BSD License (http:// www.opensource.org/licenses/bsd-license.php), MIT License (http://www.opensource.org/licenses/mitlicense.php) y Artistic License (http://www.opensource.org/licenses/artistic-license-1.0). Este producto incluye copyright de software © 2003-2006 Joe WaInes, 2006-2007 XStream Committers. Todos los derechos reservados. Los permisos y las limitaciones relativos a este software están sujetos a los términos disponibles en la dirección http://xstream.codehaus.org/license.html. Este producto incluye software desarrollado por Indiana University Extreme! Lab. Para obtener más información, visite http://www.extreme.indiana.edu/. Este producto incluye software desarrollado por Andrew Kachites Mccallum. "MALLET: A Machine Learning for Language Toolkit." http://mallet.cs.umass.edu (2002). Este Software está protegido por los números de patentes de los Estados Unidos 5 794 246, 6 014 670, 6 016 501, 6 029 178, 6 032 158, 6 035 307, 6 044 374, 6 092 086, 6 208 990, 6 339 775, 6 640 226, 6 789 096, 6 820 077, 6 823 373, 6 850 947, 6 895 471, 7 117 215, 7 162 643, 7 243 110, 7 254 590, 7 281 001, 7 421 458, 7 496 588, 7 523 121, 7 584 422, 7 676 516, 7 720 842, 7 721 270 y 7 774 791, patentes internacionales y otras patentes pendientes. EXENCIÓN DE RESPONSABILIDAD: Informatica Corporation proporciona esta documentación "tal cual" sin garantía de ningún tipo, ya sea expresa o implícita, incluidas, entre otras, las garantías implícitas de no incumplimiento, de adecuación para un propósito determinado y de validez para el comercio. Informatica Corporation no garantiza que este software o esta documentación estén libres de errores. La información proporcionada en este software o en esta documentación puede contener imprecisiones técnicas o errores tipográficos. La información de este software y esta documentación está sujeta a cambios en cualquier momento sin previo aviso. AVISOS Este producto de Informatica (el “Software”) incluye ciertos controladores (los “Controladores DataDirect”) de DataDirect Technologies, una empresa operativa de Progress Software Corporation (“DataDirect”) que están sujetos a los términos y condiciones siguientes: 1. LOS CONTROLADORES DATADIRECT SE PROPORCIONAN "TAL CUAL" SIN GARANTÍA DE NINGÚN TIPO, YA SEA EXPRESA O IMPLÍCITA, INCLUIDAS, ENTRE OTRAS, LAS GARANTÍAS IMPLÍCITAS DE NO INCUMPLIMIENTO, DE ADECUACIÓN PARA UN PROPÓSITO DETERMINADO Y DE VALIDEZ PARA EL COMERCIO. 2. EN NINGÚN CASO DATADIRECT NI SUS PROVEEDORES DE TERCEROS SERÁN RESPONSABLES ANTE EL USUARIO FINAL POR NINGÚN DAÑO DIRECTO, INDIRECTO, FORTUITO, ESPECIAL, CONSECUENTE, NI DE NINGÚN OTRO TIPO, RESULTANTE DEL USO DE LOS CONTROLADORES ODBC, INDEPENDIENTEMENTE DE SI SE HA AVISADO O NO DE LOS POSIBLES DAÑOS POR ADELANTADO. ESTAS LIMITACIONES SE APLICAN A TODAS LAS DEMANDAS JUDICIALES, INCLUIDAS, ENTRE OTRAS, AQUELLAS POR INCUMPLIMIENTO DE CONTRATO, INCUMPLIMIENTO DE LA GARANTÍA, NEGLIGENCIA, RESPONSABILIDAD ESTRICTA, TERGIVERSACIÓN Y OTROS AGRAVIOS. Número de parte: DT-DPT-95100-0001 Tabla de contenido Prefacio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii Documentación de Informatica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii Portal de atención al cliente de Informatica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii Documentación de Informatica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii Sitio web de Informatica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii Biblioteca de asistencia de Informatica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv Base de conocimiento de Informatica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv Base de conocimiento multimedia de Informatica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv Servicio internacional de atención al cliente de Informatica. . . . . . . . . . . . . . . . . . . . . . . . . . . xiv Capítulo 1: Introducción a Data Transformation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Resumen de Data Transformation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Arquitectura del proceso de Data Transformation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Componentes de Data Transformation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Opciones de Data Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Capítulo 2: Transformación del Procesador de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Resumen de la transformación del Procesador de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Vistas de la transformación del Procesador de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Puertos de la transformación del Procesador de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Puertos de entrada de la transformación del Procesador de datos. . . . . . . . . . . . . . . . . . . . . . . 7 Puertos de salida de la transformación del Procesador de datos. . . . . . . . . . . . . . . . . . . . . . . . 8 Salida relacional. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Puertos de transferencia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Componente de inicio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Referencias de esquema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Configuración de la transformación del Procesador de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Codificación de caracteres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Reglas y directrices de codificación de caracteres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Configuración de salida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Configuración de procesamiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Configuración de salida XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Eventos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Tipos de evento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Vista Eventos del procesador de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Registros. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Registro de eventos en tiempo de diseño. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Registro de eventos de tiempo de ejecución. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Tabla de contenido i Cómo visualizar un registro de eventos en la vista Eventos del procesador de datos. . . . . . . . . . . 22 Registro de usuario. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Desarrollo de la transformación del Procesador de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Paso 1. Crear la transformación del Procesador de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Paso 2. Seleccionar los objetos de esquema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Paso 3. Crear objetos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Paso 4. Crear los puertos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Paso 5. Probar la transformación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Importación y exportación de la transformación del Procesador de datos. . . . . . . . . . . . . . . . . . . . . 25 Exporting the Data Processor Transformation as a Service. . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Importar un servicio de Data Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Capítulo 3: XMap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Resumen de XMap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Esquemas de XMap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Instrucciones de asignación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Tipos de instrucción de asignación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Campos de instrucción de asignación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Instrucciones de grupo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Instrucciones de grupo de repetición. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Instrucciones de enrutador, opción, y predeterminadas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Ejecutar instrucciones de XMap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Crear instrucciones de asignación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Expresiones de XPath. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Predicados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Editor de expresiones XPath. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Funciones del Procesador de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Ejemplo de expresiones de XPath. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Crear expresiones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Variables de XMap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Crear una variable en el editor de XMap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Ejemplo de XMap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Datos de entrada XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Jerarquías XML de entrada y salida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Instrucciones de asignación en el ejemplo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 EmployeeToWorker XMap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Capítulo 4: Interfaz de la línea de comandos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Resumen de la interfaz de línea de comandos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 CM_console. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Capítulo 5: Scripts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Resumen de scripts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 iiTabla de contenido Componentes de script. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Tipos de componente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Nombres de componente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Añadir un componente global. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Añadir un componente local. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Propiedades de componente de script. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Propiedades simples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Propiedades avanzadas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Valores de propiedades de componente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Componentes de inicio de script. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Configuración del componente de inicio con el editor de IntelliScript. . . . . . . . . . . . . . . . . . . . . 52 Orígenes de ejemplo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Resaltado de origen de ejemplo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Cómo configurar un origen de ejemplo en el editor de IntelliScript. . . . . . . . . . . . . . . . . . . . . . . 53 Cómo visualizar un origen de ejemplo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Editor de IntelliScript. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Scripts de ejemplo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Importar un script de ejemplo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Capítulo 6: Analizadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Resumen de analizadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Analizadores independientes de plataforma. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Marcadores de nueva línea. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Rutas de acceso de archivos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Referencia de componentes de analizador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Analizador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Capítulo 7: Puertos de script. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Resumen de puertos de script. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Referencia de componentes de puerto de script. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 AdditionalInputPort. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 AdditionalOutputPort. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 DocList. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 FileSearch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 InputPort. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 LocalFile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 OutputPort. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Texto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 URL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Capítulo 8: Procesadores de documentos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Resumen de procesadores de documentos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Definir un procesador de documentos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Tabla de contenido iii Visualización de la salida del procesador de documentos. . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Referencia de componentes de procesador de documentos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 AFPToXML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 AsnToXml. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 ExcelToDataXml. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 ExcelToXml. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 ExcelToXml_03_07_10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 ExpandFrameSet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 ExternalJavaPreProcessor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 ExternalPreProcessor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 HIPAAValidator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 PdfFormToXml_1_00. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 PdfToTxt_3_02. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 PdfToTxt_4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 PowerpointToTextML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 ProcessByTransformers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 ProcessorPipeline. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 RtfToTextML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 WordToXml. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 XmlToDocument_372. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 XmlToExcel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Esquema XML TextML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Editor de configuración de la tablas PdfToTxt_4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Opciones del editor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Ejemplo de conversión de PDF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Capítulo 9: Formatos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Resumen de formatos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Propiedades de formato estándar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Referencia de componentes de formato. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 BinaryFormat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 CustomFormat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 HtmlFormat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 RtfFormat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 TextFormat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 XmlFormat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Referencia de componentes de delimitadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 CommaDelimited. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Delimitador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 DelimiterHierarchy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 EnclosingDelimiters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 HL7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Positional. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 ivTabla de contenido PostScript. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 RTF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 SGML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 SpaceDelimited. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 TabDelimited. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Referencia de componentes de preprocesador de formatos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 HtmlProcessor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 RtfProcessor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Capítulo 10: Contenedores de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Resumen de contenedores de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Esquemas XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Acerca de los esquemas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Cómo crear esquemas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Codificación de esquema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Archivos de esquema incluidos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Espacios de nombres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Contenido combinado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Características del esquema incompatibles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Precisión de datos numéricos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Cómo utilizar un esquema para asignar anclajes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Representación de IntelliScript de contenedores de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Asignar contenido combinado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Asignar tipos de XSI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Generar un XML válido. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Función de esquemas en el análisis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Función de esquemas en la serialización y la asignación. . . . . . . . . . . . . . . . . . . . . . . . . . . .101 Variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Cómo crear una variable definida por el usuario. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Variables del sistema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Asignar anclajes a variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Cómo utilizar variables en acciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Inicializar variables en tiempo de ejecución. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Referencia de componentes de variable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Variable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Contenedores de datos de varias ocurrencias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106 Atributos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .107 Indexar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .107 Destruir las ocurrencias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .107 Capítulo 11: Anclajes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Resumen de anclajes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Anclajes Marker y Content. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Tabla de contenido v Otros tipos de anclaje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Cómo los anclajes y los delimitadores funcionan juntos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 Asignar anclajes de contenido a contenedores de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 Asignar a variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Asignar a contenedores de datos de varias ocurrencias. . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Asignar a elementos de contenido combinado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Definir anclajes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Dónde definir anclajes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Secuencia de anclajes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Cómo añadir un anclaje Marker o Content. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Cómo definir un anclaje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Propiedades de anclaje estándar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Cómo un analizador busca anclajes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 Fases de búsqueda. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 Ámbito de búsqueda y criterios de búsqueda. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 Ajustar la fase de búsqueda. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Ajustar el ámbito de búsqueda. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Ajustar los criterios de búsqueda. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Cómo utilizar los tipos de datos para reducir los criterios de búsqueda. . . . . . . . . . . . . . . . . . . 119 Anclajes que contienen anclajes anidados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 Referencia de componentes de anclaje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 Alternatives. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Content. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 DelimitedSections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 EmbeddedParser. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 EnclosedGroup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 ExtractRecord. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 FindReplaceAnchor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Group. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Marker. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 RepeatingGroup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 StructureDefinition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 Referencia de componentes de Searcher. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 AttributeSearch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 LearnByExample. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 NewlineSearch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 OffsetSearch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 PatternSearch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 SegmentSearch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 TextSearch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 TypeSearch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 Referencia de subcomponentes de anclaje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 AllStructure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 viTabla de contenido AllStructureLocal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 ChoiceStructure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 ChoiceStructureLocal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 Conectar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 EmbeddedStructure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 RecordStructure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 RecordStructureLocal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 SequenceStructure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 SequenceStructureLocal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 Capítulo 12: Transformadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Resumen de transformadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Cómo definir transformadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Cómo utilizar transformadores en anclajes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Secuencias de transformadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 Transformadores predeterminados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 Cómo utilizar transformadores como procesadores de documentos. . . . . . . . . . . . . . . . . . . . . 162 Cómo utilizar transformadores en anclajes de serialización. . . . . . . . . . . . . . . . . . . . . . . . . . 163 Cómo utilizar transformadores en acciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Propiedades del transformador estándar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Referencia de componentes de transformador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 AbsURL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 AddEmptyTagsTransformer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 AddString. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 Base64Decode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 Base64Encode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 BidiConvert. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 CDATADecode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 CDATAEncode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 ChangeCase. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 CreateGuid. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 CreateUUID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 DateFormatICU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 Dos96HebToAscii. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 DynamicTable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 EbcdicToAscii. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 EDIFACTValidation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 EncodeAsUrl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 Codificador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 ExternalTransformer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 FormatNumber. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 FromFloat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 FromInteger. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 Tabla de contenido vii FromPackDecimal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 FromSignedDecimal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 hebrewBidi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 HebrewDosToWindows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 HebrewEBCDICOldCodeToWindows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 hebUniToAscii. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 hebUtf8ToAscii. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 HtmlEntitiesToASCII. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 HtmlProcessor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 InjectFP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 InjectString. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 InlineTable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 JavaTransformer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 LookupTransformer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 NormalizeClosingTags. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 RegularExpression. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 RemoveMarginSpace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 RemoveRtfFormatting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 RemoveTags. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 Sustituir. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 Resize. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 ReverseTransformer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 RtfProcessor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 RtfToASCII. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 SubString. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 ToFloat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 ToInteger. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 ToPackDecimal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 TransformationStartTime. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 TransformByParser. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 TransformByProcessor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 TransformByService. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 TransformerPipeline. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 XMLLookupTable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 XSLTTransformer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 Capítulo 13: Acciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 Resumen de acciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 Cómo funcionan las acciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 Comparación entre las acciones y los transformadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 Definir acciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 Propiedades de acción estándar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 Referencia de componentes de acción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 viiiTabla de contenido AddEventAction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 AggregateValues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 AppendListItems. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 AppendValues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 CalculateValue. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 CombineValues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 CreateList. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 CustomLog. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 DateAddICU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 DateDiffICU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 DownloadFileToDataHolder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 DumpValues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 EnsureCondition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 ExcludeItems. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 Asignar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 Notificar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 ResetVisitedPages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 RunMapper. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 RunParser. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 RunSerializer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 RunXMap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 SetValue. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 Sort. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 ValidateValue. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 WriteValue. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 XSLTMap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 Referencia de subcomponentes de acción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 OutputDataHolder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 OutputFile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 ResultFile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 StandardErrorLog. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 Capítulo 14: Serializadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 Resumen de serializadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 Cómo crear un serializador invirtiendo un analizador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 Cómo controlar la forma de funcionar del comando Crear serializador. . . . . . . . . . . . . . . . . . . 235 Solución de problemas de un serializador generado automáticamente. . . . . . . . . . . . . . . . . . . 236 Cómo crear un serializador editando el script. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 Cómo crear un serializador dentro de una acción RunSerializer. . . . . . . . . . . . . . . . . . . . . . . 237 anclajes de serialización. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 Ejemplo de anclajes de serialización. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 Secuencia de anclajes de serialización. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 Propiedades de serializador estándar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 Tabla de contenido ix Referencia de componentes de Serializador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 Serializador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .240 Referencia de componentes de anclaje de serialización. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 AlternativeSerializers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .241 ContentSerializer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 DelimitedSectionsSerializer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .243 EmbeddedSerializer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 GroupSerializer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 RepeatingGroupSerializer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .248 StringSerializer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 Capítulo 15: Asignadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 Crear un asignador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .252 Componentes anidados dentro de un asignador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 Ejemplo de asignador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 XML de origen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .253 Salida XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 Configuración del asignador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 Propiedades de un asignador estándar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 Referencia de componentes de asignador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 Asignador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .255 Referencia de componentes de anclaje de asignador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 AlternativeMappings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 EmbeddedMapper. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 GroupMapping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .259 RepeatingGroupMapping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 Capítulo 16: Localizadores, claves e indexación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 Resumen de localizadores, claves e indexación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 Ejemplo de localizadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 Entrada y salida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .263 Solución incorrecta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .263 Solución correcta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 Ejemplo de indexación por clave. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 Entrada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 Salida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 Esquema del enfoque de transformación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .265 Configuración del asignador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 Uso de la indexación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .267 Propiedades source y target. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 Propiedad source. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .268 Propiedad target. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .271 Propiedades estándar de localizador y clave. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .273 xTabla de contenido Referencia de componentes de localizador y clave. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .273 Clave. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 Localizador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 LocatorByKey. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 LocatorByOccurrence. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 Capítulo 17: Transmisiones por secuencias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 Resumen de transmisiones por secuencias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 Transmisiones por secuencias de texto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 Segmentos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 Segmentos simples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 Segmentos complejos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 Ejemplo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 Concatenación de encabezados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 Salida de una transmisión por secuencias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 Cómo utilizar marcadores y variables en transmisiones por secuencias. . . . . . . . . . . . . . . . . . 282 Cómo crear una transmisión por secuencias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 Transmisiones por secuencias XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 Propiedades de transmisión por secuencias estándar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 Referencia de componentes de Transmisión por secuencias. . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 ComplexSegment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 ComplexXmlSegment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 MarkerStreamer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 SimpleSegment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 SimpleXmlSegment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 Transmisión por secuencias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 StreamerVariable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 XmlSegment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 XmlStreamer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 Referencia de subcomponentes de Transmisión por secuencias. . . . . . . . . . . . . . . . . . . . . . . . . . 295 AddHeaderModifier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 AddStringModifier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 DoNothingModifier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 WellFormedModifier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 WriteSegment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 Capítulo 18: Validadores, notificaciones y control de errores. . . . . . . . . . . . . . . . . . . . . 299 Resumen de validadores, notificadores y control de errores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299 Control de errores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 Utilizar la propiedad optional para el control de errores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 Cómo escribir un mensaje de error en el registro de usuario. . . . . . . . . . . . . . . . . . . . . . . . . 301 Validadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 Propiedades estándar de los validadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 Tabla de contenido xi Referencia de componentes de validador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 AlternativeValidators. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 EDIFACTValidation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 Enumeration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 LengthEquals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 MaxLength. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 MaxNumber. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 MinLength. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 MinNumber. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 NumberEquals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 ValidateByExpression. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 ValidateByPattern. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 ValidateByTransformer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 ValidateByType. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 ValidateDate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 ValidatorPipeline. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 Notificaciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319 Referencia de componentes de notificación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 Notificación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 NotificationGroup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 NotificationHandler. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321 NotifyFailure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 Capítulo 19: Componentes de script personalizado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 Resumen de los componentes de script personalizado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 Ejemplo de componente personalizado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 Propiedades de componente personalizado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 Desarrollar un componente personalizado en Java. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 Ejemplo de interfaz de Java. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 Componentes de Java personalizados de ejemplo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 Desarrollar un componente personalizado en C o C++. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 Limitación de longitud del valor de propiedad C/C++. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 Ejemplo de interfaz C/C++. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 Componentes C/C++ personalizados de ejemplo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 Configurar un componente personalizado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 Scripts de ejemplo que contienen componentes personalizados. . . . . . . . . . . . . . . . . . . . . . . 329 Índice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 xiiTabla de contenido Prefacio La Guía de transformación del Procesador de datos Informatica se ha escrito para desarrolladores, analistas y otros usuarios que son responsables del diseño y la implementación de transformaciones. El libro explica cómo diseñar, configure, probar e implementar transformaciones. Contiene secciones de referencia detalladas que documentan los componentes de transformación y sus propiedades. En este manual se asume que tiene conocimientos básicos sobre cómo utilizar Informatica Developer. También se asume que conoce XML, los esquemas y las técnicas de programación básicas. Documentación de Informatica Portal de atención al cliente de Informatica Como cliente de Informatica, puede acceder al sitio del Portal de atención al cliente de Informatica a través de la dirección http://mysupport.informatica.com. El sitio contiene información sobre productos, boletines de noticias, acceso al sistema de administración de casos de atención al cliente de Informatica (ATLAS), la biblioteca de asistencia de Informatica, la base de conocimiento de Informatica, la base de conocimiento multimedia de Informatica, la documentación de productos de Informatica y acceso a la comunidad de usuarios de Informatica. Documentación de Informatica El equipo de Documentación de Informatica se esfuerza al máximo para crear documentación precisa y útil. Si le surgen preguntas o tiene comentarios o ideas relacionadas con esta documentación, póngase en contacto con el equipo de Documentación de Informatica enviando un correo electrónico a [email protected]. Sus opiniones servirán para mejorar nuestra documentación. Por favor, indíquenos si podemos ponernos en contacto con usted en relación a sus comentarios. El equipo de Documentación actualiza la documentación según sea necesario. Para obtener la documentación más reciente de su producto, visite la Documentación de Productos en la dirección http://mysupport.informatica.com. Sitio web de Informatica Puede acceder al sitio web corporativo de Informatica a través de la dirección http://www.informatica.com. El sitio contiene información sobre Informatica, su historia, los próximos eventos y las oficinas de ventas. Asimismo, puede encontrar información sobre productos y socios. El área de servicio del sitio incluye información importante sobre soporte técnico, formación y cursos, así como servicios de implementación. xiii Biblioteca de asistencia de Informatica Como cliente de Informatica, puede acceder a la Biblioteca de asistencia de Informatica a través de la dirección http://mysupport.informatica.com. La Biblioteca de asistencia es una recopilación de documentos que le ayudarán a contar con más datos sobre los productos y las prestaciones de Informatica. Incluye artículos y demostraciones interactivas que ofrecen soluciones a problemas comunes, comparan prestaciones y conductas y le guían en la realización de tareas específicas del día a día. Base de conocimiento de Informatica Como cliente de Informatica, puede acceder a la Base de conocimiento de Informatica a través de la dirección http://mysupport.informatica.com. Utilice la Base de conocimiento para buscar soluciones documentadas a problemas técnicos conocidos relacionados con los productos de Informatica. Asimismo, puede encontrar respuestas a las preguntas más frecuentes, libros blancos técnicos y sugerencias técnicas. Si le surgen preguntas o tiene comentarios o ideas relacionadas con la Base de conocimiento de Informatica, póngase en contacto con el equipo de la Base de conocimiento de Informatica enviando un correo electrónico a [email protected]. Base de conocimiento multimedia de Informatica Como cliente de Informatica, puede acceder a la Base de conocimiento multimedia de Informatica a través de la dirección http://mysupport.informatica.com. La Base de conocimiento multimedia es una recopilación de archivos multimedia con instrucciones que le ayudarán a comprender conceptos comunes y le ofrecerán orientación a la hora de realizar tareas específicas. Si le surgen preguntas o tiene comentarios o ideas relacionadas con la Base de conocimiento multimedia, póngase en contacto con el equipo de la Base de conocimiento de Informatica enviando un correo electrónico a [email protected]. Servicio internacional de atención al cliente de Informatica Puede ponerse en contacto con nuestro Centro de atención al cliente llamando por teléfono o a través del Soporte en línea. El Soporte en línea requiere un nombre de usuario y una contraseña. Puede solicitar un nombre de usuario y una contraseña en la dirección http://mysupport.informatica.com. Utilice los números de teléfono siguientes para ponerse en contacto con el Servicio internacional de atención al cliente de Informatica: Norteamérica / Sudamérica Europa / Oriente Medio / África Asia / Australia Llamada gratuita Llamada gratuita Llamada gratuita Brasil: 0800 891 0202 Francia: 0805 804632 Australia: 1 800 151 830 México: 001 888 209 8853 Alemania: 0800 5891281 Nueva Zelanda: 09 9 128 901 Norteamérica: +1 877 463 2435 Italia: 800 915 985 Países Bajos: 0800 2300001 Portugal: 800 208 360 Tarifa estándar España: 900 813 166 India: +91 80 4112 5738 Suiza: 0800 463 200 Reino Unido: 0800 023 4632 Tarifa estándar Bélgica: +31 30 6022 797 xivPrefacio Norteamérica / Sudamérica Europa / Oriente Medio / África Asia / Australia Francia: +33 1 4138 9226 Alemania: +49 1805 702 702 Países Bajos: +31 306 022 797 Reino Unido: +44 1628 511445 Prólogo xv xvi CAPÍTULO 1 Introducción a Data Transformation Este capítulo incluye los siguientes temas: ¨ Resumen de Data Transformation, 1 ¨ Arquitectura del proceso de Data Transformation, 2 ¨ Componentes de Data Transformation, 3 ¨ Opciones de Data Transformation , 3 Resumen de Data Transformation Data Transformation es una aplicación que procesa los archivos complejos, tales como formatos de mensajería, páginas HTML y documentos PDF. Data Transformation también transforma formatos tales como ACORD, HIPAA, HL7, EDI-X12, EDIFACT, AFP y SWIFT. Data Transformation se instala de forma predeterminada al instalar Informatica Developer (la Herramienta del desarrollador). Puede definir una transformación del Procesador de datos para transformar los archivos complejos en una asignación. Cuando ejecute una asignación con la transformación del Procesador de datos, el servicio de Integración de datos llama al Motor de Data Transformation para que procese los datos. La aplicación Data Transformation tiene los siguientes elementos: Transformación del Procesador de datos Una transformación que procesa archivos complejos en una asignación. Defina el script de Data Transformation o los objetos de XMap en la Herramienta del desarrollador para procesar los datos. Puede incluir la transformación en un perfil de asignación, servicio web o servicio de datos SQL. Servicio de Data Transformation Un conjunto de objetos de Data Transformation que puede exportar desde la transformación del Procesador de datos y ejecutar independiente. Exporte un servicio a un repositorio de Data Transformation y ejecute el servicio desde allí. Repositorio de Data Transformation Un directorio que almacena los servicios ejecutables que exporta desde una transformación del Procesador de datos o que se implementan desde Data Transformation Studio. El nombre del directorio de repositorio es ServiceDB. Motor del Procesador de datos Un procesador que ejecuta objetos en los servicios o la transformación del Procesador de datos que crea en Data Transformation Studio. 1 Data Transformation Studio Un editor visual para diseñar y configurar servicios de Data Transformation. Puede designar un servicio de Data Transformation en lugar de una transformación de Procesador de datos. Implementar el proyecto al repositorio de Data Transformation como un servicio ejecutable. Arquitectura del proceso de Data Transformation Debe instalar Data Transformation para poder configurar y ejecutar una transformación del Procesador de datos en la Herramienta del desarrollador. La transformación del Procesador de datos puede contener varios scripts u objetos de XMap para transformar archivos de complejos. El motor de Data Transformation ejecuta los scripts o XMaps para transformar los datos. Puede utilizar una transformación del Procesador de datos en un servicio de datos, un servicio web o un perfil. La siguiente figura muestra los componentes en la aplicación Data Transformation y los componentes que se utilizan para crear la misma funcionalidad en la Herramienta del desarrollador: 2 1. Cree una transformación del Procesador de datos en la Herramienta del desarrollador. Guarde la transformación en el repositorio de modelos. 2. Exporte la transformación del procesador datos como un servicio de Data Transformation. Exporte el servicio al repositorio de Data Transformation. Puede ejecutar el servicio desde el repositorio. 3. También puede crear un proyecto de Data Transformation en Data Transformation Studio que realice las mismas funciones que la transformación del Procesador de datos. Implementa el proyecto como un servicio al repositorio de Data Transformation. 4. Puede implementar una aplicación que contiene una transformación del Procesador de datos para un servicio de integración de datos. 5. El servicio de integración de datos ejecuta la aplicación y llama al motor del Procesador de datos para procesar la lógica de transformación. 6. El motor del Procesador de datos también ejecuta los servicios del repositorio de Data Transformation. Capítulo 1: Introducción a Data Transformation Componentes de Data Transformation Cuando se define un servicio de Data Transformation o una transformación del Procesador de datos, se pueden combinar varios componentes para transformar los datos. Data Transformation tiene los siguientes tipos de componentes que transforman datos: Analizador Convierte documentos de origen a XML. La entrada puede tener cualquier formato. La salida de un analizador es XML. Serializador Convierte un archivo XML en otro documento. La salida puede tener cualquier formato. Asignador Convierte un documento de origen XML en otro documento XML. XMap Convierte un documento de origen XML en otro documento XML. XMap tiene la misma funcionalidad como Asignador, pero se puede utilizar una malla en la Herramienta del desarrollador para definir la asignación. No se puede definir un XMap en Data Transformation Studio. Transformador Modifica los datos en cualquier formato. Añade, quita, convierte o modifica texto. Utilice transformadores con un analizador, un asignador o un serializador. También puede ejecutar un transformador como componente autónomo. Transmisión por secuencias Divide documentos de entrada de gran tamaño, tales como secuencias de datos de varios gigabytes, en segmentos. La transmisión por secuencias divide documentos que tienen varios mensajes o registros. Opciones de Data Transformation Puede seleccionar varias opciones para ejecutar Data Transformation. Puede ejecutar Data Transformation como producto independiente o puede ejecutar servicios de Data Transformation desde una transformación en una asignación. Se debe tener una de las siguientes opciones para utilizar Data Transformation: Opción de Data Transformation Permite el uso completo de Data Transformation, incluido Data Transformation Studio y preprocesadores de documentos. Los preprocesadores de documentos transforman archivos binarios como archivos PDF o documentos de Word a texto. Con una opción de Data Transformation, puede adquirir bibliotecas de componentes como analizadores, serializadores y esquemas XML que puede usar para procesar mensajes de aplicación estándar de la industria. Opción de datos sin estructura Ejecuta servicios de Data Transformation en PowerCenter o en Data Services. La opción de datos sin estructura incluye preprocesadores de datos pero ninguna biblioteca de componentes. Componentes de Data Transformation 3 Opción avanzada de XML Ejecuta servicios de Data Transformation en PowerCenter o en Data Services. La opción XML avanzada no incluye preprocesadores de datos ni bibliotecas de componentes. 4 Capítulo 1: Introducción a Data Transformation CAPÍTULO 2 Transformación del Procesador de datos Este capítulo incluye los siguientes temas: ¨ Resumen de la transformación del Procesador de datos, 5 ¨ Vistas de la transformación del Procesador de datos, 6 ¨ Puertos de la transformación del Procesador de datos, 7 ¨ Componente de inicio, 12 ¨ Referencias de esquema, 12 ¨ Configuración de la transformación del Procesador de datos, 13 ¨ Eventos, 19 ¨ Registros, 20 ¨ Desarrollo de la transformación del Procesador de datos, 22 ¨ Importación y exportación de la transformación del Procesador de datos, 25 Resumen de la transformación del Procesador de datos La transformación del Procesador de datos procesa formatos de archivo sin estructura y semiestructurados en una asignación. Configure la transformación para procesar formatos de mensajería, páginas HTML, XML y documentos PDF. Transforma formatos estructurados tales como ACORD, HIPAA, HL7, EDI-X12, EDIFACT, AFP y SWIFT. Por ejemplo, puede recibir facturas del cliente en archivos de Microsoft Word. Puede configurar una transformación del Procesador de datos para analizar los datos de cada archivo de palabras. Extraiga los datos de clientes a una tabla Clientes. Extraiga información de pedidos a una tabla Pedidos. Cuando se crea una transformación del Procesador de datos, se deben definir objetos de XMap u objetos de script para transformar los datos. Un XMap transforma un documento XML de entrada en un documento XML de salida de otra estructura. Un script puede analizar documentos de origen a XML, convertir XLM a otros formatos de archivo o asignar un documento XML a otro documento XML de otro formato. Defina los scripts en el editor de scripts de transformación del Procesador de datos. Puede definir los siguientes tipos de scripts: ¨ Analizador. Convierte documentos de origen a XML. La salida de un analizador siempre es XML. La entrada puede tener cualquier formato, como texto, HTML, Word, PDF o HL7. 5 ¨ Serializador. Convierte un archivo XML en un documento de salida de cualquier formato. La salida de un serializador puede tener cualquier formato, como documento de texto, documento HTML o PDF. ¨ Asignador. Convierte un documento de origen XML en otra estructura o esquema XML. Puede transformar los mismos documentos XML como en un XMap. ¨ Transformador. Modifica los datos a cualquier formato. Añade, quita, convierte o modifica texto. Utilice transformadores con un analizador, un asignador o un serializador. También puede ejecutar un transformador como componente autónomo. ¨ Transmisión por secuencias. Divide documentos de entrada de gran tamaño, como secuencias de datos de varios gigabytes, en segmentos. La transmisión por secuencias procesa los documentos que contienen varios mensajes o registros, como archivos HIPAA o EDI. Vistas de la transformación del Procesador de datos La transformación del Procesador de datos tiene varias vistas a las que puede acceder al configurar la transformación y ejecutarla en la Herramienta del desarrollador. Algunas de las vistas de la transformación del Procesador de datos no aparecen en la Herramienta del desarrollador de forma predeterminada. Para cambiar las vistas para la transformación, haga clic en Ventana > Mostrar vista > Otro > Informatica. Seleccione las vistas que desee ver. La transformación del Procesador de datos tiene las siguientes vistas fijas: Vista Resumen Configure los puertos y defina el componente de inicio. Vista de referencias Añada o elimine esquemas desde la transformación. Vista de configuración Configure la configuración de transformación para la codificación, el control de salida y la generación de XML. Vista Objetos Añada, cambie o elimine objetos de script y XMap desde la transformación. También puede acceder a las siguientes vistas para la transformación del Procesador de datos: Vista del Procesador de datos de origen hexadecimal Muestra un documento de entrada en formato hexadecimal. Vista Eventos del procesador de datos Muestra información sobre los eventos que ocurren cuando ejecuta la transformación en la Herramienta del desarrollador. Muestra la inicialización, la ejecución y los eventos de resumen. Vista de ayuda de script Muestra la ayuda dependiente del contexto para el editor de scripts. Vista del Visor de datos Vea los datos de entrada de ejemplo, ejecute la transformación y vea resultados de salida. 6 Capítulo 2: Transformación del Procesador de datos Puertos de la transformación del Procesador de datos Defina los puertos de transformación del Procesador de datos en la vista Resumen de la transformación. Una transformación del Procesador de datos puede leer entradas desde un archivo, un búfer o un búfer de transmisión desde un lector de archivos complejos. Puede utilizar un lector de archivos sin formato como un búfer para leer todo un archivo de una vez. También puede leer un archivo de entrada desde una base de datos. Los puertos de salida que puede crear dependen de si desea devolver una cadena, archivos complejos o filas de datos relacionales desde la transformación. Puertos de entrada de la transformación del Procesador de datos Cuando se crea una transformación del Procesador de datos, la Herramienta del desarrollador crea un puerto de entrada predeterminado. Cuando se define un puerto de entrada adicional en un componente de inicio de script, la Herramienta del desarrollador crea un puerto de entrada adicional en la transformación. El tipo de entrada determina el tipo de datos que el servicio de integración de datos pasa a la transformación del Procesador de datos. El tipo de entrada determina si la entrada está formada por datos o si es la ruta de acceso de un archivo de origen. Configure uno de los siguientes tipos de entrada: Búfer La transformación del Procesador de datos recibe filas de datos de origen en el puerto Entrada. Utilice el tipo de entrada de búfer cuando configure la transformación para recibir datos desde un archivo sin formato o desde un transformaton de Informatica. Archivo La transformación del Procesador de datos recibe la ruta de acceso al archivo de origen en el puerto Entrada. El componente de inicio del Procesador de datos abre el archivo de origen. Utilice el tipo de entrada de archivo para analizar archivos binarios como los de Microsoft Excel o Microsoft Word. También puede utilizar el tipo de entrada de archivo para archivos de gran tamaño que puede requerir un lote de memoria del sistema para el proceso con un puerto de entrada de búfer. Parámetro de servicio La transformación del Procesador de datos recibe valores para aplicarlos a variables en los puertos de parámetros de servicio. Cuando se seleccionan las variables para recibir datos de entrada, la Herramienta del desarrollador crea un puerto de parámetros de servicio para cada variable. Output_Filename Cuando se configura el puerto de salida predeterminado para devolver un nombre de archivo en lugar de datos sin formato, la Herramienta del desarrollador crea un puerto Output_Filename. Puede pasar un nombre de archivo al puerto Output_Filename desde una asignación. Cuando se define un puerto de entrada, puede definir la ubicación del archivo de entrada de ejemplo para el puerto. Un archivo de entrada de ejemplo es un pequeño ejemplo del archivo de entrada. Haga referencia a un archivo de entrada de ejemplo al crear scripts. También puede utilizar el archivo de entrada de ejemplo cuando pruebe la transformación en la vista Visor de datos. Defina el archivo de entrada de ejemplo en el campo Ubicación de entrada. Puertos de la transformación del Procesador de datos 7 Puertos de parámetros de servicio Puede crear puertos de entrada que reciben valores de variables. Las variables pueden contener cualquier tipo de datos como una cadena, una fecha o un número. Una variable también puede contener una ubicación de un documento de origen. Se puede hacer referencia a las variables de un componente del Procesador de datos. Cuando se crea un puerto de entrada para una variable, la Herramienta del desarrollador muestra una lista de variables entre las que puede elegir. Crear puertos de parámetros de servicio Puede crear puertos de entrada que reciben valores de variables. También puede quitar los puertos que se crean a partir de variables. 1. Abra la vista Resumen de la transformación del Procesador de datos. 2. Haga clic en Elegir. La Herramienta del desarrollador muestra una lista de las variables y indica que ya tiene puertos variables. 3. Seleccione una o más variables. La Herramienta del desarrollador crea un puerto de entrada de búfer para cada variable que seleccione. No se puede modificar el puerto. 4. Para eliminar un puerto que se crea a partir de una variable, deshabilite la selección de la lista de variable. Cuando deshabilite la selección, la Herramienta del desarrollador elimina el puerto de entrada. Puertos de salida de la transformación del Procesador de datos La transformación del Procesador de datos tiene un puerto de salida de forma predeterminada. Si se definen los puertos de salida adicionales en un script, la Herramienta del desarrollador añade los puertos a la transformación del Procesador de datos. Puede crear grupos de puertos si configura la transformación para devolver datos relacionales. También puede crear puertos de parámetros de servicio y puertos de transferencia. Puerto de salida predeterminado La transformación del Procesador de datos tiene un puerto de salida de forma predeterminada. Cuando crea una salida relacional, puede definir grupos de puertos de salida relacionados en lugar del puerto de salida predeterminado. Cuando se define un puerto de salida adicional en un componente de script, la Herramienta del desarrollador añade un puerto de salida adicional para la transformación. Configure uno de los siguientes tipos de salida para un puerto de salida predeterminado: Búfer La transformación del Procesador de datos devuelve XML a través del puerto Salida. Elija el tipo de archivo de búfer cuando analice documentos o cuando asigne XML a otros documentos XML en la transformación del Procesador de datos. Archivo El servicio de integración de datos devuelve un nombre de archivo de salida en el puerto de salida para cada instancia de origen o de fila. El componente de transformación del Procesador de datos escribe el archivo de salida en lugar de devolver datos mediante los puertos de salida de transformación del Procesador de datos. Cuando seleccione un puerto de salida Archivo, la Herramienta del desarrollador crea un puerto de entrada Output_Filename. Puede pasar un nombre de archivo al puerto de nombre de archivo Salida. La transformación del Procesador de datos crea el archivo de salida con un nombre que recibe en este puerto. 8 Capítulo 2: Transformación del Procesador de datos Si el nombre del archivo de salida está vacío, el servicio de integración de datos devuelve un error de fila. Cuando se produce un error, el servicio de integración de datos escribe un valor nulo en el puerto de salida y devuelve un error de fila. Elija el tipo de salida Archivo al transformar XML a un archivo de datos binarios como un archivo PDF o un archivo de Microsoft Excel. Puertos de salida relacionales Puede devolver la salida relacional desde la transformación Procesador de datos. Si un componente devuelve XML, cree grupos de puertos de salida mediante la asignación de nodos desde la salida XML a los grupos de puertos. Puede pasar los datos desde los puertos a otra transformación en una asignación. Para devolver grupos de puertos relacionales, habilite la salida relacional desde la vista Resumen. La herramienta Desarrollador elimina el puerto de salida predeterminado en la vista. Seleccione Asignación de salida. El panel Puertos aparece en el panel Resumen. La siguiente figura muestra el panel Puertos: El esquema de salida XML aparece en el área Salida jerárquica del panel. Cree puertos en el área Puertos relacionales del panel y asigne nodos desde el esquema a los puertos. También puede arrastrar el puntero desde un nodo del esquema hasta un campo vacío en el área Puertos para crear un puerto. Cuando se asigna un nodo desde el esquema de salida a un puerto, la herramienta Desarrollador muestra un vínculo entre ellos. Puertos de la transformación del Procesador de datos 9 Salida relacional Cuando configure la salida relacional, puede configurar un grupo de salida independiente para cada nodo de entrada de varias ocurrencias. También puede crear grupos que contengan datos desnormalizados. Puede pivotar elementos de varias ocurrencias y limitar el número de ocurrencias en un grupo de salida. Salida relacional normalizada Cuando se crean datos de salida normalizados, los valores de los datos no se repiten en un grupo de salida. Se crea una relación exclusiva entre los niveles de jerarquía de la jerarquía XML y los grupos de salida de los puertos. Cuando la jerarquía XML contiene un nivel de jerarquía primario Departamentos y un nivel de jerarquía secundario Empleados, puede crear los siguientes grupos de puertos: Departments Department_Key Department_ID Department_Name Employees Department_Key Employee_ID Employee_Name Department_Key es una clave generada que relaciona el grupo de salida Empleados con un grupo Departamento. Salida relacional pivotada Puede incluir un número específico de elementos de ocurrencia múltiple en un grupo de salida. Para pivotar elementos de ocurrencia múltiple, asigne el elemento secundario de ocurrencia múltiple al grupo primario de los puertos de salida. La Herramienta del desarrollador le insta a definir el número de elementos secundarios que incluir en el primario. El siguiente ejemplo muestra dos instancias de Employee_ID en el grupo primario Departamentos: Departments Department_ID Department_Name Employee_ID1 Employee_ID2 Salida relacional desnormalizada Se puede desnormalizar una salida relacional. Cuando se desnormalizan los datos de salida, los valores de elemento del grupo primario se repiten para cada elemento secundario. Para desnormalizar datos de salida, asigne nodos del nivel de jerarquía primario al grupo secundario de los puertos de salida. El siguiente ejemplo muestra Department_ID y Department_Name en el grupo de salida Empleados: Employees Department_ID Department_Name Employee_ID Employee_Name 10 Capítulo 2: Transformación del Procesador de datos Department_ID y Department_Name se repiten para cada empleado del departamento: Department_ID 100 100 100 Department_Name Contabilidad Contabilidad Contabilidad Employee_ID 56500 56501 56509 Employee_Name Kathy Jones Tom Lyons Bob Smith Configuración de puertos relacionales En el panel Puertos, defina grupos de puertos de salida y asigne los nodos desde el esquema de salida XML a los puertos. Si el esquema XML de salida tiene más de un elemento que puede ser un elemento raíz, puede elegir un nodo del esquema de salida para que sea el elemento raíz. Para definir una un nodo como raíz, haga clic en Seleccione jerarquía. La herramienta Desarrollador solo muestra los nodos desde el nivel raíz y debajo del nivel raíz en el área Salida jerárquica. Cree puertos utilizando uno de los siguientes métodos: Arrastre los nodos a puertos Arrastre los nodos desde el área Salida jerárquica al Puertos relacionales. Si arrastra un nodo a un grupo, la herramienta Desarrollador añade un puerto al grupo. De lo contrario, crea un grupo con el puerto comprendido en él. Crear manualmente los puertos Para crear un puerto, seleccione un campo vacío en el área Puertos relacionales y haga clic en Nuevo > Campo. Si no selecciona un campo dentro de un grupo, la herramienta Desarrollador crea un grupo y añade el puerto al grupo. Cuando se arrastran nodos al área Puertos relacionales, la herramienta Desarrollador actualiza el campo de ubicación con la ubicación del nodo en la jerarquía XML. Si crea manualmente los puertos, debe asignar un nodo al puerto. Haga clic en la columna Ubicación y seleccione un nodo de la lista. Cuando se arrastra un nodo de ocurrencia múltiple a un grupo que contiene el elemento primario, puede configurar el número de ocurrencias de elemento secundario que se van a incluir. También puede reemplazar el grupo primario con el grupo secundario de ocurrencia múltiple en la salida de transformación. Para crear un grupo, arrastre un nodo a una columna de salida vacía en el área Puertos relacionales. Si arrastra un nodo secundario de ocurrencia múltiple a una columna de salida vacía, la Herramienta del desarrollador le pedirá que relacione el grupo con otros grupos de salida. Cuando se selecciona un grupo, la Herramienta del desarrollador crea claves para relacionar los grupos. También puede crear un grupo nuevo haciendo clic en Nuevo > Group en el área Puertos relacionales. Especifique un nombre para el grupo. Configure grupos de puertos de salida relacionados en el área Puertos relacionales. Cuando la Herramienta del desarrollador le insta a relacionar grupos de salida, añade las claves a los grupos. También puede añadir puertos manualmente para representar claves. Haga clic en Mostrar como jerarquía para mostrar los puertos de salida de la jerarquía. Cada grupo secundario aparece debajo del grupo primario. Para ver las líneas que conectan los puertos con los nodos XML, haga clic en Mostrar líneas. Seleccione para ver todas las líneas de conexión o solo las líneas de los puertos seleccionados. Puertos de la transformación del Procesador de datos 11 Puertos de transferencia Puede configurar puertos de transferencia en una transformación del Procesador de datos. Los puertos de transferencia son puertos de entrada y salida que reciben datos de entrada y devuelven los mismos datos a una asignación sin modificarlos. Puede configurar puertos de transferencia en una instancia de transformación del Procesador de datos que esté en una asignación. No se pueden añadir puertos de transferencia a una transformación reutilizable. Para añadir un puerto de transferencia, arrastre un puerto desde otra transformación en la asignación. En la transformación, también puede hacer clic en Nuevo > Añadir > Puerto para añadir un puerto de transferencia. Componente de inicio Un componente de inicio define el componente que inicia el proceso en la transformación del Procesador de datos. Configure el componente de inicio en la vista Resumen. Una transformación del Procesador de datos puede contener varios componentes para procesar los datos. Cada componente puede contener otros componentes. Se debe identificar qué componente es el punto de entrada para la transformación. Cuando configure el componente de inicio en una transformación del Procesador de datos, puede elegir un componente XMap o un script como el componente de inicio. Puede seleccionar uno de los siguientes tipos de componentes: ¨ Analizador. Convierte documentos de origen a XML. La salida de un analizador siempre es XML. La entrada puede tener cualquier formato, como texto, HTML, Word, PDF o HL7. ¨ Asignador. Convierte un documento de origen XML en otra estructura o esquema XML. ¨ Serializador. Convierte un archivo XML en un documento de salida de cualquier formato. La salida de un serializador puede tener cualquier formato, como documento de texto, documento HTML o PDF. ¨ XMap. Transforma un documento XML de entrada en un documento XML de salida de otra estructura. Se puede transformar el mismo documento XML que en un Asignador. ¨ Transmisión por secuencias. Divide documentos de entrada de gran tamaño, como secuencias de datos de varios gigabytes, en segmentos. La transmisión por secuencias procesa los documentos que contienen varios mensajes o registros, como archivos HIPAA o EDI. ¨ Transformador. Modifica los datos a cualquier formato. Añade, quita, convierte o modifica texto. Utilice Transformadores con un analizador, un Asignador o un Serializador. También puede ejecutar un transformador como componente autónomo. Nota: Si el componente de inicio no es un XMap, también puede configurar el componente de inicio en un script en lugar de en la vista Resumen. Referencias de esquema La transformación del Procesador de datos requiere un esquema XML para definir la jerarquía de entrada o salida XML para cada componente que defina en la transformación. Añada referencias de esquema en la vista Referencias de la transformación. 12 Capítulo 2: Transformación del Procesador de datos La transformación del Procesador de datos hace referencia a objetos de esquema en el repositorio de modelos. Los objetos de esquema pueden existir en el repositorio antes de crear la transformación. También puede importar esquemas desde la vista Referencias de la transformación. La codificación de esquemas debe coincidir con la codificación de entradas para los objetos Serializador o Asignador. La codificación de esquemas debe coincidir con la codificación de salidas para los objetos Analizador. Configure la codificación de trabajo en la vista de transformación Configuración. Un esquema puede hacer referencia esquemas adicionales. La herramienta Desarrollador muestra el espacio de nombres y el prefijo para cada esquema al que hace referencia la transformación Procesador de datos. Cuando se hace referencia a varios esquemas con espacios de nombres vacíos, la transformación no es válida. Configuración de la transformación del Procesador de datos Configure las páginas de códigos, las opciones de procesamiento XML y la configuración de registro en la vista de transformación del Procesador de datos Configuración. Codificación de caracteres Una codificación de caracteres es una asignación de los caracteres de un idioma o grupo de idiomas con el código hexadecimal. Cuando se diseña un script, debe definir la codificación de documentos de entrada y la codificación de documentos de salida. Defina la codificación de trabajo para definir cómo el editor de IntelliScript muestra caracteres y cómo la transformación del Procesador de datos procesa los caracteres. Codificación de trabajo La codificación de trabajo es la página de códigos para los datos en la memoria y la página de códigos para los datos que aparecen en la interfaz de usuario y los archivos de trabajo. Debe seleccionar una codificación de trabajo que sea compatible con la codificación de los esquemas a los que se hace referencia en la transformación del Procesador de datos. La siguiente tabla muestra la configuración de codificación del trabajo: Configuración Descripción Utilizar la página de códigos predeterminada del Procesador de datos Utiliza la codificación predeterminada de la transformación del Procesador de datos. Otros Seleccione la codificación de la lista. Codificación de caracteres especiales XML Determina la representación de caracteres especiales XML. Puede seleccionar Ninguno o XML. - Ninguno. Dejar como & < > " ' Las referencias de entidad para caracteres especiales XML se interpretan como texto. Por ejemplo, el carácter > aparece como > Configuración de la transformación del Procesador de datos 13 Configuración Descripción El valor predeterminado es Ninguno. - XML. Convertir a & < > " ' Las referencias de entidad para caracteres especiales XML se interpretan como caracteres normales. Por ejemplo, > aparece como el siguiente carácter: > Codificación de entrada La codificación de entrada determina cómo los datos de caracteres se codifican en documentos de entrada. Puede configurar la codificación para puertos de entrada adicionales en un script. La siguiente tabla describe la configuración de codificación en el área Entrada: Configuración Descripción Utilizar la codificación especificada en documento de entrada Utilice la página de códigos que el documento de origen define, tal como el atributo de codificación de un documento XML. Si el documento de origen no tiene una especificación de codificación, la transformación del Procesador de datos utiliza la configuración de la codificación de la vista Configuración. Utilizar codificación de trabajo Utilice la misma codificación que la codificación de trabajo. Otros Seleccione la codificación de entrada de una lista desplegable. Codificación de caracteres especiales XML Determina la representación de caracteres especiales XML. Puede seleccionar Ninguno o XML. - Ninguno. Dejar como & < > " ' Las referencias de entidad para los caracteres especiales XML se interpretan como texto, por ejemplo, el carácter > aparece como > El valor predeterminado es Ninguno. - XML. Convertir a & < > " ' Las referencias de entidad para caracteres especiales XML se interpretan como caracteres normales. Por ejemplo, > aparece como el siguiente carácter: > Orden de bytes Describe cómo aparecen los caracteres multibyte en el documento de entrada. Puede seleccionar las opciones siguientes: - Little-endian. El byte menos significativo aparece primero. Predeterminado. - Big-endian. El byte más significativo aparece primero. - No hay conversión binaria. Codificación de salida La codificación de salida determina cómo los datos de caracteres se codifican en el documento de salida principal.. 14 Capítulo 2: Transformación del Procesador de datos La siguiente tabla describe la configuración de codificación en el área Salida: Configuración Descripción Utilizar codificación de trabajo La codificación de salida es la misma que la codificación de trabajo. Otros El usuario selecciona la codificación de salida de la lista. Codificación de caracteres especiales XML Determina la representación de caracteres especiales XML. Puede seleccionar Ninguno o XML. - Ninguno. Dejar como & < > " ' Las referencias de entidad para los caracteres especiales XML se interpretan como texto, por ejemplo, el carácter > aparece como > Predeterminado. - XML. Convertir a & < > " ' Las referencias de entidad para caracteres especiales XML se interpretan como caracteres normales. Por ejemplo, > aparece como el siguiente carácter: > Igual que la codificación de entrada La codificación de salida es la misma que la codificación de entrada. Orden de bytes Describe cómo aparecen los caracteres multibyte en el documento de entrada. Puede seleccionar las opciones siguientes: - Little-endian. El byte menos significativo aparece primero. Predeterminado. - Big-endian. El byte más significativo aparece primero. - No hay conversión binaria. Reglas y directrices de codificación de caracteres Utilice las siguientes reglas y directrices cuando configure codificaciones: ¨ Para aumentar el rendimiento, establezca la misma codificación que utilice el documento de salida. ¨ Establezca la codificación de entrada que utilice el documento de entrada. ¨ Establezca la codificación de salida que utilice el documento de salida. ¨ Para los idiomas que utilicen caracteres de varios bytes, establezca la codificación en UTF-16LE. Para la codificación de entrada y salida, puede utilizar una codificación Unicode como UTF-16LE o una página de codificación de bytes dobles, como Big5 o Shift _ JIS. Configuración de salida Configurar la configuración de control de salida para controlar si la transformación del Procesador de datos crea registros de eventos y guarda documentos de salida. Puede controlar los tipos de mensajes que la transformación Procesador de datos escribe en el registro de eventos de tiempo de diseño. Si desea guardar los documentos de entrada analizados con los registros de eventos, puede ver el contexto donde se produjo el error en la vista Event. Configuración de la transformación del Procesador de datos 15 La siguiente tabla describe la configuración en el área Eventos de tiempo de diseño: Configuración Descripción Registrar eventos de tiempo de diseño Determina si desea crear un registro de eventos de tiempo de diseño. De forma predeterminada, la transformación del Procesador de datos registra notificaciones, advertencias y fallos en el registro de eventos de tiempo de diseño. Se pueden excluir los siguientes tipos de eventos: - Notificaciones - Avisos - Fallos Guardar documentos analizados Determina si la transformación del Procesador de datos guarda un documento de entrada analizado. Puede seleccionar las opciones siguientes: - always. - Nunca - En fallo El valor predeterminado es always. La siguiente tabla describe la configuración en el área Eventos de tiempo de ejecución: Configuración Descripción Eventos de registro en tiempo de ejecución Determina si se ha creado un evento de registro cuando se ejecuta la transformación de una asignación. - Never. - En fallo El valor predeterminado es Never. La siguiente tabla describe los ajustes del área Salida: Configuración Descripción Deshabilitar salida automática Determina si la transformación Procesador de datos escribe la salida en el archivo de salida estándar. Deshabilite la salida estándar en las siguientes situaciones: - Si pasa la salida de un analizador a la entrada de otro componente antes de que la transformación cree un archivo de salida. - Si utiliza una acción WriteValue para escribir los datos directamente en la salida desde un script en lugar de pasarlos a través de los puertos de salida. Deshabilitar compresión de valor Determina si la transformación Procesador de datos utiliza la compresión del valor para optimizar el uso de memoria. Importante: no deshabilite la compresión del valor excepto si Atención al cliente de Informatica Global le indica que puede deshabilitarlo. Configuración de procesamiento La configuración de procesamiento define cómo procesa la transformación Procesador de datos un elemento sin un tipo de datos definido. La configuración afecta a los scripts. La configuración no afecta a los elementos que procesa un XMap. 16 Capítulo 2: Transformación del Procesador de datos La siguiente tabla describe la configuración de procesamiento que afecta al procesamiento XML en los scripts: Configuración Descripción Tratar como xs:string La transformación Procesador de datos trata un elemento sin tipo como una cadena. En el cuadro de diálogo Elegir XPath, el elemento o atributo aparece como un único nodo. Tratar como xs:anyType La transformación Procesador de datos trata un elemento sin tipo como anyType. En el cuadro de diálogo Elegir XPath, el elemento o atributo aparece como un árbol de nodos. Un nodo es de tipo xs:string y todos los tipos de datos complejos con nombre aparecen como nodos de árbol. Configuración de salida XML La configuración de generación XML define las características de los documentos XML de salida. La siguiente tabla describe la configuración de generación XML en el área de Título de esquema: Configuración Descripción Ubicación del esquema Define el schemaLocation para el elemento raíz del documento de salida principal. Sin ubicación de esquema para espacio de nombres Define el atributo xsi:noNamespaceSchemaLocation del elemento raíz del documento de salida principal. Configure los ajustes del modo de salida XML para determinar cómo la transformación del Procesador de datos maneja los elementos o los atributos que faltan en el documento XML de entrada. La siguiente tabla describe la configuración de generación XML en el área de Modo de salida XML: Configuración Descripción Tal cual No se añaden ni se quitan elementos vacíos. Esta propiedad está habilitada de manera predeterminada. Completo Todos los elementos necesarios y opcionales definidos en el esquema de salida se escriben en la salida. Los elementos sin contenido se escriben como elementos vacíos. Compacto Quita elementos vacíos de la salida. Si Añadir para elementos está habilitado, la transformación del Procesador de datos quita solamente los elementos opcionales. Si Añadir para elementos está deshabilitado, la transformación del Procesador de datos quita todos los elementos vacíos. Puede que la salida XML no sea válida. Configuración de la transformación del Procesador de datos 17 La siguiente tabla describe la configuración de generación XML en el área de Valores predeterminados para nodos requeridos: Configuración Descripción Añadir para elementos Cuando el esquema de salida define un valor predeterminado para un elemento necesario, la salida incluye el elemento con un valor predeterminado. Esta propiedad está habilitada de manera predeterminada. Añadir para atributos Cuando el esquema de salida define un valor predeterminado para un atributo necesario, la salida incluye el atributo con su valor predeterminado. Esta propiedad está habilitada de manera predeterminada. Validar valores agregados Determina si la transformación del Procesador de datos valida los elementos vacíos que se han añadido por la salida del modo Completo. El valor predeterminado es deshabilitado. Si Validar valores agregados está habilitado y el esquema no admite elementos vacíos, la salida XML podría no ser válida. La siguiente tabla describe la configuración de generación XML en el área de Instrucciones de proceso: 18 Configuración Descripción Añadir instrucciones de proceso XML Define la codificación de caracteres y la versión XML del documento de salida. El valor predeterminado es seleccionado. Versión XML Define la versión XML. La configuración de la versión XML tiene las siguientes opciones: - 1.0 - 1.1 El valor predeterminado es 1.0. Codificación Define la codificación de caracteres que se ha especificado en la instrucción de proceso. La configuración de Codificación tiene las siguientes opciones: - Igual que la codificación de salida. La codificación de salida de las instrucciones de proceso es la misma que para la codificación de salida definida en la configuración de la transformación del Procesador de datos. - Personalizada. Define la codificación de salida en la instrucción de proceso. El usuario escribe el valor en el campo. Añadir instrucciones de proceso personalizadas: Añade otras instrucciones de proceso para el documento de salida. Introduzca la instrucción de proceso tal como aparece en el documento de salida. El valor predeterminado es Deshabilitado. Capítulo 2: Transformación del Procesador de datos La siguiente tabla describe la configuración de generación XML en el área de Raíz XML: Configuración Descripción Añadir elemento raíz XML Añade un elemento raíz para el documento de salida. Utilice esta opción cuando el documento de salida contenga más de una ocurrencia del elemento raíz definida en el esquema de salida. El valor predeterminado es Deshabilitado. Nombre de elemento raíz Define un nombre del elemento raíz para añadirlo al documento de salida. Eventos Un evento es un registro de un paso de procesamiento de un componente en la transformación del Procesador de datos. En un script, cada anclaje, acción o transformador genera un evento. En un XMap, cada instrucción de asignación genera un evento. Puede ver los eventos en la vista Eventos del procesador de datos. Tipos de evento La transformación del Procesador de datos escribe eventos en los archivos de registro. Cada evento tiene un tipo de evento que indica si el evento se ha realizado correctamente, el evento ha generado un error o si el evento se ha ejecutado con errores. Un componente puede generar uno o más eventos. El componente puede pasar o generar un error según si los eventos tienen éxito o generan un error. Si un evento falla, un componente genera un error. La siguiente tabla describe los tipos de eventos que la transformación del Procesador de datos genera: Tipo de evento Descripción Notificación Operación normal. Aviso La transformación del Procesador de datos se ha ejecutado pero se ha producido una condición inesperada. Por ejemplo, la transformación del Procesador de datos ha escrito datos para el mismo elemento varias veces. Cada vez que el elemento se sobrescribe, la transformación del Procesador de datos genera una advertencia. Error La transformación del Procesador de datos se ha ejecutado pero un componente ha generado un error. Por ejemplo, un elemento de entrada necesario estaba vacío. Error opcional La transformación del Procesador de datos se ha ejecutado pero un componente opcional ha generado un error. Por Eventos 19 Tipo de evento Descripción ejemplo, un anclaje opcional faltaba en el documento de origen. Error fatal La transformación del Procesador de datos ha generado un error debido a un problema grave. Por ejemplo, el documento de entrada no existe. Vista Eventos del procesador de datos La vista Eventos del procesador de datos muestra eventos cuando se ejecuta una transformación del Procesador de datos desde la Herramienta del desarrollador. La vista Eventos del procesador de datos tiene un panel Navegación y un panel Detalles. El panel de navegación contiene un árbol de navegación. El árbol de navegación enumera los componentes que la transformación ha ejecutado en orden cronológico. Cada nodo tiene un icono que representa el evento más importante debajo de él en el árbol. Cuando seleccione un nodo en el panel Navegación, aparecen eventos en el panel Detalles. El árbol de navegación contiene los siguientes nodos de nivel superior: ¨ Inicialización del servicio. Describe los archivos y las variables que la transformación del Procesador de datos inicializa. ¨ Ejecución. Enumera los componentes que ejecuta el script o XMap. ¨ Resumen. Muestra las estadísticas sobre el procesamiento. Cuando se ejecuta un XMap, cada nombre de nodo del panel de navegación tiene un número entre corchetes, tal como [5]. Para identificar la instrucción que ha generado los eventos para el nodo, haga clic con el botón derecho en la malla de instrucciones y seleccione Ir al número de fila. Introduzca el número de nodo. Cuando se ejecuta un script y se hace doble clic en un evento en el panel Navegación o en el panel Detalles, el editor de scripts resalta el componente de script que ha generado el evento. El panel Entrada de la vista Visor de datos resalta la parte del documento de origen de ejemplo que ha generado el evento. Registros Un registro contiene un registro de la transformación del Procesador de datos. La transformación del Procesador de datos escribe eventos en los registros. La transformación del Procesador de datos crea los siguientes tipos de registros: Registro de eventos en tiempo de diseño El registro de eventos de tiempo de diseño contiene los eventos que ocurren cuando se ejecuta la transformación del Procesador de datos en la vista Visor de datos . Ver el registro en tiempo de diseño en la vista Eventos. Registro de eventos de tiempo de ejecución El registro de eventos de tiempo de ejecución contiene los eventos que ocurren cuando se ejecuta la transformación del Procesador de datos en una asignación. Puede ver el registro de eventos de tiempo de ejecución en un editor de texto o puede arrastrar un evento de tiempo de ejecución en la vista Eventos de la transformación del Procesador de datos. 20 Capítulo 2: Transformación del Procesador de datos Registro de usuario El usuario contieneRegistro de usuarios eventos de registro que se configuran para los componentes en un script. La transformación del Procesador de datos escribe en el registro de usuarios cuando se ejecuta desde la vista Visor de datos y cuando se ejecuta en una asignación. Puede ver el registro de usuario en un editor de texto. Registro de eventos en tiempo de diseño El registro de eventos de tiempo de diseño contiene los eventos generados cuando se ejecuta la transformación del Procesador de datos desde el Visor de datos en la Herramienta del desarrollador. Cuando se ejecuta una transformación del Procesador de datos desde la vista Visor de datos, el registro de eventos de tiempo de diseño aparece en la vista Eventos del procesador de datos. De forma predeterminada, el registro de eventos de tiempo de diseño contiene notificaciones, advertencias y errores. En la configuración de transformación, puede configurar la transformación del Procesador de datos para excluir uno o más tipos de eventos del registro. Cuando se guardan los documentos de entrada con el registro, puede hacer clic en un evento en la vista Eventos del procesador de datos para encontrar la ubicación en el documento de entrada que ha generado el evento. Cuando configure la configuración de la transformación del Procesador de datos, puede elegir guardar los archivos de entrada para cada ejecución o solo en caso de error. El registro de eventos de tiempo de diseño se llama events.cme. Puede encontrar el registro de eventos de tiempo de diseño de la última ejecución de la transformación del Procesador de datos en el directorio siguiente: C:\\clients\DT\CMReports\Init\events.cme La transformación del Procesador de datos sobrescribe el registro de eventos de tiempo de diseño cada vez que se ejecuta la transformación en el Visor de datos. Cambie el nombre del registro de eventos de tiempo de diseño si desea verlo después de una posterior ejecución de la transformación, o si desea comparar los registros de distintas ejecuciones. Cuando se cierra la Herramienta del desarrollador, el desarrollador no guarda ningún archivo en el Registro de eventos de tiempo de ejecución El registro de eventos en tiempo de ejecución registra los eventos que ocurren cuando se ejecuta la transformación del Procesador de datos en una asignación. Si la transformación del Procesador de datos finaliza la ejecución sin fallos, no escribe un registro de eventos. Si hay errores en la ejecución, la transformación del Procesador de datos se ejecuta por segunda vez y escribe un registro de eventos durante la segunda ejecución. El registro de eventos en tiempo de ejecución se llama events.cme. En un equipo Windows, el registro de eventos en tiempo de ejecución se encuentra en el directorio siguiente: C:\clients\DT\CMReports\Tmp\ En un equipo UNIX o Linux, el registro de eventos en tiempo de ejecución se encuentra en el directorio siguiente: /root//clients/DT/CMReports/Tmp En un equipo UNIX o Linux, puede encontrar el registro de eventos en tiempo de ejecución para un usuario que no sea raíz en el directorio siguiente: /home/[UserName]//DT/CMReports/Tmp Utilice el editor de configuración para cambiar la ubicación del registro de eventos en tiempo de ejecución. Registros 21 Cómo visualizar un registro de eventos en la vista Eventos del procesador de datos Utilice la vista Eventos del procesador de datos para ver un registro de eventos de tiempo de diseño o un registro de eventos de tiempo de ejecución. Abra el explorador de Windows y, a continuación, busque el archivo de registro de eventos que desee visualizar. Arrastre el registro desde el explorador de Windows a la vista Eventos del procesador de datos. Haga clic con el botón derecho en la vista Eventos del procesador de datos y, a continuación, seleccione Buscar para buscar el registro. Nota: Para volver a cargar el último registro de eventos de tiempo de diseño, haga clic con el botón derecho en la vista Eventos del procesador de datos y, a continuación, seleccione Volver a cargar los eventos del proyecto. Registro de usuario El registro de usuario contiene mensajes personalizados que se configuran con fallos de componentes de un script. La transformación del Procesador de datos escribe mensajes en el registro de usuario cuando se ejecuta un script desde la vista del Visor de datos y cuando se ejecuta en una asignación. Cuando un componente del script tiene la propiedad on_fail, puede configurarlo para que escriba un mensaje en el registro de usuario si genera un error. En el script, configure la propiedad on_fail con uno de los siguientes valores: ¨ LogInfo ¨ LogWarning ¨ LogError Cada ejecución del script genera un nuevo registro de usuario. El nombre del archivo de registro de usuario contiene el nombre de la transformación con un GUID único: _.log Por ejemplo, CalculateValue_Aa93a9d14-a01f-442a-b9cb-c9ba5541b538.log En un equipo Windows, puede encontrar el registro de usuario en el directorio siguiente: c:\Users\[UserName]\AppData\Roaming\Informatica\DataTransformation\UserLogs En un equipo Linux o UNIX, puede encontrar el registro de usuario para el usuario raíz en el directorio siguiente: //DataTransformation/UserLogs En un equipo Linux o UNIX, puede encontrar el registro de usuario para un usuario que no sea raíz en el directorio siguiente: home//DataTransformation/UserLogs Desarrollo de la transformación del Procesador de datos Para crear una transformación del Procesador de datos, cree la transformación, elija los esquemas XML que definan la entrada o salida, y defina objetos de XMap o script en la transformación. 22 Capítulo 2: Transformación del Procesador de datos Paso 1. Crear la transformación del Procesador de datos Cree la transformación del Procesador de datos en el repositorio de modelos. 1. En la Herramienta del desarrollador, haga clic en Archivo > Nuevo > Transformación. 2. Seleccione la transformación del Procesador de datos y haga clic en Siguiente. 3. Introduzca un nombre para la transformación y busque la ubicación en el repositorio de modelos donde colocar la transformación. 4. Haga clic en Finalizar. La Herramienta del desarrollador crea la transformación en el repositorio. La vista Resumen aparece en la Herramienta del desarrollador. Puede actualizar los puertos de transformación después de definir los esquemas y los objetos en la transformación. 5. Opcionalmente, haga clic en la vista Referencias para elegir los objetos de esquema que definen las jerarquías de entrada o de salida para cada componente que vaya a crear. Paso 2. Seleccionar los objetos de esquema Seleccione los objetos de esquema que definen las jerarquías XML de entrada o de salida para cada componente de XMap o Script que vaya a crear. Puede añadir referencias de esquema en la vista Referencias o puede añadir las referencias de esquema al crear objetos de Script o XMap. El objeto de esquema debe estar en el repositorio de modelos antes de que pueda hacer referencia a él en un Script o XMap. 1. En la vista Referencias de la transformación del Procesador de datos, haga clic en Añadir. 2. Si el objeto de esquema existe en el repositorio de modelos, busque y seleccione el esquema. 3. Si el esquema no existe en el repositorio de modelos, haga clic en Crear un nuevo objeto de esquema e importe un objeto de esquema desde un archivo .xsd. 4. Haga clic en Finalizar para añadir la referencia de esquema a la transformación del Procesador de datos. Paso 3. Crear objetos Cree un objeto de script o XMap en la vista Objetos de la transformación del Procesador de datos. Después de crear el objeto, puede abrirlo desde la vista Objetos para configurarlo. Crear un script Cree un objeto de script y defina el tipo de componente de script que va a crear. Opcionalmente, puede definir una referencia de script y un archivo de origen de ejemplo. 1. En la transformación del procesador de objetos de datos, haga clic en Nuevo. 2. Especifique un nombre para el objeto de script y haga clic en Siguiente. 3. Elija crear un Analizador o un Serializador. Seleccione Otro para crear un componente de asignador, transformador o de transmisión por secuencias. 4. Especifique un nombre para el componente. 5. Si el componente es el primer componente para procesar datos en la transformación, habilite Establecer como componente de inicio. Desarrollo de la transformación del Procesador de datos 23 6. Haga clic en Siguiente si desea especificar una referencia de esquema para este script. Haga clic en Finalizar si no desea especificar la referencia de esquema. 7. Si elige crear una referencia de esquema, seleccione Agregar referencia al objeto de esquema y busque el objeto de esquema en el repositorio de modelos. Haga clic en Crear un nuevo objeto de esquema para crear el objeto de esquema en el repositorio de modelos. 8. Haga clic en Siguiente para especificar una referencia de origen de ejemplo o para especificar un texto de ejemplo. Haga clic en Finalizar si no desea definir un origen de ejemplo. Utilice un origen de ejemplo para definir datos de ejemplo y para probar el script. 9. Si elige para seleccionar un origen de ejemplo, seleccione Archivo y busque el archivo de ejemplo. También puede introducir texto de ejemplo en el área Texto. La Herramienta del desarrollador añade el texto a un script. 10. Haga clic en Finalizar. La vista Script aparece en el editor de la Herramienta del desarrollador. Crear un XMap Cree un XMap en la vista Objetos de Data Transformation. Cuando se crea un XMap, debe tener un esquema que desciba la entrada y la salida de documentos XML. 1. En la vista Objetos de la transformación del Procesador de datos, haga clic en Nuevo. 2. Seleccione XMap y haga clic en Siguiente. 3. Especifique un nombre para el XMap. 4. Si el componente XMap es el primer componente para procesar datos en la transformación, habilite Establecer como componente de inicio. Haga clic en Siguiente. 5. Si elige crear una referencia de esquema, seleccione Agregar referencia al objeto de esquema y busque el objeto de esquema en el repositorio de modelos. Haga clic en Crear un nuevo objeto de esquema para importar un nuevo objeto de esquema. 6. Si tiene un archivo XML de ejemplo que puede usar para probarlo con XMap, busque y seleccione el archivo en el sistema de archivos. Puede cambiar el archivo XML de ejemplo. 7. Elija la raíz de la jerarquía de entrada. En el cuadro de diálogo Selección del elemento raíz, seleccione el elemento en el esquema que sea el elemento del XML de entrada. Puede buscar un elemento en el esquema. Puede utilizar búsqueda de patrones. Introduzca * para que coincida con cualquier número de caracteres en la cadena. Intro ? para que coincide con un solo carácter. 8. Haga clic en Finalizar. La Herramienta del desarrollador crea una vista para cada XMap que cree. Haga clic en la vista para configurar la asignación. 24 Capítulo 2: Transformación del Procesador de datos Paso 4. Crear los puertos Configure los puertos de entrada y salida en la vista Resumen. Cuando configure puertos de entrada o de salida adicionales en un script, la Herramienta del desarrollador añade puertos de entrada y de salida adicionales a la transformación de forma predeterminada. No puede añadir puertos de entrada en la vista Resumen. 1. Si desea que se devuelvan filas de datos de salida en lugar de XML, habilite Salida relacional. Al habilitar la salida relacional, la Herramienta del desarrollador elimina el puerto de salida predeterminado. 2. Seleccione el tipo de datos, el tipo de puerto, la precisión y la escala del puerto de entrada. 3. Si no define los puertos de salida relacional, defina el tipo de datos, el tipo de puerto, la precisión y la escala del puerto de salida. 4. Si un Script tiene puertos de entrada adicionales, puede definir la ubicación del archivo de entrada de ejemplo para los puertos. Haga clic en el botón Abrir del campo Ubicación de entrada para buscar el archivo. 5. Si ha habilitado la salida relacional, haga clic en Salida de asignación para crear los puertos de salida. 6. En la vista Puertos, asigne nodos desde la zona de Salida jerárquica a los campos de la zona Puertos relacionales. Paso 5. Probar la transformación Pruebe la transformación del Procesador de datos en la vista Visor de datos. Antes de probar la transformación, compruebe que ha definido el componente de inicio. Puede definir el componente de inicio en un script o puede seleccionar el componente de inicio en la pestaña Resumen . También debe haber elegido un archivo de entrada de ejemplo con el que probarlo. 1. Abra la vista Visor de datos. 2. Haga clic en Ejecutar. La Herramienta del desarrollador valida la transformación. Si no hay errores, la Herramienta del desarrollador muestra el archivo de ejemplo en la zona de Entrada. Los resultados de salida aparecen en el panel de Salida. 3. Haga clic en Mostrar eventos para mostrar la vista Eventos del procesador de datos. 4. Haga doble clic en un evento de la vista Eventos del procesador de datos para depurar los eventos del editor del script. 5. Haga clic en Sincronizar con el editor para cambiar el archivo de entrada cuando pruebe varios componentes, cada uno con un archivo de entrada de ejemplo diferente. Si modifica el contenido del archivo de ejemplo en el sistema de archivos, los cambios aparecen en la zona de Entrada. Importación y exportación de la transformación del Procesador de datos Puede exportar una transformación del Procesador de datos como servicio y ejecutarla desde un repositorio de Data Transformation. También puede importar un servicio de Data Transformation a la Herramienta del desarrollador. Importación y exportación de la transformación del Procesador de datos 25 Cuando se importa un servicio de Data Transformation, la Herramienta del desarrollador crea una transformación del Procesador de datos desde el servicio. Nota: Cuando se importa un servicio de Data Transformation al repositorio de modelos, la Herramienta del desarrollador importa los esquemas XML asociados con el repositorio. Si modifica el esquema en el repositorio, a veces los cambios no aparecen en las referencias del esquema de transformación. Puede cerrar y abra la conexión del repositorio de modelos, o bien cerrar y abrir la Herramienta del desarrollador para que los cambios en el esquema aparezcan en la transformación. Exporting the Data Processor Transformation as a Service You can export the Data Processor transformation as a Data Transformation service. Export the service to the file system repository of the machine where you want to run the service. You can run the service with PowerCenter, userdefined applications, or the Data Transformation CM_console command. 1. In the Object Explorer view, right-click the Data Processor transformation you want to export, and select Export. The Export dialog box appears. 2. Select Informatica > Export Data Processor Transformation and click Next. The Select page appears. 3. Click Next. The Select Service Name and Destination Folder page appears. 4. Choose a destination folder: ¨ To export the service on the machine that hosts the Developer tool, click Service Folder. ¨ To deploy the service on another machine, click Folder. Browse to the \ServiceDB directory on the machine where you want to deploy the service. 5. Click Finish. Importar un servicio de Data Transformation Puede importar un archivo .cmw de un servicio de Data Transformation en el Repositorio de modelos y crear una tranformación de Procesador de datos 1. Haga clic en Archivo > Importar. Aparece el cuadro de diálogo Importar. 2. Seleccione Informatica Importar servicio de Data Transformation y haga clic en Siguiente . Aparece la página Importar servicio de Data Transformation . 3. Busque el archivo .cmw que desee importar. La Herramienta del desarrollador importa los esquemas y datos de ejemplo con el archivo .cmw . La Herramienta del desarrollador crea una transformación de forma predeterminada. 4. 26 Haga doble clic en la transformación del navegador para editarlo. Capítulo 2: Transformación del Procesador de datos CAPÍTULO 3 XMap Este capítulo incluye los siguientes temas: ¨ Resumen de XMap, 27 ¨ Esquemas de XMap, 28 ¨ Instrucciones de asignación, 28 ¨ Crear instrucciones de asignación, 33 ¨ Expresiones de XPath, 34 ¨ Variables de XMap, 38 ¨ Ejemplo de XMap, 39 Resumen de XMap XMap es un objeto de la transformación del Procesador de datos que transforma un documento XML en otro con una estructura jerárquica diferente. Cuando se configura un objeto de XMap, se asignan nodos desde el esquema XML de entrada a los nodos del esquema XML de salida. Puede arrastrar los nodos de entrada a los nodos de salida para crear instrucciones de asignación. Puede editar las instrucciones de asignación en el editor de XMap. Puede definir condiciones para transformar los datos y puede definir los predicados para filtrar los datos de las instrucciones de asignación. Cuando se abre un objeto de XMap, aparece el editor de XMap: El panel superior del editor de XMap contiene el esquema XML de entrada y de salida. El esquema de entrada está en la parte izquierda del panel y el esquema de salida en la parte derecha. Puede arrastrar los nodos desde el esquema de entrada hasta los elementos en el esquema de salida para crear una asignación. Cuando se arrastra un nodo hasta un nodo de salida, la Herramienta del desarrollador crea una instrucción de asignación en la cuadrícula. 27 La cuadrícula es la parte inferior del editor de XMap. Introduzca una definición de asignación detallada en la cuadrícula. La definición de la asignación contiene una jerarquía de instrucciones de asignación que describen cómo asignar elementos de entrada a los elementos de salida. Puede arrastrar elementos desde los esquemas de entrada o salida a campos de las instrucciones de asignación que defina en la cuadrícula. Esquemas de XMap La parte superior del editor de XMap muestra los esquemas de entrada y salida. No se pueden cambiar los esquemas en el editor de XMap, pero se puede cambiar la raíz de entrada y salida, añadir variables y personalizar la vista del esquema. Puede seleccionar las siguientes opciones de esquema en el editor de XMap: Personalizar vista Cambia la forma en que se muestra el esquema. Incluye nodos para los indicadores de orden de secuencia, todos y elección. Ver estos nodos para conocer la lógica del esquema. Estos nodos no afectan a la asignación. Buscar Busca elementos en el esquema. Puede buscar en los esquemas de entrada y salida por separado. Variables Define las variables para almacenar los datos. Puede asignar nodos a las variables y variables a los nodos. También puede asignar variables a variables. Cuando se crea una variable, esta aparece al final de ambos esquemas. Seleccionar la raíz de entrada o salida Cambia el elemento raíz en el esquema de entrada o salida. Puede cambiar el elemento raíz para hacer referencia a otra parte del esquema. Por ejemplo, puede seleccionar un elemento raíz para que coincida con la raíz de un documento XML de entrada o salida. Seleccionar el origen de ejemplo Define el archivo de origen de ejemplo. El archivo de origen de ejemplo está en el repositorio de modelos. Utilice un origen de ejemplo para probar la transformación y para probar las expresiones XPath. Instrucciones de asignación Una instrucción de asignación describe cómo asignar nodos desde el esquema de entrada al esquema de salida en un XMap. Cuando se arrastra un nodo desde el esquema de entrada al esquema de salida, la herramienta Desarrollador crea instrucciones de asignación en el editor de XMap. Puede editar las instrucciones de XMap para añadir los predicados, las funciones XMap y las referencias a variables. Puede definir condiciones para la asignación de los elementos. Una expresión XMap del elemento de entrada determina si la transformación Procesador de datos lleva a cabo la instrucción de asignación. La transformación del Procesador de datos lleva a cabo la instrucción de asignación para cada ocurrencia del elemento o expresión de entrada. 28 Capítulo 3: XMap Una instrucción de asignación puede ser primaria para un grupo de instrucciones secundarias. Las instrucciones secundarias aparecen indexadas desde el primario en el editor de XMap. Cuando la transformación Procesador de datos lleva a cabo la instrucción principal, realiza las instrucciones secundarias en el grupo. Cada instrucción de asignación tiene un número de fila. Tipos de instrucción de asignación Defina el tipo de instrucción de asignación según si desea asignar un valor simple, asignar una instrucción de repetición o enrutar la asignación en función de una condición. Cuando se crea una instrucción arrastrando un nodo de entrada a un nodo de salida, la herramienta Desarrollador crea un tipo de mensaje según si el nodo es simple, complejo, o de repetición. Puede llamar a otro objeto XMap con una instrucción de asignación. Puede definir los siguientes tipos de instrucciones de asignación en la malla: Asignar Asigna un valor simple a un valor simple. La entrada debe ser un valor único o un valor constante. Debe definir la entrada y salida en una instrucción Asignar. Group Define un grupo lógico de instrucciones. La entrada puede ser un nodo complejo del esquema de entrada. Una instrucción de grupo es un principal de las instrucciones de asignación situadas debajo de ella. Un nodo de grupo del esquema define el contexto para los nodos a los que haga referencia en las instrucciones secundarias. Grupo de repetición Define una instrucción de grupo que la transformación del Procesador de datos realiza varias veces. La entrada es un elemento que se repite o un conjunto de nodos de una expresión XPath. Debe configurar la entrada en una instrucción Grupo de repetición. La salida no es necesaria en la instrucción. Enrutador Define un grupo de instrucciones de opción. Cuando la transformación Procesador de datos realiza una instrucción Enrutador, comprueba cada Opción anidada debajo de la instrucción Enrutador. La transformación Procesador de datos acepta la primera instrucción Opción con una expresión XPath de entrada que se evalúa en un nodo sencillo. O, acepta la primera instrucción de opción que no tenga entrada de XPath y que tenga una condición verdadera de XPath. La transformación Procesador de datos lleva a cabo la primera instrucción Opción que acepta. La transformación no realizar ninguna otra instrucción Opción. Si la instrucción Opción falla, la instrucción Enrutador también lo hace. Defina una instrucción predeterminada para realizar una operación cuando la transformación del Procesador de datos no selecciona ninguna de las instrucciones de opción. Opción La instrucción que proporciona la condición para asignar el nodo de entrada al nodo de salida. Una instrucción Opción debe estar anidada debajo de una instrucción Enrutador. La instrucción Enrutador debe tener una XPath de entrada o una XPath de condición. O, la instrucción de opción puede incluir una entrada y una condición de XPath. Predeterminado La instrucción Predeterminado que debe realizarse cuando la transformación Procesador de datos no acepta ninguna de las instrucciones Opción. Puede definir una instrucción predeterminado en un grupo Enrutador. La instrucción Predeterminada debe ser la última instrucción del grupo Enrutador. La instrucción Predeterminado no puede tener XPaths de entrada o de condición. Ejecutar XMap Llama a otro objeto de XMap en la transformación del Procesador de datos. Se puede llamar a otro XMap para realizar la lógica de asignación que se repite. Instrucciones de asignación 29 Campos de instrucción de asignación Las instrucciones de asignación contienen campos que puede configurar para personalizar la instrucción. Puede configurar la entrada, la salida y la condición para asignar el elemento. Configure si desea omitir una instrucción cuando genere un error o le falte entrada. Configure si la transformación del Procesador de datos añade un nuevo elemento de salida o coincide con un elemento existente con un valor de una instrucción de asignación. Puede configurar los siguientes campos de asignación: Nombre Un nombre para la instrucción. Puede cambiar el nombre en cualquier momento. El nombre identifica las instrucciones de modo que puede encontrarlas en la malla de asignación o en un registro de eventos. Los nombres de las instrucciones no tienen que ser únicos. Tipo de instrucción Identifica la operación de instrucción. Si la instrucción llama a otro XMap, el campo Tipo de instrucción contiene el nombre del XMap que hay que llamar. Entrada Una expresión XPath que evalúa una secuencia de nodos o valores. El tipo de instrucción de asignación determina cómo usa la transformación Procesador de datos los nodos o valores en la asignación. Condición Una expresión XPath que define una condición para la asignación del elemento. Una condición es similar a una expresión de predicado en la columna Entrada. Si define una expresión XPath de entrada y una expresión XPath de condición para la misma instrucción de asignación, la transformación Procesador de datos aplica la XPath de condición al resultado de la XPath de entrada. Omitir la entrada que falta Cuando está habilitado, si el elemento de entrada no está en el documento XML, la transformación Procesador de datos omite la instrucción sin mostrar errores. Si Omitir la entrada que falta está deshabilitado, la instrucción falla si el elemento no está en el documento XML de entrada. Predeterminado El valor predeterminado que se usa cuando falta un elemento en la entrada. Por ejemplo, puede definir un valor predeterminado para inicializar un contador. En fallo Si la instrucción falla, puede elegir cómo manejar el error. Habilite Omitir u Omitir iteración si es correcto omitir la instrucción porque ha fallado. Omitir iteración aparece si la instrucción es una instrucción Grupo de repetición. Seleccione Propagar para forzar la instrucción primaria para que genere un error también. Salida Una expresión XPath que define el valor del elemento en el XML de salida según los resultados de la expresión XPath de entrada. Si la instrucción de asignación tiene instrucciones secundarias, el campo Salida proporciona el contexto para las instrucciones secundarias. Modo Determina si la transformación Procesador de datos añade un nodo de salida o coincide con un nodo existente con un valor de una instrucción de asignación. Elija uno de los siguientes modos: Añadir Cree un nuevo elemento en el documento XML de salida. Si el elemento no es de ocurrencia múltiple y existen los mismos valores en la salida, la instrucción de asignación genera un error. 30 Capítulo 3: XMap Coincidir Seleccione Coincidir si espera encontrar siempre una coincidencia para el valor en los elementos de salida. La instrucción de asignación genera un error si la transformación Procesador de datos no encuentra ninguna coincidencia para el valor en el documento XML de salida. Cada valor de elemento ya debe existir en la salida. Coincidir o añadir Seleccione Coincidir o añadir si espera hacer coincidir con un valor de nodo o crear un nuevo nodo si no existe en el documento XML de salida. Instrucciones de grupo Una instrucción Group define un grupo lógico de instrucciones. Una instrucción Group es la principal de las instrucciones de asignación anidadas. El nodo de grupo define el contexto para los nodos a los que se hacen referencia en las instrucciones secundarias. Cada instrucción en un grupo está relacionada por contexto. La entrada o la salida de la instrucción Group define el contexto. La entrada para cada instrucción de un grupo puede ser descendiente del mismo nodo en el esquema de entrada. Ejemplo de instrucción de grupo Un esquema tiene un nodo Employee de una sola ocurrencia. Employee tiene los nodos secundarios FirstName y LastName: Employee FirstName LastName Si crea una instrucción de asignación de grupo y configura Employee como la entrada, cada instrucción de asignación que incluya en el grupo se encuentra en el contexto de empleado. En la siguiente ilustración, la instrucción 1 es la instrucción de grupo: La columna Entrada para la instrucción de grupo muestra que la entrada es el nodo principal de FirstName y LastName. La instrucción 2 y la instrucción 3 son instrucciones secundarias de la instrucción 1. El elemento secundario instrucciones aparece sangrado desde la instrucción principal. Para cada elemento de empleado de entrada, asigne el elemento FirstName y LastName para la salida. Instrucciones de grupo de repetición Una instrucción de grupo de repetición es una instrucción de grupo que puede aparecer varias veces. La entrada es una expresión XPath que puede evaluarse en una secuencia de nodos o valores. La transformación del Procesador de datos lleva a cabo la instrucción de grupo de repetición para cada nodo o el valor que es resultado de la expresión XPath de entrada. Instrucciones de asignación 31 Ejemplo de instrucción de grupo de repetición Puede tener un esquema de entrada con la siguiente jerarquía: Employees Employee (Unbounded) LastName FirstName Cuando se arrastra Empleado a un nodo de salida en el editor de XMap, la herramienta Desarrollador crea una instrucción de asignación de grupo de repetición de forma predeterminada. Un grupo de repetición puede contener instrucciones de asignación para devolver LastName y FirstName para cada empleado del documento XML de entrada. Instrucciones de enrutador, opción, y predeterminadas Una instrucción de enrutador proporciona más de una alternativa para la lógica de asignación basadas en condiciones del documento de entrada. Cuando configure una instrucción de enrutador, debe configurar al menos una instrucción Opción debajo de ella. La transformación Procesador de datos evalúa los campos de entrada y condición en la instrucción Opción. La transformación Procesador de datos acepta una instrucción Opción cuando los resultados de la expresión XPath de entrada y XPath de condición se evalúan en un singlete. Un singlete es una secuencia de un solo valor de nodo. Si no define un valor XPath de entrada, la transformación del Procesador de datos acepta la instrucción Opción cuando XPath de condición es verdadera. Puede configurar varias instrucciones Opción en el mismo grupo de enrutadores. La transformación Procesador de datos lleva a cabo la primera instrucción Opción que acepta. No realiza ninguna instrucción Opción debajo de ella en el grupo. Si la transformación Procesador de datos no acepta una instrucción Opción, comprueba la siguiente instrucción Opción. Cuando la transformación no acepta ninguna instrucción, la instrucción Enrutador puede fallar. Si la instrucción Opción tiene una condición que es verdadera, pero las instrucciones de asignación dentro de ella fallan y propagan el fallo, el enrutador falla. Puede configurar la asignación para omitir el Enrutador si este puede fallar. La instrucción Opción puede contener una o varias instrucciones secundarias de cualquier tipo, incluidos Map, Group, Repeating Group, Run XMap y otras instrucciones de Enrutador Por ejemplo, una instrucción Opción puede contener la siguiente condición: EmployeeID="100" Cuando EmployeeID es 100, la condición es verdadera. La instrucción secundario en la malla define la instrucción de asignación que hay que evaluar cuando la condición es verdadera. Ejemplo de instrucción de enrutador Un XMap contiene un grupo de repetición en el contexto de Empleado. La primera instrucción secundario del grupo es una instrucción de Enrutador. El Enrutador tiene una instrucción Opción. La instrucción Opción tiene una condición que comprueba si el valor de Función es igual al valor de Manager. Si la Función es igual a Manager, la opción es verdadera. La asignación evalúa la siguiente instrucción para la opción. La transformación Procesador de datos llama al XMap EmployeeToWorker para asignar elementos a Manager. Si la Función no es igual a Manager, la instrucción predeterminada es verdadera. La asignación evalúa la siguiente instrucción para la opción predeterminada. La instrucción de asignación predeterminada llama al XMap EmployeeToWorker XMap para asignar los elementos a Worker. La siguiente figura muestra la instrucción de Enrutador con una instrucción Opción y una instrucción predeterminada: 32 Capítulo 3: XMap Ejecutar instrucciones de XMap Utilice una instrucción Ejecutar XMap para llamar a otro XMap. Cuando se crea una instrucción de asignación Ejecutar XMap, la herramienta Desarrollador muestra los objetos XMap en la transformación. Seleccione el XMap que desea llamar. La herramienta Desarrollador crea una instrucción de asignación con el nombre XMap en el campo Tipo de instrucción. Los elementos raíz de entrada y salida en el XMap llamado deben ser del mismo tipo que los valores de entrada y salida que se le están pasando desde el XMap de llamada. Crear instrucciones de asignación Cree instrucciones de asignación en el editor de XMap. Puede crear instrucciones de asignación arrastrando nodos desde el esquema de entrada al esquema de salida y definir las instrucciones en la malla de instrucciones de asignación. Cuando se arrastra un nodo desde el esquema de entrada al esquema de salida, la Herramienta del desarrollador crea una instrucción de asignación Asignar, Grupo o Grupo de repetición en la malla. Puede actualizar la instrucción de asignación. Los campos de Entrada y Salida contienen los elementos del esquema. Si desea crear instrucciones de asignación para proporcionar contexto o para definir las opciones de enrutador, puede escribir instrucciones en la malla. Cuando seleccione una instrucción de asignación en la malla, el editor XMap resalta los nodos de los esquemas de entrada y salida que están en la instrucción de la malla. Puede copiar una instrucción de una fila a otra fila en la malla. Si la fila no es válida para la ubicación en la que se copia, el editor XMap muestra un cuadro de diálogo con un error de que la instrucción no es válida en el contexto actual. Puede cambiar las instrucciones XPath de entrada y salida en el cuadro de diálogo para ajustar el contexto de instrucción de asignación, o puede cambiar los campos XPath de entrada y salida en la malla. Utilice los siguientes pasos para definir las instrucciones de asignación en la malla: 1. En las opciones de malla, haga clic en Nuevo. 2. Seleccione el tipo de instrucción de asignación de la lista. Si elige Ejecutar XMap, la Herramienta del desarrollador muestra una lista de objetos XMap objetos en la transformación. 3. Opcionalmente, defina un nombre para la instrucción de asignación. 4. Arrastre un elemento desde el esquema de entrada al campo Entrada para definir la entrada de la instrucción de asignación. O, puede configurar una expresión de XPath o una constante en el campo de entrada. 5. Arrastre un elemento desde el esquema de salida al campo Salida para definir la salida de la instrucción de asignación. También puede configurar una expresión XPath en el campo Salida. 6. Para crear una expresión XPath en un campo Entrada, Salida o Condición, haga clic en el botón Abrir en el campo para abrir el editor de expresiones. Crear instrucciones de asignación 33 7. Para cambiar el tipo de instrucción de asignación, haga clic en el botón Abrir en el campo Tipo de instrucción. Elija el tipo de instrucción de asignación de la lista. Expresiones de XPath Cree una expresión XPath para identificar elementos específicos en documentos XML, seleccione nodos o compruebe las condiciones en los datos. Cree expresiones de XPath en el campo Entrada, Condición o Salida de una instrucción de asignación de XMap. XPath es una sintaxis para definir partes de un documento XML. Utilice XPath para seleccionar secuencias de nodos o valores en un documento XML. XPath incluye una biblioteca de funciones estándar que puede usar para seleccionar los datos. Puede definir expresiones de XPath 2.0 en la transformación del Procesador de datos. Cuando configure las expresiones de XPath de salida, puede utilizar un subconjunto de la sintaxis de XPath 2.0 cuando defina instrucciones de asignación para Añadir modo o Coincidir o Añadir modo. Para obtener más información sobre la XPath, consulte la documentación de XPath. La siguiente tabla describe algunas expresiones de XPath: Expresión de XPath Descripción nodename Selecciona todos los nodos secundarios del nombre determinado en el contexto. . (punto) Selecciona el nodo actual. .. Selecciona el primario del nodo actual. @ Selecciona el atributo. / Selecciona desde el nodo raíz o secundario del nodo actual si está precedido por un nodo. Cuando la ruta de acceso empieza con una barra (/), representa una ruta absoluta a un elemento. // Selecciona nodos en cualquier lugar del documento o descendientes del nodo actual si viene precedido por un nodo. La siguiente tabla muestra algunas expresiones de XPath y el resultado de cada expresión: 34 Expresión de XPath Resultado /bookstore Selecciona el nodo de librería raíz. bookstore/book Selecciona los nodos de libros que son secundarios de todos los nodos de la librería. //book Selecciona los nodos de libros del documento en todas las ubicaciones. Capítulo 3: XMap Expresión de XPath Resultado bookstore//book Selecciona todos los nodos de libros que son descendientes de los nodos de la librería. /bookstore/* Selecciona todos los nodos secundarios del elemento raíz de la librería. //* Devuelve una secuencia de todos los elementos del documento. Predicados Un predicado es una expresión que puede configurar para encontrar un nodo en un documento XML. Puede configurar la expresión para buscar un valor específico. Cree un predicado en una Entrada o Condición, o en el campo Salida de una instrucción de asignación. Cuando se define un predicado, escriba la expresión entre corchetes [] tras el nodo. /[expression] Por ejemplo, la siguiente expresión selecciona los elementos del libro que provienen de la librería y tienen un elemento de precio con un valor mayor a 55.00: /bookstore/book[price>55.00] La siguiente expresión selecciona los elementos de título de los elementos del libro que descienden de la librería y tienen un valor de elemento de precio mayor a 55.00: /bookstore/book[price>55.00]/title La siguiente expresión selecciona los elementos del título que tienen un lang con el valor "eng": //title[@lang="eng"] Nota: La transformación Procesador de datos no puede aceptar todas las instrucciones XPath cuando se configura una instrucción de asignación con el modo Añadir o el modo Coincidencia o Añadir. Editor de expresiones XPath Cree expresiones en el editor de expresiones XPath. Cuando haga clic en el botón Abrir del campo Entrada, Condición o Salida, aparecerá el editor de expresiones: Expresiones de XPath 35 Cree expresiones en el panel Expresión. El editor de expresiones XPath tiene un panel de Navegación con una función de biblioteca que se puede utilizar para crear expresiones XPath. Las funciones son estándar para W3C XML Path Language. La función de biblioteca también incluye algunas funciones específicas para la transformación del Procesador de datos. Funciones del Procesador de datos El editor de expresiones tiene funciones del Procesador de datos que puede usar para la transformación del Procesador de datos. La siguiente tabla describe las funciones de XPath del Procesador de datos: 36 Función Descripción Sintaxis dp:as_xml Recibe un nodo como una entrada y devuelve el valor de nodo y el valor de todos los elementos secundarios como una cadena XML de forma recursiva. dp:as_XML() dp:get_id Genera un ID único asociado con un nodo y lo devuelve. Puede usar el ID para crear relaciones de clave principal-clave externa en los datos. Asigne el ID para un nodo en el XML y asígnelo a las claves en datos relacionales. dp:get_id() Capítulo 3: XMap Función Descripción Sintaxis dp:input Devuelve el nodo que proporciona el contexto de entrada actual. Utilice la función en el campo Salida para hacer referencia a un nodo desde el esquema Entrada. dp:input() dp:lookup Recupera los datos de un transformador de búsqueda que defina en un script. Puede realizar una búsqueda de archivos en línea o externos. dp:lookup(,,[valor predeterminado]) Devuelve el nodo que proporciona el contexto de salida actual. Utilice la función en el campo Entrada para hacer referencia a un nodo en el esquema de salida. dp:output() dp:output - Lookuptable-name. El nombre del transformador de búsqueda en el script. - Lookup-value. El valor para buscar. - Valor predeterminado. Un valor de retorno predeterminado para utilizarlo si la búsqueda genera un error. Si el valor predeterminado falta y la búsqueda no puede encontrar un valor coincidente, la función genera un error. Ejemplo de expresiones de XPath El siguiente ejemplo muestra expresiones de XPath en las instrucciones de asignación: El documento de entrada XMap es una lista de hijos y sus hobbies. La raíz de entrada es Children. Child es un elemento de ocurrencia múltiple dentro de Children. Cada hijo tiene un nombre y varios hobbies de ocurrencia múltiple. El Nombre consta de los elementos First, Initial y Last. La salida es una lista de las clases con el número de hijos en cada clase. La raíz de salida es Clases. Clases tiene un atributo que contiene el número total de clases. Cada elemento de entrada Hobby se asigna a un elemento de salida Class. Una instrucción de asignación concatena los elementos First, Initial y Last en el elemento de salida Child. Otra instrucción de asignación cuenta el número de hijos de cada clase. Otra instrucción cuenta el número de clases. Expresiones de XPath 37 El XMap contiene las siguientes expresiones: Núm ero de línea Expresión de entrada o salida Expresión Descripción 2 Salida Class[@name = dp:input()] Añade un nuevo elemento Class o encuentra una Clase que coincida con Hobby. La función dp:input() es obligatoria porque la expresión hace referencia a un elemento de entrada. 3 Entrada concat(../Name/First,' ',../Name/ Initial,' ',../Name/Last) Concatena Nombres, Iniciales y Apellidos y añade espacios entre ellos. 4 Entrada dp:output()/@noOfChildren + 1 Para cada Hobby que aparece, añade 1 al número de hijos para la clase. La función dp:output() es obligatoria porque la expresión hace referencia a un elemento de salida. 5 Entrada count(dp:output()/Class) Cuenta los elementos Class. La función dp:output() es obligatoria porque la expresión hace referencia a un elemento de salida. Crear expresiones Cree expresiones de XPath en el Editor de expresiones. 1. En la instrucción XMap, haga clic en el botón Abrir en el campo Entrada, Condición o Salida. Aparece el Editor de expresiones. 2. Haga doble clic en elementos en el panel Navegación para añadirlos a una expresión. 3. Haga clic en Validar para validar la expresión. 4. Si la expresión es para el campo Entrada, haga clic en Probar expresión para probar la expresión conforme a los datos de ejemplo. Los resultados aparecen cada vez que la Herramienta del desarrollador evalúa la expresión utilizando los datos de ejemplo. La expresión XPath puede devolver una secuencia de cero o más nodos o valores. La Longitud de secuencia indica cuántos nodos devuelve la expresión de XPath. Variables de XMap Puede añadir variables al editor de XMap. Puede asignar valores a las variables y usarlas en los predicados o como contenedores temporales de valores. Puede asignar variables a los elementos de salida. Cuando se crea una variable, la variable aparece en los esquemas de entrada y de salida en la vista XMap. La Herramienta del desarrollador añade un signo de dólar ($) al nombre de la variable para indicar que es una variable. Puede crear una variable que sea una lista de varios valores. Puede utilizar una variable de lista para el mismo propósito que un elemento de esquema de ocurrencia múltiple. Configure una variable de lista como entrada para un grupo de repetición o configure un predicado para buscar un valor en la variable de lista. 38 Capítulo 3: XMap Por ejemplo, tiene un documento XML con direcciones. Tiene que crear una lista con todos los países a partir de las direcciones. Asigne el elemento de país en una variable $countries que define como lista. Crear una variable en el editor de XMap Puede crear variables en el editor de XMap. 1. Haga clic en Variables encima del esquema de entrada o salida en el editor XMap. Aparece el cuadro de diálogo Variables. 2. Para crear una variable, haga clic en Nueva. 3. Especifique un nombre de variable y un tipo de datos. 4. Habilite la opción Lista para crear una variable de varias ocurrencias. Ejemplo de XMap Un documento XML contiene datos de empleados que incluyen el cargo del empleado en la empresa. Debe crear un documento XML que tiene los administradores y empleados en distintos grupos. Puede crear dos objetos XMap en la transformación del Procesador de datos para restructurar el documento XML. El componente de inicio en XMap es un objeto que contiene una instrucción de enrutador. Una instrucción Option comprueba si la función Employee es "Manager". Si la función es la de administrador, XMap asignar los elementos de empleados a un grupo de salida de administrador. De lo contrario, XMap asigna los elementos de empleados a un grupo de trabajadores en el XML de salida. El componente de inicio XMap llama a otro XMap para asignar los elementos de Employee a los elementos de salida. Datos de entrada XML El texto siguiente muestra datos de ejemplo desde el documento XML de entrada: Hypostores Customer Service Blair Conner Manager 1993-04-21 Karina Rasmussen Worker 1993-08-15 Research and Development Ejemplo de XMap 39 Thaddeus Burt Consultant 1998-02-26 Christen Fulton Worker 1997-11-16 Felix Boyd Worker 2009-12-29 Los datos pueden incluir varias empresas. Cada empresa tiene varios departamentos. Cada empleado de un departamento tiene una función que puede ser administrador u tratarse de otro tipo de trabajo. Jerarquías XML de entrada y salida El editor XMap muestra la jerarquía de entrada en el área de la izquierda de la vista y la jerarquía XML de salida en el área de la derecha de la vista. La siguiente figura muestra las jerarquías de XML de entrada y salida: XMap_Example_View_Top Instrucciones de asignación en el ejemplo El área de malla del editor de XMap contiene las instrucciones para asignar los elementos XML de entrada a los elementos XML de salida. La siguiente figura muestra las instrucciones de asignación en la malla: 40 Capítulo 3: XMap La siguiente tabla describe las instrucciones de asignación en la malla: Fila Nombre de la instrucción Tipo Entrada Descripción 1 Empresa Grupo de repetición Empresa La instrucción Empresa se repite para cada elemento de Empresa. La instrucción proporciona un contexto para el resto de instrucciones de la malla. Para cada compañía, la transformación del Procesador de datos evalúa las instrucciones secundarias. 2 Departamento Grupo de repetición Departamento La instrucción Departamento se repite para cada elemento de Departamento. La instrucción proporciona un contexto para el resto de instrucciones de la malla. Para cada departamento, la transformación del Procesador de datos evalúa las instrucciones secundarias. 3 Nombre para departamento Asignar Nombre Asigna el nombre a una variable $deptName. 4 Organización de coincidencia Grupo de repetición Departamento La organización de coincidencia tiene una expresión de salida: tns0:Organization[tns0:Department= $deptName] La instrucción, o bien encuentra (coincide con) el elemento Organización en la salida que contiene un elemento secundario Departamento con el valor en $deptName, O, si el elemento Departamento no existe, se crea el Departamento. 5 EmployeeToWorker Grupo de repetición Empleado La instrucción EmployeeToWorker se repite para cada elemento Empleado. 6 Empleado Enrutador No hay ninguna entrada La instrucción Empleado es una instrucción de Enrutador. La instrucción no tiene entrada ni salida. 7 EmployeeToMgr Opción No hay ninguna entrada La instrucción Opción tiene una condición tns0:Role="Manager". Cuando la Función es Administrador, la instrucción es verdadera. La transformación Procesador de datos evalúa las instrucciones situadas dentro de la opción. 8 EmployeeToWorker XMap_EmployeesToR oles Empleado Llama al XMap para pasar los elementos Empleado al tipo Administrador. Ejemplo de XMap 41 Fila Nombre de la instrucción Tipo Entrada Descripción 9 EmployeeToWorker Predeterminado 10 EmployeeToWorker XMap_EmployeesToR oles Empleado Llama al XMap para pasar los elementos Empleado al tipo Trabajador. 11 IncrementEmployee Cou Asignar dp:output()/ @ noOfEmployee s + 1 Para cada Empleado, añada 1 a @noOfEmployees. La instrucción EmployeeToWorker es una instrucción predeterminada. La transformación Procesador de datos lleva a cabo las instrucciones secundarias si la función Empleado no es un administrador. EmployeeToWorker XMap El XMap EmployeeToWorker mueve elementos de un empleado para un trabajador. El XMap procesa un empleado. La siguiente figura muestra el XMap EmployeeToWorker en el editor de XMap: La tabla siguiente describe las instrucciones de asignación: 42 Fila Nombre de la instrucción Tipo Entrada Descripción 1 EmployeeToWorker Group Employee Instrucción de grupo que proporciona contexto para el resto de instrucciones de asignación. 2 FIrstNametoFirstName Map FirstName Asigna el nombre al nombre. 3 LastNametoLastName Map LastName Asigna el apellido al apellido. Capítulo 3: XMap Fila Nombre de la instrucción Tipo Entrada Descripción 4 Empleado/@ID a ID Map @id Asigna el ID de empleado al ID de empleado. 5 StartDate a YearsofService Map year-fromdate(curre nt-date)) year-fromdate(startdate) Determina el número de años de servicio sustrayendo una fecha de inicio a la fecha actual. Ejemplo de XMap 43 CAPÍTULO 4 Interfaz de la línea de comandos Este capítulo incluye los siguientes temas: ¨ Resumen de la interfaz de línea de comandos, 44 ¨ CM_console, 44 Resumen de la interfaz de línea de comandos Puede ejecutar un servicio de Data Transformation desde la línea de comandos del equipo que aloja el servicio. Exporte una transformación del Procesador de datos como un servicio al directorio /ServiceDB en el equipo donde desea ejecutar el servicio de Data Transformation. Ejecute el comando CM_console. CM_console Ejecuta un servicio de Data Transformation. El comando CM_console emplea la siguiente sintaxis: CM_console [< -f | -u | -t >InputDocument] [ -aServiceParameter=InitialValue] [ -o] [ -r] [ -lUserName -pPassword] [ -v] [ -S] [ -xInputPortName=InputDocument] [ -xoOutputPortName=OutputDocument] [ -e] Nota: No incluya un espacio entre una opción y su argumento. 44 La siguiente tabla describe las opciones y los argumentos de CM_console: Opción Argumento Descripción - ServiceName Obligatorio. Especifica el nombre del servicio. -f InputDocument Opcional. Especifica una ruta y un nombre de archivo en el sistema de archivos local. De forma predeterminada, el servicio usa el documento definido en la propiedad example_source del componente de inicio. -t InputDocument Opcional. Especifica una cadena metida entre comillas dobles. -u InputDocument Opcional. Especifica una URL. -a ServiceParameter=InitialValue Opcional. Especifica un parámetro de entrada para el servicio. ServiceParameter es el nombre de una variable tal y como se define en el servicio. InitialValue debe ser de un tipo de datos que sea válido para la variable definida. Puede especificar varios parámetros de entrada, separados por espacios. -o FileName Opcional. Dirige la salida a Path/FileName. Si introduce solo FileName, debe definir la ruta de acceso con la opción -r. De forma predeterminada, el comando CM_console dirige la salida a la pantalla. [Path]FileName -r curr Opcional. Especifica el directorio desde el que ha ejecutado el comando CM_console. -r res Opcional. Especifica el subdirectorio de resultados en el directorio que contiene el servicio en el repositorio del sistema de archivos. -r spec=OutputDirectory Opcional. Especifica un directorio en el sistema de archivos local. -r guid Opcional. Especifica un directorio con un nombre único en el directorio CMReports/tmp. Puede usar el editor de configuración para cambiar la ubicación de este directorio. -l UserName Obligatorio cuando se usa la autenticación HTTP. Especifica el nombre de usuario para la autenticación HTTP. Nota: Esta opción es una L en minúscula. -p Contraseña Obligatorio cuando se usa la autenticación HTTP. Especifica la contraseña para la autenticación HTTP. -v - Opcional. Muestra información detallada acerca de la versión de Data Transformation, la versión de la sintaxis de Data Transformation, el identificador del paquete de configuración, la licencia y más información. -S - Obligatorio si el componente de inicio del servicio es una transmisión por secuencias. También debe utilizar la opción -f para definir el archivo de entrada. -xf InputPortName=InputDocument Opcional. InputPortName especifica el nombre de un AdditionalInputPort definido en el servicio. InputDocument especifica una ruta y un nombre de archivo en el sistema de archivos local. Puede especificar varios puertos de entrada, separados por espacios. -xt InputPortName=InputDocument Opcional. InputPortName especifica el nombre de un AdditionalInputPort definido en el servicio. InputDocument especifica una cadena metida entre CM_console 45 Opción Argumento Descripción comillas dobles. Puede especificar varios puertos de entrada, separados por espacios. -xu InputPortName=InputDocument Opcional. InputPortName especifica el nombre de un AdditionalInputPort definido en el servicio. InputDocument especifica una URL. Puede especificar varios puertos de entrada, separados por espacios. -xo OutputPortName=OutputDocument Opcional. OutputPortName especifica el nombre de un AdditionalOutputPort definido en el servicio. OutputDocument especifica una ruta y un nombre de archivo en el sistema de archivos local. Puede especificar varios puertos de salida, separados por espacios. -e - Opcional. De forma predeterminada, el comando CM_console termina con un código de salida de 1 para correcto y con mayor que 1 para error. Cuando se incluye la opción -e, el comando CM_console termina con un código de salida de 0 para éxito y con mayor de 1 para el error. Por ejemplo: CM_console XYZparser -fInputFile.txt -aMaxLines=1000 -oResults.xml -rcurr Este ejemplo llama al servicio XYZparser, utilizando InputFile.txt como el documento de entrada principal. Se proporciona el valor de 1000 a los parámetros MaxLines y se escribe la salida en el archivo Results.xml en el directorio desde el cual se ha ejecutado el comando CM_console. 46 Capítulo 4: Interfaz de la línea de comandos CAPÍTULO 5 Scripts Este capítulo incluye los siguientes temas: ¨ Resumen de scripts, 47 ¨ Componentes de script, 48 ¨ Propiedades de componente de script, 50 ¨ Componentes de inicio de script, 52 ¨ Orígenes de ejemplo, 52 ¨ Editor de IntelliScript, 53 ¨ Scripts de ejemplo, 54 Resumen de scripts Un script realiza complejas transformaciones en los datos de entrada y escribe los datos de salida. Cree un script en la ficha Objetos de la transformación del Procesador de datos. Utilice el editor de IntelliScript para ver un script, añadir y configurar los componentes y establecer el componente de inicio para un script. Utilice un script para leer uno o más documentos en cualquier formato, tales como HL7, PDF, XML o Word. Puede escribir uno o más documentos en cualquier formato. Puede escribir la salida de un script en el sistema de archivos local, o bien puede devolver la salida a través de los puertos de salida de la transformación del Procesador de datos. Un script está formado por componentes que definen documentos de entrada y salida, la lógica empresarial, variables que alojan temporalmente datos y la configuración. Los componentes se presentan en un árbol jerárquico. Cuando la transformación se ejecuta un script, comienza a procesar el componente que ha configurado como componente de inicio. Cuando configure un script, puede establecer orígenes de ejemplo que contengan datos de ejemplo para cada puerto de entrada. Cuando ejecute la transformación desde la vista Visor de datos, la transformación lee los documentos de origen del ejemplo. Cuando ejecute la transformación en una asignación, la transformación lee los documentos que recibe a través de sus puertos de entrada. La transformación del Procesador de datos que contiene el script debe hacer referencia a un esquema para cada documento XML que el script lee o escribe. 47 Componentes de script Un componente de script es una línea o un grupo de líneas en un script que define documentos de entrada y salida, la lógica empresarial, variables que alojan temporalmente datos y la configuración. Los componentes de un script aparecen en un árbol jerárquico. Algunos componentes aparecen en el nivel global del script y otros aparecen como componentes secundarios. El nivel global del script contiene los componentes de inicio, variables y otros componentes tales como puertos de entrada y transformadores adicionales. Un componente en el nivel global debe tener un nombre. Un componente puede tener las propiedades que controlan el comportamiento del componente. Las propiedades de un componente aparecen anidadas en él. Una propiedad pueden aparecer en una línea o bien como jerarquía de propiedades. Puede configurar las propiedades de algunos componentes para omitir la configuración predeterminada que se aplica a la transformación del Procesador de datos. Algunos componentes, tales como analizadores o asignadores, puede contener otros componentes como transformadores o acciones RunParser. Opcionalmente, puede configurar la propiedad name de un componente secundario. Tipos de componente El contexto del script determina los tipos de componentes que puede añadir. Por ejemplo, los anclajes deben aparecer anidados dentro de analizadores, asignadores o serializadores. Asimismo, los puertos de entrada adicionales y los puertos de salida adicionales pueden aparecer solamente en el nivel global del script. La siguiente tabla describe los tipos de componentes que puede añadir a un script: 48 Tipo de componente Descripción Acción Toma datos de un contenedor de datos y realiza una operación en él. Por ejemplo, la acción RunParser ejecuta un analizador. Anclaje Identifica una sección del documento de entrada. Procesador de documentos Realiza una transformación compleja en un documento de entrada. Por ejemplo, el procesador de documentos PdfToTxt_4 convierte un documento PDF en texto sin formato. Formato Define el formato de los documentos que procesará un analizador. Localizador Aísla una única ocurrencia de un contenedor de datos de varias ocurrencias. Asignador Lee documentos XML y escribe documentos XML. Se puede establecer como el componente de inicio. Notificación Escribe un mensaje en la salida estándar o en un registro. Por ejemplo, la notificación XsdValidationError indica que el documento de entrada no es válido tal y como se define en el esquema. Capítulo 5: Scripts Tipo de componente Descripción Analizador Lee documentos en cualquier formato y escribe documentos en cualquier formato. Se puede establecer como el componente de inicio. Puerto de script Define un documento de entrada o salida. Serializador Lee documentos XML y escribe documentos en cualquier formato. Se puede establecer como el componente de inicio. Transmisión por secuencias Parte los archivos de entrada grandes en fragmentos para un analizador, asignador o serializador. Se puede establecer como el componente de inicio. Transformador Transforma una cadena de entrada en una cadena de salida. Se puede establecer como el componente de inicio. Validador Determina si los datos de entrada se ajustan a una definición de datos específica. Variable Aloja datos que el script recibe mediante un parámetro de servicio o aloja datos de componente en el script. Nombres de componente El nombre de un componente lo identifica en el script, la vista Eventos del procesador de datos y el registro. Cuando la transformación del Procesador de datos realiza las instrucciones en un componente, el componente genera un evento que aparece en la vista Eventos del procesador de datos y el registro. Un componente que aparece en el nivel global del script debe tener un nombre. Un componente que aparece como el secundario de otro componente puede tener un nombre que se configura con la propiedad name. El nombre de un componente debe comenzar por una letra, debe contener solamente caracteres ingleses (A-Z, a-z), números (0-9) y guiones bajos (_) y debe contener no más de 127 caracteres. Añadir un componente global Defina un componente globalmente cuando desee utilizarlo en dos o más sitios en el script, o cuando el componente pueda aparecer solamente en el nivel global. 1. Al final del nivel global del script, haga doble clic en los puntos suspensivos de la izquierda (...). Aparece un cuadro de texto. 2. Introduzca el nombre del componente y, a continuación, pulse Intro. 3. Haga doble clic en los puntos suspensivos de la derecha. Aparece una lista. 4. Haga clic en la flecha descendente y seleccione el tipo de componente que desea añadir. El componente global aparece en el script. 5. Establezca las propiedades del componente, si procede. Componentes de script 49 Añadir un componente local Defina un componente localmente cuando vaya a utilizarlo solamente en una ubicación en el script, o cuando el componente pueda aparecer solamente como un componente secundario. 1. En el sitio del script donde desea insertar un componente, haga doble clic en los puntos suspensivos. Aparece una lista. 2. Haga clic en la flecha descendente a la derecha del cuadro de lista. Aparece una lista de componentes disponibles, incluyendo los componentes con nombre globales. 3. Seleccione un componente. El componente aparece en el script. 4. Establezca las propiedades del componente, si procede. Propiedades de componente de script Las propiedades de un componente de script definen la funcionalidad del componente. Un componente puede tener una o más propiedades. Las propiedades aparecen anidadas en el componente. Todos los componentes del mismo tipo tienen las mismas propiedades. Por ejemplo, la propiedad example_source de un analizador define texto de ejemplo que usa el analizador cuando se ejecuta la transformación desde la vista Visor de datos. Propiedades simples Las propiedades simples de un componente son aquellas que muestra siempre el editor de IntelliScript. La mayoría de los usuarios tienen que modificar solamente las propiedades simples. La siguiente figura muestra las propiedades simples de un componente Analizador: Propiedades avanzadas Las propiedades avanzadas de un componente se establecen normalmente en valores predeterminados que los usuarios no suelen cambiar. El editor de IntelliScript normalmente muestra solo las propiedades avanzadas que ha establecido con un valor no predeterminado. Para mostrar las propiedades que no se ven, haga clic en la flecha doble derecha de la primera línea. 50 Capítulo 5: Scripts La siguiente figura muestra todas las propiedades de un componente Parser: Valores de propiedades de componente Establece los valores para las propiedades de un componente. Cuando el valor de una propiedad es booleano, aparece como un casilla de verificación a la izquierda del nombre de la propiedad. Por ejemplo, la propiedad optional de un componente Content es booleana. Cuando el valor es una cadena, aparece a la derecha del nombre de la propiedad, metido entre comillas dobles. Los valores válidos son cadenas de caracteres alfanuméricos, símbolos o caracteres de control válidos, pero no incluye caracteres nulos. Para especificar un carácter que no está en el teclado en un campo de texto, pulse CTRL+A y, a continuación, escriba el código decimal de tres dígitos del carácter. Por ejemplo, escriba CTRL+A 010 para un avance de línea o CTRL+A 255 para la letra islandesa "thorn" (þ). Por ejemplo, el valor de la propiedad expresión de un componente CalculateValue es una cadena. Cuando el valor es una selección, aparece a la derecha del nombre de la propiedad. Cuando edite el valor, aparecerá una lista. Por ejemplo, la propiedad val_type de un componente Variable es una selección. Cuando el valor es un árbol jerárquico de propiedades, aparece a la derecha y debajo del nombre de la propiedad. Por ejemplo, al configurar la propiedad format de un componente Analizador en CustomFormat, aparece un árbol de propiedades adicionales. La siguiente figura muestra la propiedad format de un componente Analizador, que aparece como un árbol: Propiedades de componente de script 51 Componentes de inicio de script El componente de inicio de un script define el punto de entrada donde la transformación del Procesador de datos comienza a procesar el script. El componente de inicio debe aparecer en el nivel global del script. Puede establecer un analizador, asignador, serializador, transmisión por secuencias o transformador como el componente de inicio. Puede establecer el componente de inicio de la ficha Resumen de la transformación del Procesador de datos. Cuando utilice el editor de IntelliScript para establecer el componente de inicio de un script, el componente de inicio del script se convierte en la transformación del Procesador de datos del componente de inicio. Configuración del componente de inicio con el editor de IntelliScript Puede usar el editor de IntelliScript para configurar un componente de script como componente de inicio de la transformación del Procesador de datos. Debe configurar el componente de inicio para ejecutar el script. Debe configurar el componente de inicio para mostrar el origen de ejemplo en el panel Entrada de la vista Visor de datos. 1. Abra un script en el editor de IntelliScript. 2. Haga clic con el botón derecho en un componente que aparezca en el nivel global del script y, a continuación, seleccione Establecer como componente de inicio. Orígenes de ejemplo Un origen de ejemplo es un documento que contiene datos de entrada de ejemplo para que el script los procese durante el tiempo de diseño. Puede configurar un origen de ejemplo para cada analizador, asignador, serializador o puerto de entrada adicional. El origen de ejemplo contiene el mismo tipo de datos que la transformación del Procesador de datos recibe de un puerto de entrada. De forma predeterminada, la vista Visor de datos muestra el origen de ejemplo definido para el componente de inicio. También puede ver el origen de ejemplo de cualquier otro componente que define un origen de ejemplo. Cuando se ejecuta un script en la vista Visor de datos, la transformación del Procesador de datos lee los documentos de origen de ejemplo. Puede configurar los siguientes tipos de documento de origen de ejemplo: ¨ LocalFile. Un archivo en el sistema de archivos local. ¨ Texto. Una cadena de codificación de corte en el script. ¨ URL. Un archivo en la red local o en Internet. Nota: Cuando se ejecuta un script en una asignación y falta un documento de entrada, la transformación utiliza el origen de ejemplo. Si no hay ningún origen de ejemplo configurado y no hay un documento de entrada, la transformación del Procesador de datos se detiene y genera un error fatal. Ejemplo de origen de ejemplo El siguiente texto de ejemplo ilustra una parte de un archivo local que puede usar para un origen de ejemplo al analizar documentos HL7: MSH|^~\&|ADT1|MCM|FINGER|MCM|198808181126|SECURITY|ADT^A01|MSG00001|P|2.3.1 EVN|A01|198808181123 PID|1||PATID1234^5^M11^ADT1^MR^MCM~123456789^^^USSSA^SS|| SMITH^WILLIAM^A^III||19610615|M||C|1200 N ELM STREET^^JERUSALEM^TN^99999? 1020|GL|(999)999?1212|(999)999?3333||S||PATID12345001^2^M10^ADT1^AN^A| 52 Capítulo 5: Scripts 123456789|987654^NC NK1|1|SMITH^OREGANO^K|WI^WIFE||||NK^NEXT OF KIN PV1|1|I|2000^2012^01||||004777^CASTRO^FRANK^J.|||SUR||||ADM|A0 Resaltado de origen de ejemplo El panel Entrada de la vista Visor de datos resalta partes del documento de origen de ejemplo. La vista Visor de datos utiliza diferentes colores para resaltar los anclajes de contenido del origen de ejemplo, los anclajes de marcadores que definen dónde la transformación encuentra contenido y grupos de repetición de anclajes. Cómo configurar un origen de ejemplo en el editor de IntelliScript Cuando se ejecuta un script de la vista Visor de datos, debe tener un origen de ejemplo para la entrada principal y para cada puerto de entrada adicional. Establezca el origen de ejemplo en el editor de IntelliScript. También puede seleccionar el origen de ejemplo al crear un script en la transformación del Procesador de datos. 1. Seleccione el componente del que desea definir un origen de ejemplo y amplíelo para mostrar sus propiedades. 2. Junto a la propiedad example_source, haga doble clic en los puntos suspensivos. 3. Seleccione una de las siguientes opciones: Opción Descripción LocalFile La propiedad file_name aparece debajo de la propiedad example_source. Haga doble clic en los puntos suspensivos y, a continuación, desplácese hasta un archivo en el sistema de archivos local. Text La propiedad quote aparece debajo de la propiedad example_source. Introduzca una cadena. URL La propiedad stable_url aparece debajo de la propiedad example_source. Introduzca una cadena. Cómo visualizar un origen de ejemplo Puede ver el origen de ejemplo de un analizador, un asignador, un serializador o un puerto de entrada adicional en el panel Entrada de la vista Visor de datos. 1. Abra un script en el editor de IntelliScript. 2. Configure uno de los componentes del script como componente de inicio. 3. En el editor de IntelliScript, seleccione el componente que tiene el origen de ejemplo que desee visualizar. 4. En la vista Visor de datos, haga clic en Sincronizar con el editor. Editor de IntelliScript El editor de IntelliScript es una herramienta gráfica que se utiliza para editar scripts. Utilice el editor de IntelliScript para añadir componentes al script, configurar propiedades y establecer el componente de inicio. Editor de IntelliScript 53 Cuando se abre objeto de script, el editor de IntelliScript aparece en el área del editor en el centro de la interfaz de la Herramienta del desarrollador. De forma predeterminada, el editor de IntelliScript se muestra en Intelli Mode, que muestra el script en un formato de árbol jerárquico ampliable, o en Script Mode, que muestra el script como texto. Puede ver o editar un script en Intelli Mode. Algunas propiedades avanzadas están ocultas de forma predeterminada, pero puede mostrarlas haciendo clic en una flecha gráfica doble de la primera línea del componente. Puede insertar sólo componentes que sean válidos para el contexto. Puede arrastrar un componente para moverlo, o puede cortarlo y pegarlo con CTRL+C y CTRL+V. Puede seleccionar varios componentes con clics del ratón y las teclas CTRL y MAYÚS. Cuando utilice el editor de IntelliScript, las siguientes vistas muestran información relevantes: ¨ Visor de datos, de panel Entrada. Muestra el origen de ejemplo para el componente de inicio o el componente seleccionado en el editor de IntelliScript. ¨ Visor de datos, el panel Salida. Muestra la salida cuando se ejecuta la transformación del Procesador de datos desde la vista Visor de datos. ¨ Eventos del procesador de datos. Muestra los eventos que ocurren cuando se ejecuta una transformación del Procesador de datos. Utilice la vista Eventos del procesador de datos para la solución de problemas. ¨ Ayuda de script del Procesador de datos. Muestra la documentación relevante al componente o propiedad seleccionado en el editor de IntelliScript. ¨ Procesador de datos de origen hexadecimal. Muestra el documento de origen de ejemplo en forma hexadecimal. Utilice la vista Origen hexadecimal del Procesador de datos para buscar caracteres no imprimibles, como tabuladores. Para ver el origen de un script, haga clic con el botón derecho en el editor de IntelliScript y, a continuación, seleccione Modo de script . Para volver a Intelli Mode, haga clic con el botón derecho en IntelliScript y, a continuación, seleccione Intelli Mode . Scripts de ejemplo Informatica ofrece scripts de ejemplo como ejemplos de tareas que se pueden realizar con un script. Puede encontrar los scripts de ejemplo en el siguiente subdirectorio del directorio de instalación: \DataTransformation\samples\Projects Para ver, modificar o copie un script de ejemplo, primero debe importarlo. La siguiente tabla describe los scripts de ejemplo: 54 Nombre de script Descripción Alternatives Demuestra la ramificación y el anclaje Alternatives. AppendListItems Concatena cadenas en un contenedor de datos de varias ocurrencias y hace una demostración de la acción AppendListItems. CalculateValue Realiza un cálculo numérico complejo y demuestra la acción CalculateValue. CombineValues Concatena cadenas y hace una demostración de las acciones CombineValues y DumpValue. Capítulo 5: Scripts Nombre de script Descripción Content Demuestra el anclaje Content y la búsqueda de contenido en el documento de origen buscando una cadena específica, calculando un desplazamiento desde el último anclaje y buscando un atributo en la pareja name=value. CopyValue Copia todo un elemento XML complejo con la acción Asignar. DelimitedSections Hace una demostración del anclaje DelimitedSections en un analizador. DocumentOrder Demuestra la ramificación y el anclaje Alternatives, con la opción selector establecida en DocumentOrder. Dynamic_And_RepeatingGroup Itera sobre las líneas de un documento y demuestra el anclaje RepeatingGroup. Lee datos desde otra ubicación en el documento en función de contenido del ámbito actual. EmbeddedParser Utiliza un analizador secundario incrustado para analizar el contenido del analizador principal y hace una demostración del anclaje EmbeddedParser. EnsureCondition Evalúa una expresión booleana de JavaScript para seleccionar las alternativas y hace una demostración de la acción EnsureCondition. ManualSerializer Hace una demostración de un serializador personalizado. Marcadores Hace una demostración de anclajes Marker que utilizan las opciones TextSearch, OffsetSearch, TypeSearch y PatternSearch. Marking_Mode Hace una demostración de varios métodos para configurar anclajes Marker. NonMarker Hace una demostración de un analizador que solo utiliza anclajes Content y búsqueda hacia atrás por el documento de entrada. Patrón Hace una demostración de la extracción de datos que coinciden con una restricción definida en el esquema. persistent_search Hace una demostración de la propiedad on_partial_match de un Group y la propiedad adjacent de un Marker. ResetListVariable Restablece una variable de lista mediante un targetLocator. RunSerializer Hace una demostración de un analizador que llama a un serializador secundario. HL7 Convierte un archivo HL7 en XML. TabDelimited Convierte un archivo delimitado por tabuladores HL7 en XML. Divisor Divide un archivo en dos y demuestra la acción WriteValue. Scripts de ejemplo 55 Nombre de script Descripción TransformByParser Usa un analizador para transformar texto específico en un avance de línea con retorno de carro y demuestra la acción TransformByParser. Transformers_Example Hace una demostración del anclaje Content con la propiedad value configurada como LearnByExample. Importar un script de ejemplo Importar un script de ejemplo para verlo o para copiar partes en otro script. 1. Haga clic en Archivo > Importar. Aparece el cuadro de diálogo Importar. 2. Seleccione Informatica > Importar el servicio DT y haga clic en Siguiente . Aparece la página Importar el servicio DT . 3. Junto al campo Archivo de servicio , haga clic en el botón Examinar y busque el archivo CMW del servicio. 4. Haga clic en Finalizar. El script de ejemplo aparece en una transformación del Procesador de datos. 56 Capítulo 5: Scripts CAPÍTULO 6 Analizadores Este capítulo incluye los siguientes temas: ¨ Resumen de analizadores, 57 ¨ Analizadores independientes de plataforma, 57 ¨ Referencia de componentes de analizador, 58 Resumen de analizadores Los analizadores son componentes de script que leen documentos de origen en cualquier formato. La salida de un analizador siempre es XML. La entrada puede tener cualquier formato, como texto, HTML, Word, PDF o HL7. La entrada puede ser un documento XML que procesa el analizador como datos de cadena. Analizadores independientes de plataforma Los scripts del analizador se ejecutan en los sistemas Microsoft Windows y UNIX. La mayoría de las funciones del analizador se ejecutan igualmente bien en ambas plataformas. Hay algunas excepciones para esta regla. Si va a ejecutar un analizador en Windows y UNIX, aquí mostramos unos consejos que pueden ayudar a garantizar la independencia de las plataformas. Marcadores de nueva línea Evite definir anclajes Marker que busquen un carácter de nueva línea seguido por un carácter de retorno de carro (\n\r). Esta combinación se usa con frecuencia en Windows, pero no en UNIX. En lugar de ello, configure un Marker con el componente incorporado NewLineSearch , que busca tanto la secuencia \n\r como los caracteres \n o \r solos. Rutas de acceso de archivos nUtilice rutas de acceso relativas, no absolutas. Recuerde que las rutas de acceso a los archivos en UNIX distinguen entre mayúsculas y minúsculas. 57 Referencia de componentes de analizador Un componente Analizador convierte un documento de origen a XML. Analizador Un analizador lee un documento de origen en cualquier formato. Puede añadir componentes secundarios para realizar transformaciones en los datos. Defina analizadores en el nivel global del script. Configure un analizador principal como componente de inicio. Llame a un analizador secundario con la acción RunParser. Para obtener más información, consulte “RunParser” en la página 222. Las propiedades de Parser aparecen encima de la línea contains. A continuación de la línea, puede insertar componentes secundarios como anclajes y acciones. La siguiente tabla describe las propiedades del componente Analizador: Propiedad Descripción example_source Define un documento de origen de ejemplo para procesar en el entorno de desarrollo. Puede seleccionar una de las siguientes opciones: - Vacío. La herramienta Desarrollador le pedirá un documento de origen cuando ejecute el analizador. - InputPort. Define un puerto de entrada. - LocalFile. Define un archivo en el sistema de archivos local. - Text. Define una cadena. - URL. Define una URL. El valor predeterminado es vacío. Nota: Si la propiedad sources_to_extract está configurada, la propiedad example_values se omite en el entorno de diseño. example_values Define valores simulados que otra transformación puede pasar al analizador. Utilice esta propiedad para diseñar un analizador llamado por otro analizador. Un analizador utiliza la propiedad example_values solo cuando procesa el origen de ejemplo. Omite la propiedad cuando analiza un documento de origen. En los componentes ExampleValue anidados, especifique los contenedores de

0 downloads 33 Views 6MB Size

Recommend Stories


Informatica (Versión ) Guía del usuario de Data Transformation
Informatica (Versión 10.0.0) Guía del usuario de Data Transformation Informatica Guía del usuario de Data Transformation Versión 10.0.0 Junio 2015

INFORMATICA INFORMATICA (ACTIVIDAD 3)
INFORMATICA WORD INFORMATICA (ACTIVIDAD 3) - Abrir el documento Columnas.doc. - Realizar las modificaciones necesarias en el documento hasta obte

INFORMATICA
GUIA PRACTICA PARA LA APLICACIÓN DE MS – EXCEL TECNOLOGIA/ INFORMATICA De la barra de menú seleccionmos la opción insertar y haciendo clic en la opc

Big data & Small data
Big data & Small data Daniel Falcón Director de Neo Consulting" @danielfalcon #DigitalIntelligenceMX   KPI’s + Targets The availability of all thi

Story Transcript

Informatica (Versión 9.5.1)

Guía del usuario de Data Transformation

Informatica Guía del usuario de Data Transformation Versión 9.5.1 Diciembre 2012 Copyright (c) 2001-2012 Informatica Corporation. Todos los derechos reservados. Este software y esta documentación contienen información privada de Informatica Corporation y se facilitan bajo un acuerdo de licencia que incluye restricciones sobre el uso y la divulgación y también están protegidos por leyes de copyright. Está prohibida la ingeniería inversa del software. Ninguna parte de este documento puede ser reproducida o transmitida de cualquier forma o manera (electrónica, fotocopia, grabación o mediante otros métodos) sin el consentimiento previo de Informatica Corporation. Este Software puede estar protegido por Patentes de los Estados Unidos y/o patentes internacionales y otras patentes pendientes. El uso, la duplicación o la divulgación del software por parte del gobierno de los Estados Unidos están sujetos a las restricciones puntualizadas en el acuerdo de licencia de software vigente y según se establece en la reglamentación DFARS 227.7202-1(a) and 227.7702-3(a) (1995), DFARS 252.227-7013©(1)(ii) (OCT 1988), FAR 12.212(a) (1995), FAR 52.227-19 o FAR 52.227-14 (ALT III), según proceda. La información contenida en este producto o documentación está sujeta a cambios sin previo aviso. Si encuentra algún problema en este producto o documentación, infórmenos por escrito. Informatica, Informatica Platform, Informatica Data Services, PowerCenter, PowerCenterRT, PowerCenter Connect, PowerCenter Data Analyzer, PowerExchange, PowerMart, Metadata Manager, Informatica Data Quality, Informatica Data Explorer, Informatica B2B Data Transformation, Informatica B2B Data Exchange Informatica On Demand, Informatica Identity Resolution, Informatica Application Information Lifecycle Management, Informatica Complex Event Processing, Ultra Messaging e Informatica Master Data Management son marcas comerciales o marcas comerciales registradas de Informatica Corporation en Estados Unidos y en las jurisdicciones de todo el mundo. Los demás nombres de productos y empresas pueden ser nombres o marcas comerciales de sus respectivos titulares. Hay fragmentos de este software y/o documentación que están sujetos a copyright perteneciente a terceros, incluido, entre otros: Copyright DataDirect Technologies. Todos los derechos reservados. Copyright © Sun Microsystems. Todos los derechos reservados. Copyright © RSA Security Inc. Todos los derechos reservados. Copyright © Ordinal Technology Corp. Todos los derechos reservados.Copyright © Aandacht c.v. Todos los derechos reservados. Copyright Genivia, Inc. Todos los derechos reservados. Copyright Isomorphic Software. Todos los derechos reservados. Copyright © Meta Integration Technology, Inc. Todos los derechos reservados. Copyright © Intalio. Todos los derechos reservados. Copyright © Oracle. Todos los derechos reservados. Copyright © Adobe Systems Incorporated. Todos los derechos reservados. Copyright © DataArt, Inc. Todos los derechos reservados. Copyright © ComponentSource. Todos los derechos reservados. Copyright © Microsoft Corporation. Todos los derechos reservados. Copyright © Rogue Wave Software, Inc. Todos los derechos reservados. Copyright © Teradata Corporation. Todos los derechos reservados. Copyright © Yahoo! Inc. Todos los derechos reservados. Copyright © Glyph & Cog, LLC. Todos los derechos reservados. Copyright © Thinkmap, Inc. Todos los derechos reservados. Copyright © Clearpace Software Limited. Todos los derechos reservados. Copyright © Information Builders, Inc. Todos los derechos reservados. Copyright © OSS Nokalva, Inc. Todos los derechos reservados. Copyright Edifecs, Inc. Todos los derechos reservados. Copyright Cleo Communications, Inc. Todos los derechos reservados. Copyright © International Organization for Standardization 1986. Todos los derechos reservados. Copyright © ej-technologies GmbH. Todos los derechos reservados. Copyright © Jaspersoft Corporation. Todos los derechos reservados. Copyright © International Business Machines Corporation. Todos los derechos reservados. Copyright © yWorks GmbH. Todos los derechos reservados. Copyright © Lucent Technologies. Todos los derechos reservados. Copyright © University of Toronto. Todos los derechos reservados. Copyright © Daniel Veillard. Todos los derechos reservados. Copyright © Unicode, Inc. Copyright IBM Corp. Todos los derechos reservados. Copyright © MicroQuill Software Publishing, Inc. Todos los derechos reservados. Copyright © PassMark Software Pty Ltd. Todos los derechos reservados. Copyright © LogiXML, Inc. Todos los derechos reservados. Copyright © 2003-2010 Lorenzi Davide. Todos los derechos reservados. Copyright © Red Hat, Inc. Todos los derechos reservados. Copyright © The Board of Trustees of the Leland Stanford Junior University. Todos los derechos reservados. Copyright © EMC Corporation. Todos los derechos reservados. Copyright © Flexera Software. Todos los derechos reservados. Este producto incluye software desarrollado por la Apache Software Foundation (http://www.apache.org/) y otro software protegido por la licencia Apache License, versión 2.0 (la "Licencia"). Puede obtener una copia de la Licencia en la dirección http://www.apache.org/licenses/LICENSE-2.0. A no ser que lo requiera la ley vigente o se acuerde por escrito, el software distribuido bajo la Licencia se distribuye "TAL CUAL", SIN GARANTÍAS NI CONDICIONES DE NINGÚN TIPO, ya sean expresas o implícitas. Consulte la Licencia para conocer los permisos y las limitaciones que rigen para cada idioma específico según la Licencia. Este producto incluye software desarrollado por Mozilla (http://www.mozilla.org/), copyright del software de The JBoss Group, LLC, todos los derechos reservados; copyright del software © 1999-2006 de Bruno Lowagie y Paulo Soares y otro software protegido con licencia por el acuerdo GNU Lesser General Public License Agreement, que se puede encontrar en la dirección http://www.gnu.org/licenses/lgpl.html. Los materiales se facilitan gratuitamente por parte de Informatica, "tal cual", sin garantía de ningún tipo, ya sea expresa o implícita, incluidas, entre otras, las garantías implícitas de adecuación para un propósito determinado y de validez para el comercio. El producto incluye software ACE(TM) y TAO(TM) con copyright de Douglas C. Schmidt y su grupo de investigación de la Washington University, University of California, Irvine y Vanderbilt University, Copyright (©) 1993-2006, todos los derechos reservados. Este producto incluye software desarrollado por el OpenSSL Project para uso en el OpenSSL Toolkit (copyright The OpenSSL Project. Todos los derechos reservados) y la redistribución de este software está sujeta a los términos especificados en http://www.openssl.org y http://www.openssl.org/source/license.html. Este producto incluye software Curl con Copyright 1996-2007, Daniel Stenberg, . Todos los derechos reservados. Los permisos y las limitaciones relativos a este software están sujetos a los términos disponibles en la dirección http://curl.haxx.se/docs/copyright.html. La autorización para utilizar, copiar, modificar y distribuir este software para cualquier propósito con o sin tasas se concede por el presente, siempre que el aviso de copyright anterior y este aviso de permiso aparezcan en todas las copias. El producto incluye copyright de software 2001-2005 (©) MetaStuff, Ltd. Todos los derechos reservados. Los permisos y las limitaciones relativos a este software están sujetos a los términos disponibles en la dirección http://www.dom4j.org/license.html. El producto incluye copyright de software © 2004-2007, The Dojo Foundation. Todos los derechos reservados. Los permisos y las limitaciones relativos a este software están sujetos a los términos disponibles en la dirección http://dojotoolkit.org/license. Este producto incluye software ICU con copyright de International Business Machines Corporation y otros. Todos los derechos reservados. Los permisos y las limitaciones relativos a este software están sujetos a los términos disponibles en la dirección http://source.icu-project.org/repos/icu/icu/trunk/license.html. Este producto incluye copyright de software © 1996-2006 Per Bothner. Todos los derechos reservados. Su derecho a utilizar estos materiales está establecido en la licencia que puede encontrarse en la dirección http://www.gnu.org/software/kawa/Software-License.html. Este producto incluye software OSSP UUID con Copyright © 2002 Ralf S. Engelschall, Copyright © 2002 The OSSP Project Copyright © 2002 Cable & Wireless Deutschland. Los permisos y las limitaciones relativas a este software están sujetos a los términos disponibles en la dirección http://www.opensource.org/licenses/mit-license.php. Este producto incluye software desarrollado por Boost (http://www.boost.org/) o protegido por la licencia de software de Boost. Los permisos y las limitaciones relativos a este software están sujetos a los términos disponibles en la dirección http://www.boost.org/LICENSE_1_0.txt. Este producto incluye copyright de software © 1997-2007 University of Cambridge. Los permisos y las limitaciones relativos a este software están sujetos a los términos disponibles en la dirección http://www.pcre.org/license.txt. Este producto incluye copyright de software © 2007 The Eclipse Foundation. Todos los derechos reservados. Los permisos y las limitaciones relativos a este software están sujetos a los términos especificados en http://www.eclipse.org/org/documents/epl-v10.php. Este producto incluye software protegido por licencia según los términos especificados en http://www.tcl.tk/software/tcltk/license.html, http://www.bosrup.com/web/overlib/? License, http://www.stlport.org/doc/ license.html, http://www.asm.ow2.org/license.html, http://www.cryptix.org/LICENSE.TXT, http://hsqldb.org/web/hsqlLicense.html, http:// httpunit.sourceforge.net/doc/ license.html, http://jung.sourceforge.net/license.txt , http://www.gzip.org/zlib/zlib_license.html, http://www.openldap.org/software/release/

license.html, http://www.libssh2.org, http://slf4j.org/license.html, http://www.sente.ch/software/OpenSourceLicense.html, http://fusesource.com/downloads/license-agreements/ fuse-message-broker-v-5-3- license-agreement; http://antlr.org/license.html; http://aopalliance.sourceforge.net/; http://www.bouncycastle.org/licence.html; http:// www.jgraph.com/jgraphdownload.html; http://www.jcraft.com/jsch/LICENSE.txt. http://jotm.objectweb.org/bsd_license.html; . http://www.w3.org/Consortium/Legal/2002/ copyright-software-20021231; http://www.slf4j.org/license.html; http://developer.apple.com/library/mac/#samplecode/HelpHook/Listings/HelpHook_java.html; http:// nanoxml.sourceforge.net/orig/copyright.html; http://www.json.org/license.html; http://forge.ow2.org/projects/javaservice/, http://www.postgresql.org/about/licence.html, http:// www.sqlite.org/copyright.html, http://www.tcl.tk/software/tcltk/license.html, http://www.jaxen.org/faq.html, http://www.jdom.org/docs/faq.html, http://www.slf4j.org/license.html; http://www.iodbc.org/dataspace/iodbc/wiki/iODBC/License; http://www.keplerproject.org/md5/license.html; http://www.toedter.com/en/jcalendar/license.html; http:// www.edankert.com/bounce/index.html; http://www.net-snmp.org/about/license.html; http://www.openmdx.org/#FAQ; http://www.php.net/license/3_01.txt; http://srp.stanford.edu/ license.txt; http://www.schneier.com/blowfish.html; http://www.jmock.org/license.html; http://xsom.java.net; y http://benalman.com/about/license/. Este producto incluye software protegido por licencia conforme a las licencias Academic Free License (http://www.opensource.org/licenses/afl-3.0.php), Common Development and Distribution License (http://www.opensource.org/licenses/cddl1.php), Common Public License (http://www.opensource.org/licenses/cpl1.0.php), Sun Binary Code License Agreement Supplemental License Terms, BSD License (http:// www.opensource.org/licenses/bsd-license.php), MIT License (http://www.opensource.org/licenses/mitlicense.php) y Artistic License (http://www.opensource.org/licenses/artistic-license-1.0). Este producto incluye copyright de software © 2003-2006 Joe WaInes, 2006-2007 XStream Committers. Todos los derechos reservados. Los permisos y las limitaciones relativos a este software están sujetos a los términos disponibles en la dirección http://xstream.codehaus.org/license.html. Este producto incluye software desarrollado por Indiana University Extreme! Lab. Para obtener más información, visite http://www.extreme.indiana.edu/. Este producto incluye software desarrollado por Andrew Kachites Mccallum. "MALLET: A Machine Learning for Language Toolkit." http://mallet.cs.umass.edu (2002). Este Software está protegido por los números de patentes de los Estados Unidos 5 794 246, 6 014 670, 6 016 501, 6 029 178, 6 032 158, 6 035 307, 6 044 374, 6 092 086, 6 208 990, 6 339 775, 6 640 226, 6 789 096, 6 820 077, 6 823 373, 6 850 947, 6 895 471, 7 117 215, 7 162 643, 7 243 110, 7 254 590, 7 281 001, 7 421 458, 7 496 588, 7 523 121, 7 584 422, 7 676 516, 7 720 842, 7 721 270 y 7 774 791, patentes internacionales y otras patentes pendientes. EXENCIÓN DE RESPONSABILIDAD: Informatica Corporation proporciona esta documentación "tal cual" sin garantía de ningún tipo, ya sea expresa o implícita, incluidas, entre otras, las garantías implícitas de no incumplimiento, de adecuación para un propósito determinado y de validez para el comercio. Informatica Corporation no garantiza que este software o esta documentación estén libres de errores. La información proporcionada en este software o en esta documentación puede contener imprecisiones técnicas o errores tipográficos. La información de este software y esta documentación está sujeta a cambios en cualquier momento sin previo aviso. AVISOS Este producto de Informatica (el “Software”) incluye ciertos controladores (los “Controladores DataDirect”) de DataDirect Technologies, una empresa operativa de Progress Software Corporation (“DataDirect”) que están sujetos a los términos y condiciones siguientes: 1. LOS CONTROLADORES DATADIRECT SE PROPORCIONAN "TAL CUAL" SIN GARANTÍA DE NINGÚN TIPO, YA SEA EXPRESA O IMPLÍCITA, INCLUIDAS, ENTRE OTRAS, LAS GARANTÍAS IMPLÍCITAS DE NO INCUMPLIMIENTO, DE ADECUACIÓN PARA UN PROPÓSITO DETERMINADO Y DE VALIDEZ PARA EL COMERCIO. 2. EN NINGÚN CASO DATADIRECT NI SUS PROVEEDORES DE TERCEROS SERÁN RESPONSABLES ANTE EL USUARIO FINAL POR NINGÚN DAÑO DIRECTO, INDIRECTO, FORTUITO, ESPECIAL, CONSECUENTE, NI DE NINGÚN OTRO TIPO, RESULTANTE DEL USO DE LOS CONTROLADORES ODBC, INDEPENDIENTEMENTE DE SI SE HA AVISADO O NO DE LOS POSIBLES DAÑOS POR ADELANTADO. ESTAS LIMITACIONES SE APLICAN A TODAS LAS DEMANDAS JUDICIALES, INCLUIDAS, ENTRE OTRAS, AQUELLAS POR INCUMPLIMIENTO DE CONTRATO, INCUMPLIMIENTO DE LA GARANTÍA, NEGLIGENCIA, RESPONSABILIDAD ESTRICTA, TERGIVERSACIÓN Y OTROS AGRAVIOS. Número de parte: DT-DPT-95100-0001

Tabla de contenido Prefacio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii Documentación de Informatica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii Portal de atención al cliente de Informatica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii Documentación de Informatica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii Sitio web de Informatica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii Biblioteca de asistencia de Informatica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv Base de conocimiento de Informatica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv Base de conocimiento multimedia de Informatica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv Servicio internacional de atención al cliente de Informatica. . . . . . . . . . . . . . . . . . . . . . . . . . . xiv

Capítulo 1: Introducción a Data Transformation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Resumen de Data Transformation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Arquitectura del proceso de Data Transformation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Componentes de Data Transformation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Opciones de Data Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

Capítulo 2: Transformación del Procesador de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Resumen de la transformación del Procesador de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Vistas de la transformación del Procesador de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Puertos de la transformación del Procesador de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Puertos de entrada de la transformación del Procesador de datos. . . . . . . . . . . . . . . . . . . . . . . 7 Puertos de salida de la transformación del Procesador de datos. . . . . . . . . . . . . . . . . . . . . . . . 8 Salida relacional. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Puertos de transferencia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Componente de inicio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Referencias de esquema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Configuración de la transformación del Procesador de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Codificación de caracteres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Reglas y directrices de codificación de caracteres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Configuración de salida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Configuración de procesamiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Configuración de salida XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Eventos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Tipos de evento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Vista Eventos del procesador de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Registros. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Registro de eventos en tiempo de diseño. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Registro de eventos de tiempo de ejecución. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

Tabla de contenido i

Cómo visualizar un registro de eventos en la vista Eventos del procesador de datos. . . . . . . . . . . 22 Registro de usuario. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Desarrollo de la transformación del Procesador de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Paso 1. Crear la transformación del Procesador de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Paso 2. Seleccionar los objetos de esquema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Paso 3. Crear objetos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Paso 4. Crear los puertos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Paso 5. Probar la transformación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Importación y exportación de la transformación del Procesador de datos. . . . . . . . . . . . . . . . . . . . . 25 Exporting the Data Processor Transformation as a Service. . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Importar un servicio de Data Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

Capítulo 3: XMap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Resumen de XMap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Esquemas de XMap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Instrucciones de asignación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Tipos de instrucción de asignación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Campos de instrucción de asignación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Instrucciones de grupo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Instrucciones de grupo de repetición. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Instrucciones de enrutador, opción, y predeterminadas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Ejecutar instrucciones de XMap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Crear instrucciones de asignación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Expresiones de XPath. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Predicados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Editor de expresiones XPath. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Funciones del Procesador de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Ejemplo de expresiones de XPath. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Crear expresiones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Variables de XMap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Crear una variable en el editor de XMap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Ejemplo de XMap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Datos de entrada XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Jerarquías XML de entrada y salida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Instrucciones de asignación en el ejemplo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 EmployeeToWorker XMap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

Capítulo 4: Interfaz de la línea de comandos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Resumen de la interfaz de línea de comandos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 CM_console. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

Capítulo 5: Scripts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Resumen de scripts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

iiTabla de contenido

Componentes de script. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Tipos de componente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Nombres de componente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Añadir un componente global. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Añadir un componente local. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Propiedades de componente de script. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Propiedades simples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Propiedades avanzadas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Valores de propiedades de componente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Componentes de inicio de script. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Configuración del componente de inicio con el editor de IntelliScript. . . . . . . . . . . . . . . . . . . . . 52 Orígenes de ejemplo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Resaltado de origen de ejemplo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Cómo configurar un origen de ejemplo en el editor de IntelliScript. . . . . . . . . . . . . . . . . . . . . . . 53 Cómo visualizar un origen de ejemplo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Editor de IntelliScript. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Scripts de ejemplo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Importar un script de ejemplo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

Capítulo 6: Analizadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Resumen de analizadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Analizadores independientes de plataforma. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Marcadores de nueva línea. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Rutas de acceso de archivos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Referencia de componentes de analizador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Analizador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

Capítulo 7: Puertos de script. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Resumen de puertos de script. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Referencia de componentes de puerto de script. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 AdditionalInputPort. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 AdditionalOutputPort. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 DocList. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 FileSearch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 InputPort. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 LocalFile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 OutputPort. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Texto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 URL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

Capítulo 8: Procesadores de documentos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Resumen de procesadores de documentos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Definir un procesador de documentos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

Tabla de contenido iii

Visualización de la salida del procesador de documentos. . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Referencia de componentes de procesador de documentos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 AFPToXML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 AsnToXml. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 ExcelToDataXml. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 ExcelToXml. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 ExcelToXml_03_07_10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 ExpandFrameSet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 ExternalJavaPreProcessor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 ExternalPreProcessor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 HIPAAValidator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 PdfFormToXml_1_00. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 PdfToTxt_3_02. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 PdfToTxt_4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 PowerpointToTextML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 ProcessByTransformers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 ProcessorPipeline. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 RtfToTextML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 WordToXml. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 XmlToDocument_372. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 XmlToExcel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Esquema XML TextML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Editor de configuración de la tablas PdfToTxt_4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Opciones del editor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Ejemplo de conversión de PDF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

Capítulo 9: Formatos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Resumen de formatos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Propiedades de formato estándar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Referencia de componentes de formato. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 BinaryFormat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 CustomFormat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 HtmlFormat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 RtfFormat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 TextFormat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 XmlFormat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Referencia de componentes de delimitadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 CommaDelimited. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Delimitador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 DelimiterHierarchy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 EnclosingDelimiters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 HL7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Positional. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

ivTabla de contenido

PostScript. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 RTF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 SGML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 SpaceDelimited. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 TabDelimited. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Referencia de componentes de preprocesador de formatos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 HtmlProcessor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 RtfProcessor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

Capítulo 10: Contenedores de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Resumen de contenedores de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Esquemas XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Acerca de los esquemas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Cómo crear esquemas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Codificación de esquema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Archivos de esquema incluidos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Espacios de nombres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Contenido combinado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Características del esquema incompatibles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Precisión de datos numéricos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Cómo utilizar un esquema para asignar anclajes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Representación de IntelliScript de contenedores de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Asignar contenido combinado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Asignar tipos de XSI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Generar un XML válido. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Función de esquemas en el análisis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Función de esquemas en la serialización y la asignación. . . . . . . . . . . . . . . . . . . . . . . . . . . .101 Variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Cómo crear una variable definida por el usuario. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Variables del sistema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Asignar anclajes a variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Cómo utilizar variables en acciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Inicializar variables en tiempo de ejecución. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Referencia de componentes de variable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Variable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Contenedores de datos de varias ocurrencias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106 Atributos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .107 Indexar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .107 Destruir las ocurrencias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .107

Capítulo 11: Anclajes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Resumen de anclajes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Anclajes Marker y Content. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

Tabla de contenido v

Otros tipos de anclaje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Cómo los anclajes y los delimitadores funcionan juntos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 Asignar anclajes de contenido a contenedores de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 Asignar a variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Asignar a contenedores de datos de varias ocurrencias. . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Asignar a elementos de contenido combinado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Definir anclajes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Dónde definir anclajes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Secuencia de anclajes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Cómo añadir un anclaje Marker o Content. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Cómo definir un anclaje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Propiedades de anclaje estándar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Cómo un analizador busca anclajes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 Fases de búsqueda. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 Ámbito de búsqueda y criterios de búsqueda. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 Ajustar la fase de búsqueda. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Ajustar el ámbito de búsqueda. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Ajustar los criterios de búsqueda. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Cómo utilizar los tipos de datos para reducir los criterios de búsqueda. . . . . . . . . . . . . . . . . . . 119 Anclajes que contienen anclajes anidados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 Referencia de componentes de anclaje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 Alternatives. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Content. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 DelimitedSections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 EmbeddedParser. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 EnclosedGroup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 ExtractRecord. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 FindReplaceAnchor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Group. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Marker. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 RepeatingGroup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 StructureDefinition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 Referencia de componentes de Searcher. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 AttributeSearch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 LearnByExample. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 NewlineSearch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 OffsetSearch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 PatternSearch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 SegmentSearch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 TextSearch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 TypeSearch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 Referencia de subcomponentes de anclaje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 AllStructure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

viTabla de contenido

AllStructureLocal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 ChoiceStructure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 ChoiceStructureLocal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 Conectar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 EmbeddedStructure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 RecordStructure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 RecordStructureLocal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 SequenceStructure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 SequenceStructureLocal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

Capítulo 12: Transformadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Resumen de transformadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Cómo definir transformadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Cómo utilizar transformadores en anclajes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Secuencias de transformadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 Transformadores predeterminados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 Cómo utilizar transformadores como procesadores de documentos. . . . . . . . . . . . . . . . . . . . . 162 Cómo utilizar transformadores en anclajes de serialización. . . . . . . . . . . . . . . . . . . . . . . . . . 163 Cómo utilizar transformadores en acciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Propiedades del transformador estándar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Referencia de componentes de transformador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 AbsURL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 AddEmptyTagsTransformer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 AddString. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 Base64Decode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 Base64Encode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 BidiConvert. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 CDATADecode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 CDATAEncode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 ChangeCase. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 CreateGuid. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 CreateUUID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 DateFormatICU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 Dos96HebToAscii. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 DynamicTable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 EbcdicToAscii. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 EDIFACTValidation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 EncodeAsUrl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 Codificador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 ExternalTransformer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 FormatNumber. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 FromFloat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 FromInteger. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177

Tabla de contenido vii

FromPackDecimal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 FromSignedDecimal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 hebrewBidi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 HebrewDosToWindows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 HebrewEBCDICOldCodeToWindows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 hebUniToAscii. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 hebUtf8ToAscii. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 HtmlEntitiesToASCII. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 HtmlProcessor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 InjectFP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 InjectString. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 InlineTable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 JavaTransformer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 LookupTransformer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 NormalizeClosingTags. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 RegularExpression. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 RemoveMarginSpace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 RemoveRtfFormatting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 RemoveTags. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 Sustituir. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 Resize. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 ReverseTransformer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 RtfProcessor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 RtfToASCII. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 SubString. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 ToFloat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 ToInteger. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 ToPackDecimal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 TransformationStartTime. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 TransformByParser. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 TransformByProcessor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 TransformByService. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 TransformerPipeline. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 XMLLookupTable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 XSLTTransformer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

Capítulo 13: Acciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 Resumen de acciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 Cómo funcionan las acciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 Comparación entre las acciones y los transformadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 Definir acciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 Propiedades de acción estándar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 Referencia de componentes de acción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200

viiiTabla de contenido

AddEventAction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 AggregateValues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 AppendListItems. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 AppendValues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 CalculateValue. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 CombineValues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 CreateList. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 CustomLog. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 DateAddICU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 DateDiffICU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 DownloadFileToDataHolder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 DumpValues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 EnsureCondition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 ExcludeItems. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 Asignar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 Notificar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 ResetVisitedPages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 RunMapper. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 RunParser. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 RunSerializer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 RunXMap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 SetValue. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 Sort. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 ValidateValue. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 WriteValue. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 XSLTMap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 Referencia de subcomponentes de acción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 OutputDataHolder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 OutputFile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 ResultFile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 StandardErrorLog. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233

Capítulo 14: Serializadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 Resumen de serializadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 Cómo crear un serializador invirtiendo un analizador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 Cómo controlar la forma de funcionar del comando Crear serializador. . . . . . . . . . . . . . . . . . . 235 Solución de problemas de un serializador generado automáticamente. . . . . . . . . . . . . . . . . . . 236 Cómo crear un serializador editando el script. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 Cómo crear un serializador dentro de una acción RunSerializer. . . . . . . . . . . . . . . . . . . . . . . 237 anclajes de serialización. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 Ejemplo de anclajes de serialización. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 Secuencia de anclajes de serialización. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 Propiedades de serializador estándar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239

Tabla de contenido ix

Referencia de componentes de Serializador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 Serializador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .240 Referencia de componentes de anclaje de serialización. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 AlternativeSerializers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .241 ContentSerializer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 DelimitedSectionsSerializer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .243 EmbeddedSerializer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 GroupSerializer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 RepeatingGroupSerializer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .248 StringSerializer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250

Capítulo 15: Asignadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 Crear un asignador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .252 Componentes anidados dentro de un asignador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 Ejemplo de asignador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 XML de origen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .253 Salida XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 Configuración del asignador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 Propiedades de un asignador estándar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 Referencia de componentes de asignador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 Asignador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .255 Referencia de componentes de anclaje de asignador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 AlternativeMappings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 EmbeddedMapper. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 GroupMapping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .259 RepeatingGroupMapping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260

Capítulo 16: Localizadores, claves e indexación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 Resumen de localizadores, claves e indexación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 Ejemplo de localizadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 Entrada y salida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .263 Solución incorrecta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .263 Solución correcta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 Ejemplo de indexación por clave. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 Entrada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 Salida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 Esquema del enfoque de transformación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .265 Configuración del asignador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 Uso de la indexación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .267 Propiedades source y target. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 Propiedad source. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .268 Propiedad target. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .271 Propiedades estándar de localizador y clave. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .273

xTabla de contenido

Referencia de componentes de localizador y clave. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .273 Clave. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 Localizador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 LocatorByKey. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 LocatorByOccurrence. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277

Capítulo 17: Transmisiones por secuencias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 Resumen de transmisiones por secuencias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 Transmisiones por secuencias de texto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 Segmentos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 Segmentos simples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 Segmentos complejos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 Ejemplo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 Concatenación de encabezados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 Salida de una transmisión por secuencias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 Cómo utilizar marcadores y variables en transmisiones por secuencias. . . . . . . . . . . . . . . . . . 282 Cómo crear una transmisión por secuencias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 Transmisiones por secuencias XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 Propiedades de transmisión por secuencias estándar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 Referencia de componentes de Transmisión por secuencias. . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 ComplexSegment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 ComplexXmlSegment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 MarkerStreamer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 SimpleSegment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 SimpleXmlSegment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 Transmisión por secuencias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 StreamerVariable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 XmlSegment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 XmlStreamer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 Referencia de subcomponentes de Transmisión por secuencias. . . . . . . . . . . . . . . . . . . . . . . . . . 295 AddHeaderModifier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 AddStringModifier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 DoNothingModifier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 WellFormedModifier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 WriteSegment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298

Capítulo 18: Validadores, notificaciones y control de errores. . . . . . . . . . . . . . . . . . . . . 299 Resumen de validadores, notificadores y control de errores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299 Control de errores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 Utilizar la propiedad optional para el control de errores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 Cómo escribir un mensaje de error en el registro de usuario. . . . . . . . . . . . . . . . . . . . . . . . . 301 Validadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 Propiedades estándar de los validadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303

Tabla de contenido xi

Referencia de componentes de validador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 AlternativeValidators. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 EDIFACTValidation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 Enumeration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 LengthEquals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 MaxLength. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 MaxNumber. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 MinLength. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 MinNumber. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 NumberEquals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 ValidateByExpression. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 ValidateByPattern. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 ValidateByTransformer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 ValidateByType. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 ValidateDate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 ValidatorPipeline. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 Notificaciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319 Referencia de componentes de notificación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 Notificación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 NotificationGroup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 NotificationHandler. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321 NotifyFailure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322

Capítulo 19: Componentes de script personalizado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 Resumen de los componentes de script personalizado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 Ejemplo de componente personalizado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 Propiedades de componente personalizado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 Desarrollar un componente personalizado en Java. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 Ejemplo de interfaz de Java. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 Componentes de Java personalizados de ejemplo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 Desarrollar un componente personalizado en C o C++. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 Limitación de longitud del valor de propiedad C/C++. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 Ejemplo de interfaz C/C++. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 Componentes C/C++ personalizados de ejemplo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 Configurar un componente personalizado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 Scripts de ejemplo que contienen componentes personalizados. . . . . . . . . . . . . . . . . . . . . . . 329

Índice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330

xiiTabla de contenido

Prefacio La Guía de transformación del Procesador de datos Informatica se ha escrito para desarrolladores, analistas y otros usuarios que son responsables del diseño y la implementación de transformaciones. El libro explica cómo diseñar, configure, probar e implementar transformaciones. Contiene secciones de referencia detalladas que documentan los componentes de transformación y sus propiedades. En este manual se asume que tiene conocimientos básicos sobre cómo utilizar Informatica Developer. También se asume que conoce XML, los esquemas y las técnicas de programación básicas.

Documentación de Informatica Portal de atención al cliente de Informatica Como cliente de Informatica, puede acceder al sitio del Portal de atención al cliente de Informatica a través de la dirección http://mysupport.informatica.com. El sitio contiene información sobre productos, boletines de noticias, acceso al sistema de administración de casos de atención al cliente de Informatica (ATLAS), la biblioteca de asistencia de Informatica, la base de conocimiento de Informatica, la base de conocimiento multimedia de Informatica, la documentación de productos de Informatica y acceso a la comunidad de usuarios de Informatica.

Documentación de Informatica El equipo de Documentación de Informatica se esfuerza al máximo para crear documentación precisa y útil. Si le surgen preguntas o tiene comentarios o ideas relacionadas con esta documentación, póngase en contacto con el equipo de Documentación de Informatica enviando un correo electrónico a [email protected]. Sus opiniones servirán para mejorar nuestra documentación. Por favor, indíquenos si podemos ponernos en contacto con usted en relación a sus comentarios. El equipo de Documentación actualiza la documentación según sea necesario. Para obtener la documentación más reciente de su producto, visite la Documentación de Productos en la dirección http://mysupport.informatica.com.

Sitio web de Informatica Puede acceder al sitio web corporativo de Informatica a través de la dirección http://www.informatica.com. El sitio contiene información sobre Informatica, su historia, los próximos eventos y las oficinas de ventas. Asimismo, puede encontrar información sobre productos y socios. El área de servicio del sitio incluye información importante sobre soporte técnico, formación y cursos, así como servicios de implementación.

xiii

Biblioteca de asistencia de Informatica Como cliente de Informatica, puede acceder a la Biblioteca de asistencia de Informatica a través de la dirección http://mysupport.informatica.com. La Biblioteca de asistencia es una recopilación de documentos que le ayudarán a contar con más datos sobre los productos y las prestaciones de Informatica. Incluye artículos y demostraciones interactivas que ofrecen soluciones a problemas comunes, comparan prestaciones y conductas y le guían en la realización de tareas específicas del día a día.

Base de conocimiento de Informatica Como cliente de Informatica, puede acceder a la Base de conocimiento de Informatica a través de la dirección http://mysupport.informatica.com. Utilice la Base de conocimiento para buscar soluciones documentadas a problemas técnicos conocidos relacionados con los productos de Informatica. Asimismo, puede encontrar respuestas a las preguntas más frecuentes, libros blancos técnicos y sugerencias técnicas. Si le surgen preguntas o tiene comentarios o ideas relacionadas con la Base de conocimiento de Informatica, póngase en contacto con el equipo de la Base de conocimiento de Informatica enviando un correo electrónico a [email protected].

Base de conocimiento multimedia de Informatica Como cliente de Informatica, puede acceder a la Base de conocimiento multimedia de Informatica a través de la dirección http://mysupport.informatica.com. La Base de conocimiento multimedia es una recopilación de archivos multimedia con instrucciones que le ayudarán a comprender conceptos comunes y le ofrecerán orientación a la hora de realizar tareas específicas. Si le surgen preguntas o tiene comentarios o ideas relacionadas con la Base de conocimiento multimedia, póngase en contacto con el equipo de la Base de conocimiento de Informatica enviando un correo electrónico a [email protected].

Servicio internacional de atención al cliente de Informatica Puede ponerse en contacto con nuestro Centro de atención al cliente llamando por teléfono o a través del Soporte en línea. El Soporte en línea requiere un nombre de usuario y una contraseña. Puede solicitar un nombre de usuario y una contraseña en la dirección http://mysupport.informatica.com. Utilice los números de teléfono siguientes para ponerse en contacto con el Servicio internacional de atención al cliente de Informatica: Norteamérica / Sudamérica

Europa / Oriente Medio / África

Asia / Australia

Llamada gratuita

Llamada gratuita

Llamada gratuita

Brasil: 0800 891 0202

Francia: 0805 804632

Australia: 1 800 151 830

México: 001 888 209 8853

Alemania: 0800 5891281

Nueva Zelanda: 09 9 128 901

Norteamérica: +1 877 463 2435

Italia: 800 915 985 Países Bajos: 0800 2300001 Portugal: 800 208 360

Tarifa estándar

España: 900 813 166

India: +91 80 4112 5738

Suiza: 0800 463 200 Reino Unido: 0800 023 4632

Tarifa estándar Bélgica: +31 30 6022 797

xivPrefacio

Norteamérica / Sudamérica

Europa / Oriente Medio / África

Asia / Australia

Francia: +33 1 4138 9226 Alemania: +49 1805 702 702 Países Bajos: +31 306 022 797 Reino Unido: +44 1628 511445

Prólogo

xv

xvi

CAPÍTULO 1

Introducción a Data Transformation Este capítulo incluye los siguientes temas: ¨ Resumen de Data Transformation, 1 ¨ Arquitectura del proceso de Data Transformation, 2 ¨ Componentes de Data Transformation, 3 ¨ Opciones de Data Transformation , 3

Resumen de Data Transformation Data Transformation es una aplicación que procesa los archivos complejos, tales como formatos de mensajería, páginas HTML y documentos PDF. Data Transformation también transforma formatos tales como ACORD, HIPAA, HL7, EDI-X12, EDIFACT, AFP y SWIFT. Data Transformation se instala de forma predeterminada al instalar Informatica Developer (la Herramienta del desarrollador). Puede definir una transformación del Procesador de datos para transformar los archivos complejos en una asignación. Cuando ejecute una asignación con la transformación del Procesador de datos, el servicio de Integración de datos llama al Motor de Data Transformation para que procese los datos. La aplicación Data Transformation tiene los siguientes elementos: Transformación del Procesador de datos Una transformación que procesa archivos complejos en una asignación. Defina el script de Data Transformation o los objetos de XMap en la Herramienta del desarrollador para procesar los datos. Puede incluir la transformación en un perfil de asignación, servicio web o servicio de datos SQL. Servicio de Data Transformation Un conjunto de objetos de Data Transformation que puede exportar desde la transformación del Procesador de datos y ejecutar independiente. Exporte un servicio a un repositorio de Data Transformation y ejecute el servicio desde allí. Repositorio de Data Transformation Un directorio que almacena los servicios ejecutables que exporta desde una transformación del Procesador de datos o que se implementan desde Data Transformation Studio. El nombre del directorio de repositorio es ServiceDB. Motor del Procesador de datos Un procesador que ejecuta objetos en los servicios o la transformación del Procesador de datos que crea en Data Transformation Studio.

1

Data Transformation Studio Un editor visual para diseñar y configurar servicios de Data Transformation. Puede designar un servicio de Data Transformation en lugar de una transformación de Procesador de datos. Implementar el proyecto al repositorio de Data Transformation como un servicio ejecutable.

Arquitectura del proceso de Data Transformation Debe instalar Data Transformation para poder configurar y ejecutar una transformación del Procesador de datos en la Herramienta del desarrollador. La transformación del Procesador de datos puede contener varios scripts u objetos de XMap para transformar archivos de complejos. El motor de Data Transformation ejecuta los scripts o XMaps para transformar los datos. Puede utilizar una transformación del Procesador de datos en un servicio de datos, un servicio web o un perfil. La siguiente figura muestra los componentes en la aplicación Data Transformation y los componentes que se utilizan para crear la misma funcionalidad en la Herramienta del desarrollador:

2

1.

Cree una transformación del Procesador de datos en la Herramienta del desarrollador. Guarde la transformación en el repositorio de modelos.

2.

Exporte la transformación del procesador datos como un servicio de Data Transformation. Exporte el servicio al repositorio de Data Transformation. Puede ejecutar el servicio desde el repositorio.

3.

También puede crear un proyecto de Data Transformation en Data Transformation Studio que realice las mismas funciones que la transformación del Procesador de datos. Implementa el proyecto como un servicio al repositorio de Data Transformation.

4.

Puede implementar una aplicación que contiene una transformación del Procesador de datos para un servicio de integración de datos.

5.

El servicio de integración de datos ejecuta la aplicación y llama al motor del Procesador de datos para procesar la lógica de transformación.

6.

El motor del Procesador de datos también ejecuta los servicios del repositorio de Data Transformation.

Capítulo 1: Introducción a Data Transformation

Componentes de Data Transformation Cuando se define un servicio de Data Transformation o una transformación del Procesador de datos, se pueden combinar varios componentes para transformar los datos. Data Transformation tiene los siguientes tipos de componentes que transforman datos: Analizador Convierte documentos de origen a XML. La entrada puede tener cualquier formato. La salida de un analizador es XML. Serializador Convierte un archivo XML en otro documento. La salida puede tener cualquier formato. Asignador Convierte un documento de origen XML en otro documento XML. XMap Convierte un documento de origen XML en otro documento XML. XMap tiene la misma funcionalidad como Asignador, pero se puede utilizar una malla en la Herramienta del desarrollador para definir la asignación. No se puede definir un XMap en Data Transformation Studio. Transformador Modifica los datos en cualquier formato. Añade, quita, convierte o modifica texto. Utilice transformadores con un analizador, un asignador o un serializador. También puede ejecutar un transformador como componente autónomo. Transmisión por secuencias Divide documentos de entrada de gran tamaño, tales como secuencias de datos de varios gigabytes, en segmentos. La transmisión por secuencias divide documentos que tienen varios mensajes o registros.

Opciones de Data Transformation Puede seleccionar varias opciones para ejecutar Data Transformation. Puede ejecutar Data Transformation como producto independiente o puede ejecutar servicios de Data Transformation desde una transformación en una asignación. Se debe tener una de las siguientes opciones para utilizar Data Transformation: Opción de Data Transformation Permite el uso completo de Data Transformation, incluido Data Transformation Studio y preprocesadores de documentos. Los preprocesadores de documentos transforman archivos binarios como archivos PDF o documentos de Word a texto. Con una opción de Data Transformation, puede adquirir bibliotecas de componentes como analizadores, serializadores y esquemas XML que puede usar para procesar mensajes de aplicación estándar de la industria. Opción de datos sin estructura Ejecuta servicios de Data Transformation en PowerCenter o en Data Services. La opción de datos sin estructura incluye preprocesadores de datos pero ninguna biblioteca de componentes.

Componentes de Data Transformation

3

Opción avanzada de XML Ejecuta servicios de Data Transformation en PowerCenter o en Data Services. La opción XML avanzada no incluye preprocesadores de datos ni bibliotecas de componentes.

4

Capítulo 1: Introducción a Data Transformation

CAPÍTULO 2

Transformación del Procesador de datos Este capítulo incluye los siguientes temas: ¨ Resumen de la transformación del Procesador de datos, 5 ¨ Vistas de la transformación del Procesador de datos, 6 ¨ Puertos de la transformación del Procesador de datos, 7 ¨ Componente de inicio, 12 ¨ Referencias de esquema, 12 ¨ Configuración de la transformación del Procesador de datos, 13 ¨ Eventos, 19 ¨ Registros, 20 ¨ Desarrollo de la transformación del Procesador de datos, 22 ¨ Importación y exportación de la transformación del Procesador de datos, 25

Resumen de la transformación del Procesador de datos La transformación del Procesador de datos procesa formatos de archivo sin estructura y semiestructurados en una asignación. Configure la transformación para procesar formatos de mensajería, páginas HTML, XML y documentos PDF. Transforma formatos estructurados tales como ACORD, HIPAA, HL7, EDI-X12, EDIFACT, AFP y SWIFT. Por ejemplo, puede recibir facturas del cliente en archivos de Microsoft Word. Puede configurar una transformación del Procesador de datos para analizar los datos de cada archivo de palabras. Extraiga los datos de clientes a una tabla Clientes. Extraiga información de pedidos a una tabla Pedidos. Cuando se crea una transformación del Procesador de datos, se deben definir objetos de XMap u objetos de script para transformar los datos. Un XMap transforma un documento XML de entrada en un documento XML de salida de otra estructura. Un script puede analizar documentos de origen a XML, convertir XLM a otros formatos de archivo o asignar un documento XML a otro documento XML de otro formato. Defina los scripts en el editor de scripts de transformación del Procesador de datos. Puede definir los siguientes tipos de scripts: ¨ Analizador. Convierte documentos de origen a XML. La salida de un analizador siempre es XML. La entrada

puede tener cualquier formato, como texto, HTML, Word, PDF o HL7.

5

¨ Serializador. Convierte un archivo XML en un documento de salida de cualquier formato. La salida de un

serializador puede tener cualquier formato, como documento de texto, documento HTML o PDF. ¨ Asignador. Convierte un documento de origen XML en otra estructura o esquema XML. Puede transformar los

mismos documentos XML como en un XMap. ¨ Transformador. Modifica los datos a cualquier formato. Añade, quita, convierte o modifica texto. Utilice

transformadores con un analizador, un asignador o un serializador. También puede ejecutar un transformador como componente autónomo. ¨ Transmisión por secuencias. Divide documentos de entrada de gran tamaño, como secuencias de datos de varios

gigabytes, en segmentos. La transmisión por secuencias procesa los documentos que contienen varios mensajes o registros, como archivos HIPAA o EDI.

Vistas de la transformación del Procesador de datos La transformación del Procesador de datos tiene varias vistas a las que puede acceder al configurar la transformación y ejecutarla en la Herramienta del desarrollador. Algunas de las vistas de la transformación del Procesador de datos no aparecen en la Herramienta del desarrollador de forma predeterminada. Para cambiar las vistas para la transformación, haga clic en Ventana > Mostrar vista > Otro > Informatica. Seleccione las vistas que desee ver. La transformación del Procesador de datos tiene las siguientes vistas fijas: Vista Resumen Configure los puertos y defina el componente de inicio. Vista de referencias Añada o elimine esquemas desde la transformación. Vista de configuración Configure la configuración de transformación para la codificación, el control de salida y la generación de XML. Vista Objetos Añada, cambie o elimine objetos de script y XMap desde la transformación. También puede acceder a las siguientes vistas para la transformación del Procesador de datos: Vista del Procesador de datos de origen hexadecimal Muestra un documento de entrada en formato hexadecimal. Vista Eventos del procesador de datos Muestra información sobre los eventos que ocurren cuando ejecuta la transformación en la Herramienta del desarrollador. Muestra la inicialización, la ejecución y los eventos de resumen. Vista de ayuda de script Muestra la ayuda dependiente del contexto para el editor de scripts. Vista del Visor de datos Vea los datos de entrada de ejemplo, ejecute la transformación y vea resultados de salida.

6

Capítulo 2: Transformación del Procesador de datos

Puertos de la transformación del Procesador de datos Defina los puertos de transformación del Procesador de datos en la vista Resumen de la transformación. Una transformación del Procesador de datos puede leer entradas desde un archivo, un búfer o un búfer de transmisión desde un lector de archivos complejos. Puede utilizar un lector de archivos sin formato como un búfer para leer todo un archivo de una vez. También puede leer un archivo de entrada desde una base de datos. Los puertos de salida que puede crear dependen de si desea devolver una cadena, archivos complejos o filas de datos relacionales desde la transformación.

Puertos de entrada de la transformación del Procesador de datos Cuando se crea una transformación del Procesador de datos, la Herramienta del desarrollador crea un puerto de entrada predeterminado. Cuando se define un puerto de entrada adicional en un componente de inicio de script, la Herramienta del desarrollador crea un puerto de entrada adicional en la transformación. El tipo de entrada determina el tipo de datos que el servicio de integración de datos pasa a la transformación del Procesador de datos. El tipo de entrada determina si la entrada está formada por datos o si es la ruta de acceso de un archivo de origen. Configure uno de los siguientes tipos de entrada: Búfer La transformación del Procesador de datos recibe filas de datos de origen en el puerto Entrada. Utilice el tipo de entrada de búfer cuando configure la transformación para recibir datos desde un archivo sin formato o desde un transformaton de Informatica. Archivo La transformación del Procesador de datos recibe la ruta de acceso al archivo de origen en el puerto Entrada. El componente de inicio del Procesador de datos abre el archivo de origen. Utilice el tipo de entrada de archivo para analizar archivos binarios como los de Microsoft Excel o Microsoft Word. También puede utilizar el tipo de entrada de archivo para archivos de gran tamaño que puede requerir un lote de memoria del sistema para el proceso con un puerto de entrada de búfer. Parámetro de servicio La transformación del Procesador de datos recibe valores para aplicarlos a variables en los puertos de parámetros de servicio. Cuando se seleccionan las variables para recibir datos de entrada, la Herramienta del desarrollador crea un puerto de parámetros de servicio para cada variable. Output_Filename Cuando se configura el puerto de salida predeterminado para devolver un nombre de archivo en lugar de datos sin formato, la Herramienta del desarrollador crea un puerto Output_Filename. Puede pasar un nombre de archivo al puerto Output_Filename desde una asignación. Cuando se define un puerto de entrada, puede definir la ubicación del archivo de entrada de ejemplo para el puerto. Un archivo de entrada de ejemplo es un pequeño ejemplo del archivo de entrada. Haga referencia a un archivo de entrada de ejemplo al crear scripts. También puede utilizar el archivo de entrada de ejemplo cuando pruebe la transformación en la vista Visor de datos. Defina el archivo de entrada de ejemplo en el campo Ubicación de entrada.

Puertos de la transformación del Procesador de datos

7

Puertos de parámetros de servicio Puede crear puertos de entrada que reciben valores de variables. Las variables pueden contener cualquier tipo de datos como una cadena, una fecha o un número. Una variable también puede contener una ubicación de un documento de origen. Se puede hacer referencia a las variables de un componente del Procesador de datos. Cuando se crea un puerto de entrada para una variable, la Herramienta del desarrollador muestra una lista de variables entre las que puede elegir.

Crear puertos de parámetros de servicio Puede crear puertos de entrada que reciben valores de variables. También puede quitar los puertos que se crean a partir de variables. 1.

Abra la vista Resumen de la transformación del Procesador de datos.

2.

Haga clic en Elegir. La Herramienta del desarrollador muestra una lista de las variables y indica que ya tiene puertos variables.

3.

Seleccione una o más variables. La Herramienta del desarrollador crea un puerto de entrada de búfer para cada variable que seleccione. No se puede modificar el puerto.

4.

Para eliminar un puerto que se crea a partir de una variable, deshabilite la selección de la lista de variable. Cuando deshabilite la selección, la Herramienta del desarrollador elimina el puerto de entrada.

Puertos de salida de la transformación del Procesador de datos La transformación del Procesador de datos tiene un puerto de salida de forma predeterminada. Si se definen los puertos de salida adicionales en un script, la Herramienta del desarrollador añade los puertos a la transformación del Procesador de datos. Puede crear grupos de puertos si configura la transformación para devolver datos relacionales. También puede crear puertos de parámetros de servicio y puertos de transferencia.

Puerto de salida predeterminado La transformación del Procesador de datos tiene un puerto de salida de forma predeterminada. Cuando crea una salida relacional, puede definir grupos de puertos de salida relacionados en lugar del puerto de salida predeterminado. Cuando se define un puerto de salida adicional en un componente de script, la Herramienta del desarrollador añade un puerto de salida adicional para la transformación. Configure uno de los siguientes tipos de salida para un puerto de salida predeterminado: Búfer La transformación del Procesador de datos devuelve XML a través del puerto Salida. Elija el tipo de archivo de búfer cuando analice documentos o cuando asigne XML a otros documentos XML en la transformación del Procesador de datos. Archivo El servicio de integración de datos devuelve un nombre de archivo de salida en el puerto de salida para cada instancia de origen o de fila. El componente de transformación del Procesador de datos escribe el archivo de salida en lugar de devolver datos mediante los puertos de salida de transformación del Procesador de datos. Cuando seleccione un puerto de salida Archivo, la Herramienta del desarrollador crea un puerto de entrada Output_Filename. Puede pasar un nombre de archivo al puerto de nombre de archivo Salida. La transformación del Procesador de datos crea el archivo de salida con un nombre que recibe en este puerto.

8

Capítulo 2: Transformación del Procesador de datos

Si el nombre del archivo de salida está vacío, el servicio de integración de datos devuelve un error de fila. Cuando se produce un error, el servicio de integración de datos escribe un valor nulo en el puerto de salida y devuelve un error de fila. Elija el tipo de salida Archivo al transformar XML a un archivo de datos binarios como un archivo PDF o un archivo de Microsoft Excel.

Puertos de salida relacionales Puede devolver la salida relacional desde la transformación Procesador de datos. Si un componente devuelve XML, cree grupos de puertos de salida mediante la asignación de nodos desde la salida XML a los grupos de puertos. Puede pasar los datos desde los puertos a otra transformación en una asignación. Para devolver grupos de puertos relacionales, habilite la salida relacional desde la vista Resumen. La herramienta Desarrollador elimina el puerto de salida predeterminado en la vista. Seleccione Asignación de salida. El panel Puertos aparece en el panel Resumen. La siguiente figura muestra el panel Puertos:

El esquema de salida XML aparece en el área Salida jerárquica del panel. Cree puertos en el área Puertos relacionales del panel y asigne nodos desde el esquema a los puertos. También puede arrastrar el puntero desde un nodo del esquema hasta un campo vacío en el área Puertos para crear un puerto. Cuando se asigna un nodo desde el esquema de salida a un puerto, la herramienta Desarrollador muestra un vínculo entre ellos.

Puertos de la transformación del Procesador de datos

9

Salida relacional Cuando configure la salida relacional, puede configurar un grupo de salida independiente para cada nodo de entrada de varias ocurrencias. También puede crear grupos que contengan datos desnormalizados. Puede pivotar elementos de varias ocurrencias y limitar el número de ocurrencias en un grupo de salida.

Salida relacional normalizada Cuando se crean datos de salida normalizados, los valores de los datos no se repiten en un grupo de salida. Se crea una relación exclusiva entre los niveles de jerarquía de la jerarquía XML y los grupos de salida de los puertos. Cuando la jerarquía XML contiene un nivel de jerarquía primario Departamentos y un nivel de jerarquía secundario Empleados, puede crear los siguientes grupos de puertos: Departments Department_Key Department_ID Department_Name Employees Department_Key Employee_ID Employee_Name

Department_Key es una clave generada que relaciona el grupo de salida Empleados con un grupo Departamento.

Salida relacional pivotada Puede incluir un número específico de elementos de ocurrencia múltiple en un grupo de salida. Para pivotar elementos de ocurrencia múltiple, asigne el elemento secundario de ocurrencia múltiple al grupo primario de los puertos de salida. La Herramienta del desarrollador le insta a definir el número de elementos secundarios que incluir en el primario. El siguiente ejemplo muestra dos instancias de Employee_ID en el grupo primario Departamentos: Departments Department_ID Department_Name Employee_ID1 Employee_ID2

Salida relacional desnormalizada Se puede desnormalizar una salida relacional. Cuando se desnormalizan los datos de salida, los valores de elemento del grupo primario se repiten para cada elemento secundario. Para desnormalizar datos de salida, asigne nodos del nivel de jerarquía primario al grupo secundario de los puertos de salida. El siguiente ejemplo muestra Department_ID y Department_Name en el grupo de salida Empleados: Employees Department_ID Department_Name Employee_ID Employee_Name

10

Capítulo 2: Transformación del Procesador de datos

Department_ID y Department_Name se repiten para cada empleado del departamento: Department_ID 100 100 100

Department_Name Contabilidad Contabilidad Contabilidad

Employee_ID 56500 56501 56509

Employee_Name Kathy Jones Tom Lyons Bob Smith

Configuración de puertos relacionales En el panel Puertos, defina grupos de puertos de salida y asigne los nodos desde el esquema de salida XML a los puertos. Si el esquema XML de salida tiene más de un elemento que puede ser un elemento raíz, puede elegir un nodo del esquema de salida para que sea el elemento raíz. Para definir una un nodo como raíz, haga clic en Seleccione jerarquía. La herramienta Desarrollador solo muestra los nodos desde el nivel raíz y debajo del nivel raíz en el área Salida jerárquica. Cree puertos utilizando uno de los siguientes métodos: Arrastre los nodos a puertos Arrastre los nodos desde el área Salida jerárquica al Puertos relacionales. Si arrastra un nodo a un grupo, la herramienta Desarrollador añade un puerto al grupo. De lo contrario, crea un grupo con el puerto comprendido en él. Crear manualmente los puertos Para crear un puerto, seleccione un campo vacío en el área Puertos relacionales y haga clic en Nuevo > Campo. Si no selecciona un campo dentro de un grupo, la herramienta Desarrollador crea un grupo y añade el puerto al grupo. Cuando se arrastran nodos al área Puertos relacionales, la herramienta Desarrollador actualiza el campo de ubicación con la ubicación del nodo en la jerarquía XML. Si crea manualmente los puertos, debe asignar un nodo al puerto. Haga clic en la columna Ubicación y seleccione un nodo de la lista. Cuando se arrastra un nodo de ocurrencia múltiple a un grupo que contiene el elemento primario, puede configurar el número de ocurrencias de elemento secundario que se van a incluir. También puede reemplazar el grupo primario con el grupo secundario de ocurrencia múltiple en la salida de transformación. Para crear un grupo, arrastre un nodo a una columna de salida vacía en el área Puertos relacionales. Si arrastra un nodo secundario de ocurrencia múltiple a una columna de salida vacía, la Herramienta del desarrollador le pedirá que relacione el grupo con otros grupos de salida. Cuando se selecciona un grupo, la Herramienta del desarrollador crea claves para relacionar los grupos. También puede crear un grupo nuevo haciendo clic en Nuevo > Group en el área Puertos relacionales. Especifique un nombre para el grupo. Configure grupos de puertos de salida relacionados en el área Puertos relacionales. Cuando la Herramienta del desarrollador le insta a relacionar grupos de salida, añade las claves a los grupos. También puede añadir puertos manualmente para representar claves. Haga clic en Mostrar como jerarquía para mostrar los puertos de salida de la jerarquía. Cada grupo secundario aparece debajo del grupo primario. Para ver las líneas que conectan los puertos con los nodos XML, haga clic en Mostrar líneas. Seleccione para ver todas las líneas de conexión o solo las líneas de los puertos seleccionados.

Puertos de la transformación del Procesador de datos

11

Puertos de transferencia Puede configurar puertos de transferencia en una transformación del Procesador de datos. Los puertos de transferencia son puertos de entrada y salida que reciben datos de entrada y devuelven los mismos datos a una asignación sin modificarlos. Puede configurar puertos de transferencia en una instancia de transformación del Procesador de datos que esté en una asignación. No se pueden añadir puertos de transferencia a una transformación reutilizable. Para añadir un puerto de transferencia, arrastre un puerto desde otra transformación en la asignación. En la transformación, también puede hacer clic en Nuevo > Añadir > Puerto para añadir un puerto de transferencia.

Componente de inicio Un componente de inicio define el componente que inicia el proceso en la transformación del Procesador de datos. Configure el componente de inicio en la vista Resumen. Una transformación del Procesador de datos puede contener varios componentes para procesar los datos. Cada componente puede contener otros componentes. Se debe identificar qué componente es el punto de entrada para la transformación. Cuando configure el componente de inicio en una transformación del Procesador de datos, puede elegir un componente XMap o un script como el componente de inicio. Puede seleccionar uno de los siguientes tipos de componentes: ¨ Analizador. Convierte documentos de origen a XML. La salida de un analizador siempre es XML. La entrada

puede tener cualquier formato, como texto, HTML, Word, PDF o HL7. ¨ Asignador. Convierte un documento de origen XML en otra estructura o esquema XML. ¨ Serializador. Convierte un archivo XML en un documento de salida de cualquier formato. La salida de un

serializador puede tener cualquier formato, como documento de texto, documento HTML o PDF. ¨ XMap. Transforma un documento XML de entrada en un documento XML de salida de otra estructura. Se puede

transformar el mismo documento XML que en un Asignador. ¨ Transmisión por secuencias. Divide documentos de entrada de gran tamaño, como secuencias de datos de varios

gigabytes, en segmentos. La transmisión por secuencias procesa los documentos que contienen varios mensajes o registros, como archivos HIPAA o EDI. ¨ Transformador. Modifica los datos a cualquier formato. Añade, quita, convierte o modifica texto. Utilice

Transformadores con un analizador, un Asignador o un Serializador. También puede ejecutar un transformador como componente autónomo. Nota: Si el componente de inicio no es un XMap, también puede configurar el componente de inicio en un script en lugar de en la vista Resumen.

Referencias de esquema La transformación del Procesador de datos requiere un esquema XML para definir la jerarquía de entrada o salida XML para cada componente que defina en la transformación. Añada referencias de esquema en la vista Referencias de la transformación.

12

Capítulo 2: Transformación del Procesador de datos

La transformación del Procesador de datos hace referencia a objetos de esquema en el repositorio de modelos. Los objetos de esquema pueden existir en el repositorio antes de crear la transformación. También puede importar esquemas desde la vista Referencias de la transformación. La codificación de esquemas debe coincidir con la codificación de entradas para los objetos Serializador o Asignador. La codificación de esquemas debe coincidir con la codificación de salidas para los objetos Analizador. Configure la codificación de trabajo en la vista de transformación Configuración. Un esquema puede hacer referencia esquemas adicionales. La herramienta Desarrollador muestra el espacio de nombres y el prefijo para cada esquema al que hace referencia la transformación Procesador de datos. Cuando se hace referencia a varios esquemas con espacios de nombres vacíos, la transformación no es válida.

Configuración de la transformación del Procesador de datos Configure las páginas de códigos, las opciones de procesamiento XML y la configuración de registro en la vista de transformación del Procesador de datos Configuración.

Codificación de caracteres Una codificación de caracteres es una asignación de los caracteres de un idioma o grupo de idiomas con el código hexadecimal. Cuando se diseña un script, debe definir la codificación de documentos de entrada y la codificación de documentos de salida. Defina la codificación de trabajo para definir cómo el editor de IntelliScript muestra caracteres y cómo la transformación del Procesador de datos procesa los caracteres.

Codificación de trabajo La codificación de trabajo es la página de códigos para los datos en la memoria y la página de códigos para los datos que aparecen en la interfaz de usuario y los archivos de trabajo. Debe seleccionar una codificación de trabajo que sea compatible con la codificación de los esquemas a los que se hace referencia en la transformación del Procesador de datos. La siguiente tabla muestra la configuración de codificación del trabajo: Configuración

Descripción

Utilizar la página de códigos predeterminada del Procesador de datos

Utiliza la codificación predeterminada de la transformación del Procesador de datos.

Otros

Seleccione la codificación de la lista.

Codificación de caracteres especiales XML

Determina la representación de caracteres especiales XML. Puede seleccionar Ninguno o XML. - Ninguno. Dejar como & < > " ' Las referencias de entidad para caracteres especiales XML se interpretan como texto. Por ejemplo, el carácter > aparece como >

Configuración de la transformación del Procesador de datos

13

Configuración

Descripción El valor predeterminado es Ninguno. - XML. Convertir a & < > " ' Las referencias de entidad para caracteres especiales XML se interpretan como caracteres normales. Por ejemplo, > aparece como el siguiente carácter: >

Codificación de entrada La codificación de entrada determina cómo los datos de caracteres se codifican en documentos de entrada. Puede configurar la codificación para puertos de entrada adicionales en un script. La siguiente tabla describe la configuración de codificación en el área Entrada: Configuración

Descripción

Utilizar la codificación especificada en documento de entrada

Utilice la página de códigos que el documento de origen define, tal como el atributo de codificación de un documento XML. Si el documento de origen no tiene una especificación de codificación, la transformación del Procesador de datos utiliza la configuración de la codificación de la vista Configuración.

Utilizar codificación de trabajo

Utilice la misma codificación que la codificación de trabajo.

Otros

Seleccione la codificación de entrada de una lista desplegable.

Codificación de caracteres especiales XML

Determina la representación de caracteres especiales XML. Puede seleccionar Ninguno o XML. - Ninguno. Dejar como & < > " ' Las referencias de entidad para los caracteres especiales XML se interpretan como texto, por ejemplo, el carácter > aparece como >

El valor predeterminado es Ninguno. - XML. Convertir a & < > " ' Las referencias de entidad para caracteres especiales XML se interpretan como caracteres normales. Por ejemplo, > aparece como el siguiente carácter: >

Orden de bytes

Describe cómo aparecen los caracteres multibyte en el documento de entrada. Puede seleccionar las opciones siguientes: - Little-endian. El byte menos significativo aparece primero. Predeterminado. - Big-endian. El byte más significativo aparece primero. - No hay conversión binaria.

Codificación de salida La codificación de salida determina cómo los datos de caracteres se codifican en el documento de salida principal..

14

Capítulo 2: Transformación del Procesador de datos

La siguiente tabla describe la configuración de codificación en el área Salida: Configuración

Descripción

Utilizar codificación de trabajo

La codificación de salida es la misma que la codificación de trabajo.

Otros

El usuario selecciona la codificación de salida de la lista.

Codificación de caracteres especiales XML

Determina la representación de caracteres especiales XML. Puede seleccionar Ninguno o XML. - Ninguno. Dejar como & < > " ' Las referencias de entidad para los caracteres especiales XML se interpretan como texto, por ejemplo, el carácter > aparece como >

Predeterminado. - XML. Convertir a & < > " ' Las referencias de entidad para caracteres especiales XML se interpretan como caracteres normales. Por ejemplo, > aparece como el siguiente carácter: >

Igual que la codificación de entrada

La codificación de salida es la misma que la codificación de entrada.

Orden de bytes

Describe cómo aparecen los caracteres multibyte en el documento de entrada. Puede seleccionar las opciones siguientes: - Little-endian. El byte menos significativo aparece primero. Predeterminado. - Big-endian. El byte más significativo aparece primero. - No hay conversión binaria.

Reglas y directrices de codificación de caracteres Utilice las siguientes reglas y directrices cuando configure codificaciones: ¨ Para aumentar el rendimiento, establezca la misma codificación que utilice el documento de salida. ¨ Establezca la codificación de entrada que utilice el documento de entrada. ¨ Establezca la codificación de salida que utilice el documento de salida. ¨ Para los idiomas que utilicen caracteres de varios bytes, establezca la codificación en UTF-16LE. Para la

codificación de entrada y salida, puede utilizar una codificación Unicode como UTF-16LE o una página de codificación de bytes dobles, como Big5 o Shift _ JIS.

Configuración de salida Configurar la configuración de control de salida para controlar si la transformación del Procesador de datos crea registros de eventos y guarda documentos de salida. Puede controlar los tipos de mensajes que la transformación Procesador de datos escribe en el registro de eventos de tiempo de diseño. Si desea guardar los documentos de entrada analizados con los registros de eventos, puede ver el contexto donde se produjo el error en la vista Event.

Configuración de la transformación del Procesador de datos

15

La siguiente tabla describe la configuración en el área Eventos de tiempo de diseño: Configuración

Descripción

Registrar eventos de tiempo de diseño

Determina si desea crear un registro de eventos de tiempo de diseño. De forma predeterminada, la transformación del Procesador de datos registra notificaciones, advertencias y fallos en el registro de eventos de tiempo de diseño. Se pueden excluir los siguientes tipos de eventos: - Notificaciones - Avisos - Fallos

Guardar documentos analizados

Determina si la transformación del Procesador de datos guarda un documento de entrada analizado. Puede seleccionar las opciones siguientes: - always. - Nunca - En fallo El valor predeterminado es always.

La siguiente tabla describe la configuración en el área Eventos de tiempo de ejecución: Configuración

Descripción

Eventos de registro en tiempo de ejecución

Determina si se ha creado un evento de registro cuando se ejecuta la transformación de una asignación. - Never. - En fallo El valor predeterminado es Never.

La siguiente tabla describe los ajustes del área Salida: Configuración

Descripción

Deshabilitar salida automática

Determina si la transformación Procesador de datos escribe la salida en el archivo de salida estándar. Deshabilite la salida estándar en las siguientes situaciones: - Si pasa la salida de un analizador a la entrada de otro componente antes de que la transformación cree un archivo de salida. - Si utiliza una acción WriteValue para escribir los datos directamente en la salida desde un script en lugar de pasarlos a través de los puertos de salida.

Deshabilitar compresión de valor

Determina si la transformación Procesador de datos utiliza la compresión del valor para optimizar el uso de memoria. Importante: no deshabilite la compresión del valor excepto si Atención al cliente de Informatica Global le indica que puede deshabilitarlo.

Configuración de procesamiento La configuración de procesamiento define cómo procesa la transformación Procesador de datos un elemento sin un tipo de datos definido. La configuración afecta a los scripts. La configuración no afecta a los elementos que procesa un XMap.

16

Capítulo 2: Transformación del Procesador de datos

La siguiente tabla describe la configuración de procesamiento que afecta al procesamiento XML en los scripts: Configuración

Descripción

Tratar como xs:string

La transformación Procesador de datos trata un elemento sin tipo como una cadena. En el cuadro de diálogo Elegir XPath, el elemento o atributo aparece como un único nodo.

Tratar como xs:anyType

La transformación Procesador de datos trata un elemento sin tipo como anyType. En el cuadro de diálogo Elegir XPath, el elemento o atributo aparece como un árbol de nodos. Un nodo es de tipo xs:string y todos los tipos de datos complejos con nombre aparecen como nodos de árbol.

Configuración de salida XML La configuración de generación XML define las características de los documentos XML de salida. La siguiente tabla describe la configuración de generación XML en el área de Título de esquema: Configuración

Descripción

Ubicación del esquema

Define el schemaLocation para el elemento raíz del documento de salida principal.

Sin ubicación de esquema para espacio de nombres

Define el atributo xsi:noNamespaceSchemaLocation del elemento raíz del documento de salida principal.

Configure los ajustes del modo de salida XML para determinar cómo la transformación del Procesador de datos maneja los elementos o los atributos que faltan en el documento XML de entrada. La siguiente tabla describe la configuración de generación XML en el área de Modo de salida XML: Configuración

Descripción

Tal cual

No se añaden ni se quitan elementos vacíos. Esta propiedad está habilitada de manera predeterminada.

Completo

Todos los elementos necesarios y opcionales definidos en el esquema de salida se escriben en la salida. Los elementos sin contenido se escriben como elementos vacíos.

Compacto

Quita elementos vacíos de la salida. Si Añadir para elementos está habilitado, la transformación del Procesador de datos quita solamente los elementos opcionales. Si Añadir para elementos está deshabilitado, la transformación del Procesador de datos quita todos los elementos vacíos. Puede que la salida XML no sea válida.

Configuración de la transformación del Procesador de datos

17

La siguiente tabla describe la configuración de generación XML en el área de Valores predeterminados para nodos requeridos: Configuración

Descripción

Añadir para elementos

Cuando el esquema de salida define un valor predeterminado para un elemento necesario, la salida incluye el elemento con un valor predeterminado. Esta propiedad está habilitada de manera predeterminada.

Añadir para atributos

Cuando el esquema de salida define un valor predeterminado para un atributo necesario, la salida incluye el atributo con su valor predeterminado. Esta propiedad está habilitada de manera predeterminada.

Validar valores agregados

Determina si la transformación del Procesador de datos valida los elementos vacíos que se han añadido por la salida del modo Completo. El valor predeterminado es deshabilitado. Si Validar valores agregados está habilitado y el esquema no admite elementos vacíos, la salida XML podría no ser válida.

La siguiente tabla describe la configuración de generación XML en el área de Instrucciones de proceso:

18

Configuración

Descripción

Añadir instrucciones de proceso XML

Define la codificación de caracteres y la versión XML del documento de salida. El valor predeterminado es seleccionado.

Versión XML

Define la versión XML. La configuración de la versión XML tiene las siguientes opciones: - 1.0 - 1.1 El valor predeterminado es 1.0.

Codificación

Define la codificación de caracteres que se ha especificado en la instrucción de proceso. La configuración de Codificación tiene las siguientes opciones: - Igual que la codificación de salida. La codificación de salida de las instrucciones de proceso es la misma que para la codificación de salida definida en la configuración de la transformación del Procesador de datos. - Personalizada. Define la codificación de salida en la instrucción de proceso. El usuario escribe el valor en el campo.

Añadir instrucciones de proceso personalizadas:

Añade otras instrucciones de proceso para el documento de salida. Introduzca la instrucción de proceso tal como aparece en el documento de salida. El valor predeterminado es Deshabilitado.

Capítulo 2: Transformación del Procesador de datos

La siguiente tabla describe la configuración de generación XML en el área de Raíz XML: Configuración

Descripción

Añadir elemento raíz XML

Añade un elemento raíz para el documento de salida. Utilice esta opción cuando el documento de salida contenga más de una ocurrencia del elemento raíz definida en el esquema de salida. El valor predeterminado es Deshabilitado.

Nombre de elemento raíz

Define un nombre del elemento raíz para añadirlo al documento de salida.

Eventos Un evento es un registro de un paso de procesamiento de un componente en la transformación del Procesador de datos. En un script, cada anclaje, acción o transformador genera un evento. En un XMap, cada instrucción de asignación genera un evento. Puede ver los eventos en la vista Eventos del procesador de datos.

Tipos de evento La transformación del Procesador de datos escribe eventos en los archivos de registro. Cada evento tiene un tipo de evento que indica si el evento se ha realizado correctamente, el evento ha generado un error o si el evento se ha ejecutado con errores. Un componente puede generar uno o más eventos. El componente puede pasar o generar un error según si los eventos tienen éxito o generan un error. Si un evento falla, un componente genera un error. La siguiente tabla describe los tipos de eventos que la transformación del Procesador de datos genera: Tipo de evento

Descripción

Notificación

Operación normal.

Aviso

La transformación del Procesador de datos se ha ejecutado pero se ha producido una condición inesperada. Por ejemplo, la transformación del Procesador de datos ha escrito datos para el mismo elemento varias veces. Cada vez que el elemento se sobrescribe, la transformación del Procesador de datos genera una advertencia.

Error

La transformación del Procesador de datos se ha ejecutado pero un componente ha generado un error. Por ejemplo, un elemento de entrada necesario estaba vacío.

Error opcional

La transformación del Procesador de datos se ha ejecutado pero un componente opcional ha generado un error. Por

Eventos

19

Tipo de evento

Descripción ejemplo, un anclaje opcional faltaba en el documento de origen.

Error fatal

La transformación del Procesador de datos ha generado un error debido a un problema grave. Por ejemplo, el documento de entrada no existe.

Vista Eventos del procesador de datos La vista Eventos del procesador de datos muestra eventos cuando se ejecuta una transformación del Procesador de datos desde la Herramienta del desarrollador. La vista Eventos del procesador de datos tiene un panel Navegación y un panel Detalles. El panel de navegación contiene un árbol de navegación. El árbol de navegación enumera los componentes que la transformación ha ejecutado en orden cronológico. Cada nodo tiene un icono que representa el evento más importante debajo de él en el árbol. Cuando seleccione un nodo en el panel Navegación, aparecen eventos en el panel Detalles. El árbol de navegación contiene los siguientes nodos de nivel superior: ¨ Inicialización del servicio. Describe los archivos y las variables que la transformación del Procesador de datos

inicializa. ¨ Ejecución. Enumera los componentes que ejecuta el script o XMap. ¨ Resumen. Muestra las estadísticas sobre el procesamiento.

Cuando se ejecuta un XMap, cada nombre de nodo del panel de navegación tiene un número entre corchetes, tal como [5]. Para identificar la instrucción que ha generado los eventos para el nodo, haga clic con el botón derecho en la malla de instrucciones y seleccione Ir al número de fila. Introduzca el número de nodo. Cuando se ejecuta un script y se hace doble clic en un evento en el panel Navegación o en el panel Detalles, el editor de scripts resalta el componente de script que ha generado el evento. El panel Entrada de la vista Visor de datos resalta la parte del documento de origen de ejemplo que ha generado el evento.

Registros Un registro contiene un registro de la transformación del Procesador de datos. La transformación del Procesador de datos escribe eventos en los registros. La transformación del Procesador de datos crea los siguientes tipos de registros: Registro de eventos en tiempo de diseño El registro de eventos de tiempo de diseño contiene los eventos que ocurren cuando se ejecuta la transformación del Procesador de datos en la vista Visor de datos . Ver el registro en tiempo de diseño en la vista Eventos. Registro de eventos de tiempo de ejecución El registro de eventos de tiempo de ejecución contiene los eventos que ocurren cuando se ejecuta la transformación del Procesador de datos en una asignación. Puede ver el registro de eventos de tiempo de ejecución en un editor de texto o puede arrastrar un evento de tiempo de ejecución en la vista Eventos de la transformación del Procesador de datos.

20

Capítulo 2: Transformación del Procesador de datos

Registro de usuario El usuario contieneRegistro de usuarios eventos de registro que se configuran para los componentes en un script. La transformación del Procesador de datos escribe en el registro de usuarios cuando se ejecuta desde la vista Visor de datos y cuando se ejecuta en una asignación. Puede ver el registro de usuario en un editor de texto.

Registro de eventos en tiempo de diseño El registro de eventos de tiempo de diseño contiene los eventos generados cuando se ejecuta la transformación del Procesador de datos desde el Visor de datos en la Herramienta del desarrollador. Cuando se ejecuta una transformación del Procesador de datos desde la vista Visor de datos, el registro de eventos de tiempo de diseño aparece en la vista Eventos del procesador de datos. De forma predeterminada, el registro de eventos de tiempo de diseño contiene notificaciones, advertencias y errores. En la configuración de transformación, puede configurar la transformación del Procesador de datos para excluir uno o más tipos de eventos del registro. Cuando se guardan los documentos de entrada con el registro, puede hacer clic en un evento en la vista Eventos del procesador de datos para encontrar la ubicación en el documento de entrada que ha generado el evento. Cuando configure la configuración de la transformación del Procesador de datos, puede elegir guardar los archivos de entrada para cada ejecución o solo en caso de error. El registro de eventos de tiempo de diseño se llama events.cme. Puede encontrar el registro de eventos de tiempo de diseño de la última ejecución de la transformación del Procesador de datos en el directorio siguiente: C:\\clients\DT\CMReports\Init\events.cme

La transformación del Procesador de datos sobrescribe el registro de eventos de tiempo de diseño cada vez que se ejecuta la transformación en el Visor de datos. Cambie el nombre del registro de eventos de tiempo de diseño si desea verlo después de una posterior ejecución de la transformación, o si desea comparar los registros de distintas ejecuciones. Cuando se cierra la Herramienta del desarrollador, el desarrollador no guarda ningún archivo en el

Registro de eventos de tiempo de ejecución El registro de eventos en tiempo de ejecución registra los eventos que ocurren cuando se ejecuta la transformación del Procesador de datos en una asignación. Si la transformación del Procesador de datos finaliza la ejecución sin fallos, no escribe un registro de eventos. Si hay errores en la ejecución, la transformación del Procesador de datos se ejecuta por segunda vez y escribe un registro de eventos durante la segunda ejecución. El registro de eventos en tiempo de ejecución se llama events.cme. En un equipo Windows, el registro de eventos en tiempo de ejecución se encuentra en el directorio siguiente: C:\clients\DT\CMReports\Tmp\

En un equipo UNIX o Linux, el registro de eventos en tiempo de ejecución se encuentra en el directorio siguiente: /root//clients/DT/CMReports/Tmp

En un equipo UNIX o Linux, puede encontrar el registro de eventos en tiempo de ejecución para un usuario que no sea raíz en el directorio siguiente: /home/[UserName]//DT/CMReports/Tmp

Utilice el editor de configuración para cambiar la ubicación del registro de eventos en tiempo de ejecución.

Registros

21

Cómo visualizar un registro de eventos en la vista Eventos del procesador de datos Utilice la vista Eventos del procesador de datos para ver un registro de eventos de tiempo de diseño o un registro de eventos de tiempo de ejecución. Abra el explorador de Windows y, a continuación, busque el archivo de registro de eventos que desee visualizar. Arrastre el registro desde el explorador de Windows a la vista Eventos del procesador de datos. Haga clic con el botón derecho en la vista Eventos del procesador de datos y, a continuación, seleccione Buscar para buscar el registro. Nota: Para volver a cargar el último registro de eventos de tiempo de diseño, haga clic con el botón derecho en la vista Eventos del procesador de datos y, a continuación, seleccione Volver a cargar los eventos del proyecto.

Registro de usuario El registro de usuario contiene mensajes personalizados que se configuran con fallos de componentes de un script. La transformación del Procesador de datos escribe mensajes en el registro de usuario cuando se ejecuta un script desde la vista del Visor de datos y cuando se ejecuta en una asignación. Cuando un componente del script tiene la propiedad on_fail, puede configurarlo para que escriba un mensaje en el registro de usuario si genera un error. En el script, configure la propiedad on_fail con uno de los siguientes valores: ¨ LogInfo ¨ LogWarning ¨ LogError

Cada ejecución del script genera un nuevo registro de usuario. El nombre del archivo de registro de usuario contiene el nombre de la transformación con un GUID único: _.log

Por ejemplo, CalculateValue_Aa93a9d14-a01f-442a-b9cb-c9ba5541b538.log En un equipo Windows, puede encontrar el registro de usuario en el directorio siguiente: c:\Users\[UserName]\AppData\Roaming\Informatica\DataTransformation\UserLogs

En un equipo Linux o UNIX, puede encontrar el registro de usuario para el usuario raíz en el directorio siguiente: //DataTransformation/UserLogs

En un equipo Linux o UNIX, puede encontrar el registro de usuario para un usuario que no sea raíz en el directorio siguiente: home//DataTransformation/UserLogs

Desarrollo de la transformación del Procesador de datos Para crear una transformación del Procesador de datos, cree la transformación, elija los esquemas XML que definan la entrada o salida, y defina objetos de XMap o script en la transformación.

22

Capítulo 2: Transformación del Procesador de datos

Paso 1. Crear la transformación del Procesador de datos Cree la transformación del Procesador de datos en el repositorio de modelos. 1.

En la Herramienta del desarrollador, haga clic en Archivo > Nuevo > Transformación.

2.

Seleccione la transformación del Procesador de datos y haga clic en Siguiente.

3.

Introduzca un nombre para la transformación y busque la ubicación en el repositorio de modelos donde colocar la transformación.

4.

Haga clic en Finalizar. La Herramienta del desarrollador crea la transformación en el repositorio. La vista Resumen aparece en la Herramienta del desarrollador. Puede actualizar los puertos de transformación después de definir los esquemas y los objetos en la transformación.

5.

Opcionalmente, haga clic en la vista Referencias para elegir los objetos de esquema que definen las jerarquías de entrada o de salida para cada componente que vaya a crear.

Paso 2. Seleccionar los objetos de esquema Seleccione los objetos de esquema que definen las jerarquías XML de entrada o de salida para cada componente de XMap o Script que vaya a crear. Puede añadir referencias de esquema en la vista Referencias o puede añadir las referencias de esquema al crear objetos de Script o XMap. El objeto de esquema debe estar en el repositorio de modelos antes de que pueda hacer referencia a él en un Script o XMap. 1.

En la vista Referencias de la transformación del Procesador de datos, haga clic en Añadir.

2.

Si el objeto de esquema existe en el repositorio de modelos, busque y seleccione el esquema.

3.

Si el esquema no existe en el repositorio de modelos, haga clic en Crear un nuevo objeto de esquema e importe un objeto de esquema desde un archivo .xsd.

4.

Haga clic en Finalizar para añadir la referencia de esquema a la transformación del Procesador de datos.

Paso 3. Crear objetos Cree un objeto de script o XMap en la vista Objetos de la transformación del Procesador de datos. Después de crear el objeto, puede abrirlo desde la vista Objetos para configurarlo.

Crear un script Cree un objeto de script y defina el tipo de componente de script que va a crear. Opcionalmente, puede definir una referencia de script y un archivo de origen de ejemplo. 1.

En la transformación del procesador de objetos de datos, haga clic en Nuevo.

2.

Especifique un nombre para el objeto de script y haga clic en Siguiente.

3.

Elija crear un Analizador o un Serializador. Seleccione Otro para crear un componente de asignador, transformador o de transmisión por secuencias.

4.

Especifique un nombre para el componente.

5.

Si el componente es el primer componente para procesar datos en la transformación, habilite Establecer como componente de inicio.

Desarrollo de la transformación del Procesador de datos

23

6.

Haga clic en Siguiente si desea especificar una referencia de esquema para este script. Haga clic en Finalizar si no desea especificar la referencia de esquema.

7.

Si elige crear una referencia de esquema, seleccione Agregar referencia al objeto de esquema y busque el objeto de esquema en el repositorio de modelos. Haga clic en Crear un nuevo objeto de esquema para crear el objeto de esquema en el repositorio de modelos.

8.

Haga clic en Siguiente para especificar una referencia de origen de ejemplo o para especificar un texto de ejemplo. Haga clic en Finalizar si no desea definir un origen de ejemplo. Utilice un origen de ejemplo para definir datos de ejemplo y para probar el script.

9.

Si elige para seleccionar un origen de ejemplo, seleccione Archivo y busque el archivo de ejemplo. También puede introducir texto de ejemplo en el área Texto. La Herramienta del desarrollador añade el texto a un script.

10.

Haga clic en Finalizar. La vista Script aparece en el editor de la Herramienta del desarrollador.

Crear un XMap Cree un XMap en la vista Objetos de Data Transformation. Cuando se crea un XMap, debe tener un esquema que desciba la entrada y la salida de documentos XML. 1.

En la vista Objetos de la transformación del Procesador de datos, haga clic en Nuevo.

2.

Seleccione XMap y haga clic en Siguiente.

3.

Especifique un nombre para el XMap.

4.

Si el componente XMap es el primer componente para procesar datos en la transformación, habilite Establecer como componente de inicio. Haga clic en Siguiente.

5.

Si elige crear una referencia de esquema, seleccione Agregar referencia al objeto de esquema y busque el objeto de esquema en el repositorio de modelos. Haga clic en Crear un nuevo objeto de esquema para importar un nuevo objeto de esquema.

6.

Si tiene un archivo XML de ejemplo que puede usar para probarlo con XMap, busque y seleccione el archivo en el sistema de archivos. Puede cambiar el archivo XML de ejemplo.

7.

Elija la raíz de la jerarquía de entrada. En el cuadro de diálogo Selección del elemento raíz, seleccione el elemento en el esquema que sea el elemento del XML de entrada. Puede buscar un elemento en el esquema. Puede utilizar búsqueda de patrones. Introduzca * para que coincida con cualquier número de caracteres en la cadena. Intro ? para que coincide con un solo carácter.

8.

Haga clic en Finalizar. La Herramienta del desarrollador crea una vista para cada XMap que cree. Haga clic en la vista para configurar la asignación.

24

Capítulo 2: Transformación del Procesador de datos

Paso 4. Crear los puertos Configure los puertos de entrada y salida en la vista Resumen. Cuando configure puertos de entrada o de salida adicionales en un script, la Herramienta del desarrollador añade puertos de entrada y de salida adicionales a la transformación de forma predeterminada. No puede añadir puertos de entrada en la vista Resumen. 1.

Si desea que se devuelvan filas de datos de salida en lugar de XML, habilite Salida relacional. Al habilitar la salida relacional, la Herramienta del desarrollador elimina el puerto de salida predeterminado.

2.

Seleccione el tipo de datos, el tipo de puerto, la precisión y la escala del puerto de entrada.

3.

Si no define los puertos de salida relacional, defina el tipo de datos, el tipo de puerto, la precisión y la escala del puerto de salida.

4.

Si un Script tiene puertos de entrada adicionales, puede definir la ubicación del archivo de entrada de ejemplo para los puertos. Haga clic en el botón Abrir del campo Ubicación de entrada para buscar el archivo.

5.

Si ha habilitado la salida relacional, haga clic en Salida de asignación para crear los puertos de salida.

6.

En la vista Puertos, asigne nodos desde la zona de Salida jerárquica a los campos de la zona Puertos relacionales.

Paso 5. Probar la transformación Pruebe la transformación del Procesador de datos en la vista Visor de datos. Antes de probar la transformación, compruebe que ha definido el componente de inicio. Puede definir el componente de inicio en un script o puede seleccionar el componente de inicio en la pestaña Resumen . También debe haber elegido un archivo de entrada de ejemplo con el que probarlo. 1.

Abra la vista Visor de datos.

2.

Haga clic en Ejecutar. La Herramienta del desarrollador valida la transformación. Si no hay errores, la Herramienta del desarrollador muestra el archivo de ejemplo en la zona de Entrada. Los resultados de salida aparecen en el panel de Salida.

3.

Haga clic en Mostrar eventos para mostrar la vista Eventos del procesador de datos.

4.

Haga doble clic en un evento de la vista Eventos del procesador de datos para depurar los eventos del editor del script.

5.

Haga clic en Sincronizar con el editor para cambiar el archivo de entrada cuando pruebe varios componentes, cada uno con un archivo de entrada de ejemplo diferente. Si modifica el contenido del archivo de ejemplo en el sistema de archivos, los cambios aparecen en la zona de Entrada.

Importación y exportación de la transformación del Procesador de datos Puede exportar una transformación del Procesador de datos como servicio y ejecutarla desde un repositorio de Data Transformation. También puede importar un servicio de Data Transformation a la Herramienta del desarrollador.

Importación y exportación de la transformación del Procesador de datos

25

Cuando se importa un servicio de Data Transformation, la Herramienta del desarrollador crea una transformación del Procesador de datos desde el servicio. Nota: Cuando se importa un servicio de Data Transformation al repositorio de modelos, la Herramienta del desarrollador importa los esquemas XML asociados con el repositorio. Si modifica el esquema en el repositorio, a veces los cambios no aparecen en las referencias del esquema de transformación. Puede cerrar y abra la conexión del repositorio de modelos, o bien cerrar y abrir la Herramienta del desarrollador para que los cambios en el esquema aparezcan en la transformación.

Exporting the Data Processor Transformation as a Service You can export the Data Processor transformation as a Data Transformation service. Export the service to the file system repository of the machine where you want to run the service. You can run the service with PowerCenter, userdefined applications, or the Data Transformation CM_console command. 1.

In the Object Explorer view, right-click the Data Processor transformation you want to export, and select Export. The Export dialog box appears.

2.

Select Informatica > Export Data Processor Transformation and click Next. The Select page appears.

3.

Click Next. The Select Service Name and Destination Folder page appears.

4.

Choose a destination folder: ¨ To export the service on the machine that hosts the Developer tool, click Service Folder. ¨ To deploy the service on another machine, click Folder. Browse to the \ServiceDB directory on the machine

where you want to deploy the service. 5.

Click Finish.

Importar un servicio de Data Transformation Puede importar un archivo .cmw de un servicio de Data Transformation en el Repositorio de modelos y crear una tranformación de Procesador de datos 1.

Haga clic en Archivo > Importar. Aparece el cuadro de diálogo Importar.

2.

Seleccione Informatica Importar servicio de Data Transformation y haga clic en Siguiente . Aparece la página Importar servicio de Data Transformation .

3.

Busque el archivo .cmw que desee importar. La Herramienta del desarrollador importa los esquemas y datos de ejemplo con el archivo .cmw . La Herramienta del desarrollador crea una transformación de forma predeterminada.

4.

26

Haga doble clic en la transformación del navegador para editarlo.

Capítulo 2: Transformación del Procesador de datos

CAPÍTULO 3

XMap Este capítulo incluye los siguientes temas: ¨ Resumen de XMap, 27 ¨ Esquemas de XMap, 28 ¨ Instrucciones de asignación, 28 ¨ Crear instrucciones de asignación, 33 ¨ Expresiones de XPath, 34 ¨ Variables de XMap, 38 ¨ Ejemplo de XMap, 39

Resumen de XMap XMap es un objeto de la transformación del Procesador de datos que transforma un documento XML en otro con una estructura jerárquica diferente. Cuando se configura un objeto de XMap, se asignan nodos desde el esquema XML de entrada a los nodos del esquema XML de salida. Puede arrastrar los nodos de entrada a los nodos de salida para crear instrucciones de asignación. Puede editar las instrucciones de asignación en el editor de XMap. Puede definir condiciones para transformar los datos y puede definir los predicados para filtrar los datos de las instrucciones de asignación. Cuando se abre un objeto de XMap, aparece el editor de XMap:

El panel superior del editor de XMap contiene el esquema XML de entrada y de salida. El esquema de entrada está en la parte izquierda del panel y el esquema de salida en la parte derecha. Puede arrastrar los nodos desde el esquema de entrada hasta los elementos en el esquema de salida para crear una asignación. Cuando se arrastra un nodo hasta un nodo de salida, la Herramienta del desarrollador crea una instrucción de asignación en la cuadrícula.

27

La cuadrícula es la parte inferior del editor de XMap. Introduzca una definición de asignación detallada en la cuadrícula. La definición de la asignación contiene una jerarquía de instrucciones de asignación que describen cómo asignar elementos de entrada a los elementos de salida. Puede arrastrar elementos desde los esquemas de entrada o salida a campos de las instrucciones de asignación que defina en la cuadrícula.

Esquemas de XMap La parte superior del editor de XMap muestra los esquemas de entrada y salida. No se pueden cambiar los esquemas en el editor de XMap, pero se puede cambiar la raíz de entrada y salida, añadir variables y personalizar la vista del esquema. Puede seleccionar las siguientes opciones de esquema en el editor de XMap: Personalizar vista Cambia la forma en que se muestra el esquema. Incluye nodos para los indicadores de orden de secuencia, todos y elección. Ver estos nodos para conocer la lógica del esquema. Estos nodos no afectan a la asignación. Buscar Busca elementos en el esquema. Puede buscar en los esquemas de entrada y salida por separado. Variables Define las variables para almacenar los datos. Puede asignar nodos a las variables y variables a los nodos. También puede asignar variables a variables. Cuando se crea una variable, esta aparece al final de ambos esquemas. Seleccionar la raíz de entrada o salida Cambia el elemento raíz en el esquema de entrada o salida. Puede cambiar el elemento raíz para hacer referencia a otra parte del esquema. Por ejemplo, puede seleccionar un elemento raíz para que coincida con la raíz de un documento XML de entrada o salida. Seleccionar el origen de ejemplo Define el archivo de origen de ejemplo. El archivo de origen de ejemplo está en el repositorio de modelos. Utilice un origen de ejemplo para probar la transformación y para probar las expresiones XPath.

Instrucciones de asignación Una instrucción de asignación describe cómo asignar nodos desde el esquema de entrada al esquema de salida en un XMap. Cuando se arrastra un nodo desde el esquema de entrada al esquema de salida, la herramienta Desarrollador crea instrucciones de asignación en el editor de XMap. Puede editar las instrucciones de XMap para añadir los predicados, las funciones XMap y las referencias a variables. Puede definir condiciones para la asignación de los elementos. Una expresión XMap del elemento de entrada determina si la transformación Procesador de datos lleva a cabo la instrucción de asignación. La transformación del Procesador de datos lleva a cabo la instrucción de asignación para cada ocurrencia del elemento o expresión de entrada.

28

Capítulo 3: XMap

Una instrucción de asignación puede ser primaria para un grupo de instrucciones secundarias. Las instrucciones secundarias aparecen indexadas desde el primario en el editor de XMap. Cuando la transformación Procesador de datos lleva a cabo la instrucción principal, realiza las instrucciones secundarias en el grupo. Cada instrucción de asignación tiene un número de fila.

Tipos de instrucción de asignación Defina el tipo de instrucción de asignación según si desea asignar un valor simple, asignar una instrucción de repetición o enrutar la asignación en función de una condición. Cuando se crea una instrucción arrastrando un nodo de entrada a un nodo de salida, la herramienta Desarrollador crea un tipo de mensaje según si el nodo es simple, complejo, o de repetición. Puede llamar a otro objeto XMap con una instrucción de asignación. Puede definir los siguientes tipos de instrucciones de asignación en la malla: Asignar Asigna un valor simple a un valor simple. La entrada debe ser un valor único o un valor constante. Debe definir la entrada y salida en una instrucción Asignar. Group Define un grupo lógico de instrucciones. La entrada puede ser un nodo complejo del esquema de entrada. Una instrucción de grupo es un principal de las instrucciones de asignación situadas debajo de ella. Un nodo de grupo del esquema define el contexto para los nodos a los que haga referencia en las instrucciones secundarias. Grupo de repetición Define una instrucción de grupo que la transformación del Procesador de datos realiza varias veces. La entrada es un elemento que se repite o un conjunto de nodos de una expresión XPath. Debe configurar la entrada en una instrucción Grupo de repetición. La salida no es necesaria en la instrucción. Enrutador Define un grupo de instrucciones de opción. Cuando la transformación Procesador de datos realiza una instrucción Enrutador, comprueba cada Opción anidada debajo de la instrucción Enrutador. La transformación Procesador de datos acepta la primera instrucción Opción con una expresión XPath de entrada que se evalúa en un nodo sencillo. O, acepta la primera instrucción de opción que no tenga entrada de XPath y que tenga una condición verdadera de XPath. La transformación Procesador de datos lleva a cabo la primera instrucción Opción que acepta. La transformación no realizar ninguna otra instrucción Opción. Si la instrucción Opción falla, la instrucción Enrutador también lo hace. Defina una instrucción predeterminada para realizar una operación cuando la transformación del Procesador de datos no selecciona ninguna de las instrucciones de opción. Opción La instrucción que proporciona la condición para asignar el nodo de entrada al nodo de salida. Una instrucción Opción debe estar anidada debajo de una instrucción Enrutador. La instrucción Enrutador debe tener una XPath de entrada o una XPath de condición. O, la instrucción de opción puede incluir una entrada y una condición de XPath. Predeterminado La instrucción Predeterminado que debe realizarse cuando la transformación Procesador de datos no acepta ninguna de las instrucciones Opción. Puede definir una instrucción predeterminado en un grupo Enrutador. La instrucción Predeterminada debe ser la última instrucción del grupo Enrutador. La instrucción Predeterminado no puede tener XPaths de entrada o de condición. Ejecutar XMap Llama a otro objeto de XMap en la transformación del Procesador de datos. Se puede llamar a otro XMap para realizar la lógica de asignación que se repite.

Instrucciones de asignación

29

Campos de instrucción de asignación Las instrucciones de asignación contienen campos que puede configurar para personalizar la instrucción. Puede configurar la entrada, la salida y la condición para asignar el elemento. Configure si desea omitir una instrucción cuando genere un error o le falte entrada. Configure si la transformación del Procesador de datos añade un nuevo elemento de salida o coincide con un elemento existente con un valor de una instrucción de asignación. Puede configurar los siguientes campos de asignación: Nombre Un nombre para la instrucción. Puede cambiar el nombre en cualquier momento. El nombre identifica las instrucciones de modo que puede encontrarlas en la malla de asignación o en un registro de eventos. Los nombres de las instrucciones no tienen que ser únicos. Tipo de instrucción Identifica la operación de instrucción. Si la instrucción llama a otro XMap, el campo Tipo de instrucción contiene el nombre del XMap que hay que llamar. Entrada Una expresión XPath que evalúa una secuencia de nodos o valores. El tipo de instrucción de asignación determina cómo usa la transformación Procesador de datos los nodos o valores en la asignación. Condición Una expresión XPath que define una condición para la asignación del elemento. Una condición es similar a una expresión de predicado en la columna Entrada. Si define una expresión XPath de entrada y una expresión XPath de condición para la misma instrucción de asignación, la transformación Procesador de datos aplica la XPath de condición al resultado de la XPath de entrada. Omitir la entrada que falta Cuando está habilitado, si el elemento de entrada no está en el documento XML, la transformación Procesador de datos omite la instrucción sin mostrar errores. Si Omitir la entrada que falta está deshabilitado, la instrucción falla si el elemento no está en el documento XML de entrada. Predeterminado El valor predeterminado que se usa cuando falta un elemento en la entrada. Por ejemplo, puede definir un valor predeterminado para inicializar un contador. En fallo Si la instrucción falla, puede elegir cómo manejar el error. Habilite Omitir u Omitir iteración si es correcto omitir la instrucción porque ha fallado. Omitir iteración aparece si la instrucción es una instrucción Grupo de repetición. Seleccione Propagar para forzar la instrucción primaria para que genere un error también. Salida Una expresión XPath que define el valor del elemento en el XML de salida según los resultados de la expresión XPath de entrada. Si la instrucción de asignación tiene instrucciones secundarias, el campo Salida proporciona el contexto para las instrucciones secundarias. Modo Determina si la transformación Procesador de datos añade un nodo de salida o coincide con un nodo existente con un valor de una instrucción de asignación. Elija uno de los siguientes modos: Añadir Cree un nuevo elemento en el documento XML de salida. Si el elemento no es de ocurrencia múltiple y existen los mismos valores en la salida, la instrucción de asignación genera un error.

30

Capítulo 3: XMap

Coincidir Seleccione Coincidir si espera encontrar siempre una coincidencia para el valor en los elementos de salida. La instrucción de asignación genera un error si la transformación Procesador de datos no encuentra ninguna coincidencia para el valor en el documento XML de salida. Cada valor de elemento ya debe existir en la salida. Coincidir o añadir Seleccione Coincidir o añadir si espera hacer coincidir con un valor de nodo o crear un nuevo nodo si no existe en el documento XML de salida.

Instrucciones de grupo Una instrucción Group define un grupo lógico de instrucciones. Una instrucción Group es la principal de las instrucciones de asignación anidadas. El nodo de grupo define el contexto para los nodos a los que se hacen referencia en las instrucciones secundarias. Cada instrucción en un grupo está relacionada por contexto. La entrada o la salida de la instrucción Group define el contexto. La entrada para cada instrucción de un grupo puede ser descendiente del mismo nodo en el esquema de entrada.

Ejemplo de instrucción de grupo Un esquema tiene un nodo Employee de una sola ocurrencia. Employee tiene los nodos secundarios FirstName y LastName: Employee FirstName LastName

Si crea una instrucción de asignación de grupo y configura Employee como la entrada, cada instrucción de asignación que incluya en el grupo se encuentra en el contexto de empleado. En la siguiente ilustración, la instrucción 1 es la instrucción de grupo:

La columna Entrada para la instrucción de grupo muestra que la entrada es el nodo principal de FirstName y LastName. La instrucción 2 y la instrucción 3 son instrucciones secundarias de la instrucción 1. El elemento secundario instrucciones aparece sangrado desde la instrucción principal. Para cada elemento de empleado de entrada, asigne el elemento FirstName y LastName para la salida.

Instrucciones de grupo de repetición Una instrucción de grupo de repetición es una instrucción de grupo que puede aparecer varias veces. La entrada es una expresión XPath que puede evaluarse en una secuencia de nodos o valores. La transformación del Procesador de datos lleva a cabo la instrucción de grupo de repetición para cada nodo o el valor que es resultado de la expresión XPath de entrada.

Instrucciones de asignación

31

Ejemplo de instrucción de grupo de repetición Puede tener un esquema de entrada con la siguiente jerarquía: Employees Employee (Unbounded) LastName FirstName

Cuando se arrastra Empleado a un nodo de salida en el editor de XMap, la herramienta Desarrollador crea una instrucción de asignación de grupo de repetición de forma predeterminada. Un grupo de repetición puede contener instrucciones de asignación para devolver LastName y FirstName para cada empleado del documento XML de entrada.

Instrucciones de enrutador, opción, y predeterminadas Una instrucción de enrutador proporciona más de una alternativa para la lógica de asignación basadas en condiciones del documento de entrada. Cuando configure una instrucción de enrutador, debe configurar al menos una instrucción Opción debajo de ella. La transformación Procesador de datos evalúa los campos de entrada y condición en la instrucción Opción. La transformación Procesador de datos acepta una instrucción Opción cuando los resultados de la expresión XPath de entrada y XPath de condición se evalúan en un singlete. Un singlete es una secuencia de un solo valor de nodo. Si no define un valor XPath de entrada, la transformación del Procesador de datos acepta la instrucción Opción cuando XPath de condición es verdadera. Puede configurar varias instrucciones Opción en el mismo grupo de enrutadores. La transformación Procesador de datos lleva a cabo la primera instrucción Opción que acepta. No realiza ninguna instrucción Opción debajo de ella en el grupo. Si la transformación Procesador de datos no acepta una instrucción Opción, comprueba la siguiente instrucción Opción. Cuando la transformación no acepta ninguna instrucción, la instrucción Enrutador puede fallar. Si la instrucción Opción tiene una condición que es verdadera, pero las instrucciones de asignación dentro de ella fallan y propagan el fallo, el enrutador falla. Puede configurar la asignación para omitir el Enrutador si este puede fallar. La instrucción Opción puede contener una o varias instrucciones secundarias de cualquier tipo, incluidos Map, Group, Repeating Group, Run XMap y otras instrucciones de Enrutador Por ejemplo, una instrucción Opción puede contener la siguiente condición: EmployeeID="100"

Cuando EmployeeID es 100, la condición es verdadera. La instrucción secundario en la malla define la instrucción de asignación que hay que evaluar cuando la condición es verdadera.

Ejemplo de instrucción de enrutador Un XMap contiene un grupo de repetición en el contexto de Empleado. La primera instrucción secundario del grupo es una instrucción de Enrutador. El Enrutador tiene una instrucción Opción. La instrucción Opción tiene una condición que comprueba si el valor de Función es igual al valor de Manager. Si la Función es igual a Manager, la opción es verdadera. La asignación evalúa la siguiente instrucción para la opción. La transformación Procesador de datos llama al XMap EmployeeToWorker para asignar elementos a Manager. Si la Función no es igual a Manager, la instrucción predeterminada es verdadera. La asignación evalúa la siguiente instrucción para la opción predeterminada. La instrucción de asignación predeterminada llama al XMap EmployeeToWorker XMap para asignar los elementos a Worker. La siguiente figura muestra la instrucción de Enrutador con una instrucción Opción y una instrucción predeterminada:

32

Capítulo 3: XMap

Ejecutar instrucciones de XMap Utilice una instrucción Ejecutar XMap para llamar a otro XMap. Cuando se crea una instrucción de asignación Ejecutar XMap, la herramienta Desarrollador muestra los objetos XMap en la transformación. Seleccione el XMap que desea llamar. La herramienta Desarrollador crea una instrucción de asignación con el nombre XMap en el campo Tipo de instrucción. Los elementos raíz de entrada y salida en el XMap llamado deben ser del mismo tipo que los valores de entrada y salida que se le están pasando desde el XMap de llamada.

Crear instrucciones de asignación Cree instrucciones de asignación en el editor de XMap. Puede crear instrucciones de asignación arrastrando nodos desde el esquema de entrada al esquema de salida y definir las instrucciones en la malla de instrucciones de asignación. Cuando se arrastra un nodo desde el esquema de entrada al esquema de salida, la Herramienta del desarrollador crea una instrucción de asignación Asignar, Grupo o Grupo de repetición en la malla. Puede actualizar la instrucción de asignación. Los campos de Entrada y Salida contienen los elementos del esquema. Si desea crear instrucciones de asignación para proporcionar contexto o para definir las opciones de enrutador, puede escribir instrucciones en la malla. Cuando seleccione una instrucción de asignación en la malla, el editor XMap resalta los nodos de los esquemas de entrada y salida que están en la instrucción de la malla. Puede copiar una instrucción de una fila a otra fila en la malla. Si la fila no es válida para la ubicación en la que se copia, el editor XMap muestra un cuadro de diálogo con un error de que la instrucción no es válida en el contexto actual. Puede cambiar las instrucciones XPath de entrada y salida en el cuadro de diálogo para ajustar el contexto de instrucción de asignación, o puede cambiar los campos XPath de entrada y salida en la malla. Utilice los siguientes pasos para definir las instrucciones de asignación en la malla: 1.

En las opciones de malla, haga clic en Nuevo.

2.

Seleccione el tipo de instrucción de asignación de la lista. Si elige Ejecutar XMap, la Herramienta del desarrollador muestra una lista de objetos XMap objetos en la transformación.

3.

Opcionalmente, defina un nombre para la instrucción de asignación.

4.

Arrastre un elemento desde el esquema de entrada al campo Entrada para definir la entrada de la instrucción de asignación. O, puede configurar una expresión de XPath o una constante en el campo de entrada.

5.

Arrastre un elemento desde el esquema de salida al campo Salida para definir la salida de la instrucción de asignación. También puede configurar una expresión XPath en el campo Salida.

6.

Para crear una expresión XPath en un campo Entrada, Salida o Condición, haga clic en el botón Abrir en el campo para abrir el editor de expresiones.

Crear instrucciones de asignación

33

7.

Para cambiar el tipo de instrucción de asignación, haga clic en el botón Abrir en el campo Tipo de instrucción. Elija el tipo de instrucción de asignación de la lista.

Expresiones de XPath Cree una expresión XPath para identificar elementos específicos en documentos XML, seleccione nodos o compruebe las condiciones en los datos. Cree expresiones de XPath en el campo Entrada, Condición o Salida de una instrucción de asignación de XMap. XPath es una sintaxis para definir partes de un documento XML. Utilice XPath para seleccionar secuencias de nodos o valores en un documento XML. XPath incluye una biblioteca de funciones estándar que puede usar para seleccionar los datos. Puede definir expresiones de XPath 2.0 en la transformación del Procesador de datos. Cuando configure las expresiones de XPath de salida, puede utilizar un subconjunto de la sintaxis de XPath 2.0 cuando defina instrucciones de asignación para Añadir modo o Coincidir o Añadir modo. Para obtener más información sobre la XPath, consulte la documentación de XPath. La siguiente tabla describe algunas expresiones de XPath: Expresión de XPath

Descripción

nodename

Selecciona todos los nodos secundarios del nombre determinado en el contexto.

. (punto)

Selecciona el nodo actual.

..

Selecciona el primario del nodo actual.

@

Selecciona el atributo.

/

Selecciona desde el nodo raíz o secundario del nodo actual si está precedido por un nodo. Cuando la ruta de acceso empieza con una barra (/), representa una ruta absoluta a un elemento.

//

Selecciona nodos en cualquier lugar del documento o descendientes del nodo actual si viene precedido por un nodo.

La siguiente tabla muestra algunas expresiones de XPath y el resultado de cada expresión:

34

Expresión de XPath

Resultado

/bookstore

Selecciona el nodo de librería raíz.

bookstore/book

Selecciona los nodos de libros que son secundarios de todos los nodos de la librería.

//book

Selecciona los nodos de libros del documento en todas las ubicaciones.

Capítulo 3: XMap

Expresión de XPath

Resultado

bookstore//book

Selecciona todos los nodos de libros que son descendientes de los nodos de la librería.

/bookstore/*

Selecciona todos los nodos secundarios del elemento raíz de la librería.

//*

Devuelve una secuencia de todos los elementos del documento.

Predicados Un predicado es una expresión que puede configurar para encontrar un nodo en un documento XML. Puede configurar la expresión para buscar un valor específico. Cree un predicado en una Entrada o Condición, o en el campo Salida de una instrucción de asignación. Cuando se define un predicado, escriba la expresión entre corchetes [] tras el nodo. /[expression]

Por ejemplo, la siguiente expresión selecciona los elementos del libro que provienen de la librería y tienen un elemento de precio con un valor mayor a 55.00: /bookstore/book[price>55.00]

La siguiente expresión selecciona los elementos de título de los elementos del libro que descienden de la librería y tienen un valor de elemento de precio mayor a 55.00: /bookstore/book[price>55.00]/title

La siguiente expresión selecciona los elementos del título que tienen un lang con el valor "eng": //title[@lang="eng"]

Nota: La transformación Procesador de datos no puede aceptar todas las instrucciones XPath cuando se configura una instrucción de asignación con el modo Añadir o el modo Coincidencia o Añadir.

Editor de expresiones XPath Cree expresiones en el editor de expresiones XPath. Cuando haga clic en el botón Abrir del campo Entrada, Condición o Salida, aparecerá el editor de expresiones:

Expresiones de XPath

35

Cree expresiones en el panel Expresión. El editor de expresiones XPath tiene un panel de Navegación con una función de biblioteca que se puede utilizar para crear expresiones XPath. Las funciones son estándar para W3C XML Path Language. La función de biblioteca también incluye algunas funciones específicas para la transformación del Procesador de datos.

Funciones del Procesador de datos El editor de expresiones tiene funciones del Procesador de datos que puede usar para la transformación del Procesador de datos. La siguiente tabla describe las funciones de XPath del Procesador de datos:

36

Función

Descripción

Sintaxis

dp:as_xml

Recibe un nodo como una entrada y devuelve el valor de nodo y el valor de todos los elementos secundarios como una cadena XML de forma recursiva.

dp:as_XML()

dp:get_id

Genera un ID único asociado con un nodo y lo devuelve. Puede usar el ID para crear relaciones de clave principal-clave externa en los datos. Asigne el ID para un nodo en el XML y asígnelo a las claves en datos relacionales.

dp:get_id()

Capítulo 3: XMap

Función

Descripción

Sintaxis

dp:input

Devuelve el nodo que proporciona el contexto de entrada actual. Utilice la función en el campo Salida para hacer referencia a un nodo desde el esquema Entrada.

dp:input()

dp:lookup

Recupera los datos de un transformador de búsqueda que defina en un script. Puede realizar una búsqueda de archivos en línea o externos.

dp:lookup(,,[valor predeterminado])

Devuelve el nodo que proporciona el contexto de salida actual. Utilice la función en el campo Entrada para hacer referencia a un nodo en el esquema de salida.

dp:output()

dp:output

- Lookuptable-name. El nombre del transformador de búsqueda en el script. - Lookup-value. El valor para buscar. - Valor predeterminado. Un valor de retorno predeterminado para utilizarlo si la búsqueda genera un error. Si el valor predeterminado falta y la búsqueda no puede encontrar un valor coincidente, la función genera un error.

Ejemplo de expresiones de XPath El siguiente ejemplo muestra expresiones de XPath en las instrucciones de asignación:

El documento de entrada XMap es una lista de hijos y sus hobbies. La raíz de entrada es Children. Child es un elemento de ocurrencia múltiple dentro de Children. Cada hijo tiene un nombre y varios hobbies de ocurrencia múltiple. El Nombre consta de los elementos First, Initial y Last. La salida es una lista de las clases con el número de hijos en cada clase. La raíz de salida es Clases. Clases tiene un atributo que contiene el número total de clases. Cada elemento de entrada Hobby se asigna a un elemento de salida Class. Una instrucción de asignación concatena los elementos First, Initial y Last en el elemento de salida Child. Otra instrucción de asignación cuenta el número de hijos de cada clase. Otra instrucción cuenta el número de clases.

Expresiones de XPath

37

El XMap contiene las siguientes expresiones: Núm ero de línea

Expresión de entrada o salida

Expresión

Descripción

2

Salida

Class[@name = dp:input()]

Añade un nuevo elemento Class o encuentra una Clase que coincida con Hobby. La función dp:input() es obligatoria porque la expresión hace referencia a un elemento de entrada.

3

Entrada

concat(../Name/First,' ',../Name/ Initial,' ',../Name/Last)

Concatena Nombres, Iniciales y Apellidos y añade espacios entre ellos.

4

Entrada

dp:output()/@noOfChildren + 1

Para cada Hobby que aparece, añade 1 al número de hijos para la clase. La función dp:output() es obligatoria porque la expresión hace referencia a un elemento de salida.

5

Entrada

count(dp:output()/Class)

Cuenta los elementos Class. La función dp:output() es obligatoria porque la expresión hace referencia a un elemento de salida.

Crear expresiones Cree expresiones de XPath en el Editor de expresiones. 1.

En la instrucción XMap, haga clic en el botón Abrir en el campo Entrada, Condición o Salida. Aparece el Editor de expresiones.

2.

Haga doble clic en elementos en el panel Navegación para añadirlos a una expresión.

3.

Haga clic en Validar para validar la expresión.

4.

Si la expresión es para el campo Entrada, haga clic en Probar expresión para probar la expresión conforme a los datos de ejemplo. Los resultados aparecen cada vez que la Herramienta del desarrollador evalúa la expresión utilizando los datos de ejemplo. La expresión XPath puede devolver una secuencia de cero o más nodos o valores. La Longitud de secuencia indica cuántos nodos devuelve la expresión de XPath.

Variables de XMap Puede añadir variables al editor de XMap. Puede asignar valores a las variables y usarlas en los predicados o como contenedores temporales de valores. Puede asignar variables a los elementos de salida. Cuando se crea una variable, la variable aparece en los esquemas de entrada y de salida en la vista XMap. La Herramienta del desarrollador añade un signo de dólar ($) al nombre de la variable para indicar que es una variable. Puede crear una variable que sea una lista de varios valores. Puede utilizar una variable de lista para el mismo propósito que un elemento de esquema de ocurrencia múltiple. Configure una variable de lista como entrada para un grupo de repetición o configure un predicado para buscar un valor en la variable de lista.

38

Capítulo 3: XMap

Por ejemplo, tiene un documento XML con direcciones. Tiene que crear una lista con todos los países a partir de las direcciones. Asigne el elemento de país en una variable $countries que define como lista.

Crear una variable en el editor de XMap Puede crear variables en el editor de XMap. 1.

Haga clic en Variables encima del esquema de entrada o salida en el editor XMap. Aparece el cuadro de diálogo Variables.

2.

Para crear una variable, haga clic en Nueva.

3.

Especifique un nombre de variable y un tipo de datos.

4.

Habilite la opción Lista para crear una variable de varias ocurrencias.

Ejemplo de XMap Un documento XML contiene datos de empleados que incluyen el cargo del empleado en la empresa. Debe crear un documento XML que tiene los administradores y empleados en distintos grupos. Puede crear dos objetos XMap en la transformación del Procesador de datos para restructurar el documento XML. El componente de inicio en XMap es un objeto que contiene una instrucción de enrutador. Una instrucción Option comprueba si la función Employee es "Manager". Si la función es la de administrador, XMap asignar los elementos de empleados a un grupo de salida de administrador. De lo contrario, XMap asigna los elementos de empleados a un grupo de trabajadores en el XML de salida. El componente de inicio XMap llama a otro XMap para asignar los elementos de Employee a los elementos de salida.

Datos de entrada XML El texto siguiente muestra datos de ejemplo desde el documento XML de entrada: Hypostores Customer Service Blair Conner Manager 1993-04-21 Karina Rasmussen Worker 1993-08-15 Research and Development

Ejemplo de XMap

39

Thaddeus Burt Consultant 1998-02-26 Christen Fulton Worker 1997-11-16 Felix Boyd Worker 2009-12-29

Los datos pueden incluir varias empresas. Cada empresa tiene varios departamentos. Cada empleado de un departamento tiene una función que puede ser administrador u tratarse de otro tipo de trabajo.

Jerarquías XML de entrada y salida El editor XMap muestra la jerarquía de entrada en el área de la izquierda de la vista y la jerarquía XML de salida en el área de la derecha de la vista. La siguiente figura muestra las jerarquías de XML de entrada y salida:

XMap_Example_View_Top

Instrucciones de asignación en el ejemplo El área de malla del editor de XMap contiene las instrucciones para asignar los elementos XML de entrada a los elementos XML de salida. La siguiente figura muestra las instrucciones de asignación en la malla:

40

Capítulo 3: XMap

La siguiente tabla describe las instrucciones de asignación en la malla: Fila

Nombre de la instrucción

Tipo

Entrada

Descripción

1

Empresa

Grupo de repetición

Empresa

La instrucción Empresa se repite para cada elemento de Empresa. La instrucción proporciona un contexto para el resto de instrucciones de la malla. Para cada compañía, la transformación del Procesador de datos evalúa las instrucciones secundarias.

2

Departamento

Grupo de repetición

Departamento

La instrucción Departamento se repite para cada elemento de Departamento. La instrucción proporciona un contexto para el resto de instrucciones de la malla. Para cada departamento, la transformación del Procesador de datos evalúa las instrucciones secundarias.

3

Nombre para departamento

Asignar

Nombre

Asigna el nombre a una variable $deptName.

4

Organización de coincidencia

Grupo de repetición

Departamento

La organización de coincidencia tiene una expresión de salida: tns0:Organization[tns0:Department= $deptName]

La instrucción, o bien encuentra (coincide con) el elemento Organización en la salida que contiene un elemento secundario Departamento con el valor en $deptName, O, si el elemento Departamento no existe, se crea el Departamento. 5

EmployeeToWorker

Grupo de repetición

Empleado

La instrucción EmployeeToWorker se repite para cada elemento Empleado.

6

Empleado

Enrutador

No hay ninguna entrada

La instrucción Empleado es una instrucción de Enrutador. La instrucción no tiene entrada ni salida.

7

EmployeeToMgr

Opción

No hay ninguna entrada

La instrucción Opción tiene una condición tns0:Role="Manager". Cuando la Función es Administrador, la instrucción es verdadera. La transformación Procesador de datos evalúa las instrucciones situadas dentro de la opción.

8

EmployeeToWorker

XMap_EmployeesToR oles

Empleado

Llama al XMap para pasar los elementos Empleado al tipo Administrador.

Ejemplo de XMap

41

Fila

Nombre de la instrucción

Tipo

Entrada

Descripción

9

EmployeeToWorker

Predeterminado

10

EmployeeToWorker

XMap_EmployeesToR oles

Empleado

Llama al XMap para pasar los elementos Empleado al tipo Trabajador.

11

IncrementEmployee Cou

Asignar

dp:output()/ @ noOfEmployee s + 1

Para cada Empleado, añada 1 a @noOfEmployees.

La instrucción EmployeeToWorker es una instrucción predeterminada. La transformación Procesador de datos lleva a cabo las instrucciones secundarias si la función Empleado no es un administrador.

EmployeeToWorker XMap El XMap EmployeeToWorker mueve elementos de un empleado para un trabajador. El XMap procesa un empleado. La siguiente figura muestra el XMap EmployeeToWorker en el editor de XMap:

La tabla siguiente describe las instrucciones de asignación:

42

Fila

Nombre de la instrucción

Tipo

Entrada

Descripción

1

EmployeeToWorker

Group

Employee

Instrucción de grupo que proporciona contexto para el resto de instrucciones de asignación.

2

FIrstNametoFirstName

Map

FirstName

Asigna el nombre al nombre.

3

LastNametoLastName

Map

LastName

Asigna el apellido al apellido.

Capítulo 3: XMap

Fila

Nombre de la instrucción

Tipo

Entrada

Descripción

4

Empleado/@ID a ID

Map

@id

Asigna el ID de empleado al ID de empleado.

5

StartDate a YearsofService

Map

year-fromdate(curre nt-date)) year-fromdate(startdate)

Determina el número de años de servicio sustrayendo una fecha de inicio a la fecha actual.

Ejemplo de XMap

43

CAPÍTULO 4

Interfaz de la línea de comandos Este capítulo incluye los siguientes temas: ¨ Resumen de la interfaz de línea de comandos, 44 ¨ CM_console, 44

Resumen de la interfaz de línea de comandos Puede ejecutar un servicio de Data Transformation desde la línea de comandos del equipo que aloja el servicio. Exporte una transformación del Procesador de datos como un servicio al directorio /ServiceDB en el equipo donde desea ejecutar el servicio de Data Transformation. Ejecute el comando CM_console.

CM_console Ejecuta un servicio de Data Transformation. El comando CM_console emplea la siguiente sintaxis: CM_console [< -f | -u | -t >InputDocument] [ -aServiceParameter=InitialValue] [ -o] [ -r] [ -lUserName -pPassword] [ -v] [ -S] [ -xInputPortName=InputDocument] [ -xoOutputPortName=OutputDocument] [ -e]

Nota: No incluya un espacio entre una opción y su argumento.

44

La siguiente tabla describe las opciones y los argumentos de CM_console: Opción

Argumento

Descripción

-

ServiceName

Obligatorio. Especifica el nombre del servicio.

-f

InputDocument

Opcional. Especifica una ruta y un nombre de archivo en el sistema de archivos local. De forma predeterminada, el servicio usa el documento definido en la propiedad example_source del componente de inicio.

-t

InputDocument

Opcional. Especifica una cadena metida entre comillas dobles.

-u

InputDocument

Opcional. Especifica una URL.

-a

ServiceParameter=InitialValue

Opcional. Especifica un parámetro de entrada para el servicio. ServiceParameter es el nombre de una variable tal y como se define en el servicio. InitialValue debe ser de un tipo de datos que sea válido para la variable definida. Puede especificar varios parámetros de entrada, separados por espacios.

-o

FileName

Opcional. Dirige la salida a Path/FileName. Si introduce solo FileName, debe definir la ruta de acceso con la opción -r. De forma predeterminada, el comando CM_console dirige la salida a la pantalla.

[Path]FileName

-r

curr

Opcional. Especifica el directorio desde el que ha ejecutado el comando CM_console.

-r

res

Opcional. Especifica el subdirectorio de resultados en el directorio que contiene el servicio en el repositorio del sistema de archivos.

-r

spec=OutputDirectory

Opcional. Especifica un directorio en el sistema de archivos local.

-r

guid

Opcional. Especifica un directorio con un nombre único en el directorio CMReports/tmp. Puede usar el editor de configuración para cambiar la ubicación de este directorio.

-l

UserName

Obligatorio cuando se usa la autenticación HTTP. Especifica el nombre de usuario para la autenticación HTTP. Nota: Esta opción es una L en minúscula.

-p

Contraseña

Obligatorio cuando se usa la autenticación HTTP. Especifica la contraseña para la autenticación HTTP.

-v

-

Opcional. Muestra información detallada acerca de la versión de Data Transformation, la versión de la sintaxis de Data Transformation, el identificador del paquete de configuración, la licencia y más información.

-S

-

Obligatorio si el componente de inicio del servicio es una transmisión por secuencias. También debe utilizar la opción -f para definir el archivo de entrada.

-xf

InputPortName=InputDocument

Opcional. InputPortName especifica el nombre de un AdditionalInputPort definido en el servicio. InputDocument especifica una ruta y un nombre de archivo en el sistema de archivos local. Puede especificar varios puertos de entrada, separados por espacios.

-xt

InputPortName=InputDocument

Opcional. InputPortName especifica el nombre de un AdditionalInputPort definido en el servicio. InputDocument especifica una cadena metida entre

CM_console

45

Opción

Argumento

Descripción comillas dobles. Puede especificar varios puertos de entrada, separados por espacios.

-xu

InputPortName=InputDocument

Opcional. InputPortName especifica el nombre de un AdditionalInputPort definido en el servicio. InputDocument especifica una URL. Puede especificar varios puertos de entrada, separados por espacios.

-xo

OutputPortName=OutputDocument

Opcional. OutputPortName especifica el nombre de un AdditionalOutputPort definido en el servicio. OutputDocument especifica una ruta y un nombre de archivo en el sistema de archivos local. Puede especificar varios puertos de salida, separados por espacios.

-e

-

Opcional. De forma predeterminada, el comando CM_console termina con un código de salida de 1 para correcto y con mayor que 1 para error. Cuando se incluye la opción -e, el comando CM_console termina con un código de salida de 0 para éxito y con mayor de 1 para el error.

Por ejemplo: CM_console XYZparser -fInputFile.txt -aMaxLines=1000 -oResults.xml -rcurr

Este ejemplo llama al servicio XYZparser, utilizando InputFile.txt como el documento de entrada principal. Se proporciona el valor de 1000 a los parámetros MaxLines y se escribe la salida en el archivo Results.xml en el directorio desde el cual se ha ejecutado el comando CM_console.

46

Capítulo 4: Interfaz de la línea de comandos

CAPÍTULO 5

Scripts Este capítulo incluye los siguientes temas: ¨ Resumen de scripts, 47 ¨ Componentes de script, 48 ¨ Propiedades de componente de script, 50 ¨ Componentes de inicio de script, 52 ¨ Orígenes de ejemplo, 52 ¨ Editor de IntelliScript, 53 ¨ Scripts de ejemplo, 54

Resumen de scripts Un script realiza complejas transformaciones en los datos de entrada y escribe los datos de salida. Cree un script en la ficha Objetos de la transformación del Procesador de datos. Utilice el editor de IntelliScript para ver un script, añadir y configurar los componentes y establecer el componente de inicio para un script. Utilice un script para leer uno o más documentos en cualquier formato, tales como HL7, PDF, XML o Word. Puede escribir uno o más documentos en cualquier formato. Puede escribir la salida de un script en el sistema de archivos local, o bien puede devolver la salida a través de los puertos de salida de la transformación del Procesador de datos. Un script está formado por componentes que definen documentos de entrada y salida, la lógica empresarial, variables que alojan temporalmente datos y la configuración. Los componentes se presentan en un árbol jerárquico. Cuando la transformación se ejecuta un script, comienza a procesar el componente que ha configurado como componente de inicio. Cuando configure un script, puede establecer orígenes de ejemplo que contengan datos de ejemplo para cada puerto de entrada. Cuando ejecute la transformación desde la vista Visor de datos, la transformación lee los documentos de origen del ejemplo. Cuando ejecute la transformación en una asignación, la transformación lee los documentos que recibe a través de sus puertos de entrada. La transformación del Procesador de datos que contiene el script debe hacer referencia a un esquema para cada documento XML que el script lee o escribe.

47

Componentes de script Un componente de script es una línea o un grupo de líneas en un script que define documentos de entrada y salida, la lógica empresarial, variables que alojan temporalmente datos y la configuración. Los componentes de un script aparecen en un árbol jerárquico. Algunos componentes aparecen en el nivel global del script y otros aparecen como componentes secundarios. El nivel global del script contiene los componentes de inicio, variables y otros componentes tales como puertos de entrada y transformadores adicionales. Un componente en el nivel global debe tener un nombre. Un componente puede tener las propiedades que controlan el comportamiento del componente. Las propiedades de un componente aparecen anidadas en él. Una propiedad pueden aparecer en una línea o bien como jerarquía de propiedades. Puede configurar las propiedades de algunos componentes para omitir la configuración predeterminada que se aplica a la transformación del Procesador de datos. Algunos componentes, tales como analizadores o asignadores, puede contener otros componentes como transformadores o acciones RunParser. Opcionalmente, puede configurar la propiedad name de un componente secundario.

Tipos de componente El contexto del script determina los tipos de componentes que puede añadir. Por ejemplo, los anclajes deben aparecer anidados dentro de analizadores, asignadores o serializadores. Asimismo, los puertos de entrada adicionales y los puertos de salida adicionales pueden aparecer solamente en el nivel global del script. La siguiente tabla describe los tipos de componentes que puede añadir a un script:

48

Tipo de componente

Descripción

Acción

Toma datos de un contenedor de datos y realiza una operación en él. Por ejemplo, la acción RunParser ejecuta un analizador.

Anclaje

Identifica una sección del documento de entrada.

Procesador de documentos

Realiza una transformación compleja en un documento de entrada. Por ejemplo, el procesador de documentos PdfToTxt_4 convierte un documento PDF en texto sin formato.

Formato

Define el formato de los documentos que procesará un analizador.

Localizador

Aísla una única ocurrencia de un contenedor de datos de varias ocurrencias.

Asignador

Lee documentos XML y escribe documentos XML. Se puede establecer como el componente de inicio.

Notificación

Escribe un mensaje en la salida estándar o en un registro. Por ejemplo, la notificación XsdValidationError indica que el documento de entrada no es válido tal y como se define en el esquema.

Capítulo 5: Scripts

Tipo de componente

Descripción

Analizador

Lee documentos en cualquier formato y escribe documentos en cualquier formato. Se puede establecer como el componente de inicio.

Puerto de script

Define un documento de entrada o salida.

Serializador

Lee documentos XML y escribe documentos en cualquier formato. Se puede establecer como el componente de inicio.

Transmisión por secuencias

Parte los archivos de entrada grandes en fragmentos para un analizador, asignador o serializador. Se puede establecer como el componente de inicio.

Transformador

Transforma una cadena de entrada en una cadena de salida. Se puede establecer como el componente de inicio.

Validador

Determina si los datos de entrada se ajustan a una definición de datos específica.

Variable

Aloja datos que el script recibe mediante un parámetro de servicio o aloja datos de componente en el script.

Nombres de componente El nombre de un componente lo identifica en el script, la vista Eventos del procesador de datos y el registro. Cuando la transformación del Procesador de datos realiza las instrucciones en un componente, el componente genera un evento que aparece en la vista Eventos del procesador de datos y el registro. Un componente que aparece en el nivel global del script debe tener un nombre. Un componente que aparece como el secundario de otro componente puede tener un nombre que se configura con la propiedad name. El nombre de un componente debe comenzar por una letra, debe contener solamente caracteres ingleses (A-Z, a-z), números (0-9) y guiones bajos (_) y debe contener no más de 127 caracteres.

Añadir un componente global Defina un componente globalmente cuando desee utilizarlo en dos o más sitios en el script, o cuando el componente pueda aparecer solamente en el nivel global. 1.

Al final del nivel global del script, haga doble clic en los puntos suspensivos de la izquierda (...). Aparece un cuadro de texto.

2.

Introduzca el nombre del componente y, a continuación, pulse Intro.

3.

Haga doble clic en los puntos suspensivos de la derecha. Aparece una lista.

4.

Haga clic en la flecha descendente y seleccione el tipo de componente que desea añadir. El componente global aparece en el script.

5.

Establezca las propiedades del componente, si procede.

Componentes de script

49

Añadir un componente local Defina un componente localmente cuando vaya a utilizarlo solamente en una ubicación en el script, o cuando el componente pueda aparecer solamente como un componente secundario. 1.

En el sitio del script donde desea insertar un componente, haga doble clic en los puntos suspensivos. Aparece una lista.

2.

Haga clic en la flecha descendente a la derecha del cuadro de lista. Aparece una lista de componentes disponibles, incluyendo los componentes con nombre globales.

3.

Seleccione un componente. El componente aparece en el script.

4.

Establezca las propiedades del componente, si procede.

Propiedades de componente de script Las propiedades de un componente de script definen la funcionalidad del componente. Un componente puede tener una o más propiedades. Las propiedades aparecen anidadas en el componente. Todos los componentes del mismo tipo tienen las mismas propiedades. Por ejemplo, la propiedad example_source de un analizador define texto de ejemplo que usa el analizador cuando se ejecuta la transformación desde la vista Visor de datos.

Propiedades simples Las propiedades simples de un componente son aquellas que muestra siempre el editor de IntelliScript. La mayoría de los usuarios tienen que modificar solamente las propiedades simples. La siguiente figura muestra las propiedades simples de un componente Analizador:

Propiedades avanzadas Las propiedades avanzadas de un componente se establecen normalmente en valores predeterminados que los usuarios no suelen cambiar. El editor de IntelliScript normalmente muestra solo las propiedades avanzadas que ha establecido con un valor no predeterminado. Para mostrar las propiedades que no se ven, haga clic en la flecha doble derecha de la primera línea.

50

Capítulo 5: Scripts

La siguiente figura muestra todas las propiedades de un componente Parser:

Valores de propiedades de componente Establece los valores para las propiedades de un componente. Cuando el valor de una propiedad es booleano, aparece como un casilla de verificación a la izquierda del nombre de la propiedad. Por ejemplo, la propiedad optional de un componente Content es booleana. Cuando el valor es una cadena, aparece a la derecha del nombre de la propiedad, metido entre comillas dobles. Los valores válidos son cadenas de caracteres alfanuméricos, símbolos o caracteres de control válidos, pero no incluye caracteres nulos. Para especificar un carácter que no está en el teclado en un campo de texto, pulse CTRL+A y, a continuación, escriba el código decimal de tres dígitos del carácter. Por ejemplo, escriba CTRL+A 010 para un avance de línea o CTRL+A 255 para la letra islandesa "thorn" (þ). Por ejemplo, el valor de la propiedad expresión de un componente CalculateValue es una cadena. Cuando el valor es una selección, aparece a la derecha del nombre de la propiedad. Cuando edite el valor, aparecerá una lista. Por ejemplo, la propiedad val_type de un componente Variable es una selección. Cuando el valor es un árbol jerárquico de propiedades, aparece a la derecha y debajo del nombre de la propiedad. Por ejemplo, al configurar la propiedad format de un componente Analizador en CustomFormat, aparece un árbol de propiedades adicionales. La siguiente figura muestra la propiedad format de un componente Analizador, que aparece como un árbol:

Propiedades de componente de script

51

Componentes de inicio de script El componente de inicio de un script define el punto de entrada donde la transformación del Procesador de datos comienza a procesar el script. El componente de inicio debe aparecer en el nivel global del script. Puede establecer un analizador, asignador, serializador, transmisión por secuencias o transformador como el componente de inicio. Puede establecer el componente de inicio de la ficha Resumen de la transformación del Procesador de datos. Cuando utilice el editor de IntelliScript para establecer el componente de inicio de un script, el componente de inicio del script se convierte en la transformación del Procesador de datos del componente de inicio.

Configuración del componente de inicio con el editor de IntelliScript Puede usar el editor de IntelliScript para configurar un componente de script como componente de inicio de la transformación del Procesador de datos. Debe configurar el componente de inicio para ejecutar el script. Debe configurar el componente de inicio para mostrar el origen de ejemplo en el panel Entrada de la vista Visor de datos. 1.

Abra un script en el editor de IntelliScript.

2.

Haga clic con el botón derecho en un componente que aparezca en el nivel global del script y, a continuación, seleccione Establecer como componente de inicio.

Orígenes de ejemplo Un origen de ejemplo es un documento que contiene datos de entrada de ejemplo para que el script los procese durante el tiempo de diseño. Puede configurar un origen de ejemplo para cada analizador, asignador, serializador o puerto de entrada adicional. El origen de ejemplo contiene el mismo tipo de datos que la transformación del Procesador de datos recibe de un puerto de entrada. De forma predeterminada, la vista Visor de datos muestra el origen de ejemplo definido para el componente de inicio. También puede ver el origen de ejemplo de cualquier otro componente que define un origen de ejemplo. Cuando se ejecuta un script en la vista Visor de datos, la transformación del Procesador de datos lee los documentos de origen de ejemplo. Puede configurar los siguientes tipos de documento de origen de ejemplo: ¨ LocalFile. Un archivo en el sistema de archivos local. ¨ Texto. Una cadena de codificación de corte en el script. ¨ URL. Un archivo en la red local o en Internet.

Nota: Cuando se ejecuta un script en una asignación y falta un documento de entrada, la transformación utiliza el origen de ejemplo. Si no hay ningún origen de ejemplo configurado y no hay un documento de entrada, la transformación del Procesador de datos se detiene y genera un error fatal.

Ejemplo de origen de ejemplo El siguiente texto de ejemplo ilustra una parte de un archivo local que puede usar para un origen de ejemplo al analizar documentos HL7: MSH|^~\&|ADT1|MCM|FINGER|MCM|198808181126|SECURITY|ADT^A01|MSG00001|P|2.3.1 EVN|A01|198808181123 PID|1||PATID1234^5^M11^ADT1^MR^MCM~123456789^^^USSSA^SS|| SMITH^WILLIAM^A^III||19610615|M||C|1200 N ELM STREET^^JERUSALEM^TN^99999? 1020|GL|(999)999?1212|(999)999?3333||S||PATID12345001^2^M10^ADT1^AN^A|

52

Capítulo 5: Scripts

123456789|987654^NC NK1|1|SMITH^OREGANO^K|WI^WIFE||||NK^NEXT OF KIN PV1|1|I|2000^2012^01||||004777^CASTRO^FRANK^J.|||SUR||||ADM|A0

Resaltado de origen de ejemplo El panel Entrada de la vista Visor de datos resalta partes del documento de origen de ejemplo. La vista Visor de datos utiliza diferentes colores para resaltar los anclajes de contenido del origen de ejemplo, los anclajes de marcadores que definen dónde la transformación encuentra contenido y grupos de repetición de anclajes.

Cómo configurar un origen de ejemplo en el editor de IntelliScript Cuando se ejecuta un script de la vista Visor de datos, debe tener un origen de ejemplo para la entrada principal y para cada puerto de entrada adicional. Establezca el origen de ejemplo en el editor de IntelliScript. También puede seleccionar el origen de ejemplo al crear un script en la transformación del Procesador de datos. 1.

Seleccione el componente del que desea definir un origen de ejemplo y amplíelo para mostrar sus propiedades.

2.

Junto a la propiedad example_source, haga doble clic en los puntos suspensivos.

3.

Seleccione una de las siguientes opciones: Opción

Descripción

LocalFile

La propiedad file_name aparece debajo de la propiedad example_source. Haga doble clic en los puntos suspensivos y, a continuación, desplácese hasta un archivo en el sistema de archivos local.

Text

La propiedad quote aparece debajo de la propiedad example_source. Introduzca una cadena.

URL

La propiedad stable_url aparece debajo de la propiedad example_source. Introduzca una cadena.

Cómo visualizar un origen de ejemplo Puede ver el origen de ejemplo de un analizador, un asignador, un serializador o un puerto de entrada adicional en el panel Entrada de la vista Visor de datos. 1.

Abra un script en el editor de IntelliScript.

2.

Configure uno de los componentes del script como componente de inicio.

3.

En el editor de IntelliScript, seleccione el componente que tiene el origen de ejemplo que desee visualizar.

4.

En la vista Visor de datos, haga clic en Sincronizar con el editor.

Editor de IntelliScript El editor de IntelliScript es una herramienta gráfica que se utiliza para editar scripts. Utilice el editor de IntelliScript para añadir componentes al script, configurar propiedades y establecer el componente de inicio.

Editor de IntelliScript

53

Cuando se abre objeto de script, el editor de IntelliScript aparece en el área del editor en el centro de la interfaz de la Herramienta del desarrollador. De forma predeterminada, el editor de IntelliScript se muestra en Intelli Mode, que muestra el script en un formato de árbol jerárquico ampliable, o en Script Mode, que muestra el script como texto. Puede ver o editar un script en Intelli Mode. Algunas propiedades avanzadas están ocultas de forma predeterminada, pero puede mostrarlas haciendo clic en una flecha gráfica doble de la primera línea del componente. Puede insertar sólo componentes que sean válidos para el contexto. Puede arrastrar un componente para moverlo, o puede cortarlo y pegarlo con CTRL+C y CTRL+V. Puede seleccionar varios componentes con clics del ratón y las teclas CTRL y MAYÚS. Cuando utilice el editor de IntelliScript, las siguientes vistas muestran información relevantes: ¨ Visor de datos, de panel Entrada. Muestra el origen de ejemplo para el componente de inicio o el componente

seleccionado en el editor de IntelliScript. ¨ Visor de datos, el panel Salida. Muestra la salida cuando se ejecuta la transformación del Procesador de datos

desde la vista Visor de datos. ¨ Eventos del procesador de datos. Muestra los eventos que ocurren cuando se ejecuta una transformación del

Procesador de datos. Utilice la vista Eventos del procesador de datos para la solución de problemas. ¨ Ayuda de script del Procesador de datos. Muestra la documentación relevante al componente o propiedad

seleccionado en el editor de IntelliScript. ¨ Procesador de datos de origen hexadecimal. Muestra el documento de origen de ejemplo en forma hexadecimal.

Utilice la vista Origen hexadecimal del Procesador de datos para buscar caracteres no imprimibles, como tabuladores. Para ver el origen de un script, haga clic con el botón derecho en el editor de IntelliScript y, a continuación, seleccione Modo de script . Para volver a Intelli Mode, haga clic con el botón derecho en IntelliScript y, a continuación, seleccione Intelli Mode .

Scripts de ejemplo Informatica ofrece scripts de ejemplo como ejemplos de tareas que se pueden realizar con un script. Puede encontrar los scripts de ejemplo en el siguiente subdirectorio del directorio de instalación: \DataTransformation\samples\Projects

Para ver, modificar o copie un script de ejemplo, primero debe importarlo. La siguiente tabla describe los scripts de ejemplo:

54

Nombre de script

Descripción

Alternatives

Demuestra la ramificación y el anclaje Alternatives.

AppendListItems

Concatena cadenas en un contenedor de datos de varias ocurrencias y hace una demostración de la acción AppendListItems.

CalculateValue

Realiza un cálculo numérico complejo y demuestra la acción CalculateValue.

CombineValues

Concatena cadenas y hace una demostración de las acciones CombineValues y DumpValue.

Capítulo 5: Scripts

Nombre de script

Descripción

Content

Demuestra el anclaje Content y la búsqueda de contenido en el documento de origen buscando una cadena específica, calculando un desplazamiento desde el último anclaje y buscando un atributo en la pareja name=value.

CopyValue

Copia todo un elemento XML complejo con la acción Asignar.

DelimitedSections

Hace una demostración del anclaje DelimitedSections en un analizador.

DocumentOrder

Demuestra la ramificación y el anclaje Alternatives, con la opción selector establecida en DocumentOrder.

Dynamic_And_RepeatingGroup

Itera sobre las líneas de un documento y demuestra el anclaje RepeatingGroup. Lee datos desde otra ubicación en el documento en función de contenido del ámbito actual.

EmbeddedParser

Utiliza un analizador secundario incrustado para analizar el contenido del analizador principal y hace una demostración del anclaje EmbeddedParser.

EnsureCondition

Evalúa una expresión booleana de JavaScript para seleccionar las alternativas y hace una demostración de la acción EnsureCondition.

ManualSerializer

Hace una demostración de un serializador personalizado.

Marcadores

Hace una demostración de anclajes Marker que utilizan las opciones TextSearch, OffsetSearch, TypeSearch y PatternSearch.

Marking_Mode

Hace una demostración de varios métodos para configurar anclajes Marker.

NonMarker

Hace una demostración de un analizador que solo utiliza anclajes Content y búsqueda hacia atrás por el documento de entrada.

Patrón

Hace una demostración de la extracción de datos que coinciden con una restricción definida en el esquema.

persistent_search

Hace una demostración de la propiedad on_partial_match de un Group y la propiedad adjacent de un Marker.

ResetListVariable

Restablece una variable de lista mediante un targetLocator.

RunSerializer

Hace una demostración de un analizador que llama a un serializador secundario.

HL7

Convierte un archivo HL7 en XML.

TabDelimited

Convierte un archivo delimitado por tabuladores HL7 en XML.

Divisor

Divide un archivo en dos y demuestra la acción WriteValue.

Scripts de ejemplo

55

Nombre de script

Descripción

TransformByParser

Usa un analizador para transformar texto específico en un avance de línea con retorno de carro y demuestra la acción TransformByParser.

Transformers_Example

Hace una demostración del anclaje Content con la propiedad value configurada como LearnByExample.

Importar un script de ejemplo Importar un script de ejemplo para verlo o para copiar partes en otro script. 1.

Haga clic en Archivo > Importar. Aparece el cuadro de diálogo Importar.

2.

Seleccione Informatica > Importar el servicio DT y haga clic en Siguiente . Aparece la página Importar el servicio DT .

3.

Junto al campo Archivo de servicio , haga clic en el botón Examinar y busque el archivo CMW del servicio.

4.

Haga clic en Finalizar. El script de ejemplo aparece en una transformación del Procesador de datos.

56

Capítulo 5: Scripts

CAPÍTULO 6

Analizadores Este capítulo incluye los siguientes temas: ¨ Resumen de analizadores, 57 ¨ Analizadores independientes de plataforma, 57 ¨ Referencia de componentes de analizador, 58

Resumen de analizadores Los analizadores son componentes de script que leen documentos de origen en cualquier formato. La salida de un analizador siempre es XML. La entrada puede tener cualquier formato, como texto, HTML, Word, PDF o HL7. La entrada puede ser un documento XML que procesa el analizador como datos de cadena.

Analizadores independientes de plataforma Los scripts del analizador se ejecutan en los sistemas Microsoft Windows y UNIX. La mayoría de las funciones del analizador se ejecutan igualmente bien en ambas plataformas. Hay algunas excepciones para esta regla. Si va a ejecutar un analizador en Windows y UNIX, aquí mostramos unos consejos que pueden ayudar a garantizar la independencia de las plataformas.

Marcadores de nueva línea Evite definir anclajes Marker que busquen un carácter de nueva línea seguido por un carácter de retorno de carro (\n\r). Esta combinación se usa con frecuencia en Windows, pero no en UNIX. En lugar de ello, configure un Marker con el componente incorporado NewLineSearch , que busca tanto la secuencia \n\r como los caracteres \n o \r solos.

Rutas de acceso de archivos nUtilice rutas de acceso relativas, no absolutas. Recuerde que las rutas de acceso a los archivos en UNIX distinguen entre mayúsculas y minúsculas.

57

Referencia de componentes de analizador Un componente Analizador convierte un documento de origen a XML.

Analizador Un analizador lee un documento de origen en cualquier formato. Puede añadir componentes secundarios para realizar transformaciones en los datos. Defina analizadores en el nivel global del script. Configure un analizador principal como componente de inicio. Llame a un analizador secundario con la acción RunParser. Para obtener más información, consulte “RunParser” en la página 222. Las propiedades de Parser aparecen encima de la línea contains. A continuación de la línea, puede insertar componentes secundarios como anclajes y acciones. La siguiente tabla describe las propiedades del componente Analizador: Propiedad

Descripción

example_source

Define un documento de origen de ejemplo para procesar en el entorno de desarrollo. Puede seleccionar una de las siguientes opciones: - Vacío. La herramienta Desarrollador le pedirá un documento de origen cuando ejecute el analizador. - InputPort. Define un puerto de entrada. - LocalFile. Define un archivo en el sistema de archivos local. - Text. Define una cadena. - URL. Define una URL. El valor predeterminado es vacío. Nota: Si la propiedad sources_to_extract está configurada, la propiedad example_values se omite en el entorno de diseño.

example_values

Define valores simulados que otra transformación puede pasar al analizador. Utilice esta propiedad para diseñar un analizador llamado por otro analizador. Un analizador utiliza la propiedad example_values solo cuando procesa el origen de ejemplo. Omite la propiedad cuando analiza un documento de origen. En los componentes ExampleValue anidados, especifique los contenedores de datos que el analizador de llamada pasa a este analizador y sus valores simulados.

58

ExampleValue

Define un valor de ejemplo en la propiedad example_values.

formato

Define el formato del documento de origen. Puede seleccionar una de las siguientes opciones: - BinaryFormat - CustomFormat - HtmlFormat - Formato RTF - TextFormat - XmlFormat El valor predeterminado es CustomFormat. Para obtener más información, consulte “Referencia de componentes de formato” en la página 83.

name

Define una etiqueta descriptiva para el componente. Esta etiqueta aparece en el archivo de registro y en la vista Eventos. Utilice la propiedad name para identificar qué componente ha causado el evento.

no_initial_phase

Determina si el script busca anclajes anidados en la fase principal. Puede seleccionar una de las siguientes opciones: - Borrado. El script busca anclajes anidados en función de sus respectivas propiedades. - Seleccionado. El script busca anclajes anidados en la fase principal.

Capítulo 6: Analizadores

Propiedad

Descripción El valor predeterminado es borrado.

notifications

Define una lista de componentes NotificationHandler que el analizador ejecuta en las notificaciones activadas por componentes anidados. Para obtener más información, consulte “Notificaciones” en la página 319.

on_fail

Determina la acción cuando el componente genera un error. Puede seleccionar una de las siguientes opciones: - Borrado. Ninguna acción. - CustomLog. Escribe en el registro de usuario. - LogError. Escribe un mensaje de error en el registro del motor. - LogInfo. Escribe un mensaje de información en el registro del motor. - LogWarning. Escribe un mensaje de advertencia en el registro del motor. - NotifyFailure. Activa una notificación. El valor predeterminado es borrado. Para obtener más información, consulte “Control de errores” en la página 300.

reject_recurring_pages

Determina el número de veces que el analizador analiza la misma página. Puede seleccionar una de las siguientes opciones: - Seleccionado. El analizador analiza una página sólo una vez. - Borrado. El analizador analiza una página de cada vez que sigue un enlace a la página. Use reject_recurring_pages si un sitio web contiene muchos vínculos a la misma página. Nota: La acción ResetVisitedPages restablece la lista de historial y permite que un analizador procese una página de nuevo, incluso si está seleccionadoreject_recurring_pages.

remark

Define un comentario definido por el usuario que describe el objetivo o la acción del componente.

serialization_mode

Define cómo el script procesa los fragmentos del origen de ejemplo que el analizador no da salida como XML, cuando se crea un serializador desde un analizador. Para obtener más información, consulte “Cómo controlar la forma de funcionar del comando Crear serializador” en la página 235. Puede seleccionar una de las siguientes opciones: - Completo. Hace que el comando Crear serializador copie el texto que no es XML a la configuración del serializador. - Esquema. Hace que el comando Crear serializador copie solo los delimitadores del texto que no es XML a la configuración del serializador. Si Outline está seleccionado, puede establecer la propiedad use_markers.

source

Define una secuencia de contenedores de datos para la entrada en el analizador. Cada contenedor de datos se identifica por una de las propiedades siguientes: - Localizador. Identifica un contendor de datos de una ocurrencia o varias ocurrencias. Para contenedores de datos de varias ocurrencias, cada iteración accede a una nueva ocurrencia. - LocatorByKey. Identifica un contenedor de datos de varias ocurrencias por clave. - LocatorByOccurence. Identifica un contenedor de datos de varias ocurrencias por número de secuencia. En un analizador secundario, configure Analizador > fuente > Localizador > data_holder para el contenedor de datos definido en el AdditionalInputPort > data_holder asociado. Para obtener más información, consulte “Propiedad source” en la página 268.

sources_to_extract

Define una lista de documentos de origen predefinida que procesa el analizador. Puede seleccionar una de las siguientes opciones: - DocList. Define una lista de componentes LocalFile, Texto y URL. - Vacío. El analizador procesa example_source. - FileSearch. Define una carpeta en el sistema de archivos local y un filtro de nombres de archivo. - InputPort. Define un puerto de entrada. No utilice esta opción. - LocalFile. Define un archivo en el sistema de archivos local. - Texto. Define una cadena. - URL. Define una URL. El valor predeterminado es vacío.

Referencia de componentes de analizador

59

Propiedad

Descripción Nota: Utilice la propiedad sources_to_extract sólo en el entorno de diseño.

60

target

Define una secuencia de contenedores de datos para la salida desde el analizador. Si el contenedor de datos aún no existe, el analizador lo crea. Cada contenedor de datos se identifica por una de las propiedades siguientes: - Localizador. Identifica un contendor de datos de una ocurrencia o varias ocurrencias. Para contenedores de datos de varias ocurrencias, cada iteración crea una nueva ocurrencia. - LocatorByKey. Identifica un contenedor de datos de varias ocurrencias por clave. - LocatorByOccurence. Identifica un contenedor de datos de varias ocurrencias por número de secuencia. Utilice la propiedad target cuando la salida del analizador es utilizada por otro componente. Para obtener más información, consulte “Propiedad target” en la página 271.

use_markers

Determina si el comando Crear serializador copia el contenido de los anclajes Marker, pero sólo los delimitadores de otro texto que no es XML. use_markers es una opción debajo de la propiedad serialization_mode cuando está seleccionado outline. El valor predeterminado es seleccionado.

Capítulo 6: Analizadores

CAPÍTULO 7

Puertos de script Este capítulo incluye los siguientes temas: ¨ Resumen de puertos de script, 61 ¨ Referencia de componentes de puerto de script, 61

Resumen de puertos de script Un puerto de script especifica la entrada o salida de un script, tales como documento de origen o documento de salida. Por ejemplo, en un componente Analizador , los valores de las propiedades example_source y sources_to_extract son puertos de entrada. En algunos componentes, los puertos de scripts están definidos implícitamente. Por ejemplo, el archivo de salida predeterminado de un analizador es el archivo output.xml. No es necesario definir un puerto de salida que haga referencia al archivo output.xml. De forma predeterminada, cada script tiene un puerto de entrada y un puerto de salida. Puede configurar puertos adicionales de entrada y salida. Cuando se crean puertos de entrada o de salida adicionales en un script, la herramienta Desarrollador agrega puertos adicionales en la transformación Procesador de datos.

Referencia de componentes de puerto de script Un componente de script especifica una entrada o salida de una transformación, como un documento de origen o un documento de salida.

AdditionalInputPort El puerto AdditionalInputPort define un puerto de entrada adicional.

61

La siguiente tabla describe las propiedades del puerto AdditionalInputPort: Propiedad

Descripción

code_page

Determina la codificación de entrada para el puerto. Si no hay ningún valor definido, el AdditionalInputPort usa la codificación de entrada en la configuración de la transformación del Procesador de datos. El valor predeterminado es en blanco.

data_holder

Define un contenedor de datos en el que el puerto almacena el contenido del documento de entrada. Utilice el mismo contenedor de datos en la propiedad Analizador > origen > Localizador > data_holder del analizador, asignador o serializador asociado secundario.

disabled

Determina si el script omite el componente y todos sus componentes secundarios. Puede seleccionar una de las siguientes opciones: - Seleccionado. El script omite el componente. - Borrado. El script aplica el componente. Utilice esta propiedad para probar, depurar y realizar modificaciones menores en un script sin eliminar el componente existente. El valor predeterminado es borrado.

encode_as_xml

Determina si los caracteres especiales se convierten en entidades XML. Puede seleccionar una de las siguientes opciones: - Seleccionado. Los caracteres especiales se convierten en entidades XML. - Borrado. Los caracteres especiales no se convierten. La propiedad encode_as_xml es un elemento secundario de la propiedad input_encoding cuando se establece en PortEncoding. El valor predeterminado es borrado.

example_source

Define la ubicación de un origen que se va a procesar durante la prueba. Puede seleccionar una de las siguientes opciones: - LocalFile. Define un archivo en el equipo local. - Texto. Define una cadena. - URL. Define la URL de una página web. Precaución: No defina un procesador de documentos en la propiedad AdditionalInputPort > example_source > pre_processor. Defínalo en AdditionalInputPort > pre_processor.

input_encoding

Define la codificación de la entrada.

PortEncoding

Define la configuración personalizada para la entrada adicional. La propiedad PortEncoding tiene las siguientes opciones: - code_page - encode_as_xml

pre_processor

Define el nombre de un procesador de documentos para que se aplique a la entrada antes del procesador de documentos definido en RunParser > pre_processor. Para obtener más información, consulte “Referencia de componentes de procesador de documentos” en la página 70. Precaución: No defina un procesador de documentos en la propiedad AdditionalInputPort > example_source > pre_processor. Defínalo en AdditionalInputPort > pre_processor.

Defina el puerto AdditionalInputPort en el nivel global del script y asígnele un nombre.

Ejemplo de AdditionalInputPort Suponga que tiene dos archivos de texto: ¨ IdsAndSalaries.txt es una tabla de ID y salarios de empleados. ¨ IdsAndNames.txt es una tabla de ID y nombres de empleados.

Se desea analizar estos archivos conjuntamente y así generar un archivo de salida XML que contiene los nombres de empleados y los salarios. Puede configurar la transformación de la siguiente forma: ¨ El analizador de principal, llamado EmployeeParser, procesa IdsAndSalaries.txt.

62

Capítulo 7: Puertos de script

¨ El analizador principal activates un analizador secundario, llamado IdsToNamesParser, que procesa IdsAndNames.txt y almacena el resultado de una tabla XML. ¨ El analizador principal utiliza un LookupTransformer para convertir el ID para los nombres. La tabla de búsqueda es

la salida del analizador secundario. El siguiente script ilustra esta configuración. El analizador secundario hace referencia a un AdditionalInputPort que recupera el archivo IdsAndNames.txt.

AdditionalOutputPort El puerto AdditionalOutputPort define un puerto de salida adicional. Utilice este componente para definir la salida en varias ubicaciones o varios documentos. La siguiente tabla describe las propiedades del puerto AdditionalOutputPort: Propiedad

Descripción

add_BOM_prefix

Añade un prefijo de marca de orden de bytes (BOM) a la salida. El tipo de prefijo BOM se determina mediante la codificación de salida definida en la propiedad output_encoding. El valor predeterminado es borrado.

code_page

Define el atributo de codificación de la salida adicional. Si esta propiedad no está definida, la salida adicional se genera con la codificación de salida definida en la configuración de transformación del Procesador de datos. La propiedad code_page es un elemento secundario de la propiedad output_encoding cuando se establece en PortEncoding. El valor predeterminado es borrado.

disabled

Determina si el script omite el componente y todos sus componentes secundarios. Puede seleccionar una de las siguientes opciones: - Seleccionado. El script omite el componente. - Borrado. El script aplica el componente. Utilice esta propiedad para probar, depurar y realizar modificaciones menores en un script sin eliminar el componente existente. El valor predeterminado es borrado.

Referencia de componentes de puerto de script

63

64

Propiedad

Descripción

encode_as_xml

Determina si los caracteres especiales se convierten en entidades XML. Puede seleccionar una de las siguientes opciones: - Seleccionado. Los caracteres especiales se convierten en entidades XML. - Borrado. Los caracteres especiales no se convierten. La propiedad encode_as_xml es un elemento secundario de la propiedad output_encoding cuando se establece en PortEncoding. El valor predeterminado es borrado.

file_extension

Define la extensión de archivo para el archivo de salida adicional en el entorno de diseño. El nombre del archivo es el nombre asignado al componente AdditionalOutputPort. Esta configuración no tiene efecto en el entorno de producción. El valor predeterminado es .xml.

other_properties

Define las propiedades de codificación cuando se establece en XmlHeader. Puede seleccionar una de las siguientes opciones: - XmlHeader. Define el encabezado XML. La propiedad XmlHeader tiene las siguientes opciones: - add_BOM_prefix - process_instruction - process_instruction_string - root_element - xml_version - XSLT_stylesheet_name - Borrado. Las propiedades de salida están determinadas por la configuración de transformación del Procesador de datos. El valor predeterminado es borrado.

output_encoding

Define las propiedades de codificación cuando se establece en PortEncoding. Puede seleccionar una de las siguientes opciones: - PortEncoding. La salida adicional tiene una configuración personalizada para code_page y encode_as_xml. - Borrado. La configuración de la transformación del Procesador de datos controla la codificación de salida y la conversión de entidades XML. El valor predeterminado es borrado.

PortEncoding

Define la configuración personalizada para la salida adicional. Puede seleccionar una de las siguientes opciones: - code_page - encode_as_xml

process_instruction

Define una instrucción de procesamiento en el archivo XML de salida. Puede seleccionar una de las siguientes opciones: - None. No escribe una instrucción de procesamiento en la salida XML. - UseOutputCodePage. Da como salida la página de código definida en la propiedad output_encoding. - FreeEncodingString. Da como salida la cadena definida en la propiedad process_instruction_string. El valor predeterminado es UseOutputCodePage.

process_instruction_string

Define una instrucción de procesamiento definida por el usuario. La propiedad process_instruction_string se aplica solo cuando la propiedad process_instruction se establece en FreeEncodingString.

root_element

Define el nombre del elemento raíz que se ha reiniciado en torno a toda la salida.

xml_version

Define el atributo de la versión de la instrucción de procesamiento. El valor predeterminado es 1.0.

XSLT_stylesheet_name

Define una hoja de estilos XSLT que se escribe para la instrucción de procesamiento.

Capítulo 7: Puertos de script

Definir un puerto de salida adicional 1.

En el nivel global del script, inserte un componente AdditionalOutputPort y asígnele un nombre.

2.

Anidada en el componente de inicio de la transformación del Procesador de datos, inserte una acción WriteValue, establezca la propiedad salida a OutputPort y establezca puerto para el nombre del puerto de salida adicional.

3.

En la configuración de la transformación del Procesador de datos, seleccione Salida de control y, a continuación, consulte Deshabilitar salida automática.

Nombre de archivo de salida adicional Cuando ejecuta la transformación en la Herramienta del desarrollador, el sistema define un nombre de archivo para la salida adicional y almacena el archivo en la carpeta de resultados del proyecto. Por ejemplo, si el puerto se llama MyOutputPort, el nombre de archivo puede ser output_MyOutputPort.xml . Para determinar el nombre de archivo: 1.

Haga clic en Ejecutar > Ejecutar.

2.

Haga clic en Detalles para mostrar la tabla Puertos de E/S. La tabla muestra el nombre de cada AdditionalOutputPort y su archivo de salida.

Cuando implemente la transformación como un servicio, una aplicación que ejecute el servicio puede pasar la ubicación de salida adicional como parámetro. Por ejemplo, la ubicación puede ser un búfer.

Ejemplo de AdditionalOutputPort Un analizador genera la siguiente estructura XML: Ron Lehrer 547329876 27

El analizador utiliza dos acciones WriteValue para generar la salida.

La primera acción WriteValue escribe todo el elemento en el archivo de resultados predeterminado. Ron Lehrer 547329876 27

Referencia de componentes de puerto de script

65

La segunda acción WriteValue hace referencia a un AdditionalOutputPort para escribir el elemento anidado en otro archivo. Ron Lehrer

DocList El puerto DocList define una lista de los siguientes tipos de puertos de entrada: ¨ LocalFile ¨ Texto ¨ URL

La siguiente tabla describe las propiedades del puerto DocList: Propiedad

Descripción

disabled

Determina si el script omite el componente y todos sus componentes secundarios. Puede seleccionar una de las siguientes opciones: - Seleccionado. El script omite el componente. - Borrado. El script aplica el componente. Utilice esta propiedad para probar, depurar y realizar modificaciones menores en un script sin eliminar el componente existente. El valor predeterminado es borrado.

pre_processor

Define el nombre del preprocesador que se va a aplicar a los archivos de entrada. Para obtener más información, consulte “Referencia de componentes de procesador de documentos” en la página 70.

FileSearch El puerto FileSearch define los archivos de entrada en un equipo de la red local. Utilice el puerto filesearch en la propiedad sources_to_extract de un Analizador. La siguiente tabla describe las propiedades del puerto FileSearch:

66

Propiedad

Descripción

directorio

Define una carpeta que contiene los archivos de entrada.

disabled

Determina si el script omite el componente y todos sus componentes secundarios. Puede seleccionar una de las siguientes opciones: - Seleccionado. El script omite el componente. - Borrado. El script aplica el componente. Utilice esta propiedad para probar, depurar y realizar modificaciones menores en un script sin eliminar el componente existente. El valor predeterminado es borrado.

pre_processor

Define el nombre de un procesador de documentos que se va a aplicar a los archivos de entrada. Para obtener más información, consulte “Referencia de componentes de procesador de documentos” en la página 70.

recursivo

Determina si los archivos de entrada pueden ocurrir en las subcarpetas de la carpeta especificada. El valor predeterminado es borrado.

comodín

Define un criterio para filtrar los archivos en la carpeta especificada. Utilice * como carácter comodín. Por ejemplo, *.txt busca todos los archivos TXT. El valor predeterminado es *.*.

Capítulo 7: Puertos de script

InputPort El puerto InputPort define un puerto de entrada con nombre que está definido con el componente AdditionalInputPort. La siguiente tabla describe las propiedades del puerto InputPort: Propiedad

Descripción

input

Define el nombre del componente AdditionalInputPort que define la entrada.

LocalFile El puerto LocalFile define un archivo en la red local. La siguiente tabla describe las propiedades del puerto LocalFile: Propiedad

Descripción

file_name

Define la ruta y nombre de archivo de un archivo en la red local.

pre_processor

Define el nombre de un procesador de documentos que se va a aplicar al archivo. Para obtener más información, consulte “Referencia de componentes de procesador de documentos” en la página 70.

simulated_url

Define una URL para asignarla al archivo. Esta propiedad hace que el analizador trate el archivo como si se encontrara en un servidor web. Si el archivo contiene enlaces relativos, el analizador resuelve los enlaces relativos en la URL. La parte del nombre del host no distingue entre mayúsculas y minúsculas.

OutputPort El puerto OutputPort define un puerto de salida con nombre que está definido con el componente AdditionalOutputPort. Puede utilizar un puerto OutputPort en una acción WriteValue. La siguiente tabla describe las propiedades del puerto OutputPort: Propiedad

Descripción

puerto

Determina el nombre del AdditionalOutputPort.

Texto El puerto Texto define una cadena de texto que se utiliza como entrada de una transformación.

Referencia de componentes de puerto de script

67

La siguiente tabla describe las propiedades del puerto Texto: Propiedad

Descripción

pre_processor

Define el nombre de un procesador de documentos que aplicar a la cadena. Para obtener más información, consulte “Referencia de componentes de procesador de documentos” en la página 70.

quote

Define una cadena de texto.

simulated_url

Define una URL que asignar a la cadena. Esta propiedad hace que el analizador trate a la cadena como si fuera un archivo ubicado en un servidor web. Si la cadena contiene enlaces relativos, el analizador resuelve dichos enlaces relativos a la URL.

size

Define un tamaño estático para el búfer de texto. Utilice la propiedad size con orígenes binarios. El valor predeterminado es -1, que indica que el tamaño del búfer se mide de forma dinámica.

URL El puerto URL define la URL de un documento que está disponible en un servidor web. La siguiente tabla describe las propiedades del puerto URL:

68

Propiedad

Descripción

post_data

Define los datos que la transformación envía a la URL.

pre_processor

Define el nombre del procesador de documentos que hay que aplicar a los archivos.

retries

Define el número de intentos que el analizador realiza antes de comunicar un error. El valor predeterminado es 0.

seconds_to_wait

Define el número de segundos que hay que esperar entre los reintentos. El valor predeterminado es 60.

stable_url

Define una dirección URL que contiene un documento de entrada.

Capítulo 7: Puertos de script

CAPÍTULO 8

Procesadores de documentos Este capítulo incluye los siguientes temas: ¨ Resumen de procesadores de documentos, 69 ¨ Definir un procesador de documentos, 69 ¨ Referencia de componentes de procesador de documentos, 70 ¨ Esquema XML TextML, 77 ¨ Editor de configuración de la tablas PdfToTxt_4, 78

Resumen de procesadores de documentos Los procesadores de documentos son componentes que convierten el formato de un documento completo en otro formato para su procesamiento. Puede utilizar un procesador de documentos como preprocesador que convierte el formato de un documento de origen antes de una transformación. Por ejemplo, si el documento de origen de un analizador está en el formato PDF, puede aplicar el procesador PdfToTxt_4. Esto convierte el documento de origen en texto, que es mucho más fácil de analizar que el formato PDF binario. No confunda los procesadores de documento con preprocesadores de formato. Para obtener más información sobre los preprocesadores de formato, consulte “Resumen de formatos” en la página 82.

Definir un procesador de documentos Puede preprocesar el documento de origen con cualquier procesador de documentos. 1.

Asigne la propiedad example_source de la transformación. El valor del example_source es un puerto de entrada, tal como LocalFile o Texto.

2.

Asigne la propiedad pre_processor del puerto de entrada. El script aplica el procesador que se define en example_source para todos los orígenes en el que se ejecuta la transformación.

Nota: También puede definir un preprocesador en la propiedad sources_to_extract de un analizador. El procesador que defina se aplica solamente a los documentos de origen que defina en sources_to_extract y no a cualquier otro documento que el analizador procese.

69

Visualización de la salida del procesador de documentos Si asigna un procesador de documentos al origen de ejemplo, el panel de origen de la vista Visor de datos muestra la salida del procesador.

Referencia de componentes de procesador de documentos Los procesadores de documentos convierten un documento completo de un formato a otro antes de procesarse mediante un analizador, un asignador o un serializador.

AFPToXML El procesador de documentos AFPToXML convierte el formato de la transmisión de impresión de IBM Advanced Function Presentation a XML. La salida del procesador está en la codificación UTF-16LE. Si una transformación recibe la entrada del procesador, debe definir la codificación de entrada en UTF-16LE.

AsnToXml El procesador de documentos AsnToXml convierte un archivo ASN.1 binario en XML. La siguiente tabla describe las propiedades del procesador de documentos AsnToXml:

70

Propiedad

Descripción

asn_file

Define un archivo de especificación ASN.1.

header

Define un encabezado para excluirlo del XML. Puede seleccionar una de las siguientes opciones: - NewlineSearch. El encabezado es una nueva línea. - OffsetSearch. El encabezado está definido por el número de caracteres desde el principio del archivo. - PatternSearch. El encabezado está definido por una expresión regular. - TextSearch. El encabezado está definido por una cadena explícita o una cadena que recupere dinámicamente del documento de origen.

no_constraints

Determina si el archivo ASN se procesa con restricciones. Puede seleccionar una de las siguientes opciones: - true. El archivo ASN se procesa sin restricciones. - false. El archivo ASN se procesa con restricciones. El valor predeterminado es falso.

pdu_type

Define el tipo de PDU. Utilice esta propiedad para aclarar una ambigüedad.

process_first_message

Determina si se procesa todo el archivo CDR. Puede seleccionar una de las siguientes opciones: - true. Solo se procesa el primer registro. - false. Todo el archivo CDR se procesa.

Capítulo 8: Procesadores de documentos

Propiedad

Descripción El valor predeterminado es falso.

separator

Define el texto que se va a ignorar entre registros. Puede seleccionar una de las siguientes opciones: - NewlineSearch. El separador es una nueva línea. - OffsetSearch. El separador se define mediante el número de caracteres desde el final del registro anterior. - PatternSearch. El separador se define mediante una expresión regular. - TextSearch. El separador se define mediante una cadena explícita o una cadena que recupere dinámicamente del documento de origen.

ExcelToDataXml El procesador de documentos ExcelToDataXml convierte los documentos de Microsoft Excel en XML. La siguiente tabla describe las propiedades del procesador de documentos ExcelToDataXml: Propiedad

Descripción

enabled

Determina el contenido de la salida. La propiedad enabled tiene las siguientes opciones: - Seleccionado. La salida contiene datos sin formato y datos con formato. - Borrado. La salida contiene solo datos con formato. El valor predeterminado es seleccionado.

param1

Determina si los datos sin formato aparecen en la salida del procesador de documentos cuando los datos sin formato difieren de los datos con formato. param1 se llama Display_raw_data_when_different y tiene solo una propiedad, enabled.

El XML contiene los datos y los resultados de fórmulas que existían en el documento de Excel original. No se permite conservar las fórmulas en sí, la información formateada ni el código macro. Si necesita utilizar el código macro, utilice ExcelToXml en lugar de ExcelToDataXml. La representación XML se adapta a un subconjunto de esquema ExcelToXml.xsd, que puede buscar en el subdirectorio doc del directorio de instalación. La salida del procesador está en la codificación UTF-16LE. Si una transformación recibe la entrada del procesador, debe definir la codificación de entrada en UTF-16LE. El procesador admite la versión Excel 97 y posterior. Accede a su entrada directamente, no a través de la aplicación de Excel. No es necesario instalar Excel en el equipo. El procesador es compatible tanto con el formato XLS como con el formato XLSX. Este componente se implementa en Java y requiere la configuración correcta del entorno en tiempo de ejecución de Java (JRE).

ExcelToXml El procesador de documentos ExcelToXml convierte documentos de Microsoft Excel en XML.

Referencia de componentes de procesador de documentos

71

La siguiente tabla describe las propiedades del procesador de documentos ExcelToXml: Propiedad

Descripción

enabled

Define el valor de param2 o param3.

param1

Define las hojas del libro de Excel para incluirlo en el XML. En la salida XML, cada hoja está representada por un elemento . param1 se llama include_sheets y tiene solo una propiedad, value.

param2

Determina si el procesador de documentos incluye celdas vacías en el XML de salida. param2 se llama include_empty_cells y tiene solo una propiedad, enabled, que tiene las siguientes opciones: - Seleccionado. La salida incluye celdas vacías. - Borrado. La salida omite celdas vacías. El valor predeterminado es seleccionado.

param3

Determina si el procesador de documentos incluye el código macro de Excel en el XML de salida. param3 se llama include_macro_information y tiene solo una propiedad, enabled, que tiene las siguientes opciones: - Seleccionado. El procesador de documentos incluye el código macro. - Borrado. El procesador de documentos omite el código macro. El valor predeterminado es borrado.

value

Define una lista de las siguientes opciones: - La cadena "All". La salida incluye todas las hojas. - Contenedores de datos que contienen los nombres de hojas. La salida incluye solamente las hojas con nombre. Si especifica una hoja de que no existe en el libro, el procesador genera un elemento que contiene un mensaje de advertencia. El resto de hojas se procesan con normalidad. La opción predeterminada es Todos.

El XML conserva los datos, las fórmulas, el formato y el código macro que existían en el documento de Excel original. Si solamente se requieren los datos, utilice el procesador ExcelToDataXml, que ofrece una salida más pequeña y mejor rendimiento. La representación XML se ajusta al esquema ExcelToXml.xsd, que está en el subdirectorio doc del directorio de instalación. La salida del procesador está en la codificación UTF-16LE. Si una transformación recibe la entrada del procesador, debe definir la codificación de entrada en UTF-16LE. El procesador admite la versión Excel 97 y posterior. Accede a su entrada directamente, no a través de Excel. No es necesario instalar Excel en el equipo. Este componente se implementa en Java y requiere la configuración correcta del entorno en tiempo de ejecución de Java (JRE).

ExcelToXml_03_07_10 El procesador de documentos ExcelToXml_03_07_10 convierte los siguientes archivos a XML: ¨ Archivos XLSX creados con Microsoft Excel 2007 o 2010 ¨ Archivos XLS creados con Microsoft Excel 2003, 2007 o 2010

ExpandFrameSet El procesador de documentos ExpandFrameSet abre todos los marcos de un documento HTML. Utilice este procesador de documentos cuando el documento de origen de un analizador sea un esquema de marcos HTML. El analizador se ejecuta en el contenido de todos los marcos.

72

Capítulo 8: Procesadores de documentos

ExternalJavaPreProcessor El procesador de documentos ExternalJavaPreProcessor ejecuta un procesador de documentos definido por el usuario que se implementa en Java. La siguiente tabla describe las propiedades del procesador de documentos ExternalJavaPreProcessor: Propiedad

Descripción

jclass

Define la ruta de la clase de Java.

jmethod

Define el método de ejecución.

Este componente se implementa en Java y requiere la configuración correcta del entorno en tiempo de ejecución de Java (JRE). Nota: Este componente se ha dejado de utilizar. El editor de IntelliScript lo muestra para scripts anteriores. No se usa en scripts nuevos. En su lugar, cree un procesador de documentos de Java personalizado. Para obtener más información, consulte “Desarrollar un componente personalizado en Java” en la página 325.

ExternalPreProcessor El procesador de documentos ExternalPreProcessor ejecuta un procesador de documentos definido por el usuario que se implementa como un C++ DLL. La siguiente tabla describe las propiedades del procesador de documentos ExternalPreProcessor: Propiedad

Descripción

importar

Define un DLL en la carpeta ExternLib\Usuarios.

Nota: Este componente se ha dejado de utilizar. El editor de IntelliScript lo muestra para scripts anteriores. No se usa en scripts nuevos. En su lugar, cree un procesador de documentos C o C++ personalizado. Para obtener más información, consulte “Desarrollar un componente personalizado en C o C++” en la página 326.

HIPAAValidator El procesador de documentos HIPAAValidator valida los mensajes HIPAA y genera reconocimientos HIPAA. El proyecto HIPAA_Validation de la biblioteca HIPAA utiliza este procesador. La siguiente tabla describe las propiedades del procesador de documentos HIPAAValidator: Propiedad

Descripción

param1

La propiedad param1 recibe el nombre validation_params y sólo tiene una propiedad, value, que tiene las siguientes opciones: - LDNSB - Validador

param2

Define el tipo de validación. La propiedad param2 recibe el nombre types_to_validate y sólo tiene una propiedad, value. Los valores válidos son del 1 al 7.

Referencia de componentes de procesador de documentos

73

Propiedad

Descripción

param3

Define el formato de salida de informe de errores. La propiedad param3 recibe el nombre report_formats y sólo tiene una propiedad, value, que tiene las siguientes opciones: - HTML. Se utiliza para la visualización en la Herramienta del desarrollador. - XML. Se utiliza para obtener más procesamiento.

param4

Define el tipo de reconocimiento. La propiedad param4 recibe el nombre de generate_acknowledgments y sólo tiene una propiedad, value, que tiene las siguientes opciones: - 277 - 824 - 997 - 999 - TA1

valor

Define el valor de param1, param2, param3 o param4.

Nota: Este procesador de documentos funciona en plataformas Windows y Linux de 64 bits. Antes de que pueda utilizarlo, debe instalar y configurar el paquete complementario de validación de HIPAA en cada equipo donde ejecute HIPAAValidator.

PdfFormToXml_1_00 El procesador de documentos PdfFormToXml_1_00 convierte los formularios PDF en XML. El procesador admite formularios conformes con el estándar de Adobe AcroForms.

PdfToTxt_3_02 El procesador de documentos PdfToTxt_3_02 convierte los archivos PDF en texto. La siguiente tabla describe las propiedades del procesador de documentos PdfToTxt_3_02:

74

Propiedad

Descripción

enabled

Define el valor de param2 o param4.

param1

Define una cadena o una variable que contiene el factor de espaciado de palabras. La propiedad param1 se llama WordSpacingFactor y sólo tiene una propiedad, value, que contiene la cadena o variable. El valor predeterminado es 1.8.

param2

Determina si el documento de salida se optimiza para tablas. La propiedad param2 se llama OptimizeForTables y sólo tiene una propiedad, enabled, que tiene las siguientes opciones: - Seleccionado. El documento de salida se optimiza para tablas. - Borrado. El documento de salida no se optimiza para tablas. El valor predeterminado es borrado.

param3

Define una cadena o una variable que contiene la contraseña. La propiedad param3 se llama Password y sólo tiene una propiedad, value, que contiene la cadena o variable.

param4

La propiedad param4 se llama HideNewPageChar y sólo tiene una propiedad, enabled, que tiene las siguientes opciones: - Seleccionado. Los caracteres de página nuevos están ocultos. - Borrado. Los caracteres de página nuevos no están ocultos. El valor predeterminado es borrado.

Capítulo 8: Procesadores de documentos

Propiedad

Descripción

param5

Define una cadena o una variable que contiene optimizaciones avanzadas. La propiedad param5 se llama AdvancedOptimizations y solo tiene una propiedad, value, que contiene la cadena o variable.

value

Define el valor de param1, param3 o param5.

Nota: Este componente se ha dejado de utilizar. El editor de IntelliScript lo muestra para proyectos anteriores. No se usa en scripts nuevos.

PdfToTxt_4 El procesador de documentos PdfToTxt_4 convierte los archivos PDF en texto o XML. La siguiente tabla describe las propiedades del procesador de documentos PdfToTxt_4: Propiedad

Descripción

param1

Define la tabla de diseño PDF. La propiedad param1 sólo tiene una opción: PdfLayout

value

Define la tabla de diseño PDF. Haga doble clic en la propiedad value para abrir el editor de configuración de tablas.

El editor de configuración de tablas personaliza la forma en que se leen las tablas. Úselo para corregir problemas con la alineación de columnas, el ajuste de palabras, el espaciado de líneas y el desbordamiento de una celda a otra. Para obtener más información, consulte “Editor de configuración de la tablas PdfToTxt_4” en la página 78. El procesador de documentos PdfToTxt_4 genera la salida de texto de forma predeterminada. Utilice el editor de configuración de tabla para seleccionar la salida XML. XML cumple el esquema PDF4.xsd, que puede encontrar en el directorio siguiente: \DataTransformation\doc

Cuando utilice el procesador de documentos PdfToTxt_4, establezca la codificación de entrada en UTF-16LE para habilitar el analizador, asignador o serializador de modo que lea correctamente el documento.

PowerpointToTextML El procesador de documentos PowerpointToTextML convierte presentaciones de Microsoft PowerPoint (PPT) en el esquema XML de TextML. Para obtener más información, consulte “Esquema XML TextML” en la página 77. Este componente admite PowerPoint versión 97 y posteriores. Accede a su entrada directamente y no a través de PowerPoint. No es necesario instalar PowerPoint en el equipo. Este componente se implementa en Java y requiere la configuración correcta del entorno en tiempo de ejecución de Java (JRE).

ProcessByTransformers El procesador de documentos ProcessByTransformers ejecuta un transformador o una secuencia de transformadores en todo el documento. A continuación, una transformación puede ejecutarse en la salida de los transformadores. Defina la lista de transformadores en la línea transformers.

Referencia de componentes de procesador de documentos

75

ProcessorPipeline El procesador de documentos ProcessorPipeline define una secuencia de procesadores de documentos para que se ejecuten en un documento. Utilice este componente si tiene que ejecutar dos o más procesadores de documentos. Defina la lista de procesadores de documentos en la línea pre_processor_list.

RtfToTextML El procesador de documentos RrfToTextML convierte los archivos RTF en el esquema XML de TextML. Para obtener más información, consulte “Esquema XML TextML” en la página 77. La salida del procesador está en la codificación UTF-16LE. Si una transformación recibe la entrada del procesador, debe definir la codificación de entrada en UTF-16LE.

WordToXml El procesador de documentos WordToXml convierte documentos de Microsoft Word en XML. La salida del procesador está en la codificación UTF-16LE. Si una transformación recibe la entrada del procesador, debe definir la codificación de entrada en UTF-16LE. Este componente es compatible con Word 97 y superior. Accede a su entrada directamente, no a través de Microsoft Word. No es necesario instalar Word en el equipo. Este componente se implementa en Java y requiere la configuración correcta del entorno en tiempo de ejecución de Java (JRE).

XmlToDocument_372 El procesador de documentos XmlToDocument_372 convierte datos de XML a formatos de documentos, como PDF o Excel. Puede utilizarlo como un postprocesador para convertir salidas del analizador o del asignador a diferentes tipos de documentos. Este componente utiliza el componente Eclipse de la herramienta de informes e inteligencia empresarial (BIRT) para generar documentos de salida. En BIRT debe configurar un informe que convierta el XML al formato de documento deseado. El procesador XmlToDocument_372 ejecuta el informe. Para obtener más información sobre BIRT, consulte http://www.eclipse.org/birt. La siguiente tabla describe las propiedades del procesador de documentos XmlToDocument_372:

76

Propiedad

Descripción

param1

La ruta y el nombre del archivo *.rptdesign de BIRT. La propiedad param1 se denomina report_file y solo contiene la propiedad value, que contiene la ruta y el nombre de archivo.

param2

El formato del documento de salida. La propiedad param2 se denomina output_format y contiene la propiedad value, que tiene las siguientes opciones: - pdf. Documento PDF. - doc. Documento de Microsoft Word. - xls. Libro de Microsoft Excel. - ppt. Presentación de Microsoft PowerPoint. - html. Página web HTML. - ps. Documento PostScript. El valor predeterminado es pdf.

Capítulo 8: Procesadores de documentos

Propiedad

Descripción

param3

Una variable que contiene la ubicación del archivo *.rptdesign. La propiedad param3 se denomina report_location y contiene la propiedad value, que apunta a la variable. El valor predeterminado es $VarServiceInfo/*s/ServiceLocation.

valor

Contiene el valor de param1, param2 o param3.

Nota: En vigor en la versión 9.5.1, el procesador XmlToDocument está desactualizado. El editor de IntelliScript sigue mostrando el preprocesador XmlToDocument en los scripts existentes, pero ya no puede añadir el preprocesador a nuevo scripts. Utilice el preprocesador XmlToDocument_372 en su lugar.

XmlToExcel El procesador de documentos XmlToExcel convierte documentos XML a formato Microsoft Excel. El procesador opera en una representación XML de un libro de Excel. La representación XML debe estar en la codificación UTF-16LE y debe ajustarse al esquema ExcelToXml.xsd. Puede encontrar el esquema en el subdirectorio doc del directorio de instalación. El archivo de esquema se proporciona para su información. Puede usar el procesador sin añadir el esquema al proyecto. El procesador invierte la operación de ExcelToXml. Por ejemplo, puede utilizar ExcelToXml para convertir un libro de Excel a XML. A continuación, puede cambiar algunos de los datos XML y utilizar XmlToExcel para volver a convertir los datos a un libro de Excel. Este componente es compatible con Excel 97 y superior. Escribe su salida directamente, no a través de Microsoft Excel. No es necesario instalar Excel en el equipo. Este componente se implementa en Java y requiere la configuración correcta del entorno en tiempo de ejecución de Java (JRE).

Esquema XML TextML Algunos procesadores de documentos convierten documentos en vocabulario XML llamado TextML. Se trata de un vocabulario XML simple para guardar el contenido del documento sin diseño. El esquema TextML, textML.xsd, está disponible en la subcarpeta \doc de la carpeta de instalación. A continuación encontrará un ejemplo de documento TextML. TextML Sample Tex Tomiller Acme Gizmos, Inc. 2004-03-14T14:39:00 2004-03-12T09:15:00 Tex Tomiller 16 105 2

This is a sample of the TextML XML vocabulary.

TextML saves document content without layout information.



Esquema XML TextML

77

Editor de configuración de la tablas PdfToTxt_4 El editor de configuración de tablas personaliza la forma en que el procesador de documentos PdfToTxt_4 convierte las tablas en documentos PDF. Utilice el editor de configuración de tablas si la configuración predeterminada del procesador de documentos PdfToTxt_4 no presenta correctamente la alineación de columnas, el ajuste de palabras, el espaciado de líneas o el desbordamiento de una celda a otra. Nota: La interfaz de usuario para el editor de configuración de tablas solo aparece en inglés. 1.

Añada un analizador, asignador, serializador o un AdditionalInputPort al script.

2.

En la propiedad exmple_source, establezca la propiedad pre_processor en PdfToTxt_4.

3.

En la propiedad pre_processor, haga doble clic en la propiedad value. Aparecerá el editor de configuración de tablas. El panel superior muestra el documento PDF de entrada y el panel inferior muestra la salida de PdfToTxt_4. Los comandos de edición de tablas aparecen en la barra de herramientas en la parte superior de la ventana. Puede hacer clic con el botón derecho para mostrar un menú de edición.

4.

Busque una tabla en el documento PDF y haga clic en Añadir tabla. El nombre de la tabla aparece en el campo Tables y en el campo Name.

5.

Seleccione Utilizar expresiones regulares. . En el campo Inicio de tabla, introduzca una expresión regular que defina el vértice superior izquierdo de la tabla. Sugerencia: Utilice los encabezados de las dos primeras columnas como la expresión regular. Añada tantos encabezados de columna como sea necesario para hacer a Inicio de página único. Separe los encabezados por un solo espacio en blanco, incluso si las columnas están muy separadas.

6.

En el campo Fin de tabla, introduzca una expresión regular que defina el texto situado inmediatamente después de la tabla. Nota: El valor de Fin de tabla debe aparecer en el cuerpo del documento, y no en un pie de página.

7.

Haga clic en Procesar. El editor muestra la configuración de tabla que PdfToTxt_4 detecta. La parte superior e inferior de la tabla aparecen como líneas azules horizontales. Los bordes de columna predeterminados aparecen como líneas rojas verticales.

8.

Para editar los bordes de columna, realice uno o más de los pasos siguientes: ¨ Arrastre un borde de columna a la derecha o la izquierda para cambiar su posición. ¨ Haga clic en Añadir columna para añadir una columna. ¨ Haga clic en Quitar columna y seleccione un borde de columna para eliminar una columna.

Nota: Si la tabla contiene celdas fusionadas horizontalmente, PdfToTxt_4 podría truncar las entradas. 9.

Examine la ventana de salida para confirmar que la tabla se ha convertido correctamente. Si no es así, corrija las definiciones de tablas.

10.

Repita los pasos 1-9 para cada tabla del documento PDF.

11.

Haga clic en Aceptar para volver a la Herramienta del desarrollador. Una cadena XML que define la configuración de tabla aparece en la propiedad value del procesador de documentos PdfToTxt_4.

78

Capítulo 8: Procesadores de documentos

Opciones del editor La siguiente tabla describe los controles y campos en editor de configuración de tablas PdfToTxt_4. Control o campo

Descripción

Acercar

Haga la vista de PDF más grande.

Alejar

Haga la vista de PDF más pequeña.

Ajustar anchura

Muestra el documento PDF según la anchura de la ventana.

Página anterior

Vaya a la página anterior.

Página siguiente

Vaya a la página siguiente.

Buscar

Busque una cadena en el PDF.

Añadir tabla

Añada una tabla a la configuración.

Rem. Tabla

Quite una tabla de la configuración.

Añadir columna

Añada un borde de columna a la tabla actual.

Rem. Columna

Elimine el borde de la columna seleccionada actualmente.

Proceso

Aplique las definiciones de tabla actuales. Haga clic en Procesar después de cada tabla y cada acción de columna relacionada aplicar esa acción.

Tablas

Una lista de tablas definidas en el PDF de entrada. Puede seleccionar una tabla haciendo clic en ella.

Nombre

Nombre de la tabla seleccionada actualmente.

Inicio de tabla

Una expresión que define la esquina superior izquierda de la tabla.

Final de tabla

Una expresión que define el primer texto después de la tabla.

Encabezado de página

Una expresión que define el final del encabezado de la página. Utilice esta opción para excluir el encabezado del procesamiento de tablas.

Pie de página

Una expresión que define el final del pie de página de la página. Utilice esta opción para excluir el pie de página del procesamiento de tablas.

Utilizar expresiones regulares

Si se selecciona, el procesador interpreta el Inicio de la tabla, el Final de la tabla, el Encabezado de página y el Pie de página como expresiones regulares y busca texto coincidente. Si no se selecciona, el procesador interpreta estos campos como texto literal.

Volver a calcular en tiempo de ejecución

Si se selecciona esta opción, PdfToTxt_4 ignora las configuraciones de tablas que se especifiquen mediante el editor de configuración de tablas. Esta característica es útil si las tablas de un archivo PDF son bastante simples para que PdfToTxt_4 las procese sin configuración especial. Por ejemplo, suponga una instrucción financiera en PDF simple que contiene una tabla cuyas columnas pueden variar ligeramente de mes a mes. Seleccione la opción Volver a calcular en tiempo de ejecución para que PdfToTxt_4 ajuste los anchos de columna en tiempo de ejecución.

Editor de configuración de la tablas PdfToTxt_4

79

Control o campo

Descripción

Volver a calcular ahora

Si ha cambiado la definición de tabla, por ejemplo cambiando los bordes de columna o añadiendo un Encabezado de página o Pie de página, haga clic en Volver a calcular ahora para actualizar la definición de la tabla.

Página

Número de la página PDF mostrado actualmente.

Salida como XML

Genera la salida PdfToTxt_4 como XML en lugar de texto.

Delimitador

Especifique un carácter para utilizar como separador de columnas en la salida de texto. El valor predeterminado es una barra vertical (|).

Aceptar

Haga clic para guardar la configuración de tabla y volver a la Herramienta del desarrollador.

Cancelar

Haga clic para volver a la Herramienta del desarrollador sin guardar la configuración de la tabla.

Ayuda de navegación de tabla

La ayuda de navegación de tablas muestra el número de veces que una tabla se encuentra en el documento PDF. Un ejemplo de ayuda de navegación es Tabla "Tabla 1" encontrado 2 veces. Las flechas junto a esta información le permiten saltar hacia delante y atrás por las instancias de la misma estructura de la tabla.

Ejemplo de conversión de PDF Este ejemplo ilustra el procedimiento de configuración de tabla PdfToTxt_4 mediante un proyecto de analizador de ejemplo y un documento PDF de ejemplo. El procesador de entrada es un pequeño informe financiero en formato PDF. El informe contiene algo de texto y dos tablas. Utilice el editor de configuración de tabla para asegurarse de que el procesador convierte las tablas correctamente en texto.

Configurar la primera tabla 1.

Configure un analizador y asigne el documento PDF como el example_source. Haga doble clic en la propiedad value para abrir el editor de configuración de tabla.

2.

En la pantalla PDF, localice la primera tabla.

3.

Configure el inicio de la tabla = GID RMS ID, los encabezados de las dos primeras columnas de la tabla. Tenga en cuenta que la expresión distingue entre mayúsculas y minúsculas.

4.

Configure el final de la tabla = Envío de transacciones de intercambio, el primer texto que sigue a la tabla. El editor muestra la configuración de la tabla.

5.

Si es necesario, ajuste la definición de la tabla y las columnas. Puede arrastrar, añadir o quitar bordes de columna.

Configurar la segunda tabla La segunda tabla se extiende a varias páginas. 1.

Haga clic en Añadir tabla. El sistema muestra la Tabla 2 en los campos Tablas y Nombre.

80

2.

Establezca Inicio de la tabla = Acciones de cotización de comercio.

3.

Establezca Final de la tabla = Conclusión, el primer cuerpo de texto después de la tabla.

Capítulo 8: Procesadores de documentos

4.

Haga clic en Procesar para configurar la tabla.

5.

Ajuste los bordes de la derecha de las columnas Acciones de comercio y Divisa.

6.

Realice los siguientes pasos para eliminar el encabezado y el pie de página del documento de salida: a.

Establezca Encabezado de página = Ganancia/Pérdida.

b.

Establezca Pie de página = Página [1-9].

c.

Haga clic en Procesar.

Editor de configuración de la tablas PdfToTxt_4

81

CAPÍTULO 9

Formatos Este capítulo incluye los siguientes temas: ¨ Resumen de formatos, 82 ¨ Propiedades de formato estándar, 83 ¨ Referencia de componentes de formato, 83 ¨ Referencia de componentes de delimitadores, 89 ¨ Referencia de componentes de preprocesador de formatos, 94

Resumen de formatos La propiedad format de un analizador define el formato de los documentos para que se procese la transformación. El valor de la propiedad es uno de los siguientes componentes de formato: BinaryFormat CustomFormat HtmlFormat RtfFormat TextFormat XmlFormat

El formato tiene propiedades propias, que definen cómo interpreta y procesa la entrada el analizador. Dentro de un formato, puede anidar los siguientes subcomponents:

82

Subcomponente

Descripción

Delimitador

Define una jerarquía de caracteres o cadenas que organizan la información en el documento, tales como saltos de líneas y tabulaciones.

Preprocesador de formatos

Limpia el origen antes de que el analizador inicie la búsqueda de anclajes.

Transformador predeterminado

Realiza operaciones predefinidas en la salida de cada anclaje.

Propiedades de formato estándar La tabla siguiente describe las propiedades estándar de los componentes de formato: Propiedad

Descripción

default_transformers

Define una lista de transformadores que el analizador aplica a la salida de cada anclaje de contenido.

delimiters

Define la estructura de información en el documento. Puede seleccionar una de las siguientes opciones: - CommaDelimited. Los campos de datos están separados por comas. - DelimiterHierarchy. Los campos de datos están separados o rodeados por caracteres de texto. - HL7. Los campos de datos están separados según se indica en el estándar HL7. - Positional. Los campos de datos están definidos por el número de caracteres entre ellos. - PostScript. Los campos de datos están definidos según el formato PostScript. - RTF. Los campos de datos están definidos según el formato RTF. - SGML. Los campos de datos están definidos según el formato SGML. - SpaceDelimited. Los campos de datos están separados por espacios. - TabDelimited. Los campos de datos están separados por tabulaciones. Para obtener más información, consulte “Referencia de componentes de delimitadores” en la página 89.

name

Define una etiqueta descriptiva para el componente. Esta etiqueta aparece en el archivo de registro y en la vista Eventos. Utilice la propiedad name para identificar qué componente ha causado el evento.

pre_processor

Define un preprocesador de formato que procesa la entrada después de cualquier procesador de documentos que ha definido con la propiedad pre_processor de example_source. Puede seleccionar una de las siguientes opciones: - HtmlProcessor. Convierte todas las combinaciones de tabulador, espacio o nueva línea en un carácter de un solo espacio. No se restringe a documentos HTML. - RtfProcessor. Normaliza archivos RTF. El valor predeterminado es en blanco.

remark

Define un comentario definido por el usuario que describe el objetivo o la acción del componente.

Referencia de componentes de formato Los componentes de formato definen el formato de los documentos de entrada. Defina los componentes de formato en la propiedad format de un Analizador.

BinaryFormat El formato BinaryFormat procesa archivos binarios y archivos de texto que desea tratar como un búfer de bytes binarios. La siguiente tabla describe las propiedades del formato BinaryFormat: Propiedad

Descripción

default_transformers

Define una lista de transformadores que el analizador aplica a la salida de cada anclaje de contenido.

Propiedades de formato estándar

83

Propiedad

Descripción El valor predeterminado es vacío.

delimiters

Define la estructura de información en el documento. Puede seleccionar una de las siguientes opciones: - CommaDelimited. Los campos de datos están separados por comas. - DelimiterHierarchy. Los campos de datos están separados o rodeados por caracteres de texto. - HL7. Los campos de datos están separados según se indica en el estándar HL7. - Positional. Los campos de datos están definidos por el número de caracteres entre ellos. - PostScript. Los campos de datos están definidos según el formato PostScript. - RTF. Los campos de datos están definidos según el formato RTF. - SGML. Los campos de datos están definidos según el formato SGML. - SpaceDelimited. Los campos de datos están separados por espacios. - TabDelimited. Los campos de datos están separados por tabulaciones. Para obtener más información, consulte “Referencia de componentes de delimitadores” en la página 89. El valor predeterminado es Positional.

name

Define una etiqueta descriptiva para el componente. Esta etiqueta aparece en el archivo de registro y en la vista Eventos. Utilice la propiedad name para identificar qué componente ha causado el evento.

pre_processor

Define un preprocesador de formato que procesa la entrada después de cualquier procesador de documentos que se haya definido para la propiedad pre_procesador del example_source. Puede seleccionar una de las siguientes opciones: - HtmlProcessor. Convierte todas las combinaciones de tabulador, espacio o nueva línea en un carácter de un solo espacio. No se restringe a documentos HTML. - RtfProcessor. Normaliza archivos RTF. El valor predeterminado es vacío.

remark

Define un comentario definido por el usuario que describe el objetivo o la acción del componente.

CustomFormat El formato CustomFormat es un formato definido por el usuario para el procesamiento de cualquier tipo de documento de origen. La siguiente tabla describe las propiedades del formato CustomFormat: Propiedad

Descripción

default_transformers

Define una lista de transformadores que el analizador aplica a la salida de cada anclaje de contenido. El valor predeterminado es vacío.

delimiters

Define la estructura de información en el documento. Puede seleccionar una de las siguientes opciones: - CommaDelimited. Los campos de datos están separados por comas. - DelimiterHierarchy. Los campos de datos están separados o rodeados por caracteres de texto. - HL7. Los campos de datos están separados según se indica en el estándar HL7. - Positional. Los campos de datos están definidos por el número de caracteres entre ellos. - PostScript. Los campos de datos están definidos según el formato PostScript. - RTF. Los campos de datos están definidos según el formato RTF. - SGML. Los campos de datos están definidos según el formato SGML. - SpaceDelimited. Los campos de datos están separados por espacios. - TabDelimited. Los campos de datos están separados por tabulaciones. Para obtener más información, consulte “Referencia de componentes de delimitadores” en la página 89.

84

Capítulo 9: Formatos

Propiedad

Descripción El valor predeterminado es DelimiterHierarchy.

name

Define una etiqueta descriptiva para el componente. Esta etiqueta aparece en el archivo de registro y en la vista Eventos. Utilice la propiedad name para identificar qué componente ha causado el evento.

pre_processor

Define un preprocesador de formato que procesa la entrada después de cualquier procesador de documentos que se haya definido para la propiedad pre_procesador del example_source. Puede seleccionar una de las siguientes opciones: - HtmlProcessor. Convierte todas las combinaciones de tabulador, espacio o nueva línea en un carácter de un solo espacio. No se restringe a documentos HTML. - RtfProcessor. Normaliza archivos RTF. El valor predeterminado es vacío.

remark

Define un comentario definido por el usuario que describe el objetivo o la acción del componente.

Ejemplo Un documento de origen tiene la siguiente estructura: Ron Evelyn

Lehrer && 547329876:27 Kern && 9875424:

53

Cada línea del documento es un registro que contiene un nombre de persona, número de ID y edad. Los campos están separados por los símbolos && y :. Los campos contienen varios caracteres de espacio en ubicaciones aleatorias. El análisis unidireccional de este documento se realiza mediante CustomFormat. En la propiedad delimitaders del formato, asigne una DelimiterHierarchy que contenga los símbolos: newline && :

En la propiedad default_transformers, asigne el HtmlProcessor, que elimina los espacios extra de la salida.

HtmlFormat El formato htmlformat define el formato de los archivos HTML. La siguiente tabla describe las propiedades del formato HtmlFormat: Propiedad

Descripción

default_transformers

Define una lista de transformadores que el analizador aplica a la salida de cada anclaje de contenido.

Referencia de componentes de formato

85

Propiedad

Descripción El valor predeterminado es la siguiente lista de transformadores: - RemoveTags. Quita etiquetas HTML. - HtmlEntitiesToASCII. Convierte entidades HTML en sus equivalentes ASCII. - HtmlProcessor. Convierte todas las combinaciones de tabulador, espacio o nueva línea en un carácter de un solo espacio. - RemoveMarginSpace. Quita espacios iniciales y finales.

delimiters

Define la estructura de información en el documento. Puede seleccionar una de las siguientes opciones: - CommaDelimited. Los campos de datos están separados por comas. - DelimiterHierarchy. Los campos de datos están separados o rodeados por caracteres de texto. - HL7. Los campos de datos están separados según se indica en el estándar HL7. - Positional. Los campos de datos están definidos por el número de caracteres entre ellos. - PostScript. Los campos de datos están definidos según el formato PostScript. - RTF. Los campos de datos están definidos según el formato RTF. - SGML. Los campos de datos están definidos según el formato SGML. - SpaceDelimited. Los campos de datos están separados por espacios. - TabDelimited. Los campos de datos están separados por tabulaciones. Para obtener más información, consulte “Referencia de componentes de delimitadores” en la página 89. El valor predeterminado es SGML.

name

Define una etiqueta descriptiva para el componente. Esta etiqueta aparece en el archivo de registro y en la vista Eventos. Utilice la propiedad name para identificar qué componente ha causado el evento.

pre_processor

Define un preprocesador de formato que procesa la entrada después de cualquier procesador de documentos que se haya definido para la propiedad pre_procesador del example_source. Puede seleccionar una de las siguientes opciones: - HtmlProcessor. Convierte todas las combinaciones de tabulador, espacio o nueva línea en un carácter de un solo espacio. No se restringe a documentos HTML. - RtfProcessor. Normaliza archivos RTF. El valor predeterminado es HtmlProcessor.

remark

Define un comentario definido por el usuario que describe el objetivo o la acción del componente.

RtfFormat El formato RtfFormat define el formato de los archivos RTF. La siguiente tabla describe las propiedades del formato RtfFormat:

86

Propiedad

Descripción

default_transformers

Define una lista de transformadores que el analizador aplica a la salida de cada anclaje de contenido.

Capítulo 9: Formatos

Propiedad

Descripción El valor predeterminado es la siguiente lista de transformadores: - RtfToASCII. Quita palabras de control RTF de la salida. - RemoveRtfFormatting. Quita instrucciones de formato RTF del texto. - HtmlProcessor. Convierte todas las combinaciones de tabulador, espacio o nueva línea en un carácter de un solo espacio. - RemoveMarginSpace. Quita espacios iniciales y finales.

delimiters

Define la estructura de información en el documento. Puede seleccionar una de las siguientes opciones: - CommaDelimited. Los campos de datos están separados por comas. - DelimiterHierarchy. Los campos de datos están separados o rodeados por caracteres de texto. - HL7. Los campos de datos están separados según se indica en el estándar HL7. - Positional. Los campos de datos están definidos por el número de caracteres entre ellos. - PostScript. Los campos de datos están definidos según el formato PostScript. - RTF. Los campos de datos están definidos según el formato RTF. - SGML. Los campos de datos están definidos según el formato SGML. - SpaceDelimited. Los campos de datos están separados por espacios. - TabDelimited. Los campos de datos están separados por tabulaciones. Para obtener más información, consulte “Referencia de componentes de delimitadores” en la página 89. El valor predeterminado es RTF.

name

Define una etiqueta descriptiva para el componente. Esta etiqueta aparece en el archivo de registro y en la vista Eventos. Utilice la propiedad name para identificar qué componente ha causado el evento.

pre_processor

Define un preprocesador de formato que procesa la entrada después de cualquier procesador de documentos que se haya definido para la propiedad pre_procesador del example_source. Puede seleccionar una de las siguientes opciones: - HtmlProcessor. Convierte todas las combinaciones de tabulador, espacio o nueva línea en un carácter de un solo espacio. No se restringe a documentos HTML. - RtfProcessor. Normaliza archivos RTF. El valor predeterminado es RtfProcessor.

remark

Define un comentario definido por el usuario que describe el objetivo o la acción del componente.

TextFormat El formato TextFormat define el formato de los archivos de texto. Utilícelo junto con un procesador de documentos para procesar otros tipos de documentos. Por ejemplo, puede utilizarlo con el procesador de documentos PdfToTxt_4 para procesar documentos PDF. La siguiente tabla describe las propiedades del formato TextFormat: Propiedad

Descripción

default_transformers

Define una lista de transformadores que el analizador aplica a la salida de cada anclaje de contenido.

Referencia de componentes de formato

87

Propiedad

Descripción El valor predeterminado es la siguiente lista de transformadores: - HtmlProcessor. Convierte todas las combinaciones de tabulador, espacio o nueva línea en un carácter de un solo espacio. - RemoveMarginSpace. Quita espacios iniciales y finales.

delimiters

Define la estructura de información en el documento. Puede seleccionar una de las siguientes opciones: - CommaDelimited. Los campos de datos están separados por comas. - DelimiterHierarchy. Los campos de datos están separados o rodeados por caracteres de texto. - HL7. Los campos de datos están separados según se indica en el estándar HL7. - Positional. Los campos de datos están definidos por el número de caracteres entre ellos. - PostScript. Los campos de datos están definidos según el formato PostScript. - RTF. Los campos de datos están definidos según el formato RTF. - SGML. Los campos de datos están definidos según el formato SGML. - SpaceDelimited. Los campos de datos están separados por espacios. - TabDelimited. Los campos de datos están separados por tabulaciones. Para obtener más información, consulte “Referencia de componentes de delimitadores” en la página 89. El valor predeterminado es DelimiterHierarchy.

name

Define una etiqueta descriptiva para el componente. Esta etiqueta aparece en el archivo de registro y en la vista Eventos. Utilice la propiedad name para identificar qué componente ha causado el evento.

pre_processor

Define un preprocesador de formato que procesa la entrada después de cualquier procesador de documentos que se haya definido para la propiedad pre_procesador del example_source. Puede seleccionar una de las siguientes opciones: - HtmlProcessor. Convierte todas las combinaciones de tabulador, espacio o nueva línea en un carácter de un solo espacio. No se restringe a documentos HTML. - RtfProcessor. Normaliza archivos RTF. El valor predeterminado es vacío.

remark

Define un comentario definido por el usuario que describe el objetivo o la acción del componente.

XmlFormat El formato XmlFormat define el formato de archivos XML. El analizador trata el documento XML de entrada como texto ordinario. Puede definir delimitadores, anclajes y otros componentes tal y como lo hace para un documento de texto normal. La siguiente tabla describe las propiedades del formato XmlFormat:

88

Propiedad

Descripción

default_transformers

Define una lista de transformadores que el analizador aplica a la salida de cada anclaje de contenido.

Capítulo 9: Formatos

Propiedad

Descripción El valor predeterminado es la siguiente lista de transformadores: - RemoveTags. Quita etiquetas XML desde la salida. - HtmlEntitiesToASCII. Convierte entidades XML en sus equivalentes ASCII. - HtmlProcessor. Convierte todas las combinaciones de tabulador, espacio o nueva línea en un carácter de un solo espacio. - RemoveMarginSpace. Quita espacios iniciales y finales.

delimiters

Define la estructura de información en el documento. Puede seleccionar una de las siguientes opciones: - CommaDelimited. Los campos de datos están separados por comas. - DelimiterHierarchy. Los campos de datos están separados o rodeados por caracteres de texto. - HL7. Los campos de datos están separados según se indica en el estándar HL7. - Positional. Los campos de datos están definidos por el número de caracteres entre ellos. - PostScript. Los campos de datos están definidos según el formato PostScript. - RTF. Los campos de datos están definidos según el formato RTF. - SGML. Los campos de datos están definidos según el formato SGML. - SpaceDelimited. Los campos de datos están separados por espacios. - TabDelimited. Los campos de datos están separados por tabulaciones. Para obtener más información, consulte “Referencia de componentes de delimitadores” en la página 89. El valor predeterminado es SGML.

name

Define una etiqueta descriptiva para el componente. Esta etiqueta aparece en el archivo de registro y en la vista Eventos. Utilice la propiedad name para identificar qué componente ha causado el evento.

pre_processor

Define un preprocesador de formato que procesa la entrada después de cualquier procesador de documentos que se haya definido para la propiedad pre_procesador del example_source. Puede seleccionar una de las siguientes opciones: - HtmlProcessor. Convierte todas las combinaciones de tabulador, espacio o nueva línea en un carácter de un solo espacio. No se restringe a documentos HTML. - RtfProcessor. Normaliza archivos RTF. El valor predeterminado es HtmlProcessor.

remark

Define un comentario definido por el usuario que describe el objetivo o la acción del componente.

Referencia de componentes de delimitadores El componente de delimitadores define una jerarquía de caracteres o cadenas que organiza la información en un documento, tales como líneas nuevas, espacios, tabulaciones, comas o barras verticales. También puede utilizar un patrón comodín para definir los delimitadores. El concepto de delimitador es aplicable tanto a documentos estructurado de forma estricta que utilizan caracteres de delimitador predefinidos para separar los campos de datos, como para texto poco estructurado o documentos HTML que están delimitados por saltos de línea y marcado sintáctico. El concepto de delimitador también incorpora datos estructurados por posición, donde los campos se ubican en desplazamientos fijos de otro campo. El analizador utiliza los delimitadores para determinar los criterios de búsqueda de anclajes Content configurados con la opción LearnByExample. Por ejemplo, suponga que configura un formato con el componente de delimitadores TabDelimited. Este define una jerarquía utilizando los siguientes caracteres como delimitadores: Newline Tab

Referencia de componentes de delimitadores

89

Puede definir un anclaje Content que se encuentra dos caracteres de tabulación después del anclaje Marker precedente en el origen de ejemplo, como este: MARKERabcCONTENT

Cuando un analizador procesa un documento de origen, busca los dos tabuladores Content después del Marker. En un segundo ejemplo, puede definir un anclaje Content que se encuentre tres saltos de línea y un tabulador después de un anclaje Marker, en el origen de ejemplo. MARKER abcde fghijklmnop pqrstCONTENT

Dentro de las líneas intermedias, los tabuladores no se cuentan porque los saltos de línea son mayores en la jerarquía. Muchos de los componentes de delimitadores, tales como TabDelimited o CommaDelimited, muestran una jerarquía predefinida de delimitadores, que se pueden editar según sea necesario. El componente DelimiterHierarchy no tiene una jerarquía predefinida. Puede insertar los delimitadores que necesite.

CommaDelimited El componente de delimitadores CommaDelimited define la siguiente jerarquía de delimitadores: Newline Comma

Utilice CommaDelimited cuando cada línea de un archivo de texto contenga un registro y cada registro contenga campos de datos separados por comas. Puede añadir más delimitadores o editar la jerarquía predefinida. Utilice el mismo procedimiento que se utiliza para editar el componente DelimiterHierarchy.

Ejemplo En el documento de origen, un anclaje Content sigue a un anclaje Marker mediante dos líneas. En la tercera línea, hay tres comas, además de cualquier otro de texto antes del anclaje Content: MARKER abcdef, ghij abc, def,ghi,CONTENT

Si asigna el componente CommaDelimited, el analizador conoce a partir del origen de ejemplo que el anclaje Content siempre sigue al Marker mediante dos saltos de línea y tres comas. En otro documento de origen, el analizador encontrará el siguiente anclaje Content: MARKER xyz, uvw, rst ,,,CONTENT

Delimitador El subcomponente Delimiter define un carácter de delimitador o una cadena que separa anclajes. Puede añadir subcomponentes Delimiter a una jerarquía de delimitadores.

90

Capítulo 9: Formatos

La siguiente tabla describe las propiedades del subcomponente Delimiter: Propiedad

Descripción

search

Define el delimitador. Puede seleccionar una de las siguientes opciones: - NewlineSearch. El delimitador es una nueva línea. - PatternSearch. El delimitador se definido mediante una expresión regular. - TextSearch. El delimitador es una cadena explícita o una cadena que recupera de forma dinámica del documento de origen. Para obtener más información, consulte “Referencia de componentes de Searcher” en la página 148.

Ejemplo El componente TabDelimited contiene dos subcomponentes Delimitador. El primero utiliza NewLineSearch para definir el carácter de nueva línea como un delimitador. El segundo utiliza TextSearch para definir el carácter de tabulador como un delimitador. El tabulador se representa gráficamente como un carácter «. El componente SpaceDelimited también contiene dos subcomponentes Delimitador. El primero es idéntico al de TabDelimited. El segundo utiliza una PatternSearch para definir cualquier cadena de uno o varios espacios como un

delimitador. La expresión regular []+ significa "uno o más caracteres de espacio". Tenga en cuenta el espacio entre los corchetes.

DelimiterHierarchy El componente de delimitadores DelimiterHierarchy le permiten definir una jerarquía de delimitadores personalizada. En DelimiterHierarchy, puede anidar cualquier número de componentes Delimitador o EnclosingDelimiters.

Ejemplo En el documento de origen de ejemplo, suponga que loa anclajes están separados por comas y metidos entre corchetes, así: MARKER,,[CONTENT]

Puede definir un DelimiterHierarchy que contiene: comma //definido como un componente Delimitador [] //definido como un componente EnclosingDelimiters

De este ejemplo, el analizador sabe que el anclaje Content sigue al marcador por dos comas y está metido entre corchetes. En otro documento de origen, el analizador encontrará el siguiente anclaje Content: MARKER,abc,def[CONTENT]

Ejemplo en línea Para un ejemplo en línea, consulte samples\Projects\EDI\EDI.cmw. El ejemplo utiliza una DelimiterHierarchy para definir la nueva línea y caracteres asterisco (*) como delimitadores, en un documento de origen EDI.

EnclosingDelimiters El subcomponente EnclosingDelimiters define un par de caracteres o cadenas de delimitadores, que rodean anclajes. Puede añadir subcomponentes EnclosingDelimiters en una jerarquía de delimitadores. Puede utilizar este componente para definir los delimitadores de paréntesis curvos ({}) que rodean los bloques de código de programa C.

Referencia de componentes de delimitadores

91

La siguiente tabla describe las propiedades del subcomponente EnclosingDelimiters: Propiedad

Descripción

opening

Define el delimitador de apertura.

closing

Define el delimitador de cierre.

escape_sequence

Define un prefijo que hace que el analizador omita una instancia del delimitador de apertura o cierre en el documento de origen.

HL7 El delimitador HL7 define la siguiente jerarquía de delimitadores para analizar mensajes HL7: newline vertical bar (|) caret (^) or tab

Puede añadir más delimitadores o editar la jerarquía predefinida. El procedimiento es el mismo como para el componente DelimiterHierarchy. El estándar de mensajería HL7 permite que un mensaje defina sus propios delimitadores. Puede analizar la declaración del delimitador en un mensaje HL7 y crear una definición de delimitador dinámica del siguiente modo: 1.

Utilice los delimitadores Content para recuperar los caracteres del delimitador de un encabezado de mensaje HL7. Almacenar los caracteres en variables.

2.

Añada componentes Delimitador al componente HL7.

3.

Para cada componente Delimitador , asigne TextSearch .

4.

Bajo el componente TextSearch asigne una de las variables en la propiedad texto .

Positional El componente de delimitadores Positional hace que el analizador busque anclajes de contenido contando los caracteres desde el inicio del ámbito de búsqueda. Para obtener más información sobre el ámbito de búsqueda, véase “Resumen de anclajes” en la página 109.

Ejemplo En el ejemplo documento de origen, suponga que un anclaje Content sigue a un anclaje Marker mediante cinco caracteres, posiblemente incluyendo espacios, tabuladores y así sucesivamente: MARKERab cdCONTENTefg

Si asigna el componente Positional, el analizador conoce a partir del origen de ejemplo que el anclaje Content siempre sigue al Marker mediante cinco caracteres y que tiene siete caracteres de largo. En otro documento de origen, el analizador encontrará el siguiente anclaje Content: MARKERdcbaCONTENTzy,xwv

Cómo utilizar el análisis posicional junto con los delimitadores No se pueden añadir los delimitadores al componente Positional. En ocasiones, puede que desee definir un analizador que utiliza delimitadores para localizar algunos anclajes y una definición posicional para otros anclajes. Para ello, seleccione otro componente de delimitadores. No utilice el componente Positional. Para definir la ubicación de un anclaje de forma posicional, puede asignar la opción OffsetSearch en las propiedades del anclaje. 92

Capítulo 9: Formatos

PostScript El componente de los delimitadores PostScript define una jerarquía de delimitadores que se utiliza para el análisis de documentos Adobe PostScript. No se puede editar la jerarquía de delimitadores del componente PostScript.

RTF El componente de los delimitadores RTF define una jerarquía de delimitadores para analizar documentos RTF. No se puede editar la jerarquía de delimitadores del componente RTF.

SGML El componente de delimitadores SGML define la jerarquía de los delimitadores para analizar documentos SGML, HTML y XML. No se puede editar la jerarquía del delimitador del componente SGML.

SpaceDelimited El componente de los delimitadores SpaceDelimited define la siguiente jerarquía del delimitador: Newline String of one or more space characters

SpaceDelimited se utiliza cuando cada línea de un archivo de texto contiene un registro y cada registro contiene campos de datos separados por espacios. Puede añadir más delimitadores o editar la jerarquía predefinida. El procedimiento es el mismo que para el componente DelimiterHierarchy.

Ejemplo En el documento de origen de ejemplo, suponga que un anclaje Content sigue a un anclaje Marker mediante dos líneas. En la tercera línea, hay dos caracteres de espacio y una cadena que contiene varios espacios antes del anclaje Content, así: MARKER abcdef abc def ghi

CONTENT

Si asigna el componente SpaceDelimited, el analizador conoce a partir del origen de ejemplo que el Content siempre sigue al Marker mediante dos líneas y tres cadenas de espacios. En otro documento de origen, el analizador encontrará el siguiente anclaje Content: MARKER xyz ghi def abc CONTENT

TabDelimited El componente de los delimitadores TabDelimited define la siguiente jerarquía del delimitador: Newline Tab

TabDelimited se utiliza cuando cada línea de un archivo de texto contiene un registro y cada registro contiene campos de datos separados por tabulaciones.

Referencia de componentes de delimitadores

93

Puede añadir más delimitadores o editar la jerarquía predefinida. El procedimiento es el mismo que para el componente DelimiterHierarchy.

Ejemplo En el documento de origen de ejemplo, suponga que un anclaje Content sigue a un anclaje Marker mediante dos líneas. En la tercera línea, hay tres caracteres de tabulador, además de cualquier otro de texto, antes del anclaje Content, así: MARKER abcdef abc de,fghiCONTENT

Si asigna el componente TabDelimited, el analizador conoce a partir del origen de ejemplo que el anclaje Content siempre sigue al Marker mediante dos líneas y tres fichas. En otro documento de origen, el analizador encontrará el siguiente anclaje Content: MARKER xyz CONTENT

Referencia de componentes de preprocesador de formatos La siguiente lista describe las diferencias entre los preprocesadores de formato y los procesadores de documento: ¨ Puede asignar un procesador de documento a la propiedad pre_processor de un puerto de entrada, ubicado en

la propiedad example_source o sources_to_extract de un analizador. Puede asignar un preprocesador de formator solo a la propiedad pre_procesador de un formato. ¨ Un procesador de documentos se ejecuta en el documento de origen antes de realizar cualquier otra operación. ¨ Un preprocesador de formato se ejecuta en el texto antes buscar anclajes. La salida del preprocesador de formato

no se muestra. Para obtener más información, consulte “Resumen de procesadores de documentos” en la página 69.

HtmlProcessor El preprocesador del formato HtmlProcessor, que también funciona como transformador, normaliza los espaciones en blanco en función de convenciones HTML. Reduce cualquier combinación de tabuladores, saltos de línea y caracteres de espacio en un solo espacio en blanco. Utilice este preprocesador para normalizar espacios en blanco en cualquier tipo de texto. No se restringe a documentos HTML.

RtfProcessor El preprocesador del formato RtfProcessor normaliza el código de los archivos RTF.

94

Capítulo 9: Formatos

CAPÍTULO 10

Contenedores de datos Este capítulo incluye los siguientes temas: ¨ Resumen de contenedores de datos, 95 ¨ Esquemas XML, 95 ¨ Cómo utilizar un esquema para asignar anclajes, 99 ¨ Generar un XML válido, 100 ¨ Variables, 102 ¨ Referencia de componentes de variable, 105 ¨ Contenedores de datos de varias ocurrencias, 106

Resumen de contenedores de datos Un contenedor de datos es un objeto que tiene uno de los siguientes tipos: ¨ Un elemento XML ¨ Un atributo XML ¨ Una variable

Los elementos y atributos XML normalmente se utilizan para el almacenamiento permanente. Un analizador, por ejemplo, almacena su salida en contenedores de datos de estos tipos. Las variables se utilizan para el almacenamiento temporal. Por ejemplo, un analizador puede almacenar datos que extrae de un documento de origen en una variable. Puede procesar los datos antes de crear la salida. Cada contenedor de datos tiene un tipo de datos. En el caso de elementos y atributos, los contenedores de datos se defininen en un esquema XML que debe facilitar. Las variables se han definido en un esquema interno, que puede personalizar añadiendo variables definidas por el usuario.

Esquemas XML Cuando se crea un analizador, un serializador o un asignador, se deben facilitar uno o varios esquemas XML que definan la estructura del XML. El esquema define los elementos y los atributos que la transformación puede utilizar. Debe añadir el esquema a su proyecto. Entonces podrá asignar el contenido de un documento a los elementos y atributos definidos en el esquema.

95

Acerca de los esquemas Los scripts requieren esquemas XML que definan las estructuras XML de entrada o salida. Los esquemas deben cumplir con la recomendación del esquema XML, publicada por el World Wide Web Consortium. Los archivos de esquema normalmente tienen una extensión de archivo *.xsd. El siguiente es un ejemplo simple de un esquema:

El esquema define los elementos y atributos que pueden aparecer en un documento XML. La sintaxis permite a un autor de esquemas especificar la jerarquía y secuencia de elementos, si los elementos son obligatorios o necesarios, sus tipos de datos, sus posibles valores y muchas otras características. El anterior esquema de ejemplo define una estructura XML como la siguiente: Ron Lehrer 547329876 27

Si se sigue el esquema, se puede observar la correspondencia entre las definiciones como

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.