de Portrait HQ - Portrait Support

Anuncio
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
Descargar