Guía de administración Versión 5.5 © 2013 Pitney Bowes Software Inc. Todos los derechos reservados. Este documento puede incluir información confidencial y exclusiva de propiedad de Pitney Bowes Inc. y/o sus subsidiarias y compañías asociadas. Portrait Software, el logotipo de Portrait Software, Portrait y la marca Portrait de Portrait Software son las marcas comerciales de Portrait Software International Limited y se prohíbe su uso o explotación de cualquier forma sin previa autorización escrita expresa de Portrait Software International Limited. Reconocimiento de marcas comerciales Otros nombres de productos, nombres de compañías, marcas, logotipos y símbolos a los que se hace referencia en la presente pueden ser marcas comerciales o marcas comerciales registradas de sus propietarios registrados. Soporte técnico de Portrait Software Si necesita ayuda con algún tema no abordado en esta documentación, consulte la Base de conocimientos de nuestro sitio web http://support.portraitsoftware.com y siga los enlaces que llevan al producto. También puede descargar otra documentación de Portrait Software desde el sitio. Si no tiene nombre de usuario ni contraseña, o no los recuerda, comuníquese con nosotros a través de uno de los canales mencionados a continuación. Si encuentra un problema en el uso, la instalación o la documentación de este producto, comuníquese con nosotros a través de cualquiera de los siguientes métodos: Correo electrónico:software.support@pb.com Teléfono • EE. UU./Canadá 1-800-335-3860 (línea gratuita) • Resto del mundo +44 800 840 0001 Cuando notifique un problema, nos resultará útil la siguiente información: • • • • El nombre de la aplicación de software. Las circunstancias en las que surgió el problema. Los mensajes de error que recibió (si hubiera). La versión del software que utiliza. Pitney Bowes Software Inc. October 03, 2013 Contenidos Capítulo 1: Introducción.............................................................................................7 Objetivo................................................................................................................................8 Público previsto...................................................................................................................8 Documentación relacionada...............................................................................................8 Capítulo 2: Visión general del producto...................................................................9 ¿Qué es Interaction Optimizer?.......................................................................................10 Arquitectura.......................................................................................................................10 Componentes clave...........................................................................................................11 Portrait Shared Server...................................................................................................11 Portrait Foundation.........................................................................................................11 Base de datos de SQL Server.......................................................................................11 Servicio web de Interaction Optimizer...........................................................................11 Componentes opcionales.................................................................................................12 Portrait Dialogue............................................................................................................12 Portrait Miner..................................................................................................................12 Microsoft SharePoint......................................................................................................12 Capítulo 3: Integración de IO...................................................................................13 Integración de datos.........................................................................................................14 Visión general................................................................................................................14 Edición de la configuración de Interaction Optimizer.....................................................14 Uso del control de versiones de la configuración .........................................................15 Cómo extender el origen de datos de decisión..............................................................15 Cómo crear etiquetas categóricas para utilizar en el Diseñador de selecciones..........18 Cómo rellenar el origen de datos de decisión ...............................................................19 Cómo implementar cambios en la integración de datos ...............................................28 Resolución de problemas de la integración de datos....................................................30 Integración de recomendaciones....................................................................................31 Referencia del servicio web de WCF ............................................................................36 Integración de datos de resultados.................................................................................57 Tablas operativas...........................................................................................................57 Tablas de resumen y esquema de informes..................................................................63 Capítulo 4: Personalización de IO...........................................................................69 Configuración de actividades de promoción comercial................................................70 Configuración de tipos de actividades...........................................................................70 Configuración de subtipos de actividades.....................................................................70 Configuración de prioridades de actividades.................................................................71 Configuración de canales.................................................................................................72 Adición de un nuevo canal a la página de actividad de promoción comercial...............73 Modificación del texto de los íconos de canales en la página de actividad de promoción comercial.73 Eliminación de un canal que se muestra en la página de actividad de promoción comercial.74 Configuración de tipos de respuesta..............................................................................74 Procesamiento previo y posterior de llamadas de servicio de IO................................76 Resolución de ID de cliente y agente externos .............................................................76 Creación de funciones de decisión personalizadas......................................................77 Capítulo 5: Administrar IO........................................................................................79 Administración de usuarios de Portrait HQ....................................................................80 Autenticación de usuarios de Portrait HQ......................................................................80 Autorización de usuarios de Portrait HQ........................................................................81 Cambio de permisos de usuario de HQ.........................................................................82 Movimiento de grabaciones de simulación a un sistema de IO diferente...................84 Cómo mover datos de campaña a un sistema IO distinto............................................85 Configuración de la clasificación predictiva (integración de Miner)............................86 Visión general................................................................................................................86 Configuración de la extensión PSS Connector para Portrait Miner ..............................87 Asignación de campos analíticos a campos de IO........................................................87 Exportación de reglas desde Decision Studio...............................................................88 Exportación de reglas de Portrait Miner.........................................................................88 Exportación de reglas mediante el uso de líneas de comandos....................................89 Configuración de clasificación adaptiva.........................................................................91 Configuración de rangos de campos.............................................................................91 Configuración de audiencias secundarias.....................................................................93 Configurar audiencias secundarias................................................................................93 4 Portrait IO 5.5 Suprimir identificadores de audiencia secundaria al registrar una respuesta de supresión.94 Configuración de procesos de negocio..........................................................................95 Importación de procesos de negocio de fuentes externas............................................95 Implementación de adaptadores personalizados para recuperar metadatos................97 Carga de listas de clientes...............................................................................................98 Registro..............................................................................................................................99 Registro de errores........................................................................................................99 Mantenimiento.................................................................................................................100 Estado..........................................................................................................................100 Administración de registros de transacciones de la base de datos.............................101 Capítulo 6: Administración de Portrait HQ...........................................................103 Configuración de Portrait HQ.........................................................................................104 Configuración de la base de datos de Portrait Shared Repository .............................104 Configuración de Sharepoint.......................................................................................104 Configuración de la velocidad de cuadros...................................................................104 Configuración del registro de la aplicación Portrait HQ ..............................................104 Nueva configuración de un separador distinto.............................................................105 Habilitar la aprobación de campañas............................................................................105 Configuración de Portrait Shared Server......................................................................106 Configuración de autenticación de Windows ..............................................................106 Configuración del registro de Portrait Shared Server..................................................106 Configuración de informes de campaña......................................................................107 Configuración de enlaces rápidos en MyView.............................................................108 Habilitación de SSL/HTTPS.........................................................................................109 Capítulo 7: Resolución de problemas de IO.........................................................113 Investigación inicial de problemas................................................................................114 ¿Quién?.......................................................................................................................114 ¿Qué?..........................................................................................................................114 ¿Dónde?......................................................................................................................114 ¿Cuándo?....................................................................................................................115 ¿Cómo?.......................................................................................................................115 Definición del problema..................................................................................................115 Problema del tiempo de ejecución...............................................................................115 Problema de instalación...............................................................................................118 Otros problemas...........................................................................................................119 Herramientas de resolución de problemas...................................................................119 Guía de administración 5 Contadores de rendimiento..........................................................................................119 Recuentos de modelos y nodos...................................................................................120 Minivolcado..................................................................................................................120 Uso de auditoría de reglas...........................................................................................121 Capítulo 8: Resolución de problemas de HQ.......................................................123 Error al autenticar en Portrait HQ luego de instalar SharePoint ...............................124 Problemas con las credenciales de seguridad al ejecutar Portrait HQ.....................124 Resolución de problemas de aplicaciones interrumpidas cuando se intenta iniciar sesión.124 Problemas para cargar Portrait Shared Services.........................................................125 Creación de nombres principales de servicio para Portrait Shared Services .........125 Registro............................................................................................................................126 Cómo cambiar la cuenta utilizada como cuenta de servicio luego de haber instalado PSS ................................................................................................................................................126 No se pueden ver tareas creadas que aparezcan en 'MyView' de Portrait HQ..........126 Aparece el mensaje de error 'Failed retrieving task list' en Portrait HQ....................127 6 Portrait IO 5.5 Capítulo Introducción En esta sección: • Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8 • Público previsto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8 • Documentación relacionada . . . . . . . . . . . . . . . . . . . . . . . .8 1 Objetivo Objetivo En este documento se describe cómo administrar Interaction Optimizer 5.5 Público previsto La administración de Interaction Optimizerestá destinada a los administradores de sistemas y analistas de negocios que necesitan administrar o personalizar una instalación de Interaction Optimizer. En este documento no se da por sentado que usted ya tiene conocimientos de aplicaciones de terceros o Portrait Software. No obstante, se supone que está razonablemente familiarizado con la administración de sistemas objetivo, así como también que tiene los niveles de acceso correspondientes a estos sistemas. Documentación relacionada Documento Interaction Optimizer Interaction Optimizer • Portrait HQ Portrait HQ • \Documentation\ • Notas de la versión de Interaction Optimizer 5.5 • Interaction Optimizer Interaction Optimizer • Interaction Optimizer Interaction Optimizer • Portrait Foundation Portrait Foundation 4.4 • \Foundation Media\Software\Documentation\InstallaUpdate 4 tion\ • Guía de instalación de base de datos v23.2 • \Foundation Media\Software\Documentation\Database\ Sugerencia: Todos los documentos también están disponibles en el sitio web de soporte técnico de Portrait Software: http://support.portraitsoftware.com 8 Portrait IO 5.5 Capítulo Visión general del producto En esta sección: • • • • ¿Qué es Interaction Optimizer? . . . . . . . . . . . . . . . . . . . . .10 Arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10 Componentes clave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11 Componentes opcionales . . . . . . . . . . . . . . . . . . . . . . . . .12 2 ¿Qué es Interaction Optimizer? ¿Qué es Interaction Optimizer? Interaction Optimizer (IO) funciona con sus aplicaciones del cliente existentes con el objetivo de permitir la conversión de las interacciones entrantes del cliente en oportunidades para obtener ingresos. Interaction Optimizer permite proporcionar ofertas de ventas, servicios y retención dirigidas (1 a 1) a clientes individuales, en un momento específico de la interacción, en cualquier canal, por ej., la web, llamada entrante y correo electrónico. Interaction Optimizer ofrece inteligencia en cualquier punto de la interacción con el cliente al aprovechar los datos en tiempo real de una organización, con el fin de garantizar que el cliente reciba la oferta adecuada en el momento adecuado. Portrait Interaction Optimizer permite la conexión de los datos del cliente a través de unidades de negocios y canales distintos, y sin duplicación. Se pueden administrar diversos canales del cliente (a través de campañas de promoción comercial) desde una única vista utilizando HQ Dashboard de Interaction Optimizer. Se pueden agregar o modificar campañas de promoción comercial "sobre la marcha" para conseguir un impacto inmediato y una capacidad de simulación permite que los encargados de promociones comerciales realicen rápidos análisis de situaciones hipotéticas con el objetivo de determinar la combinación adecuada de campañas, antes de enviarlas a producción. Arquitectura 10 Portrait IO 5.5 Capítulo 2: Visión general del producto Componentes clave Portrait Shared Server Portrait Shared Server comprende cinco componentes clave: • Portrait Shared Services (PSS). Aporta el conjunto de servicios web que permite que las aplicaciones de Portrait Suite (Portrait Explorer, Miner, Dialogue e Interaction Optimizer) se comuniquen entre sí. • Portrait Shared Repository (PSR). Proporciona bases de datos de Portrait Shared Repository y Portrait Data Warehouse. • SharePoint Tasks (opcional). Proporciona una solución integrada de administración de tareas. Las tareas asignadas a individuos en Portrait HQ aparecen en SharePoint, a fin de que tengan una mayor visibilidad. Nota: SharePoint Tasks es opcional para Portrait Dialogue y Portrait Interaction Optimizer, y no es necesario para Portrait Explorer. • Portrait Reports (opcional). Genera un conjunto de informes prediseñados acerca del desempeño operativo de Portrait Interaction Optimizer y Portrait Dialogue. Nota: Portrait Reports es opcional para Portrait Dialogue y Portrait Interaction Optimizer, y no es necesario para Portrait Explorer • Portrait HQ. Portrait HQ dispone de un tablero central para la planificación, el inicio y el control de campañas de promoción comercial a gran escala (1 a 1). Además de proporcionar vistas de resumen en vivo (actualizadas al minuto) de su posición de promoción comercial general, Portrait HQtambién ofrece datos en tiempo real que le permiten evaluar el progreso de sus campañas y tomar medidas inmediatas, de ser necesario. Portrait Foundation Portrait Foundation es un sistema altamente configurable que permite proporcionar un círculo completo de administración de relaciones con clientes (CRM). Portrait Foundation ofrece un conjunto integral de funciones en el servidor de CRM independiente del canal mediante el que un cliente elige comunicarse con la organización. Interaction Optimizer (IO) usa Portrait Foundation para configurar procesos de recuperación de datos personalizados que se adaptan a la implementación de IO. Además, el servicio web de IO se implementa mediante el uso de modelos de procesos de Portrait Foundation. Base de datos de SQL Server Interaction Optimizer usa una base de datos de SQL Server para almacenar su configuración, así como también datos en la memoria caché utilizados para informar las reglas de negocios que evalúa Interaction Optimizer. Servicio web de Interaction Optimizer El servicio web de Interaction Optimizer es la interfaz a través de la que los usuarios pueden solicitar recomendaciones a Interaction Optimizer. Guía de administración 11 Componentes opcionales Componentes opcionales Portrait Dialogue Portrait Dialogue convierte las interacciones de clientes en un diálogo bidireccional conectado entre todos los canales para lograr una mayor participación del cliente. A diferencia de los sistemas de administración de campañas tradicionales, optimizados para generar posibles clientes en lugar de administrar el ciclo de vida de los clientes, Portrait Dialogue ofrece fases prediseñadas automatizadas de varios pasos que automatizan un diálogo como una conversación de dos vías y, en consecuencia, disminuye la carga de trabajo interna, incrementa la relevancia, la puntualidad y la participación. Interaction Optimizer (IO) opcionalmente puede usar componentes de Portrait Dialogue para administrar usuarios de Portrait HQ. Los componentes son: • Portrait Dialogue Server • Portrait Dialogue Portrait Dialogue Server • Portrait Dialogue database. Portrait Miner Portrait Miner es una eficaz solución de análisis predictivo que permite a los profesionales de análisis del cliente y a los usuarios comerciales de igual forma obtener una perspectiva clara de sus clientes, con el objetivo de comprender y predecir mejor el comportamiento futuro. Portrait Miner se puede utilizar para prever comportamientos y tendencias que puedan afectar las ganancias, como la fuga de clientes, las oportunidades de ventas cruzadas y ventas mejoradas, el planeamiento y la segmentación de campañas, la satisfacción y lealtad del cliente y el valor del ciclo de vida del cliente. Interaction Optimizer (IO) usa el repositorio de reglas analíticas de Portrait Miner para retener reglas analíticas utilizadas para calificar recomendaciones de IO. Microsoft SharePoint Microsoft SharePoint es una aplicación web altamente escalable que permite administrar el contenido de la compañía. Por lo general se utiliza para almacenar documentos de la compañía, tal como documentos de Word y Excel, pero también puede ampliarse y ofrecer funciones alternativas, tal como espacios wiki y de colaboración. Interaction Optimizer y Portrait HQ usan SharePoint para ayudar a administrar las tareas relacionadas con una campaña de promoción comercial. Durante la fase de planeamiento, puede asignar tareas a individuos y, luego, mostrarlas en SharePoint para una mejor visibilidad. El uso de SharePoint también permite que los destinatarios muestren sus tareas en Microsoft Outlook. 12 Portrait IO 5.5 Capítulo Integración de IO En esta sección: • Integración de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14 • Integración de recomendaciones . . . . . . . . . . . . . . . . . . .31 • Integración de datos de resultados . . . . . . . . . . . . . . . . .57 3 Integración de datos Integración de datos Visión general Las reglas y calificaciones que usa en Interaction Optimizer se informan mediante datos específicos del sitio. Por ejemplo, se recomienda que use reglas o valoraciones que prueben la edad del cliente. Es recomendable probar las habilidades de un agente que entrega una recomendación o el contexto en el que se entrega la recomendación (por ejemplo, en qué momento del día). El mecanismo de Interaction Optimizer que define los datos que informan las reglas o valoraciones se llama origen de datos de decisión. El origen de datos de decisión es un objeto de datos de Portrait con el nombre Prompt delivery data source. Debe modificar este objeto de datos de modo que incluya todas las propiedades necesarias para informar las reglas y valoraciones que tiene intención de usar en su sitio. El origen de datos de decisión del ejemplo proporcionado con Interaction Optimizer incluye los siguientes objetos: • • • • un objeto que representa al cliente un objeto que representa al agente que entrega la recomendación un objeto que representa otra información, por ejemplo, el canal colecciones que representan el historial de interacciones anteriores del cliente, por ejemplo, solicitudes, atenciones y respuestas Consumer Party Type define las propiedades del objeto del cliente. Agent Party Type define las propiedades del objeto del agente. Puede modificar estos tipos de parte de modo que reflejen las propiedades de la parte correspondientes a su sitio o puede crear nuevas definiciones del tipo de partes para representar al cliente y al agente. Para cada tipo de parte, existen límites en cuanto al número de propiedades disponibles. Si necesita ampliar el número de propiedades más allá de este límite, puede crear un nuevo Party Type y derivarlo de un Party Type existente. Para hacerlo, establezca el Parent Attribute en la definición Party Type. Por ejemplo, el Consumer Party Type se deriva del Individual Party Type y así incluye todas las propiedades para el Consumer e Individual. El origen de datos de decisión que se proporciona con Interaction Optimizer es un ejemplo. Se espera que vuelva a configurar este ejemplo para satisfacer las necesidades de la implementación de Interaction Optimizer. En esta sección se describe cómo llevar a cabo esta configuración. Edición de la configuración de Interaction Optimizer 1. Inicie sesión en su máquina de Interaction Optimizery abra Configuration Suite, haga clic en Inicio > Todos los programas > Portrait > MyPortrait > Configuration Suite. 2. Conéctese utilizando los datos Superuser y Password. 3. Cargue la Interaction Optimizer Interaction Optimizer: • Haga clic en el icono Open de la barra de herramientas (o File Open). • Seleccione Interaction Optimizer workspace. 14 Portrait IO 5.5 Capítulo 3: Integración de IO • Haga clic en OK. La configuración de Interaction Optimizer se muestra en el panel Explorerque se encuentra del lado izquierdo. Uso del control de versiones de la configuración Version Control permite que muchos usuarios trabajen en la configuración de Interaction Optimizer y ofrece una manera de rastrear los cambios realizados. La siguiente es una metodología simple para usar el control de versiones: 1. Cambie la vista de la configuración de Published a Latest. 2. Desproteja un elemento para editarlo. En la mayoría de los casos, no podrá editar el elemento sin primero desprotegerlo. 3. Edite los cambios. 4. Pruebe los cambios. 5. Confirme los cambios. 6. Implemente los cambios a un sistema de producción. Para ver el último estado de configuración La vista Published muestra la configuración disponible para todos los usuarios. No podrá desproteger elementos de configuración de la vista Published, para hacerlo deberá utilizar la vista Latest, que luego moverá toda configuración desprotegida al estado Draft. 1. En Configuration Suite, desplácese a View > Settings. 2. En la ficha Configuration, seleccione Latest. Para ver el estado de Published Configuration La vista Published muestra la configuración disponible para todos los usuarios. 1. En Configuration Suite, desplácese a View > Settings. 2. En la ficha Configuration, seleccione Published. Para desproteger un elemento para su edición: 1. Seleccione el elemento en la ficha Explorer de Configuration Suite. 2. Haga clic en el icono de la barra de herramientas Checkout item. 3. Verifique que el elemento ahora aparezca desprotegido. Para proteger un elemento para todos los usuarios de configuración: 1. Seleccione el elemento en la ficha Explorer de Configuration Suite. 2. Haga clic en el ícono de la barra de herramientas Check in item. 3. Verifique que el elemento ahora aparezca protegido. Cómo extender el origen de datos de decisión 1. En Configuration Suite, navegue hasta Prompt delivery data source en Supporting definitions > Data objects > Campaigns . Guía de administración 15 Cómo extender el origen de datos de decisión 2. Haga clic con el botón secundario en Open item para ver los detalles de Decision Data Source. 3. Asegúrese de que el objeto de datos Prompt delivery data source esté desprotegido para la edición. Para obtener más información, consulte: Crear sistemas administrados de servicios web. 4. Para crear una nueva propiedad del objeto de datos de origen de datos de decisión: • • • • Haga clic con el botón secundario sobre el objeto de datos y seleccione New Property. Proporcione un Name y un System Name para la propiedad. Seleccione el Data type. Cuando agregue un objeto de datos como una nueva propiedad, seleccione la Category y el Type. 5. Para crear una nueva propiedad de referencia del objeto de datos de origen de datos de decisión: • Haga clic con el botón objeto de datos y seleccione New Reference Property. • Proporcione un Name y un System Name para la propiedad. • Seleccione Reference data group. Para obtener más información, consulte: Cómo crear un grupo de datos de referencia. 6. Para editar una propiedad ya existente, seleccione la propiedad de origen de datos de decisión y haga clic con el botón secundario en Properties. Para editar Retrieve prompt Delivery Data Source Model 1. En Configuration Suite, navegue hasta Retrieve prompt delivery data source en Supporting definitions > Models > Data Access models . 2. Verifique que este modelo esté desprotegido para la edición: consulte Cómo utilizar el sistema de control de la versión predeterminada. 3. Haga clic con el botón secundario en Edit para abrir Process Modeler en este modelo. Para insertar un nuevo nodo de acceso a datos en Process Model 1. En la ventana Process Modeler Palette, expanda los nodos de Portrait de la derecha. 2. Seleccione el nodo Data Access y arrástrelo hasta la ventana principal. 3. Inserte el nodo Data Access en el flujo de procesos: • Elimine el vínculo original donde se insertará el nuevo nodo. Por ejemplo, elimine el vínculo entre el nodo And y el nodo End. • Haga clic sobre el icono de vínculo que se encuentra en la barra de herramientas. • Haga clic en el nodo que se encuentra a la izquierda del nuevo nodo Data Access y luego haga clic en el nodo Data Access para agregar el vínculo. Este es el vínculo de entrada al nodo Data Access. Por ejemplo, establezca un vínculo entre el nodo And y el nodo Data Access. • Repita la operación con el nodo que se encuentra a la derecha del nuevo nodo Data Access. Este es el vínculo de salida del nodo Data Access. Por ejemplo, establezca un vínculo entre el nodo Data Access y el nodo End. 4. Edite las propiedades del nodo Data Access, haga clic con el botón secundario y seleccione Edit node: • Seleccione el System correspondiente a la nueva fuente de datos a la que desea acceder. • Seleccione la Transaction de los datos particulares, para insertarla en el contexto. • Haga clic en OK. 16 Portrait IO 5.5 Capítulo 3: Integración de IO 5. Defina el estado de las salidas de los vínculos FAIL/OK: • • • • • Haga clic con el botón secundario sobre el vínculo de salidas Data Access y haga clic en OK. En la ventana Palette, arrastre un nodo End hacia la ventana principal. Establezca un vínculo entre el nodo Data Access y el nuevo nodo End. Haga clic con el botón secundario en el nuevo vínculo y seleccione FAIL. Edite la salida del nuevo nodo End: 1. Haga clic con el botón secundario en el nodo Edit. 2. Marque FAIL. 3. Haga clic en OK. Hacer una asignación del nodo Data Access con las entradas y las salidas de transacciones de acceso de datos 1. 2. 3. 4. 5. 6. 7. Asegúrese de poder ver los paneles de Node Inputs y Node Outcomes. En cada una de las entradas, haga clic en la lista Context y seleccione la entrada DATA. Repita la operación con Node Outcomes. En el menú Model, haga clic en Validates. Guarde el modelo. Cierre el Process Modeler. Implemente los cambios en la configuración. Cómo crear un objeto de datos 1. Navegue hasta Supporting definitions > Data objects en la ficha Explorer de Configuration Suite. 2. Cree una nueva categoría de objeto de datos (si corresponde) o desplácese hasta una categoría ya existente. • Haga clic con el botón secundario en Data Object y seleccione New Data Object category • Proporcione un Name y un System Name para la nueva categoría de objeto de datos (no debe contener espacios). 3. Cree un nuevo objeto de datos o haga clic con el botón secundario en Open item para editar uno ya existente: • Haga clic con el botón secundario en Data object category y seleccione New Data Object • Proporcione un Name y Type para el nuevo objeto de datos. 4. Agregue propiedades al nuevo objeto de datos: • En la ficha Explorer, haga clic con el botón secundario sobre el nuevo objeto de datos y seleccione Open item. • En la nueva ficha, seleccione Data Object properties y haga clic con el botón secundario en NewProperty. • Ingrese un Name y un System Name. • Seleccione un Data type. • Para los objetos de datos seleccione una Category y un Type. Guía de administración 17 Cómo crear etiquetas categóricas para utilizar en el Diseñador de selecciones Cómo crear un grupo de datos de referencia 1. Navegue hasta Supporting definitions > Reference data en la ficha Configuration Suite Explorer. • Haga clic derecho en Reference data y seleccione New reference data group • Proporcione un Name y un System Name para el nuevo grupo de datos de referencia (no debe contener espacios). 2. Agregue los valores de datos de referencia en la cuadrícula al indicar el Name y System Name de los elementos. Cómo crear etiquetas categóricas para utilizar en el Diseñador de selecciones El Diseñador de selecciones muestra un conjunto de etiquetas de campos categóricos que permiten elegir las cadenas de una lista, en lugar de introducirlas manualmente. Esto resulta útil para los campos que tienen un conjunto predefinido de valores y permite reducir la cantidad de errores de escritura manual. Para crear un campo categórico: 1. Cree un grupo de datos de referencia que defina el conjunto predefinido de valores. Los valores se pueden ingresar en Configuration Suite, o bien se pueden recuperar de una fuente de datos externa usando una consulta SQL. • Para agregar los valores predefinidos en Configuration Suite: • Navegue hasta Supporting definitions > Reference data en Configuration Suite en la pestaña Explorer . Haga clic derecho en Reference data y seleccione New reference data group. Proporcione un Name y un System Name para el nuevo grupo de datos de referencia (no deben contener espacios). • Ingrese los valores predefinidos en la cuadrícula del grupo de datos de referencia. Ingrese una etiqueta de visualización para el valor en la columna Name y el valor del campo en la columna System Name . O bien, para recuperar los valores predefinidos desde una fuente de datos externa usando SQL: 1. Navegue hasta Supporting definitions > Reference data en Configuration Suite en la pestaña Explorer . Haga clic con el botón secundario en Reference data y seleccione New reference data group. Proporcione un Name y un System Name para el nuevo grupo de datos de referencia (no deben contener espacios). 2. Edite el archivo de configuración Portrait.Mas.Cms.Services.IO.config (en C:\Program Files (x86)\PST\Portrait Shared Server\Portrait Shared Services\bin\config) en un editor de texto. 3. Agregue una entrada dentro de la sección connectionStrings para definir la fuente de datos que proporciona los valores predefinidos. Proporcione un nombre a la conexión e ingrese los detalles de la conexión. Por ejemplo: <connectionStrings> <add name="CustomerData" connectionString="Data Source=(local);Initial Catalog= Customer_DB;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings> 18 Portrait IO 5.5 Capítulo 3: Integración de IO 4. Agregue una entrada groupMemberLookup dentro de la sección groupMemberLookups para el campo categórico. Para el atributo path , ingrese la ruta del campo dentro del origen de datos de decisión (usando la notación de puntos). Para el atributo connection , ingrese el nombre de connectionString configurado en el paso anterior. Para el atributo sql , ingrese la SQL que recupera los valores predefinidos. Esta SQL debe devolver un conjunto de resultados de dos columnas. La primera columna representa el valor del campo categórico; la segunda columna representa la etiqueta del campo. Las filas en el conjunto de resultados deberán ordenarse en función de cómo quiera tener ordenados los valores de campo en el Diseñador de selecciones. Por ejemplo: <groupMemberLookups> <groupMemberLookup path="DecisionsDataSource.Customer.Gender" connection="CustomerData" sql="SELECT DISTINCT Category AS Value, Category AS DisplayName FROM Gender_Lookup ORDER BY DisplayName"/> <groupMemberLookups> Nota: Solo los campos categóricos de cadena pueden ser configurados usando Configuration Suite. Para crear campos categóricos numéricos, utilice una consulta SQL para proporcionar los valores predefinidos. 2. Extienda el origen de datos de decisión y, en lugar de incluir una nueva propiedad de cadena para este campo, inserte una nueva propiedad de referencia y elija el grupo de datos de referencia que creó. Para obtener más información, consulte Cómo extender el origen de datos de decisión en la página 15. 3. Ejecute la herramienta DatasourceDefExporter para exportar campos a HQ. El campo categórico aparecerá en la paleta del campo Diseñador de selecciones. Haga clic en el campo para mostrar las etiquetas para los valores predefinidos. Cómo rellenar el origen de datos de decisión El origen de datos de decisión se debe completar con valores cada vez que Interaction Optimizer ejecute resultados o reglas. Interaction Optimizer completa el origen de datos de decisión utilizando el modelo de acceso a datos configurado como miembro de clase Default de la clase del modelo Prompts Retrieve prompt delivery data source. Debe modificar este modelo de acceso de datos para recuperar todos los datos necesario y completar su origen de datos de decisión. El área de trabajo de Interaction Optimizer ofrece un ejemplo de este modelo de acceso a datos. Se llama Retrieve Prompt Delivery Data Source y se puede encontrar en la sección Supporting definitions > Models > Data access models de la vista Explorer de Configuration Suite. Si utiliza un área de trabajo que no es Interaction Optimizer, debe crear una superposición para la clase del modelo Prompts - Retrieve prompt delivery data source. Se puede encontrar en la sección Supporting definitions > Models > Model classes de la vista Explorer de Configuration Suite. Tras crear una superposición, debe asignar el miembro de clase Default a un modelo preexistente que contenga la lógica de recuperación de datos necesaria. Consulte la documentación de Portrait Foundation para obtener más información acerca de cómo crear una superposición, realizar implementaciones para miembros de la clase de una clase del modelo, y asignar entradas y salidas de una clase del modelo a las de los modelos. Guía de administración 19 Cómo rellenar el origen de datos de decisión El origen de datos de decisión puede completarse mediante el uso de una o dos técnicas: • mediante la recuperación de datos utilizando DAT. • a partir de la entrada de contexto adicional del servicio web GetActions. Esta entrada utiliza exactamente la misma definición que el origen de datos de decisión. Se proporciona una secuencia de comandos para combinar datos de estos dos orígenes, si así se desea. Consulte el modelo de ejemplo. Para cada nuevo origen de datos, agregue un nuevo Managed System. Para obtener más información, consulte Crear un sistema administrado de una base de datos. 1. Para cada tipo de nuevo conjunto de datos para acceder, cree una nueva Data Access Transaction (DAT). Para obtener más información, consulte Crear transacciones de acceso de datos. 2. Para cada nueva DAT que exporte registros (una colección), cree un nuevo objeto de datos para conservar los resultados. 3. Para cada atributo adicional, consulte ‘Cómo extender Origen de datos de decisión’. 4. Extienda la definición del objeto de origen de datos de decisión para que contenga estos datos nuevos. Para obtener más información, consulte Extender el objeto de datos de origen de datos de decisión. 5. Edite el modelo de población de origen de datos de decisión para hacer una asignación entre los archivos DAT y el objeto de origen de datos de decisión. Para obtener información, consulte Editar Delivery Data Source Model de la indicación Retrieve. Consulte la documentación de Portrait Foundation para obtener más información acerca de las funciones de Portrait Host Integration Framework o la integración de datos genéricos de acceso. Cómo crear un sistema administrado de una base de datos 1. Abra la consola de administración de Portrait: Inicio > Todos los programas > Portrait > MyPortrait > Management Console. 2. Desplácese hasta Console Root > Portrait System Configuration > All Servers > Default settings > Generic Access. 3. Haga clic con el botón secundario en Generic Access y seleccione Properties. 4. En el cuadro de diálogo Generic Access Properties, Generic Data Access, haga clic en New para crear una nuevo sistema (conexión a una base de datos). 5. Proporcione un nombre al sistema. 6. Haga clic en Configure para crear nuevas propiedades de vínculos de datos. 7. En la ficha Provider del cuadro de diálogo Data Link Provider, seleccione el proveedor de datos al que desea conectarse (por ejemplo, Microsoft OLE DB Provider for SQL Server). 8. En la ficha Connection: • Seleccione o escriba el nombre del servidor de base de datos. • Escriba un nombre de usuario y una contraseña para la base de datos. • Desplácese hasta la base de datos, en el servidor de bases de datos. 9. Haga clic en OK para crear el New system. La lista de Generic Access Properties ahora contiene el nuevo sistema. 20 Portrait IO 5.5 Capítulo 3: Integración de IO Cómo crear Web Service Managed Systems Para acceder a los datos suministrados por un servicio web: 1. En la ficha Generic Web Service Access del cuadro de diálogo Generic Access Properties, haga clic en New. 2. En el panel System Details, escriba un nombre para el sistema y la dirección URL. 3. Haga clic en OK para cerrar el cuadro de diálogo Generic Access Properties. Cómo crear transacciones de acceso de datos Las transacciones de acceso de datos (DAT) le permiten realizar consultas en sistemas de bases de datos de Interaction Optimizer. Por ejemplo, puede ejecutar SQL parametrizado para ofrecer un conjunto con parámetros de ingreso y extraer un conjunto de campos de salida. 1. Edite la configuración de Interaction Optimizer 2. En la ficha Explorer, desplácese hasta Interaction Optimizer workspace > System extensions > Transactions > Systems. 3. Para crear una nueva DAT, seleccione el sistema por agregar y haga clic con el botón secundario en New Data Access Transactions. 4. Para editar una DAT existente: • Seleccione la DAT en la carpeta System. • Asegúrese de que esté desprotegida una copia editable. • Haga clic con el botón secundario en Properties. 5. Proporcione un Name y una Description para la DAT. 6. Para configurar la ficha Command: • Seleccione si desea ejecutar la SQL statement sin procesar o una Procedure function guardada para acceder a la base de datos. Guía de administración 21 Cómo rellenar el origen de datos de decisión • Si ejecuta la SQL sin procesar, escriba la instrucción SQL SELECT para ver un conjunto de columnas, con una cláusula where y un ? para definir los parámetros de ingreso (por ejemplo, un identificador de cliente). Puede ser más sencillo crear o editar la SQL en otra aplicación (por ejemplo, Wordpad o SQL Server Management Studio) y luego pegarla con el formato de instrucción SQL. • Cree o edite los parámetros de entrada, uno por cada signo de pregunta de la SQL, en orden. • Cree o edite las columnas de salida, una por cada una de las columnas del conjunto de la selección de resultados de SQL. Los nombres de las salidas deben coincidir con los nombres de las columnas del conjunto de resultados. • Para crear una nueva entrada o salida: 1. Haga clic en New en la sección correspondiente. 22 Portrait IO 5.5 Capítulo 3: Integración de IO 2. Proporcione un Name y un System Name para el nuevo parámetro, que no contenga espacios. • El nombre de las entradas debe ser descriptivo pero no es necesario que coincida con ninguna parte de la SQL. • El nombre de las salidas debe coincidir con el nombre de la columna del conjunto de resultados de la SQL. 3. Seleccione el OLEDB data type del parámetro (de acuerdo con el tipo de datos de la base de datos). 4. Seleccione el Interaction Optimizer Data type. 5. Haga clic en OK para crear el parámetro de entrada. • Para editar una entrada o salida, seleccione el nombre y haga clic en Properties. • Si la instrucción seleccionada puede devolver más de una fila en el conjunto de datos (una colección) marque el cuadro Multiple rows en la sección de columnas de salida. • Haga clic en Test para verificar que la configuración de la ficha de comandos sea correcta. 7. Cómo configurar la ficha Inputs: • Haga clic en la ficha Inputs. Guía de administración 23 Cómo rellenar el origen de datos de decisión • Cree un nuevo ingreso de DAT para cada Command input al hacer clic en New. Seleccione nombres de entradas DAT que permitan comprender de dónde provienen los datos. • Haga clic en Edit Mappings para asignar las entradas DAT en las entradas de comandos. • Seleccione una de las Transaction inputs y una Command input, y haga clic en Map para crear una nueva asignación. 24 Portrait IO 5.5 Capítulo 3: Integración de IO • Repita la operación para todas las asignaciones de entradas. • Haga clic en OK para guardar las asignaciones. 8. Cómo configurar la ficha Outputs: • Repita los pasos anteriores para crear DAT OK outputs para asignarlas en Command outputs. • Para definir las Salidas DAT de una colección, cree una salida como un Data object collection data type y seleccione la Data object category y el Type. Guía de administración 25 Cómo rellenar el origen de datos de decisión • Para hacer una asignación de las Transaction outputs de una colección, expanda el objeto de datos y seleccione los atributos individuales para la asignación. DAT de historial de IO IO brinda DAT para recuperar solicitudes, tratamientos y respuestas de registros del historial. Estos pueden utilizarse como parte del modelo de acceso de datos llamado Retrieve Prompt Delivery Data Source si desea filtrar los tratamientos según el historial de IO. A continuación se describen las entradas y salidas DAT. Get request history 26 Nombre del sistema IOGetRequestHistory Package (Paquete) IO Versión 0 Portrait IO 5.5 Capítulo 3: Integración de IO Descripción Recupera el historial de solicitudes para un cliente en particular. Alternativamente puede utilizarse para recuperar un único registro del historial de solicitudes. Entradas Nombre del sistema Tipo Obligatorio Descripción CUSTOMER_ID Cadena No Identificador de cliente opcional. De especificarse, solo se devolverán los registros del historial de tratamiento para este cliente. REQUEST_HISTORY_ID Cadena No ID de registro del historial de solicitudes opcional: de especificarse este ID, solo se devolverá este registro de solicitudes (en caso de encontrarse). Tenga en cuenta que si se especifica un valor para esta entrada, esto anula todos los otros valores de entrada y se ignorará cualquier otro valor de entrada (siempre se devolverá el registro del historial especificado independientemente de qué otras entradas se especifiquen). TIME_PERIOD_UNIT Cadena No Entrada opcional, la cual, en conjunción con la entrada 'Time period unit qty', define el período para el cual se permite la recuperación del historial cuando se recuperan registros del historial. Esta entrada especifica el tipo de unidades de período de tiempo a las que se refiere 'Time period unit qty'. De especificarse el valor, entonces el valor debe ser 'D', 'W', 'M', o 'Y' para día, semana, mes o año respectivamente. Consulte la entrada 'Time period unit qty' para conocer más detalles. TIME_PERIOD_UNIT_QTY Fecha/Hora No Entrada opcional en conjunción con la entrada 'Time period unit'. La entrada especifica la cantidad de unidades de día/semana/mes/año (el tipo de unidad se define en la entrada 'Time period unit') que puede abarcar la recuperación del historial. Tenga en cuenta que la entrada 'Max records' sustituye al período de tiempo especificado, de modo que la cantidad de registros recuperados no excederá el máximo de filas especificado. MAX_RECORDS Fecha/Hora No Entrada opcional para limitar la cantidad máxima de registros del historial que puedan devolverse. DE OMITIRSE, EXISTE LA POSIBILIDAD DE QUE SE RECUPERE UNA GRAN CANTIDAD DE REGISTROS Y ESTO PUEDE AFECTAR EL RENDIMIENTO DEL SISTEMA. Salidas Guía de administración 27 Cómo implementar cambios en la integración de datos Nombre del sistema Tipo Obligatorio REQUEST_HISTORY_COLLECTION ColecN/D ción de objetos de datos Descripción La colección de registros del historial de solicitudes que devuelve la DAT. Get treatment history (igual que lo anterior excepto que se reemplazan las solicitudes por los tratamientos). Get response history (igual que lo anterior excepto que se reemplazan las solicitudes por las respuestas). Cómo implementar cambios en la integración de datos Implementación de los cambios de la configuración 1. Visualice la ficha Deployer en Configuration Suite. 2. Asegúrese de que la lista de nodos implementables esté actualizada al hacer clic sobre el botón Refresh. 3. Haga clic sobre el botón verde Start Deployment que se encuentra en la barra de herramientas (o haga clic en Action > Deployer > Start Deployment). Implementación de la configuración en otro sistema En un entorno de prueba y producción, una vez que la configuración funciona en el entorno de prueba, le sugerimos migrar los cambios al entorno de producción. Dentro de Portrait FoundationConfiguration Suite esto equivale a reimplementar la configuración en una base de datos distinta. Para hacerlo: 1. Desplácese hasta la vista Deployer dentro de Configuration Suite. 2. Haga clic en el icono Select Database ubicado en la barra de herramientas. 3. Seleccione la base de datos en la que desea implementar esta nueva configuración. Nota: No podrá implementar una configuración en estado Draft en una base de datos marcada como Production. Solo podrá implementar la configuración Published en una base de datos Production. 28 Portrait IO 5.5 Capítulo 3: Integración de IO Exportación de campos Decision Data Source a Portrait HQ Una vez que ha configurado el origen de datos de decisión (según se indica en la sección anterior), debe exportar esta definición a Marketing HQ. La exportación se realiza con la herramienta DataSourceDefExporter. La herramienta debe volver a ejecutarse cada vez que cambie la definición del origen de datos de decisión. Cómo configurar la herramienta DatasourceDefExporter La herramienta cuenta con un archivo de configuración ( C:\Program Files (x86)\PST\Portrait Shared Server\Portrait Shared Services\bin\config ) que contiene configuraciones para acceder a los servicios que se utilizan como parte de este proceso de exportación. Los siguientes servicios se utilizan para exportar definiciones de la fuente de datos hacia la base de datos de Portrait Shared Repository: • Servicio Session: muestra los métodos para establecer una sesión en Portrait Shared Services. Se utiliza para iniciar sesión en Portrait Shared Services como parte de este proceso de exportación. • Servicio Metadata: muestra los métodos para guardar las definiciones de origen de datos en la base de datos Portrait Shared Repository. Estos servicios se configuran con el archivo de configuración. Para configurar los servicios deberá editar manualmente el archivo de configuración. Debe cambiar la dirección de destino dentro de la sección de cliente para indicar el servidor web en el que se albergan estos servicios. Si hay campos en el origen de datos de decisión que no desea que estén disponibles como campos en el Diseñador de selecciones de HQ, puede configurar Portrait Shared Services de modo tal que los excluya. Por cada campo que desee excluir, agregue una entrada en el archivo <Carpeta de instalación>\PST\Portrait Shared Server\Portrait Shared Services\bin\config\Portrait.Mas.Cms.Services.IO.config. Este archivo de configuración se encuentra en la máquina que aloja Portrait Shared Services. A continuación se presenta un ejemplo. Observe que el atributo de la ruta de acceso del elemento fieldExclusion es el nombre jerárquico del sistema (con un punto ‘.’ como separador) de una hoja de propiedades del objeto de datos. La raíz de la jerarquía siempre es DecisionsDataSource o DecisionsDataItems para el origen de datos de decisión o el objeto de datos del evento de comunicación entre partes, respectivamente. <?xml version="1.0"?> <Portrait.Mas.Cms.Services.IO.Config> <fieldExclusions> <fieldExclusionpath="DecisionsDataSource.DeliveryAgent.CorrespondenceAddressID"/> <fieldExclusionpath="DecisionsDataSource.DeliveryAgent.PARTY_ID"/> <fieldExclusionpath="DecisionsDataSource.CurrentParty.CorrespondenceAddressID"/> <fieldExclusionpath="DecisionsDataSource.CurrentParty.PARTY_ID"/> <fieldExclusionpath="DecisionsDataSource.RequestHistory.CUSTOMER_ID"/> <fieldExclusionpath="DecisionsDataSource.RequestHistory.REQUEST_ID"/> <fieldExclusionpath="DecisionsDataSource.RequestHistory.SIMULATION_REPLAY_ID"/> <fieldExclusionpath="DecisionsDataSource.OfferHistory.PSR_INTERACTION_ID"/> <fieldExclusionpath="DecisionsDataSource.OfferHistory.PSR_MESSAGE_ID"/> <fieldExclusionpath="DecisionsDataSource.OfferHistory.REQUEST_HIS- Guía de administración 29 Resolución de problemas de la integración de datos TORY_ID"/> <fieldExclusionpath="DecisionsDataSource.OfferHistory.SIMULATION_RECORDING_ID"/> <fieldExclusionpath="DecisionsDataSource.OfferHistory.SIMULATION_REPLAY_ID"/> <fieldExclusionpath="DecisionsDataSource.OfferHistory.TARGET_LIST_ID"/> <fieldExclusionpath="DecisionsDataSource.OfferHistory.TREATMENT_ID"/> <fieldExclusionpath="DecisionsDataSource.OfferHistory.CUSTOMER_ID"/> <fieldExclusionpath="DecisionsDataSource.ResponseHistory.CUSTOMER_ID"/> <fieldExclusionpath="DecisionsDataSource.ResponseHistory.INTERACTION_ID"/> <fieldExclusionpath="DecisionsDataSource.ResponseHistory.RESPONSE_HISTORY_ID"/> <fieldExclusionpath="DecisionsDataSource.ResponseHistory.SIM_REPLAY_ID"/> <fieldExclusionpath="DecisionsDataSource.ResponseHistory.TREATMENT_HISTORY_ID"/> <fieldExclusionpath="DecisionsDataItems.CAMPAIGN_EVENT_ID"/> <fieldExclusionpath="DecisionsDataItems.CAMPAIGN_ID"/> <fieldExclusionpath="DecisionsDataItems.COMMUNICATION_ID"/> <fieldExclusionpath="DecisionsDataItems.MATERIAL_ID"/> </fieldExclusions> </Portrait.Mas.Cms.Services.IO.Config> Cómo ejecutar la herramienta DataSourceDefExporter Ejecute DataSourceDefExporter en la línea de comandos. Está instalado en C:\Program Files(x86)\PST\Portrait IO\Tools. La herramienta muestra el progreso en la ventana de la consola. Uso: DatasourceDefExporter [/q] [/user <PSS user> /password <PSS user's password] Opciones: • /q Se ejecuta en silencio, sin interacción con el usuario. • /user y /password. Las credenciales del usuario de PSS con las cuales conectarse a Portrait Shared Services. Si se omiten, la herramienta utilizará la cuenta de la sesión de Windows actual para conectarse a PSS. Resolución de problemas de la integración de datos Diagnóstico de problemas de configuración La herramienta Foundation Model Diagnosis está diseñada para asistir en el diagnóstico de problemas de configuración. Utilice esta herramienta ( Inicio > Todos los programas > Portrait Foundation > Model Diagnosis ) para registrar una traza de las actividades llevadas a cabo durante la ejecución de un modelo. La traza le muestra la ruta recorrida por su modelo, así como también el flujo de datos de entrada y salida de cada nodo en el modelo. Nota: Cuando interrumpe el registro, Model Diagnosis abre automáticamente la traza del último modelo ejecutado. Posiblemente, éste no sea el modelo de su interés. Para ver las trazas de modelos ejecutados anteriormente, vaya a la ficha Open. 30 Portrait IO 5.5 Capítulo 3: Integración de IO Cómo compartir la configuración con Portrait Support De manera predeterminada, toda la configuración se almacena dentro de un repositorio de control de la revisión de configuración. Puede enviar directamente el archivo al soporte técnico de Portrait para que pueda acceder directamente a los cambios en la configuración. • Si los problemas que tiene son con configuración ya confirmada envíe el repositorio de la configuración Master. • Si los problemas que tiene están en la configuración en la que trabaja actualmente pero que aún no se ha confirmado, envíe el repositorio de configuración de Portrait Snapshot. Integración de recomendaciones Interaction Optimizer ofrece una interfaz con la que las aplicaciones pueden recuperar recomendaciones y registrar respuestas a las recomendaciones realizadas mediante el servicio web. Se puede acceder al servicio web en una dirección URL con el formato: http://<server>:<port>/IOWCFWebService/IOWebService.svc Señale esta dirección URL en el explorador para verificar que el servicio web esté funcionando y para obtener una descripción de los métodos para los cuales el servicio web brinda soporte técnico. Existen muchas maneras estándar en las que puede llamar a los métodos en el servicio web. Debe seleccionar el método más adecuado para la IDE y la aplicación en la que está llevando a cabo el desarrollo. El método más sencillo es utilizar un cliente .NET, creado desde el servicio web con la herramienta de Microsoft svcutil.exe. Una aplicación del cliente en C# puede llamar métodos directamente en un código auxiliar generado de clientes de la siguiente manera: class Test { static void Main() { IOWebServiceClient client = new IOWebServiceClient(); State state = new State(); Campaigns_PromptDeliveryDataSource context = new Campaigns_PromptDeliveryDataSource(); IOWebService_GetActionsRequest request = new IOWebService_GetActionsRequest(); ... assign context.CurrentParty, context.Globals, and context.DeliveryAgent. ... assign request.ActionDeliveryContext, request.CommunicationMethod, request.CustomerId, request.MaxActions. GetActionsResponse resp = client.GetActions(ref state, context, request); ... get properties from the returned response object } } Otro ejemplo presentado a continuación es simplemente publicar el documento XML de solicitud SOAP para el intercambio por HTTP. Guía de administración 31 Integración de recomendaciones El servicio web utiliza codificación literal/de documentos. El formato de los documentos XML aprobados por los métodos de los servicios web se detalla en la siguiente sección. Una aplicación cliente de ejemplo que utiliza javascript para publicar XML al servicio web de IO es una parte opcional de la instalación de IO. Otras aplicaciones cliente de IO de ejemplo están disponibles según demanda. Ejemplo de integración de servicio web En esta sección se incluye un ejemplo muy simple sobre cómo el servicio web de Interaction Optimizer se puede llamar desde Javascript dentro de una simple página HTML. Este ejemplo no tiene la intención de ser un buen ejemplo de prácticas de programación: se presenta un ejemplo Javascript en la subcarpeta WebServicesDemo en la instalación de Interaction Optimizer. <html> <head> <script language="JavaScript" type="text/javascript"> var schema_for_portrait = 'PortraitSoftware.Foundation.Services.ServiceCore'; function callPortraitWebService(method, methodInputs) { // web service connection details var url = 'http://localhost/IOWCFWebService/IOWebService.svc'; var webservice = new ActiveXObject('Microsoft.XMLHTTP'); var methodVersion = 0; var messageId = 'urn:uuid:14f069b9-e43a-42f3-3800ccda6f2b'; webservice.open('POST', url, false); // false => synchronous webservice.setRequestHeader('Content-Type', 'application/soap+xml; charset=utf-8'); webservice.send('\ <s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" \ xmlns:a="http://www.w3.org/2005/08/addressing"> \ <s:Header> \ <a:Action \ s:mustUnderstand="1">http://iowebservice/Service/IIOWebService/'+method + '</a:Action> \ <a:MessageID>' + messageId + '</a:MessageID> \ <a:ReplyTo> \ <a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address> \ </a:ReplyTo> \ <a:To s:mustUnderstand="1">' + url + '</a:To> \ </s:Header> \ <s:Body> \ <' + method + ' xmlns:b="http://iowebservice/Data" \ xmlns:i="http://www.w3.org/2001/XMLSchema-instance" \ xmlns="http://iowebservice/Service"> \ <State xmlns:state="' + schema_for_portrait + '"> \ <state:ActivityToken i:nil="true" /> \ <state:ClientTag i:nil="true" /> \ <state:RequestToken i:nil="true" /> \ </State> \ ' + methodInputs + ' \ </' + method + '> \ </s:Body> \ </s:Envelope>'); return webservice; // return the webservice object with results } 32 Portrait IO 5.5 Capítulo 3: Integración de IO function callGetActions(agentId, commsMethod, customerId, maxActions) { var customerType = 'Consumer'; var context = ' \ <AdditionalContext> \ <DOCategory i:nil="true" xmlns="' + schema_for_portrait + '" /> \ <DOType i:nil="true" xmlns="' + schema_for_portrait + '" /> \ <b:CurrentParty i:nil="true"/> \ <b:DeliveryAgent i:nil="true"/> \ <b:Globals i:nil="true"/> \ </AdditionalContext>'; var getActionsRequest = context + '\ <GetActionsRequest> \ <DOCategory i:nil="true" xmlns="' + schema_for_portrait + '" /> \ <DOType i:nil="true" xmlns="' + schema_for_portrait + '" /> \ <b:ActionDeliveryContext> \ <DOCategory i:nil="true" xmlns="' + schema_for_portrait + '" /> \ <DOType i:nil="true" xmlns="' + schema_for_portrait + '" /> \ <b:Application></b:Application> \ <b:CurrentEngagementType></b:CurrentEngagementType> \ <b:DeliveringParty> \ <DOCategory i:nil="true" xmlns="' + schema_for_portrait + '" /> \ <DOType i:nil="true" xmlns="' + schema_for_portrait + '" /> \ <b:IOPartyId>' + agentId + '</b:IOPartyId> \ <b:IOPartyType>Agent</b:IOPartyType> \ </b:DeliveringParty> \ <b:Language></b:Language> \ <b:ReasonForCall i:nil="true"></b:ReasonForCall> \ <b:TimeZone></b:TimeZone> \ </b:ActionDeliveryContext> \ <b:CommunicationMethod>' + commsMethod + '</b:CommunicationMethod> \ <b:CustomerId> \ <DOCategory i:nil="true" xmlns="' + schema_for_portrait + '" /> \ <DOType i:nil="true" xmlns="' + schema_for_portrait + '" /> \ <b:IOPartyId>' + customerId + '</b:IOPartyId> \ <b:IOPartyType>' + customerType + '</b:IOPartyType> \ </b:CustomerId> \ <b:MaxActions>' + maxActions + '</b:MaxActions> \ </GetActionsRequest>'; var responseObj = callPortraitWebService('GetActions', getActionsRequest); if (responseObj.status != 200) { alert('GetActions failed for customer ' + customerId); alert(decodePortraitHTML(responseObj.responseText)); } else { // display formatted webservice results, parsed with full XML parser var xmlDoc = new ActiveXObject('MSXML2.DOMDocument'); xmlDoc.loadXML(responseObj.responseText); var actions = xmlDoc.selectNodes('//b:GetActionsResponse/b:Actions/b:IOWebService_Action'); var list = new Array(); var allResponses = new Array('Refusal', 'Application'); for (var i = 0; i < actions.length; i++) { var a = actions[i]; // unpack attributes of each action var actionName = a.selectSingleNode('b:ActionIdentifier/b:Name').text; var actionId = a.selectSingleNode('b:ActionIdentifier/b:IOIdenti- Guía de administración 33 Integración de recomendaciones fier').text; var actionDeliveryId = a.selectSingleNode('b:ActionDeliveryId').text; var offerId = a.selectSingleNode(ns + 'b:Offer/b:Offer/b:OfferId').text; var offerName = a.selectSingleNode(ns + 'b:Offer/b:Offer/b:OfferName').text; var offerProductCode = a.selectSingleNode(ns + 'b:Offer/b:Offer/b:OfferProductCode').text; var scoreNode = a.selectSingleNode('b:ActionScore'); var score= scoreNode ? scoreNode.text : ''; var campaignType = a.selectSingleNode('b:SupportingCampaign/b:Class').text; var campaignName = a.selectSingleNode ('b:SupportingCampaign/b:CampaignIdentifier/b:Name').text; var campaignLinkTextNode = a.selectSingleNode ('b:SupportingCampaign/b:CampaignIdentifier/b:ExternalIdentifier'); var campaignLinkText = campaignLinkTextNode ? campaignLinkTextNode.text : ''; var campaignPriority = a.selectSingleNode('b:SupportingCampaign/b:Priority').text; var messageName = a.selectSingleNode('b:Message/b:MessageIdentifier/b:Name').text; var messageCollateralName = a.selectSingleNode ('b:Message/b:MessageCollateral/b:MessageCollateralIdentifier/b:Name').text; var messageCollateralLinkText = a.selectSingleNode ('b:Message/b:MessageCollateral/b:Presentation/b:LinkText').text; var messageCollateralUnformattedLinkText = decodePortraitUnformattedText(a.selectSingleNode ('b:Message/b:MessageCollateral/b:Presentation/b:UnformattedLinkText').text); var messageCollateralHTML = decodePortraitHTML (a.selectSingleNode('b:Message/b:MessageCollateral/b:ContentHTML').text); var messageCollateralUnformattedText = decodePortraitUnformattedText (a.selectSingleNode('b:Message/b:MessageCollateral/b:UnformattedContentText').text); // simple mechanism to action responses var respondAction = new Array('<div id="' + actionDeliveryId + '">'); for(var j=0; j < allResponses.length; j++) { respondAction.push("<button onclick=\"javascript:callRecordActionResponse('" + agentId + "', '" + customerId + "', '" + actionDeliveryId + "', '" + allResponses[j] + "')\">" + allResponses[j] + "</button>"); } respondAction.push('</div>'); items = new Array( i+1, campaignType, campaignName, campaignPriority, actionName, messageCollateralHTML, score, respondAction.join('')); list.push('<tr><td>' + items.join('</td><td>') + '</td></tr>'); } 34 Portrait IO 5.5 Capítulo 3: Integración de IO if(actions.length == 0) { list.push('<tr><td colspan="6" align="center">No recommendations</td></tr>'); } // update web page with results document.getElementById('getActionResult').innerHTML = 'Got actions for customer ' + customerId + ':<table> \ <tr> \ <th>Rank</th> \ <th>Type</th> \ <th>Campaign</th> \ <th>Priority</th> \ <th>Name</th> \ <th>Message</th> \ <th>Score</th> \ <th>Action</th> \ </tr>' + list.join('') + '</table>'; } } function callRecordActionResponse(agentId, customerId, actionDeliveryId, response) { var customerType = 'Consumer'; var recordActionResponseRequest = '\ <RecordActionResponse> \ <DOCategory i:nil="true" xmlns="' + schema_for_portrait + '" /> \ <DOType i:nil="true" xmlns="' + schema_for_portrait + '" /> \ <b:ActionDeliveryContext> \ <DOCategory i:nil="true" xmlns="' + schema_for_portrait + '" /> \ <DOType i:nil="true" xmlns="' + schema_for_portrait + '" /> \ <b:Application></b:Application> \ <b:CurrentEngagementType></b:CurrentEngagementType> \ <b:DeliveringParty> \ <DOCategory i:nil="true" xmlns="' + schema_for_portrait + '" /> \ <DOType i:nil="true" xmlns="' + schema_for_portrait + '" /> \ <b:IOPartyId>' + agentId + '</b:IOPartyId> \ <b:IOPartyType>Agent</b:IOPartyType> \ </b:DeliveringParty> \ <b:Language></b:Language> \ <b:ReasonForCall i:nil="true"></b:ReasonForCall> \ <b:TimeZone></b:TimeZone> \ </b:ActionDeliveryContext> \ <b:ActionDeliveryId>' + actionDeliveryId + '</b:ActionDeliveryId> \ <b:CustomerId> \ <DOCategory i:nil="true" xmlns="' + schema_for_portrait + '" /> \ <DOType i:nil="true" xmlns="' + schema_for_portrait + '" /> \ <b:IOPartyId>' + customerId + '</b:IOPartyId> \ <b:IOPartyType>' + customerType + '</b:IOPartyType> \ </b:CustomerId> \ <b:ResponseType>' + response + '</b:ResponseType> \ </RecordActionResponse>'; var responseObj = callPortraitWebService('RecordActionResponse', recordActionResponseRequest); if (responseObj.status != 200) { Guía de administración 35 Referencia del servicio web de WCF alert('recordActionResponse failed for customer ' + customerId); alert(decodePortraitHTML(responseObj.responseText)); } else { // take action on response document.getElementById(actionDeliveryId).innerHTML = response; } } // decode Portrait HTML entitization function decodePortraitHTML(text) { text = text.replace(/^ltr/, ''); text = text.replace(/\#lt/g, '<'); text = text.replace(/\#gt/g, '>'); return text; } // decode Portrait Unformatted text function decodePortraitUnformattedText(text) { text = text.replace(/\\r\\n/g, '<br/>'); text = text.replace(/\\t/g, ' '); text = text.replace(/ /g, ' '); return text; } </script> </head> <body> <p> <button onclick="javascript:callGetActions('4EKaDX3ch5nNJyrNIngT8r3AAAAAB6pltb', 'ServiceCentre', '4HbDZbe7UhZ8BGJ;XioCfNiAAAAAB6pltY', 5)">Get Actions 1</button> <button onclick="javascript:callGetActions('4EKaDX3ch5nNJyrNIngT8r3AAAAAB6pltb', 'ServiceCentre', '4MHVxZUDMjsQLjbpRA1S;3rAAAAAB6pltL', 5)">Get Actions 2</button> <button onclick="javascript:callGetActions('4EKaDX3ch5nNJyrNIngT8r3AAAAAB6pltb', 'ServiceCentre', '4FzuzqsvXkZcPdSStI3EEsMAAAAAB6pltI', 5)">Get Actions 3</button> <div id="getActionResult"></div> </p> </body> </html> Referencia del servicio web de WCF Las siguientes operaciones de servicios web de Windows Communication Foundation son suministradas por Interaction Optimizer. Dichas operaciones del servicio se utilizan cada vez que se presentan interacciones mediante algún medio y se selecciona una interacción: • GetActions: ofrece una lista de interacciones para un canal de comunicación seleccionado. (Para obtener más información, consulte la operación GetActionsdel servicio web). • RecordActionResponse: se activa cuando se selecciona una solicitud en particular proporcionada por la operación del servicio GetActions. (Para obtener más información, consulte la operación del servicio web RecordActionResponse). 36 Portrait IO 5.5 Capítulo 3: Integración de IO • GetEligibleCampaignSummaries: devuelve todas las actividades de promoción comercial para las cuales el cliente proporcionado es elegible. (Para obtener más información, consulte la operación del servicio web GetEligibleCampaignSummaries). • GetCampaignSummaries: devuelve todas las actividades de promoción comercial para todas las campañas en mercado, sin aplicar ninguna regla o límite. (Para obtener más información, consulte la operación del servicio web GetCampaignSummaries). • GetAction: devuelve detalles de una interacción específica y registra que se ha presentado al tercero. (Para obtener más información, consulte la operación del servicio web GetAction). • GetTreatedAction: devuelve detalles de una interacción específica que ya se ha presentado al cliente. (Para obtener más información, consulte la operación del servicio web GetTreatedAction). • GetPartyHistory: proporciona el historial de comunicaciones, solicitudes y respuestas de un cliente proporcionado. (Para obtener más información, consulte la operación del servicio web GetPartyHistory). Las siguientes operaciones de servicios se brindan para aplicaciones de demostración, o como parte de un sistema de pruebas de Interaction Optimizer: • CategorizeParty: determina si un tercero es Consumer o Agent. • GetConsumer: expone detalles acerca de un Consumer. • SaveConsumer: escribe detalles de un Consumer en la base de datos. • CreateConsumer: crea una nueva entrada de Consumer en la base de datos. Todas las operaciones del servicio web están instaladas en la siguiente dirección URL predeterminada: http://<server>:<port>/IOWCFWebService/IOWebService.svc Marco de servicios WCF Todos los servicios WCF se llaman por intercambio de documentos por SOAP, utilizando un documento de entrada con el siguiente formato: Content-Type: application/soap+xml; charset=utf-8 <?xml version="1.0" encoding="utf-8"> <s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing"> <s:Header> <a:Action s:mustUnderstand="1"> http://iowebservice/Service/IIOWebService/METHOD_NAME </a:Action> <a:MessageID>MESSAGE_ID</a:MessageID> <a:ReplyTo> <a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address> </a:ReplyTo> <a:To s:mustUnderstand="1">URL</a:To> </s:Header> <s:Body> <METHOD_NAME xmlns:b="http://iowebservice/Data" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://iowebservice/Service"> <State xmlns:state="PortraitSoftware.Foundation.Services.ServiceCore"> <state:ActivityToken i:nil="true" /> <state:ClientTag i:nil="true" /> <state:RequestToken i:nil="true" /> </State> METHOD_INPUTS Guía de administración 37 Referencia del servicio web de WCF </METHOD_NAME> </s:Body> </s:Envelope> donde: • METHOD_NAME se reemplaza con el nombre del método, por ejemplo, GetActions o RecordActionResponse. • METHOD_VERSION se reemplaza con el número de versión del método (el número de versión actual es 0 para todos los métodos). • METHOD_INPUTS se reemplaza con los parámetros de ingreso XML específicos según el método (a continuación se describen detalladamente para cada método). • URL se reemplaza con la dirección URL del servicio Web. • MESSAGE_ID se reemplaza con un ID de mensaje SOAP único. El documento de salida que se obtiene de una llamada exitosa de servicio web tiene el siguiente formato: <?xml version="1.0" encoding="utf-8"> <s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org//2005/08/addressing" <s:Header> <a:Action s:mustUnderstand="1"> http://iowebservice/Service/IIOWebService/METHOD_NAME </a:Action> <a:RelatesTo>MESSAGE_ID</a:RelatesTo> </s:Header> <s:Body> <METHOD_NAMEResponse xmlns="http://iowebservice/Service"> <METHOD_NAMEResult xmlns:b="http://iowebservice/Data" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> <Completion xmlns="PortraitSoftware.Foundation.Services.ServiceCore"> Completed </Completion> <Outcome xmlns="PortraitSoftware.Foundation.Services.ServiceCore">OK</Outcome>> <Suspension i:nil="true" xmlns="PortraitSoftware.Foundation.Services.ServiceCore" /> <b:Output> RESPONSE_OUTPUTS </b:Output> </METHOD_NAMEResult> </METHOD_NAMEResponse> </s:Body> </s:Envelope> Los símbolos ACTIVITY_TOKEN y REQUEST_TOKEN son símbolos cifrados de Interaction Optimizer que se utilizan solamente cuando se realiza la depuración con la herramienta de diagnóstico de modelo. RESPONSE_OUTPUTS dependen del método. Los valores faltantes en las salidas se representan al incluir el atributo SOAP xsi:nil="true". Cuando el sistema Interaction Optimizer está bloqueado, por ejemplo cuando se ejecuta la utilidad de ascenso a producción para transferir datos desde las tablas de montaje hacia las tablas operativas, no 38 Portrait IO 5.5 Capítulo 3: Integración de IO podrá responder a una solicitud de GetActions. El servicio web GetActions arrojará como resultado la generación de un mensaje de respuesta de no disponible: <UnavailableMessageResponse> The Interaction Optimizer system is currently unavailable </UnavailableMessageResponse> El resultado de un error en una llamada informará <Completion> de otra manera que no sea completa, o informará <Outcome> de algo distinto a OK, suponiendo que la solicitud pasó correctamente por el motor de procesamiento de Interaction Optimizer. Si algo sale mal en la infraestructura fundamental (por ejemplo, si los servicios correspondientes no estaban funcionando o si el directorio virtual del servicio Web no estaba configurado correctamente) recibirá, en cambio, un mensaje de error HTTP o SOAP. Un servicio web que falla porque un modelo de Interaction Optimizer devuelve una falla, producirá un resultado como este: <Outcome>Fail</Outcome> Un servicio web que falla por alguna razón de marco externo producirá un mensaje de error HTTP o SOAP, en el que los detalles dependerán totalmente de lo que cause la falla: <soap:Body> <soap:Fault> <faultcode>soap:Client</faultcode> <faultstring>System.Web.Services.Protocols.SoapException: Server did not recognize the value of HTTP Header SOAPAction: http://iowebservice/Service/IIOWebService/GetActions. </faultstring> <detail/> </soap:Fault> </soap:Body> Grupos de datos de referencia Algunos de los parámetros de los servicios web tienen tipos que se toman de una definición de Grupo de datos de referencia, por ejemplo, RESPONSE_TYPE. Los detalles de qué valores están permitidos en estos parámetros dependen de cómo se haya configurado la instalación de Interaction Optimizer. Los Grupos de datos de referencia se pueden ver mediante la secciónReference data del árbol Explorer en Configuration Suite. Los valores que se pueden utilizar se muestran en la lista de Reference Data Values del Grupo de datos de referencia seleccionado. Cuando es necesario aprobar un valor de un Grupo de datos de referencia (por ejemplo en el <ResponseType> del servicio RecordActionResponse ), debe especificar solo el valor SystemName. GetActions La operación GetActions del servicio se utiliza para buscar en Interaction Optimizer una lista de interacciones de un cliente en particular. El documento de entrada asume la siguiente forma: <AdditionalContext> ADDITIONAL_CONTEXT </AdditionalContext> <GetActionsRequest> <b:ActionDeliveryContext> <b:Application></b:Application> <b:ClientCorrelationId>CLIENT_CORRELATION_ID</b:ClientCorrelationId> <b:CurrentEngagementType></b:CurrentEngagementType> <b:DeliveringParty> <b:IOPartyId>AGENT_ID</b:IOPartyId> Guía de administración 39 Referencia del servicio web de WCF <b:IOPartyType>Agent</b:IOPartyType> </b:DeliveringParty> <b:Language></b:Language> <b:ReasonForCall>REASON_FOR_CALL</b:ReasonForCall> <b:TimeZone></b:TimeZone> </b:ActionDeliveryContext> <b:ActionLimits> ACTION_LIMITS </b:ActionLimits> <b:CommunicationMethod>COMM_METHOD</b:CommunicationMethod> <b:CustomerId> <b:IOPartyId>CONSUMER_ID</b:IOPartyId> <b:IOPartyType>Consumer</b:IOPartyType> </b:CustomerId> <b:MaxActions>MAX_ACTIONS</b:MaxActions> donde: • CLIENT_CORRELATION_ID es un identificador de cadenas que se puede utilizar para establecer correlaciones entre llamadas a diferentes operaciones del servicio WCF de Interaction Optimizer. • AGENT_ID es el identificador único para el agente que está ofreciendo recomendaciones al cliente. Esta es una entrada opcional. Si se omite DeliveringParty se registra un agente predeterminado del sistema como DeliveringParty. • ACTION_LIMITS es una entrada opcional que se puede utilizar para solicitar ciertos tipos de recomendaciones de IO. Solo se devolverán recomendaciones que coincidan con el criterio de filtros proporcionado. Cuando se proporciona ACTION_LIMITS , se ignora la entrada MAX_ACTIONS de GetActions . ACTION_LIMITS, una colección de objetos IOWSActionLimit que tienen las siguientes propiedades: • PROPERTY_NAME: El nombre de la propiedad utilizada para filtrar recomendaciones. Los valores admitidos para PROPERTY_NAME son ActivityType y ActivitySubtype. Por ejemplo, proporcione ActivityType para solicitar recomendaciones con un tipo específico de actividad de promoción comercial. (La lista de nombres de propiedad recomendados y admitidos se puede encontrar en el grupo de datos de referencia IO - WS Action Limit PropertyName .) • PROPERTY_VALUE: El valor PROPERTY_NAME utilizado para filtrar recomendaciones. • MAX_MATCHING_ACTIONS: La cantidad máxima de recomendaciones que se devolverán, que tienen una propiedad llamada PROPERTY_NAME con un valor PROPERTY_VALUE. Por ejemplo, para devolver hasta 3 recomendaciones con el tipo de actividad de promoción comercial de "Retención" y hasta 2 recomendaciones del subtipo de actividad de promoción comercial "Hipoteca", ACTION_LIMITS es: <b:ActionLimits> <b:IOWebService_IOWSActionLimit> <b:ActionPropertyName>ActivityType</b:ActionPropertyName> <b:ActionPropertyValue>Retention</b:ActionPropertyValue> <b:MaxMatchingActions>3</b:MaxMatchingActions> </b:IOWebService_IOWSActionLimit> <b:IOWebService_IOWSActionLimit> <b:ActionPropertyName>ActivitySubtype</b:ActionPropertyName> <b:ActionPropertyValue>Mortgage</b:ActionPropertyValue> <b:MaxMatchingActions>2</b:MaxMatchingActions> </b:IOWebService_IOWSActionLimit> </b:ActionLimits> 40 Portrait IO 5.5 Capítulo 3: Integración de IO Nota: IO satisface cada filtro IOWSActionLimit de a uno por vez. Esto significa que se pueden devolver más recomendaciones que MAX_MATCHING_ACTIONS si una única recomendación coincide con más de un criterio de filtro proporcionado. Usando el ejemplo de ACTION_LIMITS anterior, si una recomendación tiene tipo de actividad "Retención" y un subtipo de actividad "Hipoteca", y esa recomendación tiene la 4.ª clasificación según la estrategia de priorización, entonces se devolverán 4 recomendaciones de retención. • MAX_ACTIONS: es la cantidad máxima de recomendaciones que devolverá el servicio web GetActions . Si no se indica un valor, se mostrarán todas las recomendaciones pertinentes. MAX_ACTIONS se ignora si se proporciona una entrada ACTION_LIMITS para GetActions. • COMM_METHOD es el nombre del método de comunicación que se utilizará. La lista de los métodos de comunicación disponibles se puede encontrar en el Grupo de datos de referencia Campaigns Communication Method Types. • CONSUMER_ID es el identificador único para el cliente que solicita recomendaciones. • MAX_ACTIONS es la cantidad máxima de sugerencias que podrá mostrar el servicio web GetActions. Si no se indica un valor, se mostrarán todas las recomendaciones pertinentes. • REASON_FOR_CALL es la entrada contextual principal del servicio web GetActions. Si no se indica un valor se utiliza un valor nulo. • ADDITIONAL_CONTEXT contribuye valores al origen de datos de decisión de ese contacto. Por ejemplo: • establezca el valor de Age de la parte actual (de un solo registro) en 25 y el valor FirstName déjelo vacío: <b:CurrentParty> <b:Consumer> xmlns:c="http://schemas.datacontract.org/2004/07/ ConfiguredTypes.Code.DataObjects.Party"> <c:Age>25</c:Age> <c:FirstName i:nil="true"/> </b:Consumer> </b:CurrentParty> • establezca la recopilación de Keywords (registros múltiples) de la categoría General para que tenga los valores SingleValue1 y SingleValue2: <Keywords> <SingleString> <SingleValue>SingleValue1</SingleValue> </SingleString> <SingleString> <SingleValue>SingleValue2</SingleValue> </SingleString> </Keywords> Las salidas de respuesta tendrán el formato: <b:GetActionsResponse> <b:Actions> <b:IOWebService_Action> <b:ActionDeliveryId>ACTION_DELIVERY_ID</b:ActionDeliveryId> <b:ActionIdentifier> <b:Description>ACTION_DESCRIPTION</b:Description> Guía de administración 41 Referencia del servicio web de WCF <b:ExternalIdentifier>ACTION_EXTERNAL_IDENT</b:ExternalIdentifier> <b:IOIdentifier>ACTION_IO_IDENT</b:IOIdentifier> <b:Name>ACTION_NAME</b:Name> </b:ActionIdentifier> <b:ActionSchedule> <b:EndDate>CAMPAIGN_END_DATE</b:EndDate> <b:StartDate>CAMPAIGN_START_DATE</b:StartDate> </b:ActionSchedule> <b:ActionScore>ACTION_SCORE</b:ActionScore> <b:ActivityType>ACTIVITY_TYPE</b:ActivityType> <b:Message> <b:MessageCollateral> <b:ContentHTML>COLLATERAL_CONTENT_HTML</b:ContentHTML> <b:UnformattedContentText>COLLATERAL_UNFORMATTED_CONTENT_TEXT</b:UnformattedContentText> <b:MessageCollateralIdentifier> <b:Description>COLLATERAL_DESCRIPTION</b:Description> <b:ExternalIdentifier>COLLATERAL_EXTERNAL_IDENT</b:ExternalIdentifier> <b:IOIdentifier>COLLATERAL_IO_IDENT</b:IOIdentifier> <b:Name>COLLATERAL_NAME</b:Name> </b:MessageCollateralIdentifier> <b:Presentation> <b:LinkText>COLLATERAL_LINK_TEXT</b:LinkText> <b:UnformattedLinkText>COLLATERAL_UNFORMATTED_LINK_TEXT</b:UnformattedLinkText> </b:Presentation> </b:MessageCollateral> <b:MessageIdentifier> <b:Description>MESSAGE_DESCRIPTION</b:Description> <b:ExternalIdentifier>MESSAGE_EXTERNAL_IDENT</b:ExternalIdentifier> <b:IOIdentifier>MESSAGE_IO_IDENT</b:IOIdentifier> <b:Name>MESSAGE_NAME</b:Name> </b:MessageIdentifier> </b:Message> <b:Priority>ACTIVITY_PRIORITY</b:Priority> <b:PriorityDisplayText>ACTIVITY_PRIORITY_TEXT</b:PriorityDisplayText> <b:ReferenceCode>ACTIVITY_REF_CODE</b:ReferenceCode> <b:ResponseTypes> <b:IOWebService_IOWSActionResponse> <b:BusinessProcess>BUSINESS_PROCESS</b:BusinessProcess> <b:BusinessProcessDisplayName>BUSINESS_PROCESS_DISPLAY_NAME</b:BusinessProcessDisplayName> <b:ResponseIndicator>RESPONSE_INDICATOR</b:ResponseIndicator> <b:ResponseSuppressionPeriod>RESPONSE_SUPPRESSION_PERIOD</b:ResponseSuppressionPeriod> <b:ResponseType>RESPONSE_TYPE</b:ResponseType> <b:ResponseTypeDisplayName>RESPONSE_TYPE_DISPLAY_NAME</b:ResponseTypeDisplayName> <b:SuppressesPermanently>SUPPRESSES_PERMANENTLY</b:SuppressesPermanently> </b:IOWebService_IOWSActionResponse> </b:ResponseTypes> <b:Offer> <b:OfferId>OFFER_ID</b:OfferId> <b:OfferName>OFFER_NAME</b:OfferName> <b:OfferProductCode>OFFER_PRODUCT_CODE</b:OfferProductCode> </b:Offer> <b:SecondaryAudiences> <b:IOWebService_IOWSSecondaryAudience> 42 Portrait IO 5.5 Capítulo 3: Integración de IO <b:AudienceType>SECONDARY_AUDIENCE</b:AudienceType> <b:AudienceIdentifierName>SECONDARY_AUDIENCE_IDENTIFIER_NAME</b:AudienceIdentifierName> <b:AudienceIdentifierValue>SECONDARY_AUDIENCE_IDENTIFIER_VALUE</b:AudienceIdentifierValue> </b:IOWebService_IOWSSecondaryAudience> </b:SecondaryAudiences> <b:SupportingCampaign> <b:CampaignIdentifier> <b:Description>CAMPAIGN_DESCRIPTION</b:Description> <b:ExternalIdentifier>ACTIVITY_REF_CODE</b:ExternalIdentifier> <b:IOIdentifier>CAMPAIGN_IO_IDENT</b:IOIdentifier> <b:Name>CAMPAIGN_NAME</b:Name> </b:CampaignIdentifier> <b:Class>ACTIVITY_TYPE</b:Class> <b:EndDate>CAMPAIGN_END_DATE</b:EndDate> <b:Priority>ACTIVITY_PRIORITY</b:Priority> <b:PriorityDisplayText>ACTIVITY_PRIORITY_TEXT</b:PriorityDisplayText> <b:StartDate>CAMPAIGN_START_DATE</b:StartDate> </b:SupportingCampaign> </b:IOWebService_Action> </b:Actions> </b:GetActionsResponse> De manera que describe una colección (posiblemente una vacía) de objetos IOWebService_Action. Cada “acción” es una “interacción” de la base de datos Interaction Optimizer y se describe mediante: • ACTION_DELIVERY_ID: Un ID único para esta entrega en especial de esta interacción. • ACTION_DESCRIPTION: Descripción de la interacción (como se establece en Portrait HQ). • ACTION_EXTERNAL_IDENT: un “ID externo” opcional para esta interacción. • ACTION_IO_IDENT: Un identificador para esta interacción. • ACTION_NAME: Nombre de esta interacción de la actividad de promoción comercial (como se establece en Portrait HQ). • ACTION_SCORE: Un valor de resultado opcional para esta interacción (contra el origen de datos de decisión de este cliente utilizando el valor incluido con esta interacción). • COLLATERAL_CONTENT_HTML: Contenido HTML con formato del colateral que se suministra con el mensaje de esta interacción (como se diseñó en el Diseñador de mensajes de Portrait HQ). • COLLATERAL_UNFORMATTED_CONTENT_TEXT: Contenido de texto sin formato del colateral que se suministra con el mensaje de esta interacción (como se diseñó en el Diseñador de mensajes de Portrait HQ). • COLLATERAL_DESCRIPTION : No se utiliza • COLLATERAL_EXTERNAL_IDENT: No se utiliza • COLLATERAL_IO_IDENT: No se utiliza • COLLATERAL_NAME : No se utiliza • COLLATERAL_LINK_TEXT: El texto opcional de vínculo HTML con formato para que este mensaje utilice el colateral (como se establece en Portrait HQ). • COLLATERAL_UNFORMATTED_LINK_TEXT: El texto opcional de vínculo sin formato para que este mensaje utilice el colateral (como se establece en Portrait HQ). • MESSAGE_DESCRIPTION: Descripción del mensaje que se entregará para esta interacción (como se establece en Portrait HQ). Guía de administración 43 Referencia del servicio web de WCF • MESSAGE_EXTERNAL_IDENT: un “ID externo” opcional para este mensaje. • MESSAGE_IO_IDENT: Un identificador para este mensaje. • MESSAGE_NAME: Nombre de este mensaje (como se establece en Portrait HQ). • CAMPAIGN_DESCRIPTION: Descripción de la campaña a la que pertenece esta interacción (como se establece en Portrait HQ). • ACTIVITY_REF_CODE: Un código de referencia externa opcional para esta actividad de promoción comercial (como se establece en Portrait HQ). • CAMPAIGN_IO_IDENT: Un identificador para esta campaña. • CAMPAIGN_NAME: Nombre de esta campaña (como se establece en Portrait HQ). • ACTIVITY_TYPE: Nombre de esta actividad de promoción comercial (como se establece en Portrait HQ). • CAMPAIGN_END_DATE: Fecha programada para la finalización de esta campaña (como se establece en Portrait HQ). • ACTIVITY_PRIORITY: Prioridad esta actividad de promoción comercial (como se establece en Portrait HQ). Por ejemplo: (5000 para el nombre de prioridad Alta). • ACTIVITY_PRIORITY_TEXT : Nombre de la prioridad de esta actividad de promoción comercial. Por ejemplo, ‘Alta’. • CAMPAIGN_START_DATE: Fecha programada para el inicio de esta campaña (como se establece en Portrait HQ). • OFFER_ID : el identificador de la oferta que se entregará para esta interacción. • OFFER_NAME : el nombre de la oferta que se entregará para esta interacción. • OFFER_PRODUCT_CODE : el código de producto de la oferta que se entregará para esta actividad de promoción comercial. Cada IOWebService_Action puede, además, contener una colección (posiblemente vacía) de objetos IOWebService_IOWSSecondaryAudience. Cada "audiencia secundaria" representa información acerca de un "identificador de audiencia secundario" que se devuelve con una "acción", y está descripta por: • SECONDARY_AUDIENCE: El nombre de la audiencia secundaria (una colección de una entidad). • SECONDARY_AUDIENCE_IDENTIFIER_NAME: El nombre de un identificador de audiencia secundaria. • SECONDARY_AUDIENCE_IDENTIFIER_VALUE: El valor de un identificador de audiencia secundaria. IOWebService_Action también puede contener una recopilación de objetos IOWebService_IOWSActionResponse. Esta información es una sugerencia para las aplicaciones cliente, a fin de que presenten los tipos esperados de respuesta para esta recomendación, y también indica qué proceso de negocio iniciar cuando el cliente responde a la recomendación. • RESPONSE_TYPE: El nombre de sistema del tipo de respuesta. • RESPONSE_TYPE_DISPLAY_NAME: El nombre para mostrar del tipo de respuesta. • RESPONSE_INDICATOR: Indica si este tipo de respuesta a la recomendación se clasifica como positiva (1), negativa (-1) o neutra (0). • RESPONSE_SUPPRESSION_PERIOD: Si el cliente responde a esta recomendación, RESPONSE_SUPPRESSION_PERIOD es el período (en días) durante los que la recomendación se eliminará. • SUPPRESSES_PERMANENTLY: Valor booleano para indicar si la recomendación se eliminará de manera permanente, en caso de que el cliente dé este tipo de respuesta. 44 Portrait IO 5.5 Capítulo 3: Integración de IO • BUSINESS_PROCESS: El nombre de sistema del proceso de negocio (proceso de cumplimiento) que se asocia con el tipo de respuesta. • BUSINESS_PROCESS_DISPLAY_NAME: El nombre para mostrar del proceso de negocio. RecordActionResponse Las entradas de método tienen el formato: <RecordActionResponse> <b:ActionDeliveryContext> <b:Application></b:Application> <b:ClientCorrelationId>CLIENT_CORRELATION_ID</b:ClientCorrelationId> <b:CurrentEngagementType</b:CurrentEngagementType> <b:DeliveringParty> <b:IOPartyId>AGENT_ID</b:IOPartyId> <b:IOPartyType>Agent</b:IOPartyType> </b:DeliveringParty> <b:Language></b:Language> <b:TimeZone></b:TimeZone> </b:ActionDeliveryContext> <b:ActionDeliveryId>ACTION_DELIVERY_ID</b:ActionDeliveryId> <b:CustomerId <b:IOPartyId>CONSUMER_ID</b:IOPartyId> <b:IOPartyType>Consumer</b:IOPartyType> </b:CustomerId> <b:ResponseType>RESPONSE_TYPE</b:ResponseType> <b:SecondaryAudience> <b:AudienceType>SECONDARY_AUDIENCE</b:AudienceType> <b:AudienceIdentifierName>SECONDARY_AUDIENCE_IDENTIFIER_NAME</b:AudienceIdentifierName> <b:AudienceIdentifierValue>SECONDARY_AUDIENCE_IDENTIFIER_VALUE</b:AudienceIdentifierValue> </b:SecondaryAudience> <b:SuppressUntilDate>SUPPRESS_UNTIL_DATE</b:SuppressUntilDate> </RecordActionResponse> donde: • CLIENT_CORRELATION_ID es un identificador de cadenas que se puede utilizar para establecer correlaciones entre llamadas a diferentes operaciones del servicio WCF de Interaction Optimizer. Si se realizan más llamadas a GetActions con el mismo identificador, la recomendación no se devuelve para ese mismo cliente. • AGENT_ID es el identificador único para el agente que está capturando la respuesta del cliente. Esta es una entrada opcional. • ACTION_DELIVERY_ID es el ID de entrega de una interacción, tal como se recibe de una llamada anterior al servicio GetActions. • CONSUMER_ID es el identificador único para el cliente que está respondiendo a una recomendación. • SECONDARY_AUDIENCE: El nombre de la audiencia secundaria (una colección de una entidad). • SECONDARY_AUDIENCE_IDENTIFIER_NAME: El nombre de un identificador de audiencia secundaria. • SECONDARY_AUDIENCE_IDENTIFIER_VALUE: El valor de un identificador de audiencia secundaria. • RESPONSE_TYPE es el nombre del tipo de respuesta. • SUPPRESS_UNTIL_DATE es la fecha explícita hasta la que la recomendación se eliminará para el cliente que respondió a esta. No hay salidas de respuesta. Guía de administración 45 Referencia del servicio web de WCF GetEligibleCampaignSummaries La operación del servicio web GetEligibleCampaignSummaries devuelve todas las actividades de promoción comercial para las cuales el cliente proporcionado es elegible. Utilice este método para presentar una lista ampliada de todas las campañas para las cuales el cliente es elegible (a diferencia de la lista corta de posibles mejores acciones del cliente que devuelve GetActions). Las campañas son devueltas ordenadas por su Fecha real de introducción a la actividad; las campañas iniciadas más recientemente se encuentran al principio de la lista. GetEligibleCampaignSummaries no registra ningún tratamiento para las actividades de promoción comercial devueltas. Utilice el método GetAction para devolver el detalle de una recomendación y registrar que el cliente ha sido tratado. El documento de entrada asume la siguiente forma: <AdditionalContext> ADDITIONAL_CONTEXT </AdditionalContext> <GetCampaignsRequest> <b:ActionDeliveryContext> <b:Application></b:Application> <b:ClientCorrelationId>CLIENT_CORRELATION_ID</b:ClientCorrelationId> <b:CurrentEngagementType></b:CurrentEngagementType> <b:DeliveringParty> <b:IOPartyId>AGENT_ID</b:IOPartyId> <b:IOPartyType>Agent</b:IOPartyType> </b:DeliveringParty> <b:Language></b:Language> <b:ReasonForCall>REASON_FOR_CALL</b:ReasonForCall> <b:TimeZone></b:TimeZone> </b:ActionDeliveryContext> <b:CommunicationMethod>COMM_METHOD</b:CommunicationMethod> <b:CustomerId> <b:IOPartyId>CONSUMER_ID</b:IOPartyId> <b:IOPartyType>Consumer</b:IOPartyType> </b:CustomerId> <b:MaxCampaigns>MAX_CAMPAIGNS</b:MaxCampaigns> </GetCampaignsRequest> donde: • CLIENT_CORRELATION_ID es un identificador de cadena que puede ser proporcionado por el usuario del servicio web Interaction Optimizer para relacionar llamadas a métodos de servicio. Esta es una entrada opcional. • AGENT_ID es el identificador único para el agente que está ofreciendo recomendaciones al cliente. Esta es una entrada opcional. • REASON_FOR_CALL es la razón por la cual el cliente ha contactado a la organización. Interaction Optimizer puede utilizar REASON_FOR_CALL para decidir qué recomendaciones devolver. Esta es una entrada opcional. • COMM_METHOD es el nombre del método de comunicación que se utilizará. La lista de los métodos de comunicación disponibles se puede encontrar en el grupo de datos de referencia Campaigns - Communication Method Types. • CONSUMER_ID es el identificador único para el cliente que solicita recomendaciones. • MAX_CAMPAIGNS es la cantidad máxima de campañas devueltas mediante este método. Valor predeterminado: 25. • ADDITIONAL_CONTEXT contribuye valores al origen de datos de decisión. Por ejemplo: 46 Portrait IO 5.5 Capítulo 3: Integración de IO • para establecer el valor de Age del tercero actual en 25 y dejar el valor FirstName vacío: <b:CurrentParty> <b:Consumer> xmlns:c="http://schemas.datacontract.org/2004/07/ ConfiguredTypes.Code.DataObjects.Party"> <c:Age>25</c:Age> <c:FirstName i:nil="true"/> </b:Consumer> </b:CurrentParty> Las salidas de respuesta tendrán el formato: <b:Output> <b:Campaigns> <b:IOWebService_IOWSCampaignSummary> <b:ActualInMarketDate>ACTUAL_IN_MARKET_DATE</b:ActualInMarketDate> <b:Description>CAMPAIGN_DESCRIPTION</b:Description> <b:Id>CAMPAIGN_ID</b:Id> <b:Name>CAMPAIGN_NAME</b:Name> <b:PlannedEndDate>CAMPAIGN_END_DATE</b:PlannedEndDate> <b:MarketingActivities> <b:IOWebService_IOWSCampaignActivitySummary> <b:ActivitySubType>ACTIVITY_SUB_TYPE</b:ActivitySubType> <b:ActivityType>ACTIVITY_TYPE</b:ActivityType> <b:ChannelTypes> <b:IOWebService_IOWSChannelType> <b:Description>CHANNEL_DESCRIPTION</b:Description> <b:Name>CHANNEL_NAME</b:Name> </b:IOWebService_IOWSChannelType> </b:ChannelTypes> <b:Description>ACTION_DESCRIPTION</b:Description> <b:Id>ACTIVITY_ID</b:Id> <b:Name>ACTION_NAME</b:Name> <b:Priority>ACTIVITY_PRIORITY</b:Priority> <b:SecondaryAudiences> <b:IOWebService_IOWSSecondaryAudience> <b:AudienceType>SECONDARY_AUDIENCE</b:AudienceType> <b:AudienceIdentifierName>SECONDARY_AUDIENCE_IDENTIFIER_NAME</b:AudienceIdentifierName> <b:AudienceIdentifierValue>SECONDARY_AUDIENCE_IDENTIFIER_VALUE</b:AudienceIdentifierValue> </b:IOWebService_IOWSSecondaryAudience> </b:SecondaryAudiences> </b:IOWebService_IOWSCampaignActivitySummary> </b:MarketingActivities> </b:IOWebService_IOWSCampaignSummary> </b:Campaigns> </b:Output> donde • ACTUAL_IN_MARKET_DATE: Fecha en que se inició la campaña en el mercado. • CAMPAIGN_DESCRIPTION: Descripción de la campaña a la que pertenece esta interacción (como se establece en Portrait HQ). • CAMPAIGN_ID: Identificador único de la campaña. • CAMPAIGN_NAME: Nombre de esta campaña (como se establece en Portrait HQ). Guía de administración 47 Referencia del servicio web de WCF • CAMPAIGN_END_DATE: Fecha programada para la finalización de esta campaña (como se establece en Portrait HQ). • ACTIVITY_SUB_TYPE: Nombre de esta actividad de promoción comercial (como se establece en Portrait HQ). • ACTIVITY_TYPE: Nombre de esta actividad de promoción comercial (como se establece en Portrait HQ). • CHANNEL_NAME: el nombre del canal de esta actividad de promoción comercial (como se establece en Portrait HQ). • CHANNEL_DESCRIPTION : la descripción del canal. • ACTION_DESCRIPTION: la descripción de esta actividad de promoción comercial (como se establece en Portrait HQ). • ACTIVITY_ID: Identificador de la actividad. • ACTION_NAME: el nombre de esta actividad de promoción comercial (como se establece en Portrait HQ). • ACTIVITY_PRIORITY: Prioridad de esta actividad de promoción comercial (como se establece en Portrait HQ). Por ejemplo: (5000 para el nombre de prioridad Alta). • SECONDARY_AUDIENCE: El nombre de la audiencia secundaria (una colección de una entidad). • SECONDARY_AUDIENCE_IDENTIFIER_NAME: El nombre del identificador de la audiencia secundaria. • SECONDARY_AUDIENCE_IDENTIFIER_VALUE: El valor del identificador de la audiencia secundaria. GetCampaignSummaries La operación del servicio web GetCampaignSummaries devuelve todas las actividades de promoción comercial para todas las campañas en mercado. Utilice este método para presentar una lista ampliada de todas las campañas con las reglas y los límites de acción no aplicados (a diferencia de la lista corta de posibles mejores acciones del cliente devuelta por GetActions). Las campañas son devueltas ordenadas por su Fecha real de introducción a la actividad; las campañas iniciadas más recientemente se encuentran al principio de la lista. GetEligibleCampaignSummaries no registra ningún tratamiento para las actividades de promoción comercial devueltas. Utilice el método GetAction para devolver el detalle de una recomendación y registrar que el cliente ha sido tratado. El documento de entrada asume la siguiente forma: <GetCampaignSummaries> <GetActionRequest>GET_ACTION_REQUEST</GetActionRequest> </GetCampaignSummaries> donde: • MAX_CAMPAIGNS es la cantidad máxima de campañas devueltas mediante este método. Valor predeterminado: 25 si el cliente lo pasa como 0. Las salidas de respuesta tendrán el formato: <b:Output> <b:Campaigns> <b:IOWebService_IOWSCampaignSummary> <b:ActualInMarketDate>ACTUAL_IN_MARKET_DATE</b:ActualInMarketDate> <b:Description>CAMPAIGN_DESCRIPTION</b:Description> <b:Id>CAMPAIGN_ID</b:Id> 48 Portrait IO 5.5 Capítulo 3: Integración de IO <b:Name>CAMPAIGN_NAME</b:Name> <b:PlannedEndDate>CAMPAIGN_END_DATE</b:PlannedEndDate> <b:MarketingActivities> <b:IOWebService_IOWSCampaignActivitySummary> <b:ActivitySubType>ACTIVITY_SUB_TYPE</b:ActivitySubType> <b:ActivityType>ACTIVITY_TYPE</b:ActivityType> <b:ChannelTypes> <b:IOWebService_IOWSChannelType> <b:Description>CHANNEL_DESCRIPTION</b:Description> <b:Name>CHANNEL_NAME</b:Name> </b:IOWebService_IOWSChannelType> </b:ChannelTypes> <b:Description>ACTION_DESCRIPTION</b:Description> <b:Id>ACTIVITY_ID</b:Id> <b:Name>ACTION_NAME</b:Name> <b:Priority>ACTIVITY_PRIORITY</b:Priority> <b:PriorityDisplayText>ACTIVITY_PRIORITY_DISPLAY_TEXT</b:PriorityDisplayText> <b:SecondaryAudiences></b:SecondaryAudiences> </b:IOWebService_IOWSCampaignActivitySummary> </b:MarketingActivities> <b:Name>CAMPAIGN_NAME</b:Name> <b:PlannedEndDate>CAMPAIGN_END_DATE</b:PlannedEndDate> </b:IOWebService_IOWSCampaignSummary> </b:Campaigns> </b:Output> donde • ACTUAL_IN_MARKET_DATE: Fecha en que se inició la campaña en el mercado. • CAMPAIGN_DESCRIPTION: Descripción de la campaña a la que pertenece esta interacción (como se establece en Portrait HQ). • CAMPAIGN_ID: Identificador único de la campaña. • CAMPAIGN_NAME: Nombre de esta campaña (como se establece en Portrait HQ). • CAMPAIGN_END_DATE: Fecha programada para la finalización de esta campaña (como se establece en Portrait HQ). • ACTIVITY_SUB_TYPE: Nombre de esta actividad de promoción comercial (como se establece en Portrait HQ). • ACTIVITY_TYPE: Nombre de esta actividad de promoción comercial (como se establece en Portrait HQ). • CHANNEL_NAME: el nombre del canal de esta actividad de promoción comercial (como se establece en Portrait HQ). • CHANNEL_DESCRIPTION: la descripción del canal. • ACTION_DESCRIPTION: la descripción de esta actividad de promoción comercial (como se establece en Portrait HQ). • ACTIVITY_ID: Identificador de la actividad. • ACTION_NAME: el nombre de esta actividad de promoción comercial (como se establece en Portrait HQ). • ACTIVITY_PRIORITY: Prioridad de esta actividad de promoción comercial (como se establece en Portrait HQ). Por ejemplo: (5000 para el nombre de prioridad Alta). • ACTIVITY_PRIORITY_DISPLAY_TEXT: el texto que indica la prioridad de la actividad de promoción comercial. Ejemplo: la más alta. Guía de administración 49 Referencia del servicio web de WCF GetAction La operación del servicio web GetAction devuelve los detalles de una interacción individual. La operación registra que el cliente ha sido tratado con esa interacción. El documento de entrada asume la siguiente forma: <ActivityId> ACTIVITY_ID </ActivityId> <AdditionalContext> ADDITIONAL_CONTEXT </AdditionalContext> <GetActionRequest> <b:ActionDeliveryContext> <b:Application></b:Application> <b:ClientCorrelationId>CLIENT_CORRELATION_ID</b:ClientCorrelationId> <b:CurrentEngagementType></b:CurrentEngagementType> <b:DeliveringParty> <b:IOPartyId i:nil="true">AGENT_ID</b:IOPartyId> <b:IOPartyType>Agent</b:IOPartyType> </b:DeliveringParty> <b:Language i:nil="true"></b:Language> <b:ReasonForCall i:nil="true"></b:ReasonForCall> <b:TimeZone i:nil="true"></b:TimeZone> </b:ActionDeliveryContext> <b:CommunicationMethod>COMM_METHOD</b:CommunicationMethod> <b:CustomerId> <b:IOPartyId>CUSTOMER_ID</b:IOPartyId> <b:IOPartyType>Consumer</b:IOPartyType> </b:CustomerId> </GetActionRequest> donde: • ACTIVITY_ID es el identificador de la interacción. • CLIENT_CORRELATION_ID es un identificador de cadena que puede ser proporcionado por el usuario del servicio web Interaction Optimizer para relacionar llamadas a métodos de servicio. Esta es una entrada opcional. • AGENT_ID es el identificador único para el agente que está ofreciendo recomendaciones al cliente. Esta es una entrada opcional. • REASON_FOR_CALL es la razón por la cual el cliente ha contactado a la organización. Interaction Optimizer puede utilizar REASON_FOR_CALL para decidir qué recomendaciones devolver. Esta es una entrada opcional. • COMM_METHOD es el nombre del método de comunicación que se utilizará. La lista de los métodos de comunicación disponibles se puede encontrar en el grupo de datos de referencia Campaigns - Communication Method Types. • CONSUMER_ID es el identificador único para el cliente que solicita recomendaciones. • ADDITIONAL_CONTEXT contribuye valores al origen de datos de decisión. Por ejemplo: • para establecer el valor de Age del tercero actual en 25y dejar el valor FirstName vacío: <b:CurrentParty> <b:Consumer> xmlns:c="http://schemas.datacontract.org/2004/07/ ConfiguredTypes.Code.DataObjects.Party"> <c:Age>25</c:Age> <c:FirstName i:nil="true"/> 50 Portrait IO 5.5 Capítulo 3: Integración de IO </b:Consumer> </b:CurrentParty> La salida de respuesta contiene una instancia del objeto IOWebService_Action. Para obtener más información sobre la estructura de ese objeto, consulte la sección de salida de la operación del servicio GetActions . GetTreatedAction La operación del servicio web GetTreatedAction devuelve los detalles de una interacción individual. La operación no registra que el cliente ha sido tratado con esa interacción. El documento de entrada asume la siguiente forma: <ActionDeliveryId>ACTION_DELIVERY_ID</ActionDeliveryId> <AdditionalContext> ADDITIONAL_CONTEXT </AdditionalContext> <GetActionRequest> <b:ActionDeliveryContext> <b:Application></b:Application> <b:ClientCorrelationId i:nil="true">CLIENT_CORRELATION_ID</b:ClientCorrelationId> <b:CurrentEngagementType></b:CurrentEngagementType> <b:DeliveringParty> <b:IOPartyId i:nil="true">AGENT_ID</b:IOPartyId> <b:IOPartyType>Agent</b:IOPartyType> </b:DeliveringParty> <b:Language i:nil="true"></b:Language> <b:ReasonForCall i:nil="true"></b:ReasonForCall> <b:TimeZone i:nil="true"></b:TimeZone> </b:ActionDeliveryContext> <b:CommunicationMethod>COMM_METHOD</b:CommunicationMethod> <b:CustomerId> <b:IOPartyId>CUSTOMER_ID</b:IOPartyId> <b:IOPartyType>Consumer</b:IOPartyType> </b:CustomerId> </GetActionRequest> donde: • ACTION_DELIVERY_ID es el ID de entrega de una interacción, tal como se recibe de una llamada anterior al servicio GetActions. • CLIENT_CORRELATION_ID es un identificador de cadena que puede ser proporcionado por el usuario del servicio web Interaction Optimizer para relacionar llamadas a métodos de servicio. Esta es una entrada opcional. • AGENT_ID es el identificador único para el agente que está ofreciendo recomendaciones al cliente. Esta es una entrada opcional. • COMM_METHOD es el nombre del método de comunicación que se utilizará. La lista de los métodos de comunicación disponibles se puede encontrar en el grupo de datos de referencia Campaigns - Communication Method Types. • CONSUMER_ID es el identificador único para el cliente que solicita recomendaciones. • ADDITIONAL_CONTEXT incorpora valores al origen de datos de decisión. Por ejemplo: Guía de administración 51 Referencia del servicio web de WCF • para establecer el valor de Age del tercero actual en 25y dejar el valor FirstName vacío: <b:CurrentParty> <b:Consumer> xmlns:c="http://schemas.datacontract.org/2004/07/ ConfiguredTypes.Code.DataObjects.Party"> <c:Age>25</c:Age> <c:FirstName i:nil="true"/> </b:Consumer> </b:CurrentParty> La salida de respuesta contiene una instancia del objeto IOWebService_Action. Para obtener más información sobre la estructura de ese objeto, consulte la sección Salida de la operación del servicio GetActions. GetPartyHistory La operación del servicio web GetPartyHistory devuelve todo el historial de solicitudes, tratamientos y respuestas del cliente proporcionado. El documento de entrada asume la siguiente forma: <PartyId xmlns:b="http://iowebservice/Data" xmlns:i="http://www.w3.org/2001/XMLSchema-instance "> <DOCategory i:nil="true" xmlns="PortraitSoftware.Foundation.Services.ServiceCore"/> <DOType i:nil="true" xmlns="PortraitSoftware.Foundation.Services.ServiceCore"/> <b:IOPartyId>PARTY_ID</b:IOPartyId> <b:IOPartyType>Consumer</b:IOPartyType> </PartyId> donde • PARTY_ID es el identificador del cliente para el cual se requiere el historial de interacciones. Las salidas de respuesta tendrán el formato: <b:CommunicationHistory> <b:IO_IOInteractionTreatment> <b:AGENT_ID/> <b:CHANNEL_NAME>CHANNEL</b:CHANNEL_NAME> <b:CUSTOMER_ID>CUSTOMER_ID</b:CUSTOMER_ID> <b:DELIVERED_FLAG>true</b:DELIVERED_FLAG> <b:OFFER_ID>OFFER_ID</b:OFFER_ID> <b:OFFER_NAME>OFFER_NAME</b:OFFER_NAME> <b:OFFER_PRODUCT_CODE>OFFER_PRODUCT_CODE</b:OFFER_PRODUCT_CODE> <b:PSR_CAMPAIGN_NAME>CAMPAIGN_NAME</b:PSR_CAMPAIGN_NAME> <b:PSR_CAM_ACTIVITY_NAME>ACTIVITY_NAME</b:PSR_CAM_ACTIVITY_NAME> <b:PSR_CAM_ACTIVITY_PRIORITY_TYPE_NAME>PRIORITY_TYPE</b:PSR_CAM_ACTIVITY_PRIORITY_TYPE_NAME> <b:PSR_CAM_ACTIVITY_PRIORITY_VALUE>PRIORITY_VALUE</b:PSR_CAM_ACTIVITY_PRIORITY_VALUE> <b:PSR_CAM_ACTIVITY_REF_CODE i:nil="true"/> <b:PSR_CAM_ACTIVITY_SUBTYPE_NAME>ACTIVITY_SUBTYPE</b:PSR_CAM_ACTIVITY_SUBTYPE_NAME> <b:PSR_CAM_ACTIVITY_TYPE_NAME>ACTIVITY_TYPE</b:PSR_CAM_ACTIVITY_TYPE_NAME> <b:PSR_INTERACTION_ID>INTERACTION_ID</b:PSR_INTERACTION_ID> <b:PSR_MESSAGE_ID>MESSAGE_ID</b:PSR_MESSAGE_ID> <b:PSR_MESSAGE_NAME>MESSAGE_NAME</b:PSR_MESSAGE_NAME> <b:RANK>1</b:RANK> 52 Portrait IO 5.5 Capítulo 3: Integración de IO <b:REQUEST_HISTORY_ID>REQUEST_HISTORY_ID</b:REQUEST_HISTORY_ID> <b:SCORE i:nil="true"/> <b:SIMULATION_RECORDING_ID i:nil="true"/> <b:SIMULATION_REPLAY_ID i:nil="true"/> <b:TARGET_LIST_ID>TARGET_LIST_ID</b:TARGET_LIST_ID> <b:TREATMENT_ID>TREATMENT_ID</b:TREATMENT_ID> <b:TREATMENT_TIMESTAMP>TREATMENT_TIMESTAMP</b:TREATMENT_TIMESTAMP> </b:IO_IOInteractionTreatment> </b:CommunicationHistory> <b:RequestHistory> <b:IO_IOInteractionRequest> <b:AGENT_ID>AGENT_ID</b:AGENT_ID> <b:APPLICATION>APPLICATION</b:APPLICATION> <b:CHANNEL_NAME>CHANNEL</b:CHANNEL_NAME> <b:CUSTOMER_ID>CUSTOMER_ID</b:CUSTOMER_ID> <b:ClientCorrelationId>CLIENT_CORRELATION_ID</b:ClientCorrelationId> <b:ENGAGEMENT_TYPE i:nil="true"/> <b:LANGUAGE i:nil="true"/> <b:MAX_ACTIONS>MAX_ACTIONS</b:MAX_ACTIONS> <b:REASON_FOR_CALL>REASON_FOR_CALL</b:REASON_FOR_CALL> <b:REQUEST_ID>REQUEST_ID</b:REQUEST_ID> <b:REQUEST_TIMESTAMP>REQUEST_TIMESTAMP</b:REQUEST_TIMESTAMP> <b:SIMULATION_REPLAY_ID i:nil="true"/> <b:TIMEZONE i:nil="true"/> </b:IO_IOInteractionRequest> </b:RequestHistory> <b:ResponseHistory> <b:IO_IOInteractionResponse> <b:AGENT_ID>AGENT_ID</b:AGENT_ID> <b:CHANNEL_NAME>CHANNEL_NAME</b:CHANNEL_NAME> <b:CUSTOMER_ID>CUSTOMER_ID</b:CUSTOMER_ID> <b:ClientCorrelationId>CLIENT_CORRELATION_ID</b:ClientCorrelationId> <b:INTERACTION_ID>INTERACTION_ID</b:INTERACTION_ID> <b:PSR_CAMPAIGN_NAME>CAMPAIGN_NAME</b:PSR_CAMPAIGN_NAME> <b:PSR_CAM_ACTIVITY_NAME>ACTIVITY_NAME</b:PSR_CAM_ACTIVITY_NAME> <b:PSR_CAM_ACTIVITY_PRIORITY_TYPE_NAME>PRIORITY_TYPE</b:PSR_CAM_ACTIVITY_PRIORITY_TYPE_NAME> <b:PSR_CAM_ACTIVITY_PRIORITY_VALUE>PRIORITY_VALUE</b:PSR_CAM_ACTIVITY_PRIORITY_VALUE> <b:PSR_CAM_ACTIVITY_REF_CODE i:nil="true"/> <b:PSR_CAM_ACTIVITY_SUBTYPE_NAME>ACTIVITY_SUBTYPE</b:PSR_CAM_ACTIVITY_SUBTYPE_NAME> <b:PSR_CAM_ACTIVITY_TYPE_NAME>ACTIVITY_TYPE</b:PSR_CAM_ACTIVITY_TYPE_NAME> <b:PSR_MESSAGE_NAME>MESSAGE_NAME</b:PSR_MESSAGE_NAME> <b:RESPONSE_HISTORY_ID>RESPONSE_HISTORY_ID</b:RESPONSE_HISTORY_ID> <b:RESPONSE_TIMESTAMP>RESPONSE_TIMESTAMP</b:RESPONSE_TIMESTAMP> <b:RESPONSE_TYPE>RESPONSE_TYPE</b:RESPONSE_TYPE> <b:SIM_REPLAY_ID i:nil="true"/> <b:SuppressUntilDate>SuppressUntilDate</b:SuppressUntilDate> <b:TREATMENT_HISTORY_ID>TREATMENT_HISTORY_ID</b:TREATMENT_HISTORY_ID> </b:IO_IOInteractionResponse> </b:ResponseHistory> Este contiene tres colecciones diferentes: CommunicationHistory: una colección de objetos IO_IOInteractionTreatment. Cada objeto representa un tratamiento que ha sido entregado al cliente y es descrito por: Guía de administración 53 Referencia del servicio web de WCF • AGENT_ID: el identificador del agente conectado en la sesión en la cual se entregó el tratamiento. • CHANNEL: el canal en el cual se entregó el tratamiento. • CUSTOMER_ID: el identificador del cliente a quien se entregó el tratamiento. • OFFER_ID: el identificador de la oferta que se entregará para esta interacción. • OFFER_NAME : el nombre de la oferta que se entregará para esta interacción. • OFFER_PRODUCT_CODE: el código de producto de la oferta que se entregará para esta promoción comercial. • CAMPAIGN_NAME: el nombre de la campaña. • ACTIVITY_NAME: el nombre de la actividad de la campaña. • PRIORITY_TYPE: el nombre de la prioridad de la actividad de la campaña. • PRIORITY_VALUE: el valor numérico de la prioridad de la actividad de la campaña. • ACTIVITY_TYPE: el tipo de actividad de la campaña. • ACTIVITY_SUBTYPE: el subtipo de actividad de la campaña. • INTERACTION_ID: una cadena de ID de interacción con cifrado de Interaction Optimizer. • REQUEST_HISTORY_ID: una cadena de ID del historial de solicitudes con cifrado de Interaction Optimizer. • MESSAGE_ID: el identificador del mensaje entregado con el tratamiento. • MESSAGE_NAME: el nombre del mensaje entregado con el tratamiento. • TARGET_LIST_ID: el identificador de la lista a la cual se entregó este tratamiento. • TREATMENT_ID: una cadena de ID de tratamiento con cifrado de Interaction Optimizer. • TREATMENT_TIMESTAMP: la fecha y hora de entrega de este tratamiento. RequestHistory: una colección de objetos IO_IOInteractionTreatment . Cada objeto representa una solicitud hecha para el cliente y es descrito por: • AGENT_ID: el identificador del agente conectado en la sesión en la cual se entregó el tratamiento. • APPLICATION: el nombre de la aplicación desde donde se envió la solicitud a Interaction Optimizer. • CUSTOMER_ID: el identificador del cliente para quien se hizo la solicitud. • CLIENT_CORRELATION_ID: un identificador de cadena que identifica la sesión en el contexto desde el cual se envió la solicitud a Interaction Optimizer. • MAX_ACTIONS: la cantidad máxima de sugerencias por devolver. La cantidad que se utilizó para esta solicitud. • REASON_FOR_CALL: la razón por la que se utilizó la llamada para esta solicitud. • REQUEST_ID: una cadena de ID de solicitud con cifrado de Interaction Optimizer. • REQUEST_TIMESTAMP: la fecha y hora de entrega de este tratamiento. ResponseHistory: una colección de objetos IO_IOInteractionTreatment . Cada objeto representa una respuesta para el cliente en Interaction Optimizer y es descrito por: • AGENT_ID: el identificador único para el agente que registró la respuesta del cliente. • CHANNEL_NAME: el canal en el cual se registró la respuesta. • CUSTOMER_ID: el identificador del cliente para quien se registró la respuesta. • CLIENT_CORRELATION_ID: un identificador de cadena que identifica la sesión en el contexto en el cual se registró la respuesta. • INTERACTION_ID: el identificador de la interacción para la cual se registró la respuesta. 54 Portrait IO 5.5 Capítulo 3: Integración de IO • CAMPAIGN_NAME: el nombre de la campaña principal de la interacción. • ACTIVITY_NAME: el nombre de la actividad o interacción de la campaña. • PRIORITY_TYPE: el nombre de la prioridad de la actividad de la campaña. • PRIORITY_VALUE: el valor de la prioridad de la actividad de la campaña. • ACTIVITY_SUBTYPE: el subtipo de la actividad de la campaña. • ACTIVITY_TYPE: el tipo de actividad de la campaña. • MESSAGE_NAME: el nombre del mensaje asociado con la interacción. • RESPONSE_HISTORY_ID: una cadena de ID del historial de respuestas con cifrado de Interaction Optimizer. • RESPONSE_TIMESTAMP: la fecha y hora de registro de la respuesta. • SuppressUntilDate: la fecha hasta la que se necesita eliminar la interacción. • TREATMENT_HISTORY_ID: una cadena de ID de tratamiento con cifrado de Interaction Optimizer para la cual se registró una respuesta. CategorizeParty Las entradas de operación tienen el formato: <PartyId>PARTY_ID</PartyId> donde PARTY_ID es una cadena de ID cifrada de un participante de Interaction Optimizer. Las salidas de respuesta tendrán el formato: <b:Categorization>PARTY_TYPE</b:Categorization> donde PARTY_TYPE será Agent o Consumer. GetConsumer Las entradas de operación tienen el formato: <CustomerId> <b:IOPartyId>PARTY_ID</b:IOPartyId> <b:IOPartyType>PARTY_TYPE</b:IOPartyType> <CustomerId> donde: • PARTY_ID es el Id (no cifrado) para un consumidor en la base de datos. • PARTY_TYPE debe ser Consumer. Las salidas de respuesta tendrán el formato: <b:Consumer>ATTRIBUTES</b:Consumer> donde ATTRIBUTES son un conjunto de elementos XML que corresponden a los atributos configurados para el objeto consumidor en su instalación. Los detalles pueden variar según el modo en que haya configurado al consumidor. Los atributos que no tienen un valor establecido para este cliente estarán marcados con i:nil="true". Los atributos tendrán espacios de nombres en http://schemas.datacontract.org/2004/07/ConfiguredTypes.Code.DataObjects.Party. El tipo y el nombre para mostrar de cada atributo no están incluidos en la respuesta del servicio web. Guía de administración 55 Referencia del servicio web de WCF • Ejemplo de un valor nulo: <c:HasAuthentication i:nil="true"></c:HasAuthentication> • Ejemplo de un valor booleano: <c:Deceased>false</c:Deceased> • Ejemplo de un valor en cadena: <c:FirstName>Cynthia</c:FirstName> • Ejemplo de un valor entero: <c:Age>36</c:Age> • Ejemplo de un valor doble: <c:AnnualGrossIncome>3.51E4</c:AnnualGrossIncome> • Ejemplo de un valor dateTime: <c:DateOfBirth>1985-11-23T12:15:00.000Z</c:DateOfBirth> • Ejemplo de un valor reference-data-item: <c:Gender>Female</c:Gender> Algunos atributos están incorporados y existirán siempre, tales como PARTY_ID y KNOWN_AS. SaveConsumer Las entradas de operación tienen el formato: <inputs> <Consumer>ATTRIBUTES</Consumer> </inputs> donde ATTRIBUTES son los mismos que los que muestra el servicio web GetConsumer, pero con espacios de nombres en http://iowebservice/Data. Nota: Se deben especificar todos los atributos que mostró GetConsumer en lugar de especificar un subconjunto de atributos. Si se omite algún atributo, se eliminará de la base de datos. No hay salidas de respuesta. CreateConsumer Las entradas de operación tienen el formato: <Consumer> <b:Surname>NEW_CUSTOMER</b:Surname> </Consumer> donde NEW_CUSTOMER es el apellido del cliente que se creará. Las salidas de respuesta tendrán el formato: <outputs> <b:PartyId>PARTY_ID</b:PartyId> </outputs> donde PARTY_ID es el identificador cifrado de Interaction Optimizer del nuevo registro de cliente que se ha creado. 56 Portrait IO 5.5 Capítulo 3: Integración de IO Integración de datos de resultados Debido a que Interaction Optimizer ofrece recomendaciones y registra respuestas, este crea un útil historial analítico de contactos. Puede analizar los resultados con aplicaciones analíticas de terceros haciendo uso directamente de la base de datos de Interaction Optimizer. Portrait Data Warehouse es la base de datos que presenta la vista consolidada de la solicitud de la campaña de promoción comercial y los datos de tratamiento y respuesta. El almacenamiento de datos también se utiliza para agregar datos en un formato que puedan recuperar fácilmente las páginas de monitoreo de campaña en Portrait HQ. La intención de este almacenamiento de datos es que pueda ser utilizado por SQL Server Reporting Services para generar informes sobre el desempeño de la campaña y además la información de tratamiento y respuesta, tanto de entrada como de salida, de la campaña, para consolidarla en una única campaña y en descripciones generales de niveles de actividad. Tablas operativas Las siguientes tablas del almacén de datos consolidados se pueden considerar para contener datos operativos; es decir datos a los que se pueda acceder mediante IO o PD para recuperar información histórica por cliente, es decir, la cantidad de contactos entrantes para un cliente específico o la fecha de la última oferta específica realizada a un cliente. Las tablas también se utilizan para crear el esquema en forma de estrella con información resumida y que utiliza Marketing HQ para mostrar los detalles en las páginas de monitoreo de campaña. REQUEST_LOG Esta tabla contiene los detalles de las solicitudes de entrada capturadas por IO. Solicitar Descripción RQL_REQUEST_ID Clave principal para esta tabla. Es una colum- BIGINT na de identidad simple. RQL_SOURCE_ID El ID de esta fila en la tabla de ensayo de la BIGINT base de datos de IO; utilizada para enlazar este pedido con una o más indicaciones en la tabla TREATMENT_OFFER_LOG. RQL_SIM_REPLAY_ID Si esta solicitud se realizó como una reproduc- INT ción de simulación, este es el ID de la reproducción. Puede ser NULL. RQL_CUSTOMER_ID El ID del cliente que realiza la solicitud RQL_AGENT_ID El ID del agente que trabajará en esta solicitud NVARCHAR(40) RQL_CHANNEL_ID El ID del CANAL en el que se realizó la solici- INT tud. Vínculo con la columna CH_CHANNEL_ID de la tabla de canales Guía de administración Valor (depende de la instalación) 57 Tablas operativas Solicitar Descripción Valor RQL_APP_NAME Nombre de la aplicación que realiza la solici- NVARCHAR(50) tud. Puede ser NULL RQL_REASON_FOR_CALL Información contextual adicional sobre el mo- NVARCHAR(50) tivo de la solicitud. Puede ser NULL RQL_ENGAGEMENT_TYPE Información contextual adicional sobre el tipo NVARCHAR(50) de participación. Puede ser NULL RQL_LANGUAGE Código de configuración del idioma de la apli- NVARCHAR(10) cación que realiza la llamada, por ejemplo, en_GB para inglés del Reino Unido. Puede ser NULL RQL_TIMEZONE Código de zona horaria de la solicitud. Puede NVARCHAR(10) ser NULL RQL_REQUEST_TIMESTAMP Marca de hora de cuándo se realizó la solici- DATETIME tud según el sistema de IO. RQL_REGISTERED_TIMESTAMP Marca de hora de cuándo se copió el registro DATETIME en esta tabla (solo para uso interno del sistema) TREATMENT_OFFER_LOG Esta tabla se utiliza para registrar cada indicación de IO ( a diferencia de las atenciones que en realidad se brindan al cliente, aunque es lo mismo en canales sin mediación). Oferta de tratamiento Descripción Valor TOL_ID Clave primaria de la tabla, un simple valor de BIGINT IDENTIDAD que se incrementa. TOL_DOMAIN_ID Identificador del dominio de PD, especificado BIGINT como -1 para los registros de IO TOL_CUSTOMER_ID El ID del cliente que recibe la indicación/el tratamiento. TOL_AGENT_ID Agente que lleva adelante la conversación en NVARCHAR(40) un canal mediado. TOL_CONTEXT Información adicional de contexto (solo PD) TOL_REQUEST_ID El ID del pedido que solicitó este mensaje/tra- BIGINT tamiento. (depende de la instalación) NVARCHAR(128) NOTA: Se establece un vínculo con la columna RQL_SOURCE_ID del REQUEST_LOG 58 Portrait IO 5.5 Capítulo 3: Integración de IO Oferta de tratamiento Descripción Valor TOL_SRC_TREAT_ID El ID de este registro en la tabla de ensayo de IO. Utilizada para establecer un vínculo con la respuesta del RESPONSE_LOG BIGINT TOL_TREATMENT_ID El ID del registro de la tabla TREATMENT de INT la tabla. Se establece un vínculo para canalizar y pronosticar información. TOL_INTERACTION_ID El vínculo al registro CAMPAIGN_ACTIVITY INT (se vincula con la columna CA_ACTIVITY_ID) TOL_OFFER_ID El ID de la oferta realizada por esta solicitud/es- INT te tratamiento. Puede ser NULL si no se realiza una oferta explícita. Se vincula con la tabla OFFER, columna OFR_OFFER_ID TOL_MESSAGE_ID El vínculo al ACM_MESSAGE_ID del ACTIVITY_CHANEL_MESSAGE presentado por esta indicación/este tratamiento INT TOL_TARGET_LIST_ID El ID de la LISTA utilizada para seleccionar participantes en esta actividad. Puede ser NULL INT TOL_TREATMENT_BATCH_ID Utilizado para identificar un lote de atenciones. BIGINT Utilizado por PD para identificar grupos de ofertas realizadas por el mismo tratamiento. En IO se utiliza para identificar grupos de indicaciones del mismo pedido. TOL_PCM_CD_ID Solo PD INT TOL_PCM_DP_ID Solo PD BIGINT TOL_PCM_DOS_ID Solo PD INT TOL_PCM_DBM_ID Solo PD INT TOL_PCM_CM_ID Solo PD INT TOL_IO_RANK Solo IO INT La graduación de este tratamiento/esta indicación cuando fueron presentados TOL_IO_SCORE Solo IO FLOAT Resultado asociado con esta indicación/este tratamiento Guía de administración 59 Tablas operativas Oferta de tratamiento Descripción Valor TOL_IO_RECORDING_ID Solo IO INT El ID de la simulación de registro de la cual será parte esta entrada. TOL_SIM_REPLAY_ID Solo IO INT Reproducción de la simulación que generó esta solicitud. TOL_TREATED_TIMESTAMP Marca de tiempo del sistema de origen del DATETIME momento en que se realizó este tratamiento/esta indicación TOL_REGISTERED_TIMESTAMP Marca de tiempo de cuándo se realizó el regis- DATETIME tro en esta base de datos (solo para uso interno) SECONDARY_AUDIENCE_LOG Se puede tratar esta tabla como una extensión de la tabla TREATMENT_OFFER_LOG y está diseñada para registrar todas las indicaciones para IO servidas para audiencias secundarias. 60 Audiencia secundaria Descripción Valor SAL_ID Clave primaria de la tabla, un simple valor de BIGINT IDENTIDAD que se incrementa. SAL_CUSTOMER_ID El ID del cliente que recibe la indicación/el tratamiento. (depende de la instalación) SAL_SRC_SECONDARYAUDIENCE_HISTORY_ID El ID de este registro en la tabla de ensayo de IO. BIGINT SAL_SRC_TREAT_HISTORY_ID El ID de historial de tratamiento que correspon- BIGINT de a este registro en la tabla de ensayo de historial de tratamiento de IO. SAL_OBJECT_NAME El nombre del objeto de audiencia secundaria nvarchar (2000) contra el cual se registró la indicación (por ejemplo, DecisionsDataSource.Accounts). SAL_ID_NAME El nombre del identificador de audiencia se- nvarchar (2000) cundaria contra el cual se registró la indicación (por ejemplo, AccountNumber). SAL_ID_VALUE El valor del identificador de audiencia secun- nvarchar (255) daria contra el cual se registró la indicación (por ejemplo, el número de cuenta real). Portrait IO 5.5 Capítulo 3: Integración de IO Audiencia secundaria Descripción Valor SAL_TREATED_TIMESTAMP Marca de tiempo del sistema de origen del DATETIME momento en que se realizó este tratamiento/esta indicación para la audiencia secundaria. SAL_REGISTERED_TIMESTAMP Marca de tiempo de cuándo se realizó el regis- DATETIME tro en esta base de datos (solo para uso interno) RESPONSE_LOG Esta tabla se utiliza para registrar los detalles de las respuestas a las atenciones realizadas a los clientes. En un sistema mediado esta tabla proporcionará las atenciones reales realizadas (ya que se puede inferir que hubo tratamiento porque de hecho hay una respuesta). NOTA: La tabla BEHAVIOR_LOG alimenta esta otra tabla y puede contener respuestas que no sean válidas para cualquier actividad de campaña (ya que captura comportamientos que pueden ser una respuesta o no). En el registro de respuestas solo se almacenan respuestas confirmadas de actividad de campaña y, por lo tanto, se debe utilizar solo dicha tabla para el historial de respuestas a preguntas. Respuesta Descripción Valor RL_ID Clave primaria de la tabla, un simple valor de BIGINT IDENTIDAD que se incrementa. RL_SRC_RESP_HIST_ID Solo IO BIGINT El ID del registro del historial de respuesta en la tabla de ensayo de IO RL_TREATMENT_LOG_ID El ID de la entrada TREATMENT_LOG a la que responde BIGINT RL_BEHAVIOR_LOG_ID El ID de la entrada correspondiente de la tabla BIGINT de registro de comportamiento. RL_ACTIVITY_ID Actividad de campaña a la que responde. INT RL_TREATMENT_ID El ID de la entrada de la tabla TREATMENT a la que responde. INT RL_OFFER_ID El ID de la entrada de la tabla OFFER a la que INT responde. RL_MESSAGE_ID Solo IO INT El vínculo MESSAGE_ID con la tabla ACTIVITY_CHANNEL_MESSAGE, utilizada para vincular el mensaje al que responde. Guía de administración 61 Tablas operativas Respuesta Descripción Valor RL_DOMAIN_ID Solo PD INT Identificador de dominio PD, con un código incrustado de -1 en IO RL_CUSTOMER_ID Identificador del cliente que realiza la respues- (depende de la instalata. ción) RL_IO_AGENT_ID Solo IO NVARCHAR(50) El ID del agente al que se le brinda la respuesta del tratamiento. RL_CONTEXT Solo PD NVARCHAR(128) Información contextual adicional RL_PRODUCT_CODE Código utilizado para identificar la oferta de producto a la que se responde. RL_MESSAGE_TEMPLATE_ID Solo PD NVARCHAR(255) INT El ID de la plantilla de mensajes que se utilizó en el tratamiento al que se responde. RL_IO_RESPONE_NAME Solo IO NVARCHAR(50) Nombre de la respuesta otorgada por el cliente RL_RESPONSE_INDICATOR Valor utilizado para indicar el tipo de respues- INT ta: 1 = Positiva 0 = Neutral -1 = Negativa RL_IS_SOFT_RESPONSE Solo PD BIT Marca para indicar que la respuesta se infirió en lugar de ser rastreada, por ejemplo, cuando se captura una respuesta a una actividad anónima de campaña. RL_RESPONSE_COST Coste de la respuesta MONEY RL_RESPONSE_VALUE Valor de la respuesta MONEY RL_VALUE_NET_OF_MARGN Valor de la respuesta neta de cualquier mar- MONEY gen. 62 Portrait IO 5.5 Capítulo 3: Integración de IO Respuesta Descripción Valor RL_TREATED_TIMESTAMP Marca de tiempo del momento en que ocurre DATETIME el tratamiento. RL_ACTED_TIMESTAMP Marca de tiempo de la respuesta DATETIME Tablas de resumen y esquema de informes Las demás tablas de la base de datos se utilizan para ofrecer capacidades simples de informes para las páginas de monitoreo de HQ y para crear informes de clientes mediante SQL Server Reporting Services (SSRS). Las tablas de resumen de campañas, actividades y tratamientos se actualizan mediante el proceso de población de SSIS para garantizar que contienen las definiciones y los resúmenes actualizados de las atenciones, las respuestas y los costos. El esquema además contiene dos tablas centrales con ‘hechos’ (una para las atenciones y otra para las respuestas). Estas tablas guardan el historial total ejecutado de las atenciones, las respuestas y los costos de cada una de las combinaciones de tratamiento/oferta/canal en intervalos de horas. TREATMENT_FACT La tabla de hechos del tratamiento contiene los totales ejecutados de las atenciones/ofertas por actividad de campaña. Esta tabla mantiene un registro del total ejecutado de cuentas y costos de tratamiento con una granularidad por hora (definida por la granularidad de la tabla TIME_DIMENSION). Hecho del tratamiento Descripción Valor TF_FACT_ID Clave primaria de la tabla, una columna de identidad con incrementos simples. BIGINT TF_TD_ID El vínculo a la columna TIME_DIMENSION.TD_ID utilizada para identificar hora/día/mes/año que representa el registro. BIGINT TF_DOMAIN_ID Dominio PD (o -1 si es de IO) al que pertene- INT cen las respuestas registradas de esta campaña. TF_OFFER_ID El vínculo a la columna OFFER.OFR_ID para INT identificar la oferta realizada por el tratamiento que representa este registro. TF_TREATMENT_ID El vínculo a la columna TREATMENT_TR_ID INT para identificar el tratamiento que representa este registro. TF_ACTIVITY_ID El vínculo a la columna CAMPAIGN_ACTIINT VITY.CA_ACTIVITY_ID para ver los detalles de la actividad de la campaña TF_TREATMENT_COUNT Cantidad total actual (a partir del momento INT representado por la entrada TIME_DIMENSION) de atenciones realizadas hasta el mo- Guía de administración 63 Tablas de resumen y esquema de informes Hecho del tratamiento Descripción Valor mento. En IO es el recuento de indicaciones, en PD es el recuento de atenciones, por ejemplo, mensajes de correo electrónico enviados. TF_TREAT_OFFER_COUNT Este valor se utiliza cuando un único tratamien- INT to puede hacer múltiples ofertas, por ejemplo un mensaje de correo electrónico de PD que contenga múltiples ofertas para un único cliente. Este es el recuento ejecutado de ofertas realizadas. En IO el valor será el mismo que el recuento de atenciones (dado que cada tratamiento consiste en una única oferta implícita). Del mismo modo que con el recuento de atenciones, este es un total actual a partir del momento representado por la entrada TIME_DIMENSION correspondiente). TF_TREATMENT_COST Coste total actual de realizar atenciones. MONEY TF_PRODUCT_CODE Código de producto asociado con la oferta que se está realizando (puede ser NULL) NVARCHAR(255) TF_MESSAGE_TEMPLATE_ID Solo PD INT El ID de la plantilla de mensajes en PD utilizada para enviar el tratamiento/la oferta RESPONSE_FACT La tabla de hechos de respuesta contiene el detalle equivalente al que contiene la tabla de hechos de tratamiento en cuanto a las atenciones. 64 Hecho de respuesta Descripción Valor RF_FACT_ID Clave primaria de la tabla, una columna de identidad con incrementos simples. BIGINT RF_TD_ID El vínculo a la columna TIME_DIMENSION.TD_ID utilizada para identificar hora/día/mes/año que representa el registro. BIGINT RF_DOMAIN_ID Dominio PD (o -1 si es de IO) de la campaña INT en la que fueron registradas estas respuestas. RF_OFFER_ID El vínculo a la columna OFFER.OFR_ID para INT identificar las ofertas a las que responden estas respuestas. Portrait IO 5.5 Capítulo 3: Integración de IO Hecho de respuesta Descripción Valor RF_TREATMENT_ID El vínculo a la columna TREATMENT_TR_ID INT para identificar el tratamiento al que se dirigen estas respuestas. RF_ACTIVITY_ID El vínculo a la columna CAMPAIGN_ACTIINT VITY.CA_ACTIVITY_ID para ver los detalles de la actividad de la campaña RF_RESPONSE_COUNT Cantidad total actual (a partir del momento representado por la entrada TIME_DIMENSION) de respuestas positivas realizadas hasta el momento. RF_RESPONSE_VALUE Total ejecutado del valor de todas las respues- MONEY tas realizadas hasta el momento (es el valor bruto). INT RF_VALUE_NET_OF_MARGIN Si la información de predicción define un MONEY margen de ingresos, este campo contiene el valor total neto del margen (antes de descontar los costos). RF_RESPONSE_COST Coste total actual de la respuesta (donde la MONEY respuesta incurre en un costo de cumplimiento). RF_RESPONSE_INDICATOR Valor utilizado para indicar si las respuestas INT son positivas (1) , neutrales (0) o negativas (1). RF_PRODUCT_CODE Código de producto asociado con la oferta/ac- NVARCHAR(255) tividad a las que se responde (puede ser NULL) RF_MESSAGE_TEMPLATE_ID Solo PD INT El ID de la plantilla de mensajes en PD utilizada para enviar el tratamiento/la oferta RF_IS_SOFT_RESPONSE Solo PD BIT Marca utilizada para indicar que las respuestas se infieren (cuando hay una actividad anónima de campaña y no hay un vínculo directo entre la respuesta y el tratamiento específico). TIME_DIMENSION La tabla se utiliza simplemente para definir la granularidad de tiempo de las tablas de entrada de hechos. Esta tabla tiene una entrada para cada hora de cada día, en el período comprendido entre 2000-01-01 Guía de administración 65 Tablas de resumen y esquema de informes y el día posterior a la fecha del sistema actual (siempre que el paquete SSIS que poblará el almacenamiento de datos se ejecute de manera programada). Las columnas de esta tabla de base de datos son explícitas. Tablas de resumen/dimensión La tabla TREATMENT es el nivel más bajo de granularidad en el que se almacenan los resúmenes. Esta tabla contiene el recuento total de atenciones (o indicaciones en tipos de tratamiento entrantes) y el recuento de respuestas registradas. Cada tratamiento es específico para una actividad de campaña (interacción) y un canal, aunque pueden estar definidos múltiples registros de tratamiento (en el caso en que un tratamiento se haya agregado, quitado y posteriormente agregado una vez más a una actividad). La tabla de resumen también almacena los costos y el valor de los resúmenes de respuesta cuando se ha creado información de pronóstico para la actividad. Los recuentos en esta tabla se resumen incrementalmente en cada iteración del paquete SSIS que completan esta base de datos. La tabla TREATMENT se vincula con su actividad principal mediante la columna TR_ACTIVITY_ID La tabla CAMPAIGN_ACTIVITY contiene el resumen de recuentos de todas las atenciones posibles (y sus respectivas respuestas) para esta actividad (interacción). La tabla se actualiza incrementalmente en cada ejecución del paquete SSIS para garantizar que cuente con la vista más actualizada del rendimiento de las actividades. La columna CA_CAMPAIGN_ID se enlaza con la entrada principal de la tabla CAMPAIGN (CAM_CAMPAIGN_ID). Consultas de ejemplo Consulta para obtener los detalles de las respuestas por actividad de campaña. NOTA: En IO los recuentos de tratamientos reflejan la cantidad de indicaciones y los verdaderos recuentos de tratamientos solo pueden inferirse de la cantidad de respuestas. SELECT c.CAM_NAME as [Campaign Name], a.CA_NAME as [Interaction Name], ch.CH_NAME as [Channel], t.TR_TOTAL_TREATMENTS as [Prompt Count], t.TR_TOTAL_TREATMENTS -(t.TR_TOTAL_NEGATIVE_RESPONSES + t.TR_TOTAL_NEUTRAL_RESPONSES + t.TR_TOTAL_POSITIVE_RESPONSES) as [Not Presented Count], t.TR_TOTAL_POSITIVE_RESPONSES as [Positive Responses], t.TR_TOTAL_NEUTRAL_RESPONSES as [Neutral Responses], t.TR_TOTAL_NEGATIVE_RESPONSES as [Negative Responses] FROM [TREATMENT]t INNERJOIN [CAMPAIGN_ACTIVITY] a ON t.TR_ACTIVITY_ID = a.CA_ACTIVITY_ID INNERJOIN [CAMPAIGN] c ON a.CA_CAMPAIGN_ID = c.CAM_CAMPAIGN_ID INNERJOIN [CHANNEL] ch ON t.TR_CHANNEL_ID = ch.CH_CHANNEL_ID Para ejecutar la misma pregunta para una reproducción de simulación, se debe utilizar el siguiente SQL (agregando una cláusula donde para seleccionar un TOL_IO_SIM_REPLAY_ID específico): SELECT c.CAM_NAME as [Campaign Name], a.CA_NAME as [Interaction Name], ch.CH_NAME as [Channel], tl.TOL_IO_SIM_REPLAY_ID as [Replay ID], SUM( CASE WHEN r.RL_RESPONSE_INDICATOR ISNULLAND tl.TOL_ID ISNOTNULLTHEN 1 ELSE 0 66 Portrait IO 5.5 Capítulo 3: Integración de IO END)as [Not Presented Count], SUM( CASE WHEN RL_RESPONSE_INDICATOR = 1 THEN 1 ELSE 0 END)as [Positive Response], SUM( CASE WHEN RL_RESPONSE_INDICATOR = 0 THEN 1 ELSE 0 END)as [Neutral Response], SUM( CASE WHEN RL_RESPONSE_INDICATOR =-1 THEN 1 ELSE 0 END)as [Negative Response] FROM [TREATMENT] t LEFTOUTERJOIN [TREATMENT_OFFER_LOG] tl ON tl.TOL_TREATMENT_ID = t.TR_TREATMENT_ID LEFTOUTERJOIN [RESPONSE_LOG] r ON tl.TOL_ID = r.RL_TREATMENT_LOG_ID INNERJOIN [CAMPAIGN_ACTIVITY] a ON t.TR_ACTIVITY_ID = a.CA_ACTIVITY_ID INNERJOIN [CAMPAIGN] c ON a.CA_CAMPAIGN_ID = c.CAM_CAMPAIGN_ID INNERJOIN [CHANNEL] ch ON t.TR_CHANNEL_ID = ch.CH_CHANNEL_ID GROUPBY c.CAM_NAME , a.CA_NAME , ch.CH_NAME, tl.TOL_IO_SIM_REPLAY_ID Consulta para obtener el recuento de las indicaciones por canal y por graduación (solo IO utiliza graduaciones para indicaciones) SELECT c.CAM_NAME as [Campaign Name], a.CA_NAME as [Interaction Name], ch.CH_NAME as [Channel], SUM( CASE WHEN TOL_IO_RANK = 1 THEN 1 ELSE 0 END)as [Rank #1], SUM( CASE WHEN TOL_IO_RANK = 2 THEN 1 ELSE 0 END)as [Rank #2], SUM( CASE WHEN TOL_IO_RANK = 3 THEN 1 ELSE 0 END)as [Rank #3], SUM( CASE WHEN TOL_IO_RANK = 4 THEN 1 ELSE 0 END)as [Rank #4], SUM( CASE WHEN (TOL_IO_RANK <1 OR TOL_IO_RANK > Guía de administración 67 Tablas de resumen y esquema de informes 4)THEN 1 ELSE 0 END)as [Rank Other] FROM [TREATMENT] t LEFTOUTERJOIN [TREATMENT_OFFER_LOG] tol ON t.TR_TREATMENT_ID =tol.TOL_TREATMENT_ID INNERJOIN [CAMPAIGN_ACTIVITY] a ON t.TR_ACTIVITY_ID = a.CA_ACTIVITY_ID INNERJOIN [CAMPAIGN] c ON a.CA_CAMPAIGN_ID = c.CAM_CAMPAIGN_ID INNERJOIN [CHANNEL] ch ON t.TR_CHANNEL_ID = ch.CH_CHANNEL_ID GROUPBY c.CAM_NAME , a.CA_NAME , ch.CH_NAME Para filtrar por reproducciones por simulación, agregue una cláusula ‘tol.TOL_IO_SIM_REPLAY_ID’ que sea NULL para excluir las reproducciones por simulación o para una reproducción específica. Grupos de datos de referencia Los valores de las “enumeraciones configurables” se almacenan como pares de Grupo de datos de referencia/RDI. Hacen referencia a los valores del grupo de datos de referencia y del elemento de datos de referencia que se enumeran en las tablas amc_rd_ref_data_group y amc_rd_ref_data_item. Para resolver un índice rdi a un valor concreto, simplemente haga coincidir los valores del Grupo de datos de referencia y RDI con las columnas reference_data_group_id y reference_data_item_id de la tabla amc_rd_ref_data_item. Para enumerar los valores posibles de un Grupo de datos de referencia en particular, enumere todos los valores de la tabla amc_rd_ref_data_item con las coincidencias de reference_data_group_id. Para hallar el Grupo de datos de referencia de un tipo en particular, haga coincidir el valor del Grupo de datos de referencia con la columna reference_data_group_id de la tabla amc_rd_ref_data_group. Automatización A menudo el extracto estará configurado como un proceso automatizado, programado, de extracción de datos. Los detalles sobre cómo hacerlo están fuera del alcance de esta documentación, pero estas son algunas sugerencias y consejos: • Ajuste el SQL dentro de un paquete de SQL Server Integration Services, luego configure ejecuciones automatizadas y programadas de trabajo con el SQL Server Agent Manager en SQL Server Management Studio. • Ajuste el SQL dentro de llamadas a algún motor de lotes como SQLCMD y disponga la programación con Windows Scheduler, o con alguna utilidad similar. • Integre el proceso de extracción con algún proceso externo de análisis o de creación de datos (como el comando de creación de datos qsbuild de Quadstone System). 68 Portrait IO 5.5 Capítulo Personalización de IO En esta sección: • • • • Configuración de actividades de promoción comercial . .70 Configuración de canales . . . . . . . . . . . . . . . . . . . . . . . . .72 Configuración de tipos de respuesta . . . . . . . . . . . . . . . .74 Procesamiento previo y posterior de llamadas de servicio de IO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .76 • Resolución de ID de cliente y agente externos . . . . . . .76 • Creación de funciones de decisión personalizadas . . . .77 4 Configuración de actividades de promoción comercial Configuración de actividades de promoción comercial Configuración de tipos de actividades Los tipos de actividades se usan para agrupar actividades de la campaña. Se puede configurar Portrait HQ de modo que gradúe las recomendaciones de acuerdo con sus tipos de actividades. La configuración de la lista de tipos de actividades disponibles se realiza mediante la modificación del contenido de la tabla CampaignActivityType en la base de datos de PSR. La tabla CampaignActivityType incluye las siguientes columnas: Nombre de colum- Descripción na Name Nombre único utilizado para representar el tipo de actividad. Description Descripción para el tipo de actividad. SupportsAnonymous Ajústelo en 1 si este tipo de actividad se orienta a clientes desconocidos, de lo contrario, ajústelo en 0. SupportsIdentified Ajústelo en 1 si este tipo de actividad se orienta a clientes conocidos, de lo contrario, ajústelo en 0. Ejemplo El conjunto de tipos de actividades predeterminado disponible se establece mediante la ejecución de las siguientes declaraciones de SQL en la base de datos de PSR: INSERT INTO CampaignActivityType(Name, Description, SupportsAnonymous, portsIdentified) VALUES('Acquisition', 'Acquisition.', 1, 1) INSERT INTO CampaignActivityType(Name, Description, SupportsAnonymous, portsIdentified) VALUES('Revenue', 'Revenue.', 0, 1) INSERT INTO CampaignActivityType(Name, Description, SupportsAnonymous, portsIdentified) VALUES('Retention', 'Retention.', 0, 1) INSERT INTO CampaignActivityType(Name, Description, SupportsAnonymous, portsIdentified) VALUES('Service', 'Service.', 1, 1) INSERT INTO CampaignActivityType(Name, Description, SupportsAnonymous, portsIdentified) VALUES('Loyalty', 'Loyalty.', 0, 1) SupSupSupSupSup- Configuración de subtipos de actividades Como opción, se puede asignar a las actividades de promoción comercial un subtipo de actividad. Se utilizan para agrupar adicionalmente actividades de campaña, además de los tipos de actividades. Se puede configurar Portrait HQ para clasificar recomendaciones según sus subtipos de actividades. La configuración de la lista de subtipos de actividades disponibles se realiza mediante la modificación del contenido de la tabla CampaignActivitySubType en la base de datos de PSR. La tabla CampaignActivitySubType incluye las siguientes columnas: 70 Portrait IO 5.5 Capítulo 4: Personalización de IO Nombre de colum- Descripción na Name Nombre único utilizado para representar el subtipo de actividad. Description Descripción para el subtipo de actividad. Ejemplo El conjunto de subtipos de actividades predeterminado disponible se establece mediante la ejecución de las siguientes declaraciones de SQL en la base de datos de PSR: INSERT INTO CampaignActivitySubType(Name, Description) VALUES('Loan', 'Loan.') INSERT INTO CampaignActivitySubType(Name, Description) VALUES('Mortgage', 'Mortgage.') INSERT INTO CampaignActivitySubType(Name, Description) VALUES('Current Account', 'Current Account.') Configuración de prioridades de actividades Como opción, se puede asignar una prioridad a las actividades de promoción comercial. Esta prioridad puede utilizarse para graduar las actividades de promoción comercial cuando se presentan en canales de entrada. La configuración de la lista de prioridades de actividad de promoción comercial disponibles se realiza mediante la modificación del contenido de la tabla PriorityType en la base de datos de PSR. La tabla PriorityType incluye las siguientes columnas: Nombre de colum- Descripción na Name Nombre único que se utiliza para representar un tipo de prioridad. Description Descripción para el tipo de prioridad. PriorityValue Valor del tipo de prioridad utilizado para representar una prioridad para una actividad. Este valor se utiliza para graduar la actividad; un valor más alto generará una graduación más alta. Ejemplo El conjunto predeterminado de prioridades disponibles se establece mediante la ejecución de las siguientes declaraciones de SQL en la base de datos de Portrait Shared Repository: INSERT INTO PriorityType(Name, 'Highest.', 10000) INSERT INTO PriorityType(Name, 'High.', 5000) INSERT INTO PriorityType(Name, 'Medium.', 1000) INSERT INTO PriorityType(Name, 'Low.', 500) INSERT INTO PriorityType(Name, 'Lowest.', 100) Guía de administración Description, PriorityValue) VALUES('Highest', Description, PriorityValue) VALUES('High', Description, PriorityValue) VALUES('Medium', Description, PriorityValue) VALUES('Low', Description, PriorityValue) VALUES('Lowest', 71 Configuración de canales Configuración de canales Configuración de canales En Portrait HQ, los usuarios seleccionan los canales de entrada y de salida que debe usar una actividad de promoción comercial haciendo clic en un conjunto de botones de alternación de la página de actividad de promoción comercial. Para agregar, eliminar o modificar cualquiera de los canales, es necesario realizar cambios en las tablas TreatmentType y ChannelType de Portrait Shared Repository. Tabla 1: Tabla ChannelType Nombre de columna Descripción Name El nombre del canal. Description Descripción para el canal. PcmChannelName El nombre del canal en Portrait Dialogue. Los canales nuevos normalmente dejan este campo vacío. Tabla 2: Tabla TreatmentType 72 Nombre de columna Descripción Name El nombre del tipo de tratamiento. Debe ser único. ShortName Una versión corta del nombre del tipo de tratamiento. Este es el texto que se muestra debajo del símbolo del canal en la página de actividad de promoción comercial. Description Descripción para el tipo de tratamiento. ChannelTypeId El ID del tipo de canal. Debe ser un ID de uno de los canales en la tabla ChannelTypeId. SupportsAnonymous Si se admite el tratamiento anónimo. Establezca este valor en 1 para los tipos de tratamiento en los que el cliente que recibe tratamiento no es conocido. SupportsIdentified Si se admite el tratamiento identificado. Establezca este valor en 1 para los tipos de tratamiento en los que el cliente que recibe tratamiento es conocido. Portrait IO 5.5 Capítulo 4: Personalización de IO Nombre de columna Descripción IsControlGroup Si los clientes que reciben tratamiento deben tratarse como un grupo de control. Debe establecerse normalmente en 0. SymbolData El icono del tipo de tratamiento representado como una ruta de acceso de gráficos XAML (gráfico del vector). DefaultTreatmentCost Valor opcional, hasta el costo de tratamiento predeterminado. PcmDefaultBranchType Si el tipo de tratamiento está vinculado con una sucursal de Portrait Dialogue. Los canales nuevos normalmente dejan este campo vacío. PcmDefaultOperationType Si el tipo de tratamiento tiene un tipo de operación predeterminado de Portrait Dialogue. Los canales nuevos normalmente dejan este campo vacío. IsOutbound Si el tipo de tratamiento indica un tratamiento de entrada o de salida. Se muestra en la página de actividad de promoción comercial en “Canales salientes para usar” si se establece en 1 y en “Canales entrantes para usar” si se establece en 0. Los tratamientos de salida por lo general se crean mediante Portrait Dialogue, mientras que los tratamientos de entrada por lo general se crean con Interaction Optimizer. Adición de un nuevo canal a la página de actividad de promoción comercial Si desea agregar un canal completamente nuevo a la página de actividad de promoción comercial, utilice los pasos siguientes: 1. Agregue un nuevo registro a la tabla ChannelType. 2. Agregue un nuevo registro a la tabla TreatmentType y establezca el campo ChannelTypeId de modo que vincule el registro que creó en la tabla ChannelType. Modificación del texto de los íconos de canales en la página de actividad de promoción comercial Si desea modificar el texto que se muestra debajo de uno de los iconos de canales en la página de actividad de promoción comercial, use los pasos siguientes: 1. Busque el registro relevante en la tabla TreatmentType. 2. Modifique el valor en el campo ShortName. Guía de administración 73 Eliminación de un canal que se muestra en la página de actividad de promoción comercial Eliminación de un canal que se muestra en la página de actividad de promoción comercial Advertencia: Si elimina uno de los canales de la página de actividad de promoción comercial, deberá eliminar un tipo de tratamiento de la base de datos. Esto puede tener consecuencias graves para las campañas ‘En mercado’ e, idealmente, solo debe realizarse en un sistema nuevo sin campañas (o al menos en un sistema sin campañas ‘En mercado’). 1. Busque el registro relevante en la tabla TreatmentType y anote su ID. 2. Elimine los registros de la tabla Treatment que hagan referencia al tipo de tratamiento que encontró al buscar el valor en la columna TreatmentTypeId y relacionarlo con el ID del tipo de tratamiento que desee eliminar. Nota:si un registro en la tabla TreatmentOfferForecast hace referencia a alguno de los registros que desee eliminar en la tabla Treatment, primero deberá eliminar ese registro. Puede saber si un tratamiento tiene un pronóstico de oferta a través del ID de tratamiento y comprobando si alguno de los registros en la tabla TreatmentOfferForecast tiene un valor correspondiente en su columna TreatmentId. 3. Elimine el tipo de tratamiento. Configuración de tipos de respuesta Los tipos de respuesta representan las diferentes maneras en que un cliente puede responder a una recomendación. Usted configura la lista de tipos de respuesta disponibles para utilizar en todas las recomendaciones. El conjunto predeterminado es: Denegación, Solicitud de información, Solicitud de presupuesto, Aplicación, Intentar nuevamente más tarde, No realizar la promoción comercial, Referencia, Captar cliente potencial, En el grupo de control, Suprimir para interacción y Suprimir durante tres días. Puede configurar la lista de tipos de respuesta disponibles modificando el contenido de la tabla ResponseType en la base de datos de PSR. La tabla ResponseType incluye las siguientes columnas: Nombre de colum- Descripción na Name Nombre único utilizado para representar el tipo de respuesta. DisplayName La etiqueta del tipo de respuesta. Esta etiqueta se utiliza para identificar el tipo de respuesta para usuarios de HQ. Description Descripción del tipo de respuesta. Deleted Establezca esta fecha para que este tipo de respuesta deje de estar disponible para utilizar en HQ. ResponseIndica- Si este tipo de respuesta debe clasificarse como positiva (1), negativa (-1) o neutra (0). Esta clasificación se utiliza para generar informes sobre el desempeño tor de la campaña. 74 Portrait IO 5.5 Capítulo 4: Personalización de IO Nombre de colum- Descripción na IsBlocking Si este tipo de respuesta elimina la entrega futura de recomendaciones. Establezca True como valor predeterminado de IsBlocking si desea que la respuesta de un cliente a una recomendación elimine la entrega futura de esa recomendación al mismo cliente. SuppressCorre- Establezca True como valor predeterminado de SuppressCorrelated si desea que este tipo de respuesta elimine las recomendaciones en solicitudes correlacionadas lated del cliente. Este tipo de respuesta le otorga el control de la eliminación de la recomendación a la aplicación del cliente. Esto resulta útil si la aplicación del cliente desea eliminar una solicitud durante una sesión de la aplicación. SuppressionPe- Denota el período (en días) durante los que la recomendación se eliminará. Por ejemplo, si SuppressionPeriod se establece en 5, y se registra una respuesta del riod cliente en cualquier momento el 1 de enero, la recomendación solo se devolverá a ese cliente a partir del 7 de enero. Ejemplo El conjunto de tipos de respuesta predeterminado disponible se establece mediante la ejecución de las siguientes declaraciones de SQL en la base de datos de PSR: INSERT INTO ResponseType(Name, DisplayName, Description, ResponseIndicator, IsBlocking, SuppressCorrelated, SuppressionPeriod) VALUES('Refusal', 'Refusal', 'Accept', -1, 1, null, null) INSERT INTO ResponseType(Name, DisplayName, Description, ResponseIndicator, IsBlocking, SuppressCorrelated, SuppressionPeriod) VALUES('InformationRequest', 'Information request', 'Information request', 0, 1, null, null) INSERT INTO ResponseType(Name, DisplayName, Description, ResponseIndicator, IsBlocking, SuppressCorrelated, SuppressionPeriod) VALUES('QuotationRequest', 'Quotation request', 'Quotation request', 1, 1, null, null) INSERT INTO ResponseType(Name, DisplayName, Description, ResponseIndicator, IsBlocking, SuppressCorrelated, SuppressionPeriod) VALUES('Application', 'Application', 'Application', 1, 1, null, null) INSERT INTO ResponseType(Name, DisplayName, Description, ResponseIndicator, IsBlocking, SuppressCorrelated, SuppressionPeriod) VALUES('TryAgainLater', 'Try again later', 'Try again later', 0, 0, null, null) INSERT INTO ResponseType(Name, DisplayName, Description, ResponseIndicator, IsBlocking, SuppressCorrelated, SuppressionPeriod) VALUES('DontMarket', 'Don't market', 'Don't market', -1, 1, null, null) INSERT INTO ResponseType(Name, DisplayName, Description, ResponseIndicator, IsBlocking, SuppressCorrelated, SuppressionPeriod) VALUES('Referral', 'Referral', 'Referral', 0, 1, null, null) INSERT INTO ResponseType(Name, DisplayName, Description, ResponseIndicator, IsBlocking, SuppressCorrelated, SuppressionPeriod) VALUES('CaptureLead', 'Capture lead', 'Capture lead', 1, 1, null, null) INSERT INTO ResponseType(Name, DisplayName, Description, ResponseIndicator, IsBlocking, SuppressCorrelated, SuppressionPeriod) VALUES('InControlGroup', 'In control group', 'In control group', 0, 1, null, null) INSERT INTO ResponseType(Name, DisplayName, Description, ResponseIndicator, IsBlocking, SuppressCorrelated, SuppressionPeriod) VALUES('SuppressForEngagement', 'Suppress for engagement', 'Suppress for engagement', 0, 0, 1, null) INSERT INTO ResponseType(Name, DisplayName, Description, ResponseIndicator, IsBlocking, SuppressCorrelated, SuppressionPeriod) VALUES('SuppressForThreeDays', 'Suppress for three days', 'Suppress for three days', 0, 0, 0, 3) Guía de administración 75 Procesamiento previo y posterior de llamadas de servicio de IO Procesamiento previo y posterior de llamadas de servicio de IO Las operaciones Interaction Optimizer y RecordActionResponse del servicio web de Interaction Optimizer proporcionan puntos de extensión que le permiten personalizar el procesamiento antes y después de los modelos de ejecución que implementan la funcionalidad principal de Interaction Optimizer. Estos puntos de extensión se implementan como clases del modelo para las cuales puede proporcionar cualquier cantidad de miembros. Se ejecutarán todos los miembros de la clase del modelo. Las clases del modelo disponibles son: • • • • IO - PreProcess Get Actions IO - PostProcess Get Actions IO - PreProcess Record Action Response IO - PostProcess Record Action Response Puede encontrar las clases del modelo en la sección Supporting definitions/Models/Model classes de la vista Configuration Suite Explorer. Resolución de ID de cliente y agente externos Es posible dejar todos los datos de clientes en sistemas externos y recuperarlos en Decision Data Source. Las operaciones del servicio web de Interaction Optimizer prevén recibir ID de participantes únicos (y tipo de parte asociada) implicados en cada interacción (por ejemplo, el cliente y/o el agente que interactúa con el cliente). Interaction Optimizer utiliza estos ID al registrar y recuperar la solicitud, el tratamiento y el historial de respuestas. Interaction Optimizer le permite modificar estos ID mediante la invocación de un proceso de búsqueda que le da la posibilidad de resolver los ID de agente y de cliente. Probablemente utilice esta función si usa ID únicos alternativos al llamar al servicio desde diferentes clientes o si el ID único cambia durante la vida del participante, por ejemplo, cuando un posible cliente se convierte en cliente. En esta situación, debe intentar resolver todos los ID de un cliente dado a un solo ID bien reconocido para garantizar que todo el historial que pertenezca al cliente esté asociado a un solo ID para la posterior recuperación y creación de informes. Este proceso se implementa mediante la clase del modelo “IO - Resolve party”, que necesita extenderse si desea usar esta función. Puede buscar la clase del modelo en la sección Definiciones auxiliares/Modelos/Clases de modelo de la vista Configuration Suite Explorer. 76 Portrait IO 5.5 Capítulo 4: Personalización de IO Creación de funciones de decisión personalizadas El motor de decisiones provee funciones de complementos precisos que se incorporan en la lógica de la regla si así lo requiere el proyecto. Las funciones deben escribirse en un idioma .Net (el ejemplo que se muestra aquí está en C#), compilado en un conjunto que se sitúa en la siguiente ubicación: <portrait_install_folder>\CRMComponents\DecisionEnginePlugins Se hace referencia a esta ruta mediante un valor de cadena de registro en HKEY_LOCAL_MACHINE\SOFTWARE\PST\Portrait\Systems\<system_name>\DecisionsPlugins. (Tenga en cuenta que este valor puede incluir múltiples rutas separadas por punto y coma, ‘;’.) Los pasos necesarios para crear una función disponible para usar en la lógica de la regla del motor de decisiones son: 1. Crear un nuevo proyecto C#. 2. Agregar una referencia al conjunto AIT.Portrait.Decisions.EnginePlugin.dll (disponible en el SDK de Portrait). 3. Crear una nueva clase. 4. Aplicar el atributo ‘DecisionEngine” a la declaración de la clase. 5. Crear un método estático público con una firma adecuada para su función de complemento. 6. Aplicar el atributo ‘DecisionEngine” a la declaración del método. 7. Codificar el cuerpo de su función. A continuación se muestra un ejemplo en C#: Ejemplo namespace <namespace> { [DecisionEngine(“Description of class containing plugin functions”)] public class <class> { [DecisionEngine(“Return the size of a data object collection”)] static public System.Int32 Count(PortraitNETLib.IAmcDOCollection doc) { return (doc != null) ? doc.Count : -1; } } } Tipos de datos admitidos Los valores de parámetros y devueltos de las funciones de complemento deben ser de los siguientes tipos: • • • • • • • System.Boolean System.Byte System.Double System.DateTime System.Int System.Uint System.Sbyte Guía de administración 77 Creación de funciones de decisión personalizadas • • • • • System.Single System.String System.Object PortraitNETLib.IAmcDataObject PortraitNETLib.IAmcDOCollection Nota: Se requiere una referencia del proyecto a AIT.Portrait.Interops para usar PortraitNetLib. Siempre que se efectúen cambios en las funciones de decisión personalizadas instaladas, se debe volver a ejecutar la herramienta DatasourceDefExporter para exportar estos cambios a Portrait HQ. 78 Portrait IO 5.5 Capítulo Administrar IO En esta sección: • Administración de usuarios de Portrait HQ . . . . . . . . . . .80 • Movimiento de grabaciones de simulación a un sistema de IO diferente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .84 • Cómo mover datos de campaña a un sistema IO distinto .85 • Configuración de la clasificación predictiva (integración de Miner) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86 • Configuración de clasificación adaptiva . . . . . . . . . . . . .91 • Configuración de audiencias secundarias . . . . . . . . . . . .93 • Configuración de procesos de negocio . . . . . . . . . . . . . .95 • Carga de listas de clientes . . . . . . . . . . . . . . . . . . . . . . . . .98 • Registro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .99 • Mantenimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100 5 Administración de usuarios de Portrait HQ Administración de usuarios de Portrait HQ La autenticación y autorización de usuarios de HQ están controladas mediante el uso de mecanismos de Windows estándar. La configuración de la autenticación y autorización se menciona en las dos secciones siguientes. Nota: Si Portrait HQ está integrado a Portrait Dialogue (al seleccionar ‘Habilite la integración de Dialogue’ durante la instalación de Portrait HQ), entonces Dialogue Admin se utiliza para administrar usuarios de HQ. Autenticación de usuarios de Portrait HQ La forma de autenticación de los usuarios de Portrait HQ se configura utilizando el archivo XML bin\config\Portrait.Mas.Cms.Services.Authorization.config dentro de la aplicación web Portrait Shared Services (en <carpeta de instalación>\PST\Portrait Shared Server\Portrait Shared Services). El inicio de sesión único no está establecido como configuración predeterminada. Las credenciales de usuario de Portrait HQ se validan en relación con Active Directory, que se utilizó para autenticar al usuario con el que se ejecuta la aplicación web Portrait Shared Services (suponiendo que está deshabilitada la integración de Dialogue). Para cambiar este comportamiento, agregue un elemento Domain a Portrait.Mas.Cms.Services.Authorization.config. Opciones para configurar el elemento Domain:· • Domain: utilice este elemento para autenticar usuarios en un dominio de Windows diferente de aquel al que pertenece PSS. Cuando se utilice esta configuración, debe existir una relación de confianza entre el dominio en el cual reside PSS y el dominio al cual pertenecen los usuarios de HQ. La identidad del grupo de aplicaciones Portrait Shared Server debe ser una cuenta en el dominio en el que está intentando autenticar a los usuarios HQ, o bien una cuenta que tenga una relación de confianza con el dominio que está intentando autenticar. Por ejemplo: <Domain ControllerName="pbi.global.pvt" DistinguishedName="DC=pbi,DC=global,DC=pvt"/> Para utilizar un controlador de dominio específico para la autenticación, especifique el nombre de host del controlador dentro de ControllerName. Por ejemplo: <Domain ControllerName="USDBY1-GLBADP02.pbi.global.pvt" DistinguishedName="DC=pbi,DC=global,DC=pvt"/> • ApplicationDictionary: utilice esta opción para realizar la autenticación con LDAP, por ejemplo, al usar un servidor AD LDS. Por ejemplo: <Domain ContextTypeName="ApplicationDirectory" ControllerName="io52-icr-eng.pbi.global.pvt" 80 Portrait IO 5.5 Capítulo 5: Administrar IO DistinguishedName="OU=UK-HENLEY,OU=PSSUsers,DC=pbi,DC=global,DC=pvt" IdentityTypeName="UserPrincipalName" GroupIdentityTypeName="Name" IdentityTypeName: este atributo de entrada de usuario del diccionario identifica un usuario y se compara en relación con el nombre de inicio de sesión ingresado en el formulario de inicio de sesión de HQ. El valor predeterminado es SAMAccountName, que es la norma para Active Directory. GroupIdentityTypeName: este atributo de entrada de grupo del diccionario identifica un grupo y se utiliza para combinar con nombres de grupo utilizados para autorización (vea debajo). El valor predeterminado es IdentityTypeName (vea debajo). • Machine: utilice esta opción para realizar la autenticación de usuarios y grupos locales configurados en la máquina de PSS. Por ejemplo: <Domain ContextTypeName="Machine" /> Si se especifica un elemento Domain, la configuración Authentication en Portrait Shared Services y las aplicaciones web de Marketing HQ debe volver a configurarse en Internet Information Services como: Autenticación anónima Autenticación de Windows MarketingHQ True False PortraitSharedServices True False (instalado como True) Mientras que la configuración Authentication instalada (para inicio de sesión único) es: Autenticación anónima Autenticación de Windows MarketingHQ False (instalado como True) True (instalado como False) PortraitSharedServices True True Para todas las opciones, las solicitudes de validar credenciales de usuario se emiten utilizando la cuenta con la que se ejecuta Portrait Shared Services (PSS), es decir, la identidad de Portrait Shared Server AppPool. Esta cuenta debe tener privilegios suficientes para consultar el directorio de usuario correspondiente. Autorización de usuarios de Portrait HQ Portrait HQPortrait HQ se configuran utilizando el archivo XML bin\config\Portrait.Mas.Cms.Services.Authorization.config. De forma predeterminada, todos los usuarios autenticados reciben todos los permisos en Portrait HQ. Puede utilizar el elemento DomainGroupRoleMappings para controlar los derechos otorgados a usuarios de Portrait HQ. Se supone que los usuarios son miembros de grupos dentro del directorio de usuario correspondiente. Durante la autorización, Portrait Shared Server (PSS) recupera la lista de grupos de usuarios e intenta buscar DomainGroups coincidentes dentro del elemento DomainGroupRoleMappings. Se proporciona al usuario los roles que pertenecen a todos los DomainGroups coincidentes. Una vez que se encuentra un rol de usuario, los permisos se determinan a través del elemento RolePermissions. Guía de administración 81 Cambio de permisos de usuario de HQ Nota: Si no está presente el elemento DomainGroupRoleMappings, un usuario autenticado recibirá todos los permisos. Si está presente un elemento DomainGroupRoleMappings, pero el usuario autenticado no es miembro de ninguno de los DomainGroups especificados, se le negarán los derechos de inicio de sesión y no podrá utilizar Portrait HQ. Comúnmente, se cambiará el contenido del elemento DomainGroupRoleMappings para implementar las reglas de autorización; por ejemplo: <DomainGroupRoleMappings> <DomainGroup Name= "myCompany\Marketing"> <Role Name= "DirectMarketer" /> </DomainGroup> <DomainGroup Name= "myCompany\MarketingDirector"> <Role Name= "SeniorManagement" /> <Role Name= "BusinessStakeholder" /> </DomainGroup> </DomainGroupRoleMappings El ejemplo mencionado corresponde a un contexto de autenticación de Domain. Si el contexto de autenticación es ApplicationDirectory o Machine, los nombres de DomainGroup serán "Marketing" y "MarketingDirectory" respectivamente. Cambio de permisos de usuario de HQ Utilice el siguiente procedimiento para cambiar los permisos de usuario de HQ. 1. Inicie sesión en el servidor de Portrait HQ y abra el archivo Portrait.Mas.Cms.Services.Authorization.config en: /pst/Portrait Shared Server/Portrait Shared Services/Bin/config/. 2. Actualice los permisos de usuario según corresponda. Nota: A continuación se especifica el conjunto predeterminado de permisos para cada función HQ. El significado de cada permiso se explica en la siguiente tabla. <RolePermissions> <Role Name= "SeniorManagement"> <Permission Name="AllowedToLogOn" /> <Permission Name="AllowedToLogOnToEmarketingDesigner" /> <Permission Name="DeleteTask" /> <Permission Name= "EditTask" /> <Permission Name= "ReadCampaign" /> <Permission Name= "ReadOffer" /> <Permission Name= "ReadTask" /> </Role> <Role Name="BusinessStakeholder"> <Permission Name="AllowedToLogOn" /> <Permission Name="AllowedToLogOnToEmarketingDesigner" /> <Permission Name="DeleteOffer" /> <Permission Name="EditOffer" /> <Permission Name="ReadCampaign" /> <Permission Name="ReadOffer" /> <Permission Name="ReadTask" /> </Role> <Role Name="Creative"> <Permission Name="AllowedToLogOn" /> <Permission Name="AllowedToLogOnToEmarketingDesigner" /> 82 Portrait IO 5.5 Capítulo 5: Administrar IO <Permission Name="EditEmarketingMailTemplates" /> <Permission Name="EditTask" /> <Permission Name="ReadCampaign" /> <Permission Name="ReadOffer" /> <Permission Name="ReadTask" /> </Role> <Role Name="CustomerInsight"> <Permission Name="AllowedToLogOn" /> <Permission Name="AllowedToLogOnToEmarketingDesigner" /> <Permission Name="EditTask" /> <Permission Name="ReadCampaign" /> <Permission Name="ReadOffer" /> <Permission Name="ReadTask" /> </Role> <Role Name="DirectMarketer"> <Permission Name="AllowedToLogOn" /> <Permission Name="AllowedToLogOnToEmarketingDesigner" /> <Permission Name="EditEmarketingMailTemplates" /> <Permission Name="AllowedToLogOnToVisualDialog" /> <Permission Name="DeleteItem" /> <Permission Name="DeleteOffer" /> <Permission Name="DeleteTask" /> <Permission Name="EditCampaign" /> <Permission Name="EditOffer" /> <Permission Name="EditTask" /> <Permission Name="ReadCampaign" /> <Permission Name="ReadOffer" /> <Permission Name="ReadTask" /> <Permission Name="EditGlobalSelections" /> </Role> <Role Name="MarketingOperations"> <Permission Name="AllowedToLogOn" /> <Permission Name="AllowedToLogOnToEmarketingDesigner" /> <Permission Name="EditEmarketingMailTemplates" /> <Permission Name="AllowedToLogOnToVisualDialog" /> <Permission Name="DeleteItem" /> <Permission Name="DeleteOffer" /> <Permission Name="DeleteTask" /> <Permission Name="EditCampaign" /> <Permission Name="EditOffer" /> <Permission Name="EditTask" /> <Permission Name="ReadCampaign" /> <Permission Name="ReadOffer" /> <Permission Name="ReadTask" /> <Permission Name="EditGlobalSelections" /> </Role> Permiso Descripción AllowedToLogOn Permite iniciar sesión en la aplicación Portrait HQ. AllowedToLogOnToEmarketingDesigner Permite iniciar sesión en el Diseñador de mensajes y ver plantillas de mensaje en el diseñador. Las plantillas de mensajes definen el contenido que se envía en las comunicaciones salientes. EditEmarketingMailTemplates Permite editar plantillas de mensaje en el Diseñador de mensajes. Guía de administración 83 Movimiento de grabaciones de simulación a un sistema de IO diferente Permiso Descripción AllowedToLogOnToVisualDialog Inicie Visual Dialogue desde un enlace de Portrait HQ. ReadCampaign Vea (sin modificar) campañas, selecciones, mensajes y listas. EditCampaign Modifique campañas, selecciones, mensajes y listas. DeleteItem Elimine campañas, selecciones, mensajes y listas. ReadOffer Vea ofertas sin modificarlas. EditOffer Modifique ofertas. DeleteOffer Elimine ofertas. ReadTask Vea tareas sin modificarlas. EditTask Modifique tareas. DeleteTask Elimine tareas. EditGlobalSelections Cree, modifique y quite selecciones globales (las selecciones globales se aplican a todas las campañas). ApproveCampaign El usuario tiene permiso para aprobar campañas. LaunchCampaign El usuario tiene permiso para iniciar campañas. Movimiento de grabaciones de simulación a un sistema de IO diferente La capacidad de simulación de IO le permite registrar actividades de IO (solicitudes de recomendaciones) como una grabación de simulación. Esta grabación puede transferirse a un entorno de prueba, donde proporciona datos de prueba para la reproducción de una simulación. La reproducción pone a prueba las campañas presentes en el entorno de prueba. Para exportar una grabación de simulación de la base de datos de IO a un archivo, ejecute el paquete de SSIS ExportSimulationData.dtsx. El archivo de exportación se crea en la carpeta Simulation\export. Para importar una grabación de simulación desde el archivo a la base de datos de IO, ejecute el paquete de SSIS ImportSimulationData.dtsx. El archivo que desea importar debe colocarse en la carpeta Simulation\import. 84 Portrait IO 5.5 Capítulo 5: Administrar IO Cómo mover datos de campaña a un sistema IO distinto El paquete PromoteCampaigns SQL Server Integration Service (SSIS) le permite mover datos de campañas entre entornos de IO. Esto resulta útil si intenta poner a prueba campañas en un entorno y, luego, desea transferir automáticamente estas campañas a un entorno de producción. PromoteCampaigns transfiere campañas restaurando una copia de seguridad de la base de datos de Portrait Shared Repository en el entorno de destino. Para utilizar PromoteCampaigns, debe: 1. Crear una copia de seguridad de la base de datos de Portrait Shared Repository que contenga la campaña que desea mover. 2. Ejecutar el paquete PromoteCampaigns SSIS. Cómo crear una copia de seguridad El paquete PromoteCampaigns se basa en que tiene como fuente de datos una copia de seguridad completa de la base de datos PSR. De la base de datos PSR que se transferirá se debe realizar una copia de seguridad de toda la base de datos en un solo archivo. El archivo de copia de seguridad se debe copiar en el servidor de base de datos (y se le debe cambiar el nombre si es necesario) en la ubicación especificada en el valor del parámetro de configuración PSS_Backup_File. Esta ubicación se seleccionó al instalar el paquete PromoteCampaigns: consulte la Guía de instalación de IO para obtener más detalles. Cómo ejecutar el paquete Se puede ejecutar el paquete PromoteCampaigns de los modos siguientes: • Al hacer doble clic en el archivo PromoteCampaigns.dtsx en Windows Explorer. Esto abrirá la 'Utilidad de ejecución de paquetes'. Haga clic en el botón Execute para iniciar la ejecución del paquete. • Utilizando la herramienta de línea de comandos dtexec (con la opción /F PromoteCampaigns.dtsx) • Al configurar el trabajo del agente a SQL para ejecutar el paquete. Si la configuración del paquete se instaló con el valor PSS_Use_Windows_Auth establecido en ‘True’, el usuario que ejecute el paquete debe ser un usuario válido de PSS. Una vez completado el ascenso, los nuevos datos de la campaña estarán disponibles para que Interaction Optimizer los utilice en sus recomendaciones. Mientras se ascienden los datos de la campaña, la base de datos se colocará en un estado bloqueado. Hasta que se complete el ascenso no se podrá acceder a Interaction Optimizer ni a la base de datos. Resolución de problemas Si ocurre un error durante la ejecución del paquete de ascenso, se deben seguir los siguientes pasos para diagnosticar y resolver cualquier problema: • Verifique si la entrada [io_applications_params] de la tabla de la base de datos de OI para APPLICATION_STATUS está en ‘Available’. Si está en ‘Locked', otro usuario ha comenzado una operación de Guía de administración 85 Configuración de la clasificación predictiva (integración de Miner) ascenso de campañas, o bien, hubo un error en un intento previo por ejecutar el paquete. Para poder ejecutar el paquete de ascenso, el estado DEBE SER ‘Available’. Para actualizar dicho estado utilice SQL Management Studio. • Si se produce un error en la ejecución del paquete y el estado es ‘Available’, es posible que esté causado por la autenticación inválida del servicio web PSS o bien porque la dirección URL suministrada es incorrecta. Se deben verificar las credenciales y la dirección URL para asegurarse de que sean correctas y que el usuario pueda iniciar sesión en Portrait HQ con dichas credenciales. • Si el paquete presenta un error en la etapa ‘Restore PSR Backup’ o ‘Make user DBO (SQL set via Expression)’ lo más probable es que se deba a que la cuenta de usuario especificada para la conexión de base de datos principal de PSR no tiene los permisos correspondientes (consulte los requisitos previos), o bien, el DboLoginName suministrado no es un inicio de sesión válido. Si esto ocurre, corrija la configuración y restablezca APPLICATION_STATUS en la base de datos de IO (Foundation) en el estado ‘Available’ antes de volver a ejecutar el paquete con los valores correctos. • Una vez ejecutado el paquete de ascenso correctamente; si recibe un mensaje de error en Portrait HQ al cargar las campañas migradas, asegúrese de que las vistas (ActivityOfferPerformance, CampaingActivityPerformance,TreatmentPerformance) de la base de datos de PSR se hayan actualizado para hacer referencia a la base de datos de DW correcta. Configuración de la clasificación predictiva (integración de Miner) Portrait Miner es la solución de Portrait que le permite generar percepciones a partir del análisis del comportamiento de clientes, mientras que Interaction Optimizer es la solución de Portrait que le permite proporcionar un conjunto ordenado de recomendaciones que servirá como guía de las acciones que deben llevarse a cabo cuando un cliente se pone en contacto con una organización. La integración entre Portrait Miner e Interaction Optimizer permite obtener percepciones y resultados analíticos, como grupos objetivo y reglas predictivas objetivo, identificados en Portrait Miner para compartirlos e implementarlos directamente en un entorno operativo. Esto sucede a través de la exportación de una descripción de reglas analíticas. Visión general Interaction Optimizer Interaction Optimizer utiliza un conjunto de servicios web (Portrait Shared Services, PSS), que toma la descripción de la regla (como QMML compilado, el formato de descripción del modelo XML que contiene la FDL de la regla), almacena esto en la base de datos de metadatos compartida (Portrait Shared Repository, PSR) desde donde el usuario de Interaction Optimizer accede a ellos a partir del Diseñador de selecciones. El enfoque de integración de reglas extiende la instalación base de Portrait Miner a través del marco de complementos 'ext' estándar. La integración de reglas evalúa de forma eficaz: • Portrait Miner expresiones en Portrait Miner, • Los datos en los que están basados el análisis y la implementación operativa • La vista subyacente del cliente 86 Portrait IO 5.5 Capítulo 5: Administrar IO debe alinearse lo suficiente para permitir que las entradas de la regla se originen en los sistemas operativos. En resumen, modelar en base a lo que piensa implementar. Configuración de la extensión PSS Connector para Portrait Miner La extensión de conexión de Portrait Shared Services (PSSConnector) es un componente que está incluido en todas las instalaciones de Portrait Miner 7.0A para admitir la integración con las siguientes aplicaciones de Portrait Suite: • Portrait Dialogue • Portrait Explorer • Portrait Interaction Optimizer PSSConnector debe estar configurado para publicar y recuperar contenido analítico desde y hacia Portrait Shared Repository (PSR) a través de Portrait Shared Services (PSS). Configure Portrait Miner para que se dirija a una versión previamente instalada de Portrait Shared Services. Edite el archivo: <PMHOME>/ext/PSSConnector/pss.properties para incluir el texto <service=URL de Portrait Shared Services>, por ejemplo: service=http://MY-SERVER/PortraitSharedServices Asignación de campos analíticos a campos de IO Antes de utilizar reglas analíticas en IO (o de reinicializar reglas luego de una actualización), se debe cargar una asignación de los campos de origen de datos de decisión en la entrada de reglas analíticas dentro de PSS. Hay un único archivo de asignación por instancia de IO y el archivo de asignación debe contener todas las asignaciones potenciales entre los campos de origen de datos de decisión y los campos establecidos de campos analíticos. Debe hacer una asignación uno a uno para cada campo en el archivo de asignación, no se permiten las asignaciones múltiples por campo de origen o de destino. La asignación se define en un documento XML como se indica a continuación: <mapping system="IO"> <field source="CurrentParty.Age" target="Age" sourcetype="FIELD" type="integer"/> <field source="CurrentParty.NumberOfChildren" target="NumberOfDependants" sourcetype="FIELD" type="integer"/> <field source="CurrentParty.DateOfBirth" target="DefaultDate" sourcetype="FIELD" type="date"/> <field source="CurrentParty.ExternalIdentifier" target="BankHeadOffice" sourcetype="FIELD" type="string"/> <field source="CurrentParty.AnnualGrossIncome" target="Income" sourcetype="FIELD" type="real"/> </mapping> Nota: El elemento fuente de la asignación de cada campo es el nombre del campo en el origen de datos de decisión, con ‘.’ como carácter separador. Los nombres de campos derivados creados en el diseñador de selecciones de HQ también pueden especificarse en el elemento de origen. El elemento objetivo es el nombre del campo en el conjunto de datos analíticos. El elemento de tipo es el tipo de datos del campo. Guía de administración 87 Exportación de reglas desde Decision Studio Este archivo de mapeo debe publicarse en el dominio de "InteractionOptimizer" usando la utilidad psspublishmapping de Portrait Miner. pssmappingpublish.exe -domain "InteractionOptimizer" -input mapping.xml Una vez publicadas, las reglas se pueden cargar en el dominio InteractionOptimizer de Portrait Miner Decision Studio (o mediante la herramienta de línea de comandos) para su uso en campañas con interacciones entrantes. Si está actualizando desde una versión anterior de IO, se deben cargar nuevamente en PSS todas las reglas analíticas existentes, luego de la actualización. Luego de que las reglas se han agregado nuevamente al sistema, será necesario editar las interacciones para volver a agregar la regla de resultados a la actividad de la campaña. Esto se logra primero suspendiendo la campaña si se encuentra ‘En mercado’ antes de agregar la regla a la actividad mediante la página Inbound Dialogue del editor. Exportación de reglas desde Decision Studio El módulo Decision Studio de Portrait Miner proporciona una interfaz que le permite exportar resultados analíticos a Interaction Optimizer. Decision Studio proporciona una regla Publish al botón Portrait Shared Repository ( ) en la herramienta Visor de tablas. Este botón le permite exportar una definición de regla de campo derivado al dominio de cliente seleccionado en Interaction Optimizer. Si proporciona un nombre de una regla que ya existe, se actualizará la definición de la regla. El Visor de tablas de Decision Studio también proporciona un botón que permite iniciar la aplicación Administrar conexión a Portrait Shared Services, lo que le permite iniciar o cerrar sesión usando un nombre de usuario y contraseña explícitos, o mediante el uso de Autenticación de Windows, cuando sea posible. Esta interfaz de usuario es una forma de acceder a muchas de las funciones proporcionadas por el comando de creación de datos pssrulepublish. Exportación de reglas de Portrait Miner Portrait Miner proporciona una interfaz que le permite integrar resultados analíticos a Interaction Optimizer. • Autenticación: En la barra de herramientas de Portrait Miner, la aplicación Administrar conexión a Portrait Shared Services permite iniciar o cerrar sesión desde Portrait Shared Services. Con un servidor de Portrait Miner basado en Windows, su conexión a Portrait Shared Services se establece en forma automática mediante el uso de la Autenticación de Windows, de ser posible. Para establecer la conexión con una cuenta diferente, debe cerrar sesión y luego volver a iniciar sesión mediante el uso de las credenciales adecuadas de la cuenta. • Visualización de reglas exportadas: En la barra de herramientas de Portrait Miner, la aplicación Administrar reglas en el Portrait Shared Repository permite ver la lista de reglas analíticas que se han publicado. Debe seleccionar un Conjunto de clientes y, a continuación, puede ver las reglas publicadas en ese conjunto. Esta interfaz de usuario es una forma de acceder a muchas de las funciones proporcionadas por los comandos de creación de datos pssrulelist y pssruledescribe. Puede exportar nuevamente una regla al sistema de archivos del servidor como un archivo QMML mediante el uso de la opción Guardar como cuando hace clic con el botón secundario del mouse en una regla. Esta interfaz de usuario es una forma de acceder a muchas de las funciones proporcionadas por el comando de creación de datos pssruleretrieve. • Exportación de reglas: Al seleccionar un archivo .qmml en Portrait Miner, la acción Publicar regla en Portrait Shared Repository, disponible a través de un clic con el botón secundario del mouse, 88 Portrait IO 5.5 Capítulo 5: Administrar IO permite publicar la descripción del modelo (QMML) como una regla para usar en Portrait Dialogue o Interaction Optimizer. Se le solicitará ingresar el nombre, tipo y la descripción de la regla, y el nombre del dominio del cliente en el que se publicará (InteractionOptimizer). Esta interfaz de usuario es una forma de acceder a muchas de las funciones proporcionadas por el comando de creación de datos pssrulepublish. Las aplicaciones de la barra de herramientas también están disponibles a través del menú Inicio de Portrait Miner. Exportación de reglas mediante el uso de líneas de comandos Se proporcionan los siguientes comandos de creación de datos (DBC) de modo de permitirle exportar reglas analíticas a Interaction Optimizer como parte de un proceso de lote o programado. Todos los comandos requieren argumentos -username y -password explícitos, a menos que esté habilitada la Autenticación de Windows para su cuenta de usuario. Autenticación Es necesario que se autentique en Portrait Shared Services para poder administrar, publicar o recuperar reglas almacenadas en el Portrait Shared Repository. Si su cuenta de inicio de sesión de Windows está configurada como una cuenta de Autenticación de Windows, las aplicaciones de Miner lo autenticarán en forma automática, y no será necesario que realice ninguna otra acción explícita para iniciar sesión. Este tipo de cuentas no requiere opciones -username o -password para las utilidades de línea de comandos. Si utiliza una cuenta de inicio de sesión que no está configurada para usar la Autenticación de Windows, entonces deberá iniciar sesión desde Portrait Miner en forma explícita. Las aplicaciones Portrait Miner y Decision Studio le solicitarán en forma automática las credenciales de inicio de sesión, si aún no ha iniciado sesión. Las utilidades de línea de comandos requieren opciones -username y -password explícitamente. Una vez que haya iniciado sesión desde una de las aplicaciones de Portrait Miner, debe permanecer conectado a esa aplicación hasta salir o cerrar sesión explícitamente. Se debe autenticar por separado para cada aplicación que ejecute. Integración de reglas psssrulepublish Publique el contenido de un archivo QMML como una regla con nombre en un Conjunto de clientes, incluida una descripción y su tipo de regla. Sinopsis pssrulepublish -domain <domain name> -name <rule name> -description <text | @filename> -type <value | propensity | uplift> -input <QMML rule file> [-password <password>][-replace][-username <username>] Argumentos opcionales Opción Efecto -password <password> La contraseña de Portrait Shared Services. Guía de administración 89 Exportación de reglas mediante el uso de líneas de comandos Opción Efecto -replace Reemplaza QMML por una regla existente en lugar de publicar una nueva. Al reemplazar, los parámetros -type y -description son opcionales. -username <username> El nombre de usuario de Portrait Shared Services. pssrulelist Enumere los detalles de todas las reglas asociadas a un Dominio específico. Sinopsis pssrulelist -domain <domain name> [-password <password>][-username <username>][-xml] Argumentos opcionales Opción Efecto -password <password> La contraseña de Portrait Shared Services. -username <username> El nombre de usuario de Portrait Shared Services. -xml Muestra la salida en formato XML pssruleretrieve Recupera el QMML compilado para una regla con nombre en un Conjunto de clientes a un archivo. Sinopsis pssruleretrieve -domain <domain name>-name<rule name> -output <QMML file> [-password <password>][-username <username>] Argumentos opcionales Opción Efecto -password <password> La contraseña de Portrait Shared Services. -username <username> El nombre de usuario de Portrait Shared Services. -xml Muestra la salida en formato XML pssruledescribe Enumera los nombres y tipos de entradas, y salidas, de una regla con nombre en un Conjunto de clientes. También muestra cómo se aplicarán los mapeos de entrada de reglas. Para ello se describe el mapeo a un campo o función, si se ha definido uno. Los parámetros para el comando son los siguientes: Sinopsis pssruledescribe -domain <domain name>-name <rule name> [-password <password>][-replace][-username <username>] 90 Portrait IO 5.5 Capítulo 5: Administrar IO Argumentos opcionales Opción Efecto -password <password> La contraseña de Portrait Shared Services. -username <username> El nombre de usuario de Portrait Shared Services. Configuración de clasificación adaptiva La clasificación adaptiva es un método automático para generar resultados de clientes a partir de las respuestas capturadas. Estos resultados adaptivos se pueden utilizar como cualquier otra regla de resultados para priorizar actividades y definir clientes objetivo. La clasificación adaptiva funciona a partir del principio de dividir los valores de los campos del cliente en grupos llamados Rangos y recopilar recuentos de respuestas dentro de esos rangos. Este tipo de agrupación de los clientes permite calcular un resultado para un cliente determinado en función de la cantidad de respuestas por rangos anteriores de clientes similares. Para habilitar la clasificación adaptiva, debe configurar los rangos requeridos. Nota: La clasificación adaptiva no devuelve resultados hasta que se capturan suficientes respuestas. De forma predeterminada, se necesitan al menos 10 respuestas para poder generar un resultado adaptivo. Este valor (10) se puede alterar agregando el parámetro de aplicación BIN_MINIMUM_THRESHOLD a la tabla io_application_params y añadiendo un nuevo valor. Configuración de rangos de campos La configuración de rangos de campos se establece en la sección fieldSegmentations del archivo <Carpeta de instalación>\PST\Portrait Shared Server\Portrait Shared Services\bin\config\Portrait.Mas.Cms.Services.IO.config. Este archivo de configuración se encuentra en la máquina que aloja Portrait Shared Services. Una vez que se haya configurado correctamente este archivo .config, la configuración de rangos se carga en HQ mediante la ejecución de la herramienta DatasourceDefExporter. A continuación se ejemplifica la sección relevante del archivo: <fieldSegmentations> <fieldSegmentation path="DecisionsDataSource.CurrentParty.Age"> <Bin max="20"/> <Bin max="35"/> <Bin max="50"/> <Bin max="74"/> </fieldSegmentation> <fieldSegmentation path="DecisionsDataSource.CurrentParty.HomeOwnershipStatus">> <Bin id="1" value="Tenant"/> <!-- NB you can have the same id for two bins. Non categorised values fall into the default "other" bin --> <Bin id="1" value="LivingWithParents"/> <Bin id="2" value="HomeOwner"/>> </fieldSegmentation> <!-- NB if you don't specify bins on a categorical field they are implicitly Guía de administración 91 Configuración de rangos de campos created, one for each categorical value --> <fieldSegmentation path="DecisionsDataSource.CurrentParty.Gender"/> <fieldSegmentation path="DecisionsDataSource.CurrentParty.AnnualGrossIncome"> <Bin max="20000"/> <Bin max="150000"/> <Bin max="45000"/> </fieldSegmentation>> <fieldSegmentation path="DecisionsDataSource.CurrentParty.DateOfBirth">> <!-- Date/time values are specified in ISO 8601 format yyyy-mm-ddThh:mm:yy. Times are optional - if as time is not supplied, the "end of day" value 23:59:59 will be assumed -->> <!-- This means that you can't specify a max value of 00:00:00 (i.e. zero hours that morning) - to do that, use 00:00:00.01 --> <Bin max="1970-04-10T18:30:00"/> <Bin max="1986-02-21"/> </fieldSegmentation> <!-- Boolean fields get automatically generated bins for true and false--> <fieldSegmentation path="DecisionsDataSource.CurrentParty.Deceased"/> </fieldSegmentations> Las definiciones de cada rango comienzan con el elemento: <fieldSegmentation path=”<field path>”> Este elemento define la ruta al campo. La ruta debe coincidir con uno de los campos disponibles en su implementación de IO. Los hijos de este elemento dependen del tipo de datos del campo: • Campos numéricos (entero y flotante): el elemento <FieldSegmentation> debe incluir al menos un hijo<bin>. Cada elemento <bin> define un valor máximo para la propiedad, y es inclusivo. • Campos categóricos (grupos): el elemento <FieldSegmentation> puede incluir ninguno o muchos hijos. Si no se especifican hijos, se creará automáticamente un rango para cada valor posible. Si se especifican hijos, deben adquirir el siguiente formato: <Bin Id=”<id>” value=”<value>”/> <value> representa uno de los valores disponibles para el campo. <id> representa un identificador utilizado para agrupar valores. Si múltiples valores tienen el mismo identificador, se tratarán como idénticos para los fines de clasificación. • Campos booleanos: El elemento <FieldSegmentation> no tiene hijos. Los campos booleanos siempre tienen 2 rangos: True y False. • Campos de fecha/hora: el elemento <FieldSegmentation> debe incluir al menos un hijo<bin>. Cada elemento <bin> define una fecha máxima, y es inclusivo. La fecha se especifica en la forma estándar AAAA-MM-DDTHH:MM:SS. Los valores de hora pueden omitirse, en cuyo caso el formato será AAAA-MM-DD y se asumirá el final del día (23:59:59). 92 Portrait IO 5.5 Capítulo 5: Administrar IO • Campos de cadena: los campos de cadena no pueden participar en la clasificación. Si se configuran campos de cadena, se generará un error. • Implementación de rangos de campos: para implementar los rangos de campos definidos en la sección anterior, ejecute el siguiente comando: DatasourceDefExporter.exe Nota: La implementación de cambios en los rangos de campos existentes borrará todos los datos de clasificación registrados anteriormente. • Manejo de valores desconocidos y vacíos: si un valor de campo no se ajusta a ningún rango configurado, el sistema utiliza un rango "Otro" predeterminado. De igual forma, en los casos en los que se haya utilizado un campo para crear rangos, pero el registro del cliente no incluye datos en ese campo, se utilizará un rango "Vacío" predeterminado. Este es un comportamiento automático y no puede configurarse. Configuración de audiencias secundarias De forma predeterminada, Interaction Optimizer sólo usa 'audiencia' para las recomendaciones que brinda: el 'cliente'. Informa recomendaciones a un cliente particular, rastrea qué cliente ha recibido recomendaciones, y qué cliente ha respondido a las recomendaciones que ha recibido. No obstante, se pueden agregar audiencias de recomendación adicionales a Interaction Optimizer, con lo cual se pueden realizar y rastrear recomendaciones en otro nivel además del de 'cliente'. Por ejemplo, puede ser que desee crear una audiencia secundaria en base a la cuenta que el cliente tiene. La audiencia secundaria funciona sobre la nominación de una o más colecciones de entidades como audiencias secundarias. Para cada audiencia secundaria, debe seleccionar sólo un identificador de audiencia secundaria. Cuando Interaction Optimizer devuelve una acción, habrá pasado por todo el criterio de selección aplicable que ejecuta e implica pruebas en una 'Audiencia secundaria', luego el identificador se incluye como parte de la acción devuelta por el servicio web GetActions. Para obtener más información acerca de la información de audiencia secundaria devuelta por el servicio web GetActions, consulte el servicio web GetActions en la sección WCF Web Service Reference. Para habilitar la función audiencia secundaria, debe configurar las audiencias e identificadores secundarios. Configurar audiencias secundarias La configuración de audiencia secundaria se realiza en la sección secondaryAudiences del archivo <Carpeta de instalación>PST\Portrait Shared Server\Portrait Shared Services\bin\config\Portrait.Mas.Cms.Services.IO.config. Este archivo de configuración se encuentra en la máquina que aloja Portrait Shared Services. Una vez que se haya configurado correctamente este archivo .config, la configuración de rangos se carga en HQ mediante la ejecución de la herramienta DatasourceDefExporter. A continuación se ejemplifica la sección relevante del archivo: <secondaryAudiences> <secondaryAudience name="DecisionsDataSource.Accounts" identifier="PrimaryAddress.PostalCode" /> </secondaryAudiences> Guía de administración 93 Suprimir identificadores de audiencia secundaria al registrar una respuesta de supresión Cada definición de audiencia secundaria comienza con el elemento: <secondaryAudience name=”<secondary audience field path>” identifier=”<path of the identifier relative to the secondary audience field>”> El atributo path define la ruta hacia el campo. La ruta debe coincidir con uno de los campos disponibles en su implementación de IO. El atributo identifier define la ruta del identificador con respecto a la ruta del campo de audiencia secundaria. Para quitar una audiencia secundaria, elimine o comente en el elemento <secondaryAudience /> relevante en el archivo configuración. Suprimir identificadores de audiencia secundaria al registrar una respuesta de supresión Una respuesta de supresión a un mensaje es esa que determina que el mensaje se suprima al cliente en las solicitudes posteriores. El servicio web RecordActionResponse le permite a un cliente registrar una respuesta ante un mensaje. Además de la información de 'cliente', también se puede especificar un 'identificador de audiencia secundaria' contra el cual se debe registrar una respuesta particular. Para obtener más información acerca de los elementos de ingreso de datos de audiencia secundaria, consulte el servicio web RecordActionResponse en la sección WCF Web Service Reference. Si se especifica una respuesta de supresión para un identificador de audiencia secundaria, el valor del identificador no es devuelto con indicaciones para el mismo cliente en llamadas subsiguientes al servicio web GetActions. Sin embargo, el mensaje será devuelto al cliente si hay otros identificadores de audiencia secundaria restantes a los que no se han respondido con una respuesta de supresión. Este comportamiento puede ser alterado al configurar el parámetro SUPPRESS_PROMPTS_FOR_ALL de la aplicación. Cuando se lo configura en TRUE, especificar una respuesta de supresión para cualquier identificador de audiencia secundaria suprime la indicación relacionada para el cliente, aun si hay otros identificadores de audiencia secundaria a los que no se ha respondido. Este parámetro de aplicación no está configurado de manera predeterminada. Una vez que se registra una respuesta de supresión para todos los identificadores de audiencia secundarios relacionados con un mensaje, el mensaje mismo se suprime para el cliente en las solicitudes subsiguientes. Este comportamiento puede ser alterado al configurar el parámetro RETAIN_PROMPT_FOR_PARTY de la aplicación. Cuando se lo configura en TRUE, el mensaje relacionado se guarda para este cliente aún si todos los identificadores de audiencia secundaria han sido respondidos con una respuesta de supresión. Este parámetro de aplicación no está configurado de manera predeterminada. Nota: Si ambos parámetros SUPPRESS_PROMPTS_FOR_ALL y RETAIN_PROMPT_FOR_PARTY están configurados en TRUE, SUPPRESS_PROMPTS_FOR_ALL toma precedencia y se ignora RETAIN_PROMPT_FOR_PARTY. 94 Portrait IO 5.5 Capítulo 5: Administrar IO Configuración de procesos de negocio Un proceso de negocio se puede iniciar cuando un cliente responde a una recomendación. Por ejemplo, podría haber un proceso de negocio “Solicitar un préstamo”, si el cliente acepta un ofrecimiento de préstamo de parte de Interaction Optimizer. Puede configurar el conjunto de procesos de negocio disponibles para utilizar en HQ modificando el contenido de la tabla BusinessProcess en la base de datos de PSR. La tabla BusinessProcess incluye las siguientes columnas: Nombre de colum- Descripción na Name Este es el nombre que utiliza el sistema que ejecuta el proceso de negocio para identificar el proceso. Si usa Portrait Foundation, este es el nombre del sistema del modelo de proceso de Foundation. DisplayName El nombre para mostrar del proceso de negocio que aparece en Marketing HQ. Descripción La descripción del proceso de cumplimiento, utilizada para mostrar más información en HQ. Deleted Establezca esta fecha para que este proceso de negocio deje de estar disponible para utilizar en HQ. Ejemplo El conjunto de procesos de negocio predeterminado disponible se establece mediante la ejecución de las siguientes declaraciones de SQL en la base de datos de PSR: INSERT INTO BusinessProcess(Name, Description, DisplayName, Deleted) VALUES('StartLoanApp', 'Start Loan Application', 'Apply for a loan', null) INSERT INTO BusinessProcess(Name, Description, DisplayName, Deleted) VALUES('UpdateDetails', 'Update your details', 'Update your details', null) Como opción, los procesos de negocios se pueden importar desde una fuente externa. Consulte la sección Procesos de negocio dentro de "Administrar IO". Importación de procesos de negocio de fuentes externas El instalador PSS brinda un par de cmdlets Windows PowerShell para recuperar procesos de negocio de fuentes externas y almacenarlos en Portrait Shared Repository. Estos cmdlets son: Get-BusinessProcesses Este cmdlet recupera un conjunto de procesos de negocio de una fuente en particular. Sintaxis: Get-BusinessProcesses [-ImplName] <Cadena> [[-AdapterArgs] <Objeto[]>] Parámetros: • ImplName : El nombre del adaptador (un identificador de cadenas que identifica la clase de implementación) que implementa la lógica para recuperar procesos de negocio de una fuente en particular Guía de administración 95 Importación de procesos de negocio de fuentes externas (consulte Implementación de adaptadores personalizados para recuperar metadatos en la página 97. Obligatorio. • AdapterArgs : Una matriz de objetos que puede utilizarse para proporcionar más parámetros al adaptador. El contenido de la matriz puede variar según la implementación del adaptador. Por ejemplo, para un adaptador que recupera procesos de negocio haciendo una llamada de servicio web, este podría incluir la dirección URL de punto final del servicio, las credenciales o ambas. Opcional. Nota: Para obtener más información sobre este cmdlet, escriba Get-Help Get-BusinessProcesses en la consola Windows PowerShell . El instalador PSS se envía con un adaptador que recupera procesos de negocio de un servicio web de Portrait Foundation . Se puede ejecutar ese comando como Get-BusinessProcesses -ImplName Fdn -AdapterArgs @(la URL de servicio del servicio web que expone la lista de procesos de negocio). Write-BusinessProcesses Este cmdlet guarda un conjunto de procesos de negocio en Portrait Shared Repository. Sintaxis: Write-BusinessProcesses [-BusinessProcesses] <BusinessProcess[]> [[User] <Cadena>] [[-Password] <Cadena>] Parámetros: • BusinessProcesses : una matriz de objetos de BusinessProcess para guardar. Obligatorio. La matriz BusinessProcesses generalmente es proporcionada por el cmdlet Get-BusinessProcess. • User : El nombre de usuario para conectarse a PSS. Opcional. Cuando está omitido, el cmdlet utiliza la autenticación de Windows. • Password : La contraseña para conectarse a PSS. Opcional. Esta es obligatoria cuando se proporciona el argumento User. Nota: Para obtener más información sobre este cmdlet, escriba Get-Help Write-BusinessProcesses en la consola Windows PowerShell . Para importar procesos de negocio de una fuente externa a Portrait Shared Repository: 1. Inicie Windows PowerShell. En un sistema operativo Windows de 64 bits, inicie la consola Windows PowerShell (x86) y ejecute el comando Import-Module ExternalMetadataImportModules. 2. Ejecute el comando $businessProcesses = Get-BusinessProcesses -ImplName Fdn AdapterArgs @(Una lista opcional, separada por comas, de argumentos del adaptador) 3. Ejecute el comando Write-BusinessProcesses $businessProcesses [[-User] <userName>] [[-Password] <contraseña>] Alternativamente: 1. Edite el archivo <Carpeta de instalación\PST\Portrait Shared Server\Administration\ExternalMetadataImport\Scripts\ImportMetadata.ps1 para actualizar la URL para el servicio web de Portrait Foundation que expone una lista de procesos de negocio. 2. Busque Write-BusinessProcesses dentro de ImportMetadata.ps1 y, si lo desea, proporcione el nombre de usuario y los argumentos de contraseña (esto es necesario si PSS no está configurado para la autenticación de Windows integrada) 3. Guarde y cierre el archivo. 96 Portrait IO 5.5 Capítulo 5: Administrar IO 4. Inicie Windows PowerShell. En un sistema operativo Windows de 64 bits, inicie la consola Windows PowerShell (x86). 5. Ejecute el comando .\ImportMetadata.ps1. Implementación de adaptadores personalizados para recuperar metadatos Para recuperar procesos de negocio de una fuente externa personalizada, debe implementar la interfaz IBusinessProcessDataAdapter . Esta interfaz está establecida. Puede encontrarse en el ensamblado Portrait.Mas.Cms.Sdk.dll en la carpeta <Carpeta de instalación>\PST\Portrait Shared Server\Administration\ExternalMetadataImport\Assemblies. Establece solo un único método de esta manera: BusinessProcess[] GetBusinessProcesses(params object[] parameters): • Este toma una matriz opcional de objetos que pueden utilizarse para proporcionar parámetros al adaptador. El contenido de la matriz puede variar según la implementación del adaptador. Por ejemplo, para un adaptador que recupera procesos de negocio haciendo una llamada de servicio web, este podría incluir la dirección URL de punto final del servicio, las credenciales o ambas. • Esto devuelve una matriz de objetos BusinessProcess • El tipo BusinessProcess se puede encontrar en el conjunto Portrait.Mas.Cms.Sdk.Contracts.dll en la carpeta <Carpeta de instalación>\PST\Portrait Shared Server\Administration\ExternalMetadataImport\Assemblies. Para proporcionar una implementación del adaptador personalizado para recuperar procesos de negocio: 1. Implemente la interfaz IBusinessProcessDataAdapter en una clase. 2. Compile la clase en un ensamblado. 3. Coloque el ensamblado compilado en la carpeta <Carpeta de instalación>\PST\Portrait Shared Server\Administration\ExternalMetadataImport\Assemblies. 4. Edite el archivo Adapter.config de la carpeta <Carpeta de instalación>\PST\Portrait Shared Server\Administration\ExternalMetadataImport\Config. 5. Agregue un nodo secundario <Impl key="Mi clave única" value="El nombre de tipo de la clase personalizada calificada por el nombre del ensamblado" /> en el elemento <BusinessProcess> . Nota: Después de completar todos los pasos anteriores, la implementación del adaptador personalizado puede utilizarse para recuperar procesos de negocios ejecutando el comando Get-BusinessProcesses [-ImplName] "Mi clave única" [[-AdapterArgs] <Object[]>] en la consola Windows PowerShell . Guía de administración 97 Carga de listas de clientes Carga de listas de clientes Las listas de clientes se usan para orientar un conjunto específico de clientes con una recomendación de IO. Los clientes que se orientarán se describen en un archivo de lista de clientes. El usuario de HQ explora este archivo en su equipo de escritorio para cargar la lista de clientes. Los archivos de listas de clientes son archivos de texto que incluyen un identificador del cliente por línea. El formato de cada línea es: Id,[ValidFrom],[ValidTo] Después del identificador del cliente, cada línea tiene la opción de incluir fechas de inicio y/o finalización. Si se proporcionan fechas de inicio y/o finalización, el cliente solo se tratará como miembro válido de la lista dentro del período de tiempo especificado. De estar presentes, las fechas se especifican en el formato estándar aaaa-MM-ddTHH:mm:ss (definido por ISO 8601). Formato Descripción aaaa Año de 4 dígitos MM Mes de 2 dígitos dd Día de 2 dígitos T La letra “T” HH Hora mm Minuto ss Segundo La parte Hora de la fecha puede omitirse, en cuyo caso el formato será simplemente aaaa-MM-dd Nota: No se admiten los valores del identificador que incluyan comas. La tabla siguiente menciona ejemplos de registros de ID de cliente válidos: Validez Texto de la línea Siempre válido ID123 Validez indefinida a partir del 20 de diciembre de 2011 ID235,2011-12-20 Válido hasta el 1 de enero de 2020 ID753,,2020-01-01 Válido entre el 23 de marzo de 2011 y el 23 de marzo de 2012 ID942,2011-03-23,2012-03-23 El archivo de listas de clientes puede presentar identificadores de cliente duplicados. Los duplicados se quitan mediante el proceso de carga de listas. 98 Portrait IO 5.5 Capítulo 5: Administrar IO Registro Portrait Foundation (usado por Interaction Optimizer) produce información de diagnóstico que se puede subconfigurar y entregar a muchos 'destinos'. Se puede proporcionar un mensaje determinado a más de un destino y los mensajes se pueden filtrar de manera que no se entreguen a ningún destino. En la sección de configuración recomendada, se recomienda que todos los servidores de Portrait Foundation utilicen una configuración de filtro particular que generará mensajes graves en el registro de eventos de Windows. La configuración de instalación predeterminada para el "registro de eventos" de destino debe habilitar esto. Además de esto, también se debe habilitar el registro en el archivo. La habilitación incorrecta de otros destinos puede generar un impacto en el rendimiento del sistema. El registro de eventos de Windows debe configurarse para capturar información sin sobrescribir las entradas anteriores. También es necesario que haya un proceso que permita revisar y archivar registros de eventos. Se realizan esfuerzos para reducir los registros escritos en el registro de eventos a solamente aquellos elementos sobre los que se debe llevar a cabo una acción; es decir, cada entrada de "error" indica algo que debe corregirse. En ocasiones, las entradas de "error" se crean para situaciones normales, conocidas o que no requieren medidas correctivas. En este caso, Portrait Software puede disponer la supresión de estos mensajes del registro. La supresión se realiza mediante la creación de un archivo al que se hace referencia en el "Filtro" de valor de la clave de registro HKEY_LOCAL_MACHINE\SOFTWARE\PST\Portrait\Systems\<MySystem>\Logging. De forma predeterminada es install_directory\Portrait Foundation\Systems\<MySystem>\Data\LogFilter.plx. Por supuesto, se debe tener precaución para asegurarse de que las alertas vitales del sistema no se supriman; es por esto que Portrait Support asume la creación de archivos .plx en lugar de realizarse como una acción del cliente. Registro de errores Los ajustes siguientes son los únicos destinos de registro que deben habilitarse. Se debe verificar positivamente que todos los demás destinos no estén habilitados. Todos los destinos de registro se configuran utilizando la consola de administración de Portrait. Haga clic con el botón secundario en el elemento Logging en All Servers > Default settings > Properties. Logging to Application Event Log Seleccione la ficha EventLog del cuadro de diálogo Logging Properties. El valor de filtro debe ajustarse en [(2):!(1):(*):(*)]. Esta configuración por lo general está habilitada de forma predeterminada. La supresión del archivo PLX de mensajes del registro ficticios debe utilizarse para evitar un registro de eventos imposible de administrar. Registro en el archivo El registro de errores en el archivo crea archivos de registro de Portrait con formato binario (.plf) localmente en cada servidor. Se recomienda que cree un directorio específico para almacenar estos archivos, y este documento da por sentado que se creará un directorio con el nombre: C:\PortraitErrorLogging Guía de administración 99 Mantenimiento Es importante que el directorio se cree en todos los servidores del entorno antes de que se apliquen los cambios de MMC dado que el registro comenzará de inmediato una vez que se acepten estos cambios, pero fallará si no existe el directorio de destino. Configure la ficha File del cuadro de diálogo Logging Properties tal como se muestra debajo con un clic en New para crear un nuevo destino. Para ello, ingrese los valores y haga clic en Save seguido de OK. Name debe ser PortraitErrorLogging Filter debe ser [(2):!(1):(*):(*)] Enabled debe marcarse File Path debe ser C:\PortraitErrorLogging File Name debe ser PortraitErrorLogging File Size (bytes) debe ser 20000000 (20 megabytes) Flush Time (ms) debe ser 30000 (30 segundos) Maximum number of files debe ser 20 Se creará un nuevo archivo de registro con el nombre “PortraitErrorLogging.plf” siempre que el actual alcance un tamaño de 20 MB. Se cambiarán los nombres de los archivos de registro anteriores para incluir la fecha y hora en que alcanzaron el tamaño de 20 MB. Mantenimiento Estado Para asegurarse de que su sistema funciona correctamente, Portrait Support recomienda ejecutar tareas diarias en relación con los siguientes elementos de evaluación de estado: • Revisar los datos de Perfmon en busca de indicadores de problemas, por ejemplo, modelos con fallas, excepciones de hardware. Para obtener más información, consulte Contadores de rendimiento en la página 119 • Revisar los registros de eventos en busca de errores. Para obtener más información, consulte Registro en la página 99 • Asegurarse de que todos los archivos de volcado de memoria (.dmp) se recopilen, pasen a Portrait Support y eliminen. Para obtener más información, consulte Minivolcado en la página 120 • Archivar Perfmon y los registros de eventos. Idealmente, el archivo debe permitir que Portrait Support solicite los registros de eventos y Perfmon que coincidan con los problemas que hayan surgido. Para conocer más elementos de la lista de control de estado, comuníquese con Portrait Support para obtener el documento Portrait System Health Checklist (Lista de control de estado del sistema de Portrait). 100 Portrait IO 5.5 Capítulo 5: Administrar IO Administración de registros de transacciones de la base de datos Interaction OptimizerInteraction Optimizer se ve afectado negativamente si el registro de transacciones de la base de datos de IO debe ampliarse con regularidad. El tamaño del registro de transacciones debe administrarse utilizando las técnicas recomendadas por Microsoft. Para obtener más información, consulte: http://msdn.microsoft.com/en-us/library/ms345583.aspx. Guía de administración 101 Capítulo Administración de Portrait HQ En esta sección: • Configuración de Portrait HQ . . . . . . . . . . . . . . . . . . . . .104 • Habilitar la aprobación de campañas . . . . . . . . . . . . . . .105 • Configuración de Portrait Shared Server . . . . . . . . . . . .106 6 Configuración de Portrait HQ Configuración de Portrait HQ Configuración de la base de datos de Portrait Shared Repository Para volver a configurar el sitio de Portrait Shared Services de modo que haga referencia a una base de datos de Portrait Shared Repository edite manualmente el archivo Web.config en el sitio web de Portrait Shared Server para definir la "cadena de conexión" en la propiedad PsrEntities correctamente en la sección ConnectionStrings. Este sitio web está instalado de forma predeterminada en C:\Archivos de programa\PST\Portrait Shared Server\Portrait Shared Services. Configuración de Sharepoint Para volver a configurar el sitio Portrait Shared Server de modo que haga referencia a otro servidor o sitio de SharePoint, edite manualmente el archivo web.config en el sitio web Portrait Shared Server. Es necesario modificar dos definiciones de punto final, una para el servicio Lists y una para UserGroup. Los puntos finales incluyen una dirección URL al servicio correspondiente en el sitio de SharePoint. Las direcciones URL están en el siguiente formato: http://servername/sitename/_vti_bin/servicename.asmx, donde • servicename es Lists o UserGroup • servername es el nombre del servidor en el que se ejecuta SharePoint, con un número de puerto opcional para el sitio web de SharePoint. Por ejemplo, MiServidor o MiServidor:1234. • sitename es el nombre del sitio dentro del servidor de SharePoint que incluye las listas y otros objetos requeridos por Portrait Shared Server. De forma predeterminada, el sitio se llama "Portrait", pero puede modificarse de ser necesario. Configuración de la velocidad de cuadros Para volver a configurar la máxima velocidad de cuadros utilizada en la aplicación cliente de Portrait HQ, edite el archivo Web.config en el sitio web de Portrait HQ para definir la propiedad MaxFrameRate correctamente. Si configura una velocidad de cuadros más baja, la carga en las máquinas cliente será menor, pero generará una animación entrecortada. Configuración del registro de la aplicación Portrait HQ El registro de la aplicación Portrait HQ se configura mediante las propiedades LogTargets y LogLevel en el archivo Web.Config . Este archivo puede encontrarse en Portrait Shared Server en: C:\Program Files (x86)\PST\Portrait Shared Server\Marketing HQ. Para configurar los destinos de registro de Portrait HQ , edite de manera manual y correcta la propiedad LogTargets en el archivo Web.config . Nota: Actualmente, el único valor válido es ClientFile , que direcciona el registro al almacenamiento aislado de la aplicación Silverlight. Para configurar el nivel de registro, edite manualmente la propiedad LogLevel en el archivo Web.config y seleccione una de las siguientes opciones: 104 Portrait IO 5.5 Capítulo 6: Administración de Portrait HQ • • • • • Crítico Error Advertencia Información Detallado Nueva configuración de un separador distinto Para volver a configurar un separador de campo distinto, edite manualmente la sección appSettings en el archivo web.config de Portrait HQ. Esta configuración se utiliza en las páginas de mensajes y selección al mostrar nombres de campos completos, es decir, un nombre de campo que contenga todos los antecesores como 'Current party.age'. El valor predeterminado, como se muestra en el ejemplo anterior, es un punto ('.'). La configuración predeterminada puede cambiarse por cualquier cadena, (con las restricciones normales que se imponen a los atributos de elemento xml), por ejemplo. '->' podría aparecer como 'Current party->age' en el ejemplo anterior. <appSettings> … <!-- Selection fully qualified field separator the character to be used to separate the hierarchicall parts of variable names referenced by selections --> < add key = " SelectionFieldSeparator " value = " . " /> … </appSettings> Habilitar la aprobación de campañas Portrait HQ se puede configurar para que requiera que los cambios de las campañas sean aprobados antes de que la campaña se pueda lanzar al mercado. Solo los usuarios de Portrait HQ que recibieron el permiso Aprobar campaña están autorizados a aprobar la campaña. Para configurar la aprobación de campañas: 1. Abra el archivo web.config, que se encuentra en <Directorio de instalación>\PST\Portrait Shared Server\Marketing HQ\. 2. Establezca el parámetro CampaignApprovalEnabled como True. Nota: Una vez habilitado, todos los cambios de las campañas deberán ser aprobados por los usuarios de HQ que tengan autorización para aprobar campañas. Guía de administración 105 Configuración de Portrait Shared Server Configuración de Portrait Shared Server Configuración de autenticación de Windows Interaction Optimizer y Portrait Explorer Para volver a configurar Portrait Shared Server de modo de habilitar o deshabilitar la autenticación de Windows, edite el archivo bin\config\Portrait.Mas.Cms.Services.config en el sitio web de Portrait Shared Server para definir la propiedad enableWindowsAuthentication correctamente. Este sitio web está instalado de forma predeterminada en C:\Archivos de programa\PST\Portrait Shared Server\Portrait Shared Services. Portrait Dialogue Incluso con la autenticación de Windows habilitada mediante la instalación de PSS, solamente los usuarios con cuentas configuradas para usar la autenticación de Windows en Portrait Dialogue pueden autenticarse sin necesidad de proporcionar un nombre de usuario y una contraseña. Configuración del registro de Portrait Shared Server Portrait Portrait Shared Server escribe los registros en archivos en la subcarpeta "LogFiles", dentro del directorio virtual en el que se implementó su sitio web. De forma predeterminada, es C:\Archivos de programa\PST\Portrait Shared Server\Portrait Shared Services. Puede configurar los detalles de la información que se registra aquí si edita el archivo MH.Common.config dentro de la carpeta bin\config en el sitio web de Portrait Shared Server. La sección <loggingConfiguration> allí incluye información de asignación del destino de registro, en el formato XML "Logging Block" de Microsoft Enterprise Library. Consulte la documentación de Microsoft para conocer detalles del formato y cómo configurarlo. De forma predeterminada, se registra un resumen de las llamadas de alto nivel a Portrait Shared Server en el archivo PortraitSharedServices.log, y también se registran los errores graves en el registro de eventos de Windows. La configuración de registro predeterminada en MH.Common.config define un conjunto de "destinos" de registro, y asigna eventos de registro (que surgen de un conjunto fijo de "categorías" de registro) a estos destinos. PortraitPortrait Shared Server usa las siguientes categorías de inicio de sesión. Estas son las categorías que pueden tener oyentes de registros asociados a ellas en la sección <categorySources> del bloque <loggingConfiguration> en el archivo MH.Common.config. • PortraitSharedServices_Event: Elementos que deben enrutarse a los registros de eventos de Windows. • PortraitSharedServices_Log: Elementos que deben enrutarse al archivo PortraitSharedServers.log (configurado para notificar solamente información de alto nivel, en lugar de registro de solución de problemas detallado, de forma predeterminada). • PortraitSharedServices_Analytics_Trace: Seguimiento de llamadas salientes a Portrait Customer Analytics (deshabilitado de forma predeterminada). • PortraitSharedServices_SharePoint_Trace: Seguimiento de llamadas salientes a SharePoint (deshabilitado de forma predeterminada). 106 Portrait IO 5.5 Capítulo 6: Administración de Portrait HQ • DataAccessLayerTracingFlatFile: Seguimiento de llamadas salientes a Portrait Campaign Manager (deshabilitado de forma predeterminada). • ExceptionsFlatFile: Excepciones internas, que deben enrutarse al archivo Exceptions.log, por lo general, para errores que surgen dentro del marco de registro en sí. De forma predeterminada, solo se registran los errores. Para habilitar un registro más detallado, establezca el atributo switchValue para el valor <categorySources> correspondiente en: • All: Registrar todo. • Off: Deshabilitar el registro. • Critical: Registrar solo eventos críticos. • Error : Registrar errores y eventos críticos. • Information: Registrar informes, errores y eventos críticos. Nota: Si realiza cambios en la configuración de MH.Common.config, los cambios no surtirán efecto para los usuarios de Portrait HQ hasta que inicien una nueva sesión (cuando cierren su explorador web e inicien una nueva sesión). Si configura erróneamente el archivo MH.Common.config, el registro posiblemente no se haya especificado y será difícil diagnosticar el error. Recomendamos que realice una copia de seguridad del archivo antes de realizar cambios, de modo que pueda volver a una versión de trabajo si los cambios generan una falla en el sistema. Configuración de informes de campaña Visión general En Portrait HQ, las páginas de control de campañas proporcionar varios menús "Informes". El sistema puede configurarse de modo que estos menús proporcionen vínculos a un sistema de informes web externo. De hecho, el sistema puede configurarse en función de direcciones URL de modo que estos vínculos pueden ser a cualquier dirección URL y se parametrizan en función del contexto de cada menú "Informes". Tablas de bases de datos La configuración se efectúa mediante la adición de entradas a dos tablas en la base de datos 'PortraitPSR' (nombre predeterminado) en la instalación de Portrait Shared Server. Las dos tablas se llaman 'ExternalLink' y 'ExternalLinkParameter', y hacen referencia a valores en una tercera tabla 'ExternalLinkType'. Hay cuatro tipos de vínculos: • Informe de campaña: Los vínculos de este tipo se muestran en el menú de informes en la sección Supervisar de la página de rendimiento clave de la campaña. Estos vínculos pueden parametrizarse mediante el ID de la campaña. • Informe de actividad de campaña: Los vínculos de este tipo se muestran en el menú de informes de la sección Rendimiento de actividad de promoción comercial de la página de rendimiento clave de la campaña, y además en el menú de informes de la sección Supervisar de la página de rendimiento clave de la actividad. Estos vínculos pueden parametrizarse mediante el ID de la campaña y el ID de actividad de la campaña. • Informe de ofertas: Los vínculos de este tipo se muestran en el menú de informes de la sección Rendimiento de la oferta de la página de rendimiento clave de la campaña y de la página de rendi- Guía de administración 107 Configuración de enlaces rápidos en MyView miento clave de la actividad. Estos vínculos pueden parametrizarse mediante el ID de la campaña, el ID de la actividad de la campaña y el ID de la oferta. • Informe de canal: Los vínculos de este tipo se muestran en el menú de informes de la sección Rendimiento del canal de la página de rendimiento clave de la actividad. Estos vínculos pueden parametrizarse mediante el ID de la campaña, el ID de actividad de la campaña, el ID de tratamiento y el ID del canal. Para agregar un vínculo al sistema, agregue una fila a la tabla ExternalLink que indique el nombre del vínculo, la dirección URL base, ExternalLinkTypeId (consulte la tabla ExternalLinkType para conocer los ID relacionados con cada uno de los tipos de vínculo mencionados) y todos los demás campos requeridos. Tenga en cuenta que el campo de ID se genera automáticamente y que algunos de los campos no se utilizan actualmente en la configuración, pero resultan útiles para fines administrativos (por ejemplo, versión). Para establecer parámetros para un vínculo, agregue una o más filas a la tabla ExternalLinkParameter que indique ExternalLinkId (el ID del vínculo externo mencionado), el parámetro 'Name' que se incluirá en la dirección URL que se genera cuando se hace clic en el vínculo y en 'Mapping', que debe ser una de las siguientes: • • • • • CampaignId: Para pasar el valor de ID de la campaña. ActivityId: Para pasar el valor de ID de la actividad de campaña. OfferId: Para pasar el valor de ID de la oferta. TreatmentId: Para pasar el valor de ID del tratamiento. ChannelId: Para pasar el valor de ID del canal. Por ejemplo, para configurar un vínculo con el nombre "Cifras de este mes", que se conectará con un sistema de informes en una dirección URL con el formato siguiente: http://myreportingsystem?ActivityParameter=22&CampaignParameter=1003 para actividades de campaña, agregue una fila a la tabla 'ExternalLink' con Name=This Month's Figures, Url=http://myreportingsystem, ExternalLinkTypeId=2, (y, supongamos que se obtiene Id=5). A continuación, agregue una fila a la tabla ExternalLinkParameter con ExternalLinkId=5, Name=ActivityParameter and Mapping=ActivityId. Finalmente, agregue otra fila a la tabla ExternalLinkParameter con ExternalLinkId=5, Name=CampaignParameter y Mapping=CampaignId. Tenga en cuenta que puede, y probablemente deba, parametrizar la dirección URL base. Por ejemplo, si en el caso mencionado su dirección URL era http://myreportingsystem?myparametername=myparametervalue, la misma configuración que arriba generaría el vínculo: http://myreportingsystem?myparametername=myparametervalue&ActivityParameter=22&CampaignParameter=1003 Configuración de enlaces rápidos en MyView Los cambios en la sección Enlaces rápidos de la página MyView se efectúan en la tabla ApplicationLink de la base de datos de PSR. La tabla incluye algunos vínculos de forma predeterminada y estos pueden deshabilitarse si configura su campo "Enabled" en "0". Nota: No cambie ninguno de los vínculos con un SystemName, ya que son necesarios. Se pueden agregar nuevos vínculos si agrega nuevas filas a la tabla ApplicationLink. La tabla debajo muestra los campos requeridos. 108 Portrait IO 5.5 Capítulo 6: Administración de Portrait HQ Nombre de columna Descripción Name El texto que se muestra para el vínculo. Uri Una nueva ventana del explorador se abre con esta dirección URL cuando el usuario hace clic en el vínculo. Enabled Habilita/deshabilita el vínculo. Establezca este valor en "1" para habilitar. Nota: El contenido de la tabla ApplicationLink no coincidirá exactamente con los Enlaces rápidos en LiveView. El motivo es que: • Hay dos vínculos que se agregan a los Enlaces rápidos que no están en la tabla ApplicationLink: Crear nueva campaña y Crear tarea. • Hay un vínculo en la tabla a la aplicación Visual Dialogue. Este vínculo está disponible en la parte Herramientas de la barra de menú superior. Habilitación de SSL/HTTPS Para habilitar SSL/HTTPS para Portrait HQ y Portrait Shared Server, complete los siguientes pasos: 1. Actualice la configuración para el sitio web que aloja a Portrait HQ y Portrait Shared Server: a. Consiga el certificado SSL necesario y úselo en el enlace del sitio http. b. Quite el enlace del sitio http. c. Actualice las configuraciones SSL de Portrait HQ y Portrait Shared Server para solicitar SSL, pero ignorar, cualquier certificado del cliente. 2. Actualice el archivo de configuración web.config de Portrait Shared Server: a. Ubique el archivo web.config de Portrait Shared Server en: \<directorio_de_instalación>\PST\Portrait Shared Server\Portrait Shared Services\Web.config. b. Establezca el modo de seguridad en Transport en webHttpBinding. <security mode="transport"> c. Corrobore que el acceso http para los metadatos del servicio esté deshabilitado. <serviceMetadata httpGetEnabled="False" /> d. Anule los comentarios en todas las secciones enmarcadas dentro de la siguiente oración: <!-- Uncomment this section to enable SSL access. --> e. Comente todas las secciones enmarcadas dentro de la siguiente oración: <!-- Comment this section to enable SSL access. --> f. Guarde y cierre el archivo. 3. Actualice el archivo de configuración web.config para Portrait HQ: Guía de administración 109 Habilitación de SSL/HTTPS a. Busque el archivo web.config de Portrait HQ en: \directorio_de_instalación\PST\Portrait Shared Server\Marketing HQ\Web.config. b. Anule los comentarios en todas las secciones enmarcadas dentro de la siguiente oración: <!-- Uncomment this section to enable SSL access. --> c. Comente todas las secciones enmarcadas dentro de la siguiente oración: <!-- Comment this section to enable SSL access. --> d. Guarde y cierre el archivo. 4. Actualice el archivo de configuración web.config para Portrait DecisionsWCFWebService: a. Ubique el archivo web.config explorando el directorio virtual DecisionsWCFWebService en IIS Manager. b. Anule los comentarios en todas las secciones que comiencen con: <!-- Uncomment this section to enable SSL access. --> c. Guarde y cierre el archivo. 5. Actualice el archivo de configuración web.config para IOBridgeWCFWebService: a. Ubique el archivo web.config explorando el directorio virtual IOBridgeWCFWebService en IIS Manager. b. Anule los comentarios en todas las secciones que comiencen con: <!-- Uncomment this section to enable SSL access. --> c. Guarde y cierre el archivo. 6. Actualice el archivo de configuración web.config para IOWCFWebService: a. Ubique el archivo web.config explorando el directorio virtual IOWCFWebService en IIS Manager. b. Anule los comentarios en todas las secciones que comiencen con: <!-- Uncomment this section to enable SSL access. --> c. Guarde y cierre el archivo. 7. Actualice el archivo de configuración DatasourceDefExporter.exe.config para la herramienta DatasourceDefExporter.exe: a. Ubique el archivo DatasourceDefExporter.exe.config en: \installation_directory\PST\\Portrait IO\Tools\ b. Anule los comentarios en todas las secciones enmarcadas dentro de la siguiente oración: <!-- Uncomment this section to enable SSL access. --> c. Comente todas las secciones enmarcadas dentro de la siguiente oración: <!-- Comment this section to enable SSL access. --> d. Guarde y cierre el archivo. 110 Portrait IO 5.5 Capítulo 6: Administración de Portrait HQ 8. Actualice el archivo de configuración DecisionTransfer.exe.config para la herramienta DecisionTransfer.exe: a. Ubique el archivo DecisionTransfer.exe.config en: \installation_directory\PST\\Portrait IO\Tools\ b. Anule los comentarios en todas las secciones enmarcadas dentro de la siguiente oración: <!-- Uncomment this section to enable SSL access. --> c. Comente todas las secciones enmarcadas dentro de la siguiente oración: <!-- Comment this section to enable SSL access. --> d. Guarde y cierre el archivo. Guía de administración 111 Capítulo Resolución de problemas de IO En esta sección: • Investigación inicial de problemas . . . . . . . . . . . . . . . . .114 • Definición del problema . . . . . . . . . . . . . . . . . . . . . . . . . .115 • Herramientas de resolución de problemas . . . . . . . . . .119 7 Investigación inicial de problemas Investigación inicial de problemas Independientemente de la causa del problema, es necesario recopilar toda la información pertinente posible. Es útil tratar de responder a los interrogantes acerca de ¿quién?, ¿qué?, ¿dónde?, ¿cuándo? y ¿cómo? Esta investigación ayudará a determinar qué enfoque se adoptará para resolver el problema. ¿Quién? • ¿Se ven afectados todos los usuarios? • ¿Se ven afectados la mayoría de los usuarios? • ¿Puede el problema limitarse a ciertos usuarios? • ¿Afecta el problema únicamente a una cantidad limitada de usuarios? • ¿Es el problema un problema específico del usuario o de la máquina? • ¿Se limita el problema a ciertos registros de cliente? ¿Qué? • ¿Ya ha ocurrido antes este problema? De ser así, ¿qué se hizo para resolverlo? • ¿Se compromete una función específica cuando ocurre el problema? (por ej., acceder a una base de datos, acceder a datos en el sistema back-end ; acceso a transacciones back-end; etc.) • ¿Se está utilizando una función nueva por primera vez? • ¿Funcionó correctamente esta función, antes de producir un error? De ser así, ¿qué cambió? • ¿Puede aislarse el problema en el área, componente, modelo o nodo afectado más pequeño? • ¿Es posible detallar las áreas o funciones del sistema que funcionan normalmente o para las cuales se confirmó el funcionamiento correcto? • ¿Es posible detallar las áreas o funciones del sistema que están dañadas? • ¿Se ven afectadas la mayoría de las funciones del producto o solo algunas? • ¿Qué funciones son comunes a los casos de problemas que no están presentes en los casos de funcionamiento normal? ¿Dónde? • ¿Se ven afectadas la mayoría de las máquinas o solo algunas? ¿Podría aislarse el problema en un segmento de la red? • ¿Puede excluirse del problema a algún nivel o componente? ¿Puede identificarse dónde funciona y dónde no? • ¿Ocurre el mismo problema en otros entornos o solo en una máquina? 114 Portrait IO 5.5 Capítulo 7: Resolución de problemas de IO ¿Cuándo? • ¿Cuándo, exactamente, comenzó el problema? • ¿El problema ocurre en un momento específico del día, o en un día específico de la semana? De ser así, ¿coincide con otros procesos programados? (por ej. ejecución de archivos por lotes, análisis de antivirus, importación/exportación de datos, horas pico, etc.) • ¿Coincidió la primera vez que ocurrió el problema con algún cambio implementado en otros sistemas, cambios en la arquitectura, actualizaciones de algún tipo, mantenimiento, etc.? • ¿Es el problema intermitente o es constante y de reproducción fácil? • ¿Cuándo se manifiesta el problema (al iniciar o cerrar sesión, durante condiciones de carga alta o baja, durante el inicio, durante el apagado, o durante el uso normal, en determinados días, en determinado horario, etc.)? • ¿Es la primera vez que se utiliza la función? De no ser así, ¿qué cambió desde la última vez en que funcionó correctamente? ¿Cómo? • ¿Existe un patrón en el problema? • ¿Puede reproducirse el problema? De ser así, ¿cómo se reproduce? • ¿Cuál es el conjunto mínimo de acciones de usuario requerido para reproducir el problema? Definición del problema Al intentar resolver un problema, es importante poder describirlo en su totalidad. Existen diversas formas de definir un problema, pero aquellos que ocurren en las soluciones empresariales como Portrait Interaction Optimizer suelen pertenecer a las siguientes categorías: Problema del tiempo de ejecución 1. ¿Cuál de las aplicaciones presenta el error (Marketing HQ, recomendaciones de servicios web, aplicaciones de call center)? 2. ¿Cómo es el error? (envíe una captura de pantalla) 3. ¿Hay algo extraño en el registro de eventos de Windows? 4. Habilite el registro de Model Diagnosis Tool: ¿Ahora alguno de los modelos presenta un error? 5. ¿Cuánto espacio hay disponible en el disco del servidor de la base de datos y de aplicaciones? 6. ¿Examinó los otros problemas conocidos de la versión? 7. ¿Hay algún dato disponible sobre el que pueda trabajar Interaction Optimizer? 8. ¿Aún puede acceder directamente al servicio web desde un explorador web? Guía de administración 115 Problema del tiempo de ejecución Bloqueo DEFINICIÓN DEL PROBLEMA: La aplicación, el servicio o la Interfaz de usuario (IU) se bloquearán inesperadamente. Si el bloqueo ocurre en la IU, podría aparecer un mensaje de error de la aplicación o sistema. De existir un botón “More Information”, este debe presionarse para obtener una descripción más detallada del problema. Si se produce en un servicio web, podría aparecer un mensaje de tiempo de espera en el archivo de registro de la aplicación que se comunica con el servicio web. En cualquier caso, debería haber mensajes de error en los archivos de registro y registros de eventos. También debería haber un archivo de volcado de memoria UserDump con la fecha y la hora del bloqueo. QUÉ HACER: Para la investigación inicial deben abrirse los archivos de registro de Portrait Foundation o los registros de eventos en el Visor de registros Portrait. En el Visor de registros, filtre o busque cualquier número de error, texto de error y/o palabras claves, como critical, severe, fatal, exception, timeout, error, etc. Estas búsquedas podrían informarle acerca de problemas dentro o fuera de Portrait Foundation. Una investigación más profunda podría requerir un análisis de los archivos de volcado de memoria (.dmp) que deberían enviarse a Portrait Support junto con todos los otros registros recopilados. Cuelgue DEFINICIÓN DEL PROBLEMA: La aplicación o servicio no responde. Si se produce en una IU, dejará de funcionar, pero permanecerá en la pantalla. No responderá al mouse o a las órdenes del teclado. El Administrador de tareas de Windows podría notificar que la aplicación “No responde”. Si se produce en un servicio web, la aplicación que llama notificará tiempos de espera. QUÉ HACER: Investigue los archivos de registro o los registros de eventos de Portrait Interaction Optimizer. Una investigación más profunda podría requerir un análisis de los archivos de volcado de memoria (.dmp) que deberían enviarse a Portrait Support junto con todos los otros registros recopilados. Datos inesperados o incorrectos DEFINICIÓN DEL PROBLEMA: Aparentemente, todo está funcionando correctamente, pero faltan los datos que se mostraron o produjeron o son incorrectos. Si en una IU aparecen datos incorrectos, es importante identificar el objeto que muestra los datos incorrectos (interacción personalizada, cuadro combinado, control de cuadrícula, control de edición, etc.) de modo que se puedan rastrear hasta el origen. QUÉ HACER: Debido a que esto es normalmente producto de errores en la personalización (controles personalizados, definición del modelo, asignación del modelo, nodos, transacción de acceso a datos, interacción generada, interacción personalizada, procedimiento almacenado en base de datos, transformación XSLT o error de codificación), debe ser solucionado por los desarrolladores de la implementación. 116 Portrait IO 5.5 Capítulo 7: Resolución de problemas de IO Podría ser útil analizar los archivos de registro en busca de palabras claves, como crítico, grave, fatal, excepción, tiempo de espera, error, etc., a fin de identificar dónde reside el problema. Eventos inesperados o incorrectos DEFINICIÓN DEL PROBLEMA: Aparentemente, todo está funcionando correctamente, pero faltan los datos que se mostraron o produjeron o son incorrectos. Si en una IU aparecen datos incorrectos, es importante identificar el objeto que muestra los datos incorrectos (interacción personalizada, cuadro combinado, control de cuadrícula, control de edición, etc.) de modo que se puedan rastrear hasta el origen. QUÉ HACER: Debido a que esto es normalmente producto de errores en la personalización (controles personalizados, definición del modelo, asignación del modelo, nodos, transacción de acceso a datos, interacción generada, interacción personalizada, procedimiento almacenado en base de datos, transformación XSLT o error de codificación), debe ser solucionado por los desarrolladores de la implementación. Podría ser útil analizar los archivos de registro en busca de palabras claves, como crítico, grave, fatal, excepción, tiempo de espera, error, etc., a fin de identificar dónde reside el problema. Respuesta lenta • ¿Se ven afectados todos los usuarios? • ¿Se ven afectados la mayoría de los usuarios? • ¿Puede el problema limitarse a ciertos usuarios? • ¿Afecta el problema únicamente a una cantidad limitada de usuarios? • ¿Es el problema un problema específico del usuario o de la máquina? • ¿Se limita el problema a ciertos registros de cliente? Uso excesivo de memoria DEFINICIÓN DEL PROBLEMA: Todo funciona bien hasta un momento en que se ralentiza. Alternativamente, podría descubrirse que un proceso está utilizando mucha más memoria de lo que se prevé. Esto puede ocasionar una paginación de la memoria, lo cual puede ralentizar considerablemente un sistema. QUÉ HACER: Debido a que muchos componentes de Portrait Software están diseñados para utilizar gran cantidad de memoria en forma de caché a fin de mejorar el rendimiento mediante la reducción del uso de recursos como entrada/salida de Disco, se recomienda revisar con anterioridad la configuración de caché. Se pueden ejecutar búsquedas, análisis o filtros en los registros de eventos y registros de Portrait para palabras claves apropiadas, como crítico, grave, fatal, excepción, tiempo de espera, error, etc. para ver si se está notificando algún error. Deben analizarse los registros de PerfMon a fin de determinar qué recursos del sistema se están consumiendo, así como también los registros de rendimiento de Portrait a fin de determinar si ciertos objetos de Portrait están consumiendo recursos excesivos. Es posible que se estén consumiendo en exceso los recursos de memoria o que se consuman y nunca se los libere. La causa podría ser una configuración de caché inapropiada, pero también podría ser una pérdida de memoria en un nodo personalizado o una transacción de acceso a datos. Los desarrolladores de la Guía de administración 117 Problema de instalación implementación deben resolver estos tipos de problemas ya que puede requerir la revisión de todos los códigos de proyecto personalizados (en especial el código de administración de recursos). Agotamiento de recursos DEFINICIÓN DEL PROBLEMA: Todo funciona bien hasta un momento en que inesperadamente se ralentiza o comienza a experimentar fallas o errores. Podría advertirse que los recursos del sistema se están agotando con el tiempo, o un recurso en particular como la memoria, los identificadores, los semáforos, el espacio de disco, etc. Esto es similar a los problemas de memoria mencionados anteriormente, pero existen otros recursos finitos que pueden consumirse o perderse con el tiempo. La pérdida/agotamiento de identificadores, semáforos o entradas de la tabla de páginas (PTE, por sus siglas en inglés) puede aparecer como falla o inestabilidad progresiva o falta de respuesta. QUÉ HACER: Para solucionar este tipo de problema es necesario observar los registros de PerfMon para encontrar los recursos que se están agotando. Los registros de Portrait podrían proporcionar algunos indicios acerca de qué componentes podrían estar agotando los recursos. Al igual que con el uso de memoria, puede ser necesario revisar la configuración del caché. Inestabilidad DEFINICIÓN DEL PROBLEMA: El sistema no es confiable. A veces funciona y a veces parece ser inestable con errores aleatorios y comportamiento variable. La inestabilidad es un término integrador que describe un sistema que parece comportarse de forma variable y/o no es confiable en ciertas circunstancias. QUÉ HACER: En este caso el problema mismo puede ser confuso y los problemas que surgen son variables. Esto requerirá un enfoque sistemático, comenzando por revisar los registros de Portrait y ejecutar análisis o filtros en busca de palabras clave, como crítico, grave, fatal, excepción, tiempo de espera, error, etc. Deben revisarse todos los registros de rendimiento a fin de identificar cualquier problema o irregularidad. Entre las cosas que se pueden encontrar, se incluyen las excepciones, fallas de modelo, entradas de registro de eventos y cualquier otro indicador que señale las fallas. Problema de instalación 1. 2. 3. 4. ¿Qué servidor estaba instalando? ¿En qué momento de la instalación ocurrió el problema? (envíe una captura de pantalla del problema). ¿Hay algo extraño en el archivo de registro de la instalación? ¿Ha cumplido con el requisito previo de instalar el software correcto (como se indica en la sección Supported Platforms de Notas de la versión)? Hay más detalles sobre la administración de la plataforma que respalda Interaction Optimizer en la guía de operaciones de Portrait y en la guía para el administrador de bases de datos de Portrait Foundation. 118 Portrait IO 5.5 Capítulo 7: Resolución de problemas de IO Otros problemas Error del paquete DWPopulate SSIS Mensaje de error: DWPopulate SSIS package fails with 'column cannot be processed because more than one code page are specified for it'. Para solucionar el problema, realice el siguiente procedimiento: 1. Ejecute la instalación del paquete DWPopulate.SSISDeploymentManifest. Siga las indicaciones establecidas para el Asistente para instalar paquetes. 2. Ejecute SQL Server Business Intelligence Development Studio. Abra el archivo UpdateFromIO.dtsx en la carpeta de instalación del paquete. Permita que el proceso de validación se complete. 3. En Administrador de conexiones, modifique los parámetros ServerName e InitialCatalog para que las conexiones de Interaction Optimizer y de PortraitDW DataSource coincidan con su entorno. 4. En la Lista de errores, haga doble clic en cada error de validación que especifique "column cannot be processed because more than one code page are specified for it". 5. Seleccione Sí para que el componente solucione los errores automáticamente y Aceptar en la ventana Editor de origen de OLE DB. 6. Guarde UpdateFromIO.dtsx. Activación del servicio Web WCF Si tiene problemas con la activación del servicio, registre nuevamente WCF al ejecutar ServiceModelReg.exe -i desde %SystemRoot%\Microsoft.Net\Framework\v3.0\Windows Communication Foundation. Herramientas de resolución de problemas Herramientas y técnicas disponibles para determinar el problema. Contadores de rendimiento Portrait Foundation (utilizado por Interaction Optimizer) produce recuentos de Perfmon que pueden utilizarse para proporcionar información de diagnóstico y entrada a la evaluación del estado del sistema y para la planificación de capacidad. El equipo de Portrait Support recomienda capturar todos los recuentos de Perfmon de Foundation para todos los procesos que los crean. Portrait Support también recomienda una lista de recuentos de Windows Perfmon que deben recopilarse para servidores con Portrait Foundation instalados. Guía de administración 119 Recuentos de modelos y nodos Algunos de los recuentos deben revisarse a diario para determinar si hay problemas con el sistema (por ejemplo, Portrait Process Engine\Hardware exceptions, que indican que se ha creado un volcado de memoria a causa de un error). Estos recuentos deben capturarse y archivarse a los fines de la resolución de problemas, comparación de datos históricos y planificación de capacidad. Portrait Support proporciona un documento (Windows Performance Monitor Configuration), que describe la configuración recomendada para Perfmon en un entorno de Portrait Foundation. Recuentos de modelos y nodos Estos recuentos pueden utilizarse para crear perfiles de los modelos y nodos ejecutados dentro del sistema. Esta información debe capturarse de forma predeterminada (hay una sobrecarga mínima en la captura de estos datos). Portrait Support puede solicitar estos datos a medida que proporciona una percepción útil de la operación de un sistema. El documento de referencia de recuentos de modelos y nodos incluye información sobre estos recuentos y la forma en que se utilizan. Minivolcado En circunstancias en las que suceden eventos poco frecuentes dentro de un sistema en ejecución, es necesario configurar el sistema de modo que capture suficientes datos de diagnóstico para solucionar problemas. Parte de esto implica instalar un mecanismo para capturar volcados de memoria cuando ocurran "excepciones". El minivolcado es una función desarrollada por Portrait Software que se utiliza para este fin. El minivolcado debe capturar información mínima de diagnóstico cuando sucedan errores en los servicios de Portrait Foundation. La lista de servicios que se deben controlar se registra de forma predeterminada en HKEY_LOCAL_MACHINE\SOFTWARE\PST\Portrait\Systems\<MySystem>\MiniDump. Los volcados de memoria se producen por los servicios en sí mismos que invocan la función y mediante la configuración del depurador de evaluación para que intercepte excepciones sin administrar a través de la clave de registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug. También es importante contar con un procedimiento que permita capturar estos volcados de memoria tan pronto sea razonablemente práctico después de que ocurran y reenviarlos a Portrait Support. De forma predeterminada, se escriben en el directorio en el que está instalado Portrait Foundation como archivos .dmp. De forma predeterminada, estos archivos no son grandes y solo contienen información mínima de diagnóstico. De ser necesario, Portrait Support puede solicitar cambios en la configuración predeterminada de Minivolcado para recopilar más información que la predeterminada. Es importante destacar que estos volcados de memoria no son volcados de memoria completa masivos, con frecuencia asociados al término "volcado de memoria". El minivolcado puede utilizarse como una función de línea de comandos para producir volcados de memoria que varían de memoria mínima a completa. Para más información, consulte la Guía de depuración de Portrait Foundation. 120 Portrait IO 5.5 Capítulo 7: Resolución de problemas de IO Uso de auditoría de reglas Es posible solicitar información de diagnóstico en la forma de una auditoría de reglas para que se devuelva junto con las acciones cuando se llama la operación GetActions del servicio web de IO. Los diagnósticos se solicitan en una de estas dos formas: • Como parte de la entrada IO – WS Get Actions Request a la operación. De esta forma se solicita el diagnóstico para una única llamada. • Mediante la configuración de un valor 'DIAGNOSTICS' en la tabla io_application_params. De esta forma se solicita el diagnóstico para todas las llamadas. Nota: Esto provocará un impacto severo en el rendimiento y no debe utilizarse en un entorno de producción. Los valores válidos para la solicitud de diagnóstico se muestran debajo, pueden combinarse utilizando un separador de coma. Se debe utilizar FULL junto con al menos otro valor, por ejemplo, UNMATCHED,FULL: • MATCHED devuelve el diagnóstico para acciones devueltas • UNMATCHED devuelve el diagnóstico para acciones filtradas por reglas • FULL incluye detalles de ejecución de reglas, incluidos valores sustitutos Guía de administración 121 Capítulo Resolución de problemas de HQ En esta sección: • Error al autenticar en Portrait HQ luego de instalar SharePoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .124 • Problemas con las credenciales de seguridad al ejecutar Portrait HQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .124 • Resolución de problemas de aplicaciones interrumpidas cuando se intenta iniciar sesión . . . . . . . . . . . . . . . . . . .124 • Problemas para cargar Portrait Shared Services . . . . .125 • Creación de nombres principales de servicio para Portrait Shared Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125 • Registro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126 • Cómo cambiar la cuenta utilizada como cuenta de servicio luego de haber instalado PSS . . . . . . . . . . . . . . . . . . . .126 • No se pueden ver tareas creadas que aparezcan en 'MyView' de Portrait HQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126 • Aparece el mensaje de error 'Failed retrieving task list' en Portrait HQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .127 8 Error al autenticar en Portrait HQ luego de instalar SharePoint Error al autenticar en Portrait HQ luego de instalar SharePoint En Windows Server 2003, puede ver que, luego de instalar SharePoint, ya no podrá autenticar en Portrait HQ (una vez que lo ha instalado) ni en ninguna otra aplicación web que utilice la Autenticación de Windows, a menos que cuando visite el sitio presente credenciales de cuentas explícitas con dominio local. Es una "función" de seguridad de IIS 6.0. Para solucionar el problema, siga los pasos que se describen en http://support.microsoft.com/?kbid=896861 si desea permitir la Autenticación de Windows en otras aplicaciones web del servidor, como Portrait Shared Services. Una de las soluciones más simples que se describen allí es utilizar regedit para agregar una clave de registro DWORD "DisableLoopbackCheck" con valor 1, en HKLM\System\CurrentControlSet\Control\Lsa. Problemas con las credenciales de seguridad al ejecutar Portrait HQ Según varias configuraciones de seguridad en la máquina servidor, el explorador del cliente y la infraestructura de red, es posible que vea un cuadro de diálogo emergente de Windows que le solicite un ID de usuario y una contraseña cuando intente iniciar Portrait Miner. (Internet Explorer muestra este cuadro de diálogo. No es la pantalla de inicio de sesión de Portrait Miner.) Hay varias causas posibles para este problema. Se le sugiere verificar lo siguiente, en ese orden, y realizar todos los cambios de configuración que sean necesarios. • ¿El cliente (explorador) se ejecuta en la misma red (dominio) que el servidor? De no ser así, ¿hay una relación de confianza entre estos dominios? • ¿Internet Explorer está configurado para utilizar los valores predeterminados de seguridad para acceder a la zona de Intranet local? De no ser así, intente restablecer la zona a su configuración predeterminada. • ¿El servidor de Portrait Shared Server tiene configurado algún conjunto de nombres principales del servicio asociados con in Active Directory? En algunas circunstancias es necesario crear SPN para el servicio. Las instrucciones para configurar los SPN se presentan a continuación. Resolución de problemas de aplicaciones interrumpidas cuando se intenta iniciar sesión Verifique que el registro del usuario cuente con los derechos de “inicio de sesión” necesarios. 124 Portrait IO 5.5 Capítulo 8: Resolución de problemas de HQ Problemas para cargar Portrait Shared Services Si no se puede acceder a Http://<suservidor>:<puerto>/PortraitSharedService luego de la instalación, siga estos pasos: 1. En el directorio web, abra web.config 2. Navegue hasta <“system.web”> 3. Debajo de esta línea agregue: <trust level=”Full” originUrl=”” /> Creación de nombres principales de servicio para Portrait Shared Services Los nombres principales del servicio (SPN) se crean dentro de Active Directory utilizando la herramienta SETSPN. Esta herramienta está disponible de forma predeterminada en Windows Server 2008. Nota: Los cambios en los SPN pueden afectar la Autenticación de Windows para las aplicaciones web de Portrait Dialogue. El método para evitarlo se describe al final de esta sección. Luego de instalar las herramientas de soporte técnico, asegúrese de haber iniciado sesión en la máquina de Windows Server utilizando una cuenta con privilegios de administración de dominio y luego abra una indicación de comandos. Ejecute los dos comandos que se presentan a continuación: • setspn -a http/<nombre de servidor> <cuenta de servicio> • setspn -a http/<nombre de dominio calificado completo del servidor> <cuenta de servicio> Donde: • nombre de servidor es el nombre simple (netbios) del servidor, por ejemplo "MiServidor". • cuenta de servicio es el nombre de la cuenta de servicio, por ejemplo "MiDominio\MiCuenta". • nombre de dominio calificado completo del servidor es el nombre completo del servidor, por ejemplo "miservidor.midominio.miempresa.com" Ejemplos: • setspn -a http/miservidor midominio\micuenta • setspn -a miservidor.midominio.miempresa.com midominio\micuenta Para confirmar que se hayan creado los SPN, ejecute setspn -l MiDominio\MiCuenta y verifique que tanto las versiones simples como las completas del nombre del servidor se encuentren en la lista de SPN asociados con la cuenta de servicio. Cabe destacar que solo puede haber una instancia de un servicio configurado en una única máquina, por ejemplo, "HTTP/MyMachine" puede estar asociado con la cuenta "MiDominio\MyUser". Esto significa que todos los sitios/servicios HTTP (Web) de MyMachine deben ejecutarse en la cuenta MyUser. Por lo tanto, no es posible ejecutar aplicaciones web en grupos de aplicaciones con distintas identidades si Guía de administración 125 Registro es necesaria la Autenticación de Windows. Es decir, todos los grupos de aplicaciones deben ejecutarse bajo una cuenta con dominio único. Luego de realizar los pasos anteriores, siga estos pasos para asegurarse e que Autenticación de Windows funciona para las aplicaciones web de Portrait HQ 1. 2. 3. 4. Haga clic con el botón secundario en DefaultAppPool. Seleccione Properties. En la ficha Identity haga clic en Configurable. Agregue la información de registro del usuario creado al generar los nombres principales de servicio para Portrait Shared Services. Registro Para permitir los registros en Portrait Shared Services o en Portrait HQ consulte las instrucciones que se encuentran en la sección Configuración. Cómo cambiar la cuenta utilizada como cuenta de servicio luego de haber instalado PSS Para cambiar la cuenta que se utiliza como cuenta de servicio luego de haber instalado PSS, realice lo siguiente: 1. Cambie la cuenta configurada como la identidad del grupo de aplicaciones que se utiliza para el PSS. Esto se realiza en IIS, seleccionando Advanced Settings en el grupo de aplicaciones. 2. Realice los pasos que se describen en "Configuración obligatoria posterior a la instalación" para la nueva cuenta que desea utilizar como cuenta de servicio. 3. Siga los pasos que se describen en "Creación de nombres principales de servicio para Portrait Shared Services" para la nueva cuenta que desea utilizar como cuenta de servicio No se pueden ver tareas creadas que aparezcan en 'MyView' de Portrait HQ Asegúrese de que los usuarios a los que se asignan tareas estén correctamente configurados en SharePoint. Para obtener más información, consulte Creación de un sitio de SharePoint en: • Interaction OptimizerInteraction Optimizer, o • Portrait DialoguePortrait Dialogue. 126 Portrait IO 5.5 Capítulo 8: Resolución de problemas de HQ Aparece el mensaje de error 'Failed retrieving task list' en Portrait HQ 1. Asegúrese de que se haya configurado SharePoint según las instrucciones establecidas en la Guía de instalación de Interaction Optimizer. 2. Verifique que la dirección de destino que figura en el archivo web.config sea correcta: <!-- Endpoint for outbound connection to SharePoint server's List Service (used for tasks, etc) --> <endpoint address="http://vm-pss-sharep/portrait/_vti_bin/Lists.asmx" binding="basicHttpBinding" bindingConfiguration="Sharepoint" contract="ListsService.ListsSoap" name="ListsSoap"/> 3. La dirección URL establecida en el archivo web.config no debe contener el nombre del servidor, aunque esa dirección URL funcione cuando se la explore con un explorador web. Ejemplo: Utilizar una dirección URL en el archivo web.config con el valor http://MiServidor/MySharepointSite/portrait/_vti_bin/Lists.asmx funcionará cuando se navegue a ella. Sin embargo, para que sea válida dentro de web.config, el nombre del servidor debe eliminarse de la dirección URL: http://MySharepointSite/portrait/_vti_bin/Lists.asmx. Guía de administración 127