83
PROMO - Manual de Instalación 7.0 MANUAL DE INSTALACIÓN PROMO 7.0 Índice Introducción Consola de Administración - PROMO Introducción Pre-Requisitos del sistema Ejecución del Instalador (Windows) Instalación de la aplicación OPCIÓN INSTALACIÓN COMO APLICACIÓN: OPCIÓN INSTALACIÓN COMO SERVICIO: Estructura de directorios Instalación Linux (CentOS 7) Instalación MongoDB 4.2 Instalación de la aplicación (Consola de Promo) Configurar Motor de Simulación como servicio en LINUX PROMO - BRIDGE

PROMO - Manual de Instalación 7

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PROMO - Manual de Instalación 7

PROMO - Manual de Instalación 7.0

MANUAL DE INSTALACIÓN

PROMO 7.0

Índice

IntroducciónConsola de Administración - PROMO

IntroducciónPre-Requisitos del sistema

Ejecución del Instalador (Windows)Instalación de la aplicación

OPCIÓN INSTALACIÓN COMO APLICACIÓN:OPCIÓN INSTALACIÓN COMO SERVICIO:

Estructura de directoriosInstalación Linux (CentOS 7)

Instalación MongoDB 4.2Instalación de la aplicación (Consola de Promo)Configurar Motor de Simulación como servicio en LINUX

PROMO - BRIDGE

Page 2: PROMO - Manual de Instalación 7

Configurar el envío de prefijos de cupones y tarjetas a BridgeEjecución del sistema

Acceder a la Consola de administraciónErrores en la instalación de la consolaErrores de inicialización de la consola

Motor de PromocionesIntroducciónPre-Requisitos del sistemaInstalación (Linux/Windows)

Instalación del Motor de PROMO desde el InstaladorInstalación de Versiones Anteriores del Motor de PROMO

Configuraciones Generales del Motor:Archivos de Configuración

Optimización de carga de mapas en motorMotor MultitiendaConfiguración de Multitienda

SEGURIDADCONFIGURACION HTTPSAutenticacion por usuarios y roles

Archivo de Usuarios (engineUsers.properties)Roles de Usuarios (engineUsers.properties)

Mantenimiento - MotorDepuración de archivos de logErrores de inicializaciónErrores de procesamiento

Documentación relacionadaInformación de Configuración

Depuración de archivos de backup de Base de datosAlta de cliente durante la transacciónEnmascarar Contraseña de DBConfiguración Atributos con espacios en Condiciones SimplesConfiguración de Redes Sociales

Configurar FacebookConfigurar Twitter

Validar CVV solo cuando se realiza un consumo en una Tarjeta de FidelidadIntegración con Syslog/QRADARConfiguración de AmbienteResolución de problemasDesinstalaciónReverso de actualizaciones ante problemas en el proceso

Herramienta para métricas de fidelidadApéndice A: Autenticación de Usuarios Externos (SAML2)

Consideraciones de la pruebas de IntegraciónApéndice B: OS4690

Instalación de Motor en OS4690Apéndice C: Variables de Entorno

Set PATH JAVA_HOME en WindowsApéndice D: Actualizaciones de Consola

Actualización por nuevos Release

Introducción

Page 3: PROMO - Manual de Instalación 7

PROMO es una solución que permite separar el manejo de promociones del punto de venta. Cuenta con dos grandes componentes: el " ", encargado de calcular las promociones participantes cuando se realiza una transacción en el punto de venta e informarlas al mismo una vez finalizado el Motor de promocionescálculo; y la " ", encargado de brindar una herramienta centralizada de administración. Consola de administraciónEl presente manual ilustra sobre cómo realizar la instalación de ambos componentes y las diferentes opciones que pueden ser configuradas para su funcionamiento.

Consola de Administración - PROMO

Introducción

La Consola de administración es el componente web de administración y creación de promociones, cupones, tarjetas de fidelidad y mapas que posee PROMO. Por medio de esta herramienta se podrá, entre otras cosas, crear promociones y definir sus condiciones, cupones, tarjetas, combos y beneficios. También se podrán crear los mapas que contienen las promociones para luego generar los archivos de configuración que se cargarán en el " ", para que puedan ser evaluados los tickets y calculadas las promociones en base a las definiciones generadas en la Consola.Motor de promociones

Pre-Requisitos del sistema

A continuación se detallan los requisitos mínimos para la instalación de la Consola de Administración de PROMO que operara con una (1) compañía.Los requerimientos mínimos de hardware se proveen como una guía para el sizing de un ambiente no productivo. Para instalaciones en ambientes productivos con requerimientos específicos de performance y volumen de datos se requiere un sizing particular para estimar la configuración apropiada.

Descripción Requisito mínimo (10 Tiendas)

Servidor de Aplicaciones Wildfly 12

Memoria RAM libre 16 GB

JVM (Java Virtual Machine) jdk-8u25-windows-x64 o superior

Procesador 8 x 2.5 GHz

Capacidad del disco rígido (libres) 200 GB

Sistema Operativo Windows Server 2008 R2, Windows 7 64-bit

Servidor de base de datos MongoDB 4.2

IMPORTANTE

Los requisitos dependen del uso de funciones y carga esperada.  Entonces se requiere una estimación y estudio de cada caso para realizar un ajuste en los recursos requeridos.

NOTA

El uso de máquinas virtuales agrega un overhead que puede afectar la performance o escalabilidad. 

Page 4: PROMO - Manual de Instalación 7

Ejecución del Instalador (Windows)

Deberá ejecutarse desde modo comando el Instalador " " para proceder a la instalación y configuración de la consola y motor de simulación de PROMO. Para esto como administrador promo-console-installer-6.4.0.jardeberá ejecutarse el comando java –jar promo-console-installer-6.4.0.jarTambién se instalarán los siguientes componentes indispensables para el correcto funcionamiento de la aplicación:

Wildfly 9.PromoSimEngine x.x (motor de simulación)MongoDB 4.2

Los servicios de MongoDB, Wildfly y PromoSinEngine quedaran instalados y podrá optarse al momento de la instalación si se ejecutan al terminar el proceso de instalación o bien si se iniciaran a mano, en caso de ser necesario realizar configuraciones previas el inicio de los servicios. Respecto del servicio Wildfly, inicialmente vendrá configurado por defecto el directorio sugerido, ocupando el puerto 8080 Al finalizar el instalador se crearán todos los servicios y directorios correspondientes.

Instalación de la aplicación

Se deberá ejecutar como administrador, en modo comando el instalador de PROMO ( )promo-console-installer-x.x.x.jar

Se presentara la siguiente pantalla donde se deberá presionar " ":Next

IMPORTANTE

Adicionalmente se deberá agregar el JDK a la variable de entorno %PATH%. (ver )8 Apendice B: Variables de Entorno

Page 5: PROMO - Manual de Instalación 7

Luego se solicitará la aceptación de los términos y condiciones de uso de la aplicación.

Page 6: PROMO - Manual de Instalación 7

Luego de aceptados los términos y condiciones, se solicitará que se identifique el nombre del usuario y el e-mail de quien (empresa o persona) está realizando la instalación.

Page 7: PROMO - Manual de Instalación 7

A continuación se deberá indicar la ruta de acceso a Java (JDK) y el directorio donde se realizara la instalación de Promo. Por default se propone " ". Tambien se deberá indicar el directorio donde se c:\synthesis\Promoinstalara la base de datos (MongoDb)

Page 8: PROMO - Manual de Instalación 7

De no existir los directorios se solicitara autorización para la creación de los directorios necesarios para la instalación de PROMO.

A continuación preguntará si desea . Si activa este check se instalará como aplicación, si no lo activa continuará con la instalación y se activará como servicio.instalar el motor de Promo como aplicación Tomee

OPCIÓN INSTALACIÓN COMO APLICACIÓN:

NOTA

En caso de que PROMO trabaje integrado con BRIDGE, deberá tildarse la opcion "Install Bridge Integration" para una correcta configuracion de la aplicación.

Page 9: PROMO - Manual de Instalación 7

Luego de presionar el botón Siguiente, debe indicarse la ruta donde está la carpeta webapps de la instalación de apache TomEE.

Nota

Si va a instalar el motor como aplicación, previamente debe instalar el apache TomEE plume 7.1.1: https://tomee.apache.org/download-ng.html

Page 10: PROMO - Manual de Instalación 7

Luego de presionar Siguiente, debe completar los parámetros solicitados:

Page 11: PROMO - Manual de Instalación 7

OPCIÓN INSTALACIÓN COMO SERVICIO:

Si no activó el check para instalar el motor como aplicación Tomee, se solicitará indicar el directorio donde se instalará .Wildfly, para que el motor se instale como servicio

Page 12: PROMO - Manual de Instalación 7

En caso de no existir el directorio, se solicitara autorización para la creación del mismo.

 Se solicitara se informe si se desea instalar o solo activar los servicios que se instalan con PROMO.

Page 13: PROMO - Manual de Instalación 7

Ya sea que haya instalado el motor como aplicación o como servicio continuará con los siguientes pasos:

En la siguiente pantalla que se presente, habrá que presionar el botón " " a fin de dar comienzo al proceso de instalación de PROMO y sus componentes.Instalar

Page 14: PROMO - Manual de Instalación 7
Page 15: PROMO - Manual de Instalación 7

Finalizada la instalación se mostrara la siguiente ventana donde se informara la correcta instalación de la consola de PROMO y se solicitara dar Clic en " " para terminar con el proceso.OK

Estructura de directorios

Luego de haber instalado la Consola de administración, quedará una estructura de directorios similar a la siguiente en el directorio de instalación (ej: "c:\synthesis\promo"). Los siguientes directorios y archivos son algunos de los que se deberán tener en cuenta:

synthesis\promo\images: directorio de las imágenes\synthesis\promo\images\profile\synthesis\promo\images\barcode: contiene las imágenes de códigos de barras asociados a cupones emitidos.\synthesis\promo\images\promotion: contiene las imágenes que se asocien a las promociones\synthesis\promo\logs: información sobre las trazas de ejecución de la aplicación, incluyendo información técnica ante cualquier falla.\synthesis\promo\backup: backups de la base de datos MongoDB\synthesis\promo\import: directorio donde deberán alojarse los mapas para la importación de promociones.\synthesis\promo\mdb: aquí se encuentran las funciones utilizadas en la base de datos.\synthesis\promo\engine: el motor de promociones que utiliza la consola para la simulación de las mismas.\synthesis\promo\catalogs: directorio donde se alojaran los archivos de catálogo (. ) que se importaran al iniciar la aplicación. Deberán generarse de manera manual las carpetas correspondientes a cada catalogscompañía, indicando en el nombre del directorio el ID de la compañía. (Ej.: \synthesis\promo\catalogs\22 donde 22 corresponde al ID de la nueva Ccia)\synthesis\promo\export: (a partir de Promo v7.1 en adelante) en este directorio se van a bajar los archivos que se exportan con el botón "Exportación Masiva" que se encuentra en los informes. Este directorio se crea automáticamente al realizar la instalación de Promo. Pero debe tenerse en cuenta que si se hace una actualización en lugar de una instalación desde cero, debe crear a mano este directorio.

Instalación Linux (CentOS 7)

Page 16: PROMO - Manual de Instalación 7

1.

Es requisito que antes de realizar la instalación de la consola estén instaladas los siguientes componentes:

MongoDB 4.2JDK 1.8.0_25

Junto con la consola de PROMO, durante el proceso se instalarán el motor de simulación y Wildfly.

Instalación MongoDB 4.2

Se pueden seguir los pasos en la documentación de instalación online de Mongo.

Linux: https://docs.mongodb.com/v4.2/tutorial/install-mongodb-on-red-hat/

Luego de que mongo se encuentra instalado se debe configurar la seguridad del mismo de la siguiente forma:

Ejecutar el servicio de Mongo mediante sudo service mongod start

2. Ejecutar el comando mongo

3. El sistema quedará dentro de la consola de Mongo, con lo cual allí mismo se deberá ejecutar los siguientes comandos:

>use promo>db.createUser({user:"promousr", pwd:"thepassword", roles:[{role:"dbOwner", db:"promo"}]})

NOTA

Se utiliza en estos ejemplos el nombre de usuario "promousr" y el password "thepassword", esto puede ser cambiado acorde a lo requerido por el usuario.

Page 17: PROMO - Manual de Instalación 7

4. Salir de la consola mediante el comando " "exit

5. Ejecutar el comando > para frenar la ejecución de mongo.service mongod stop

6. Editar el archivo y descomentar el tag " " para habilitar la seguridad, colocando la siguiente línea como se muestra en la imagen:/etc/mongod.conf Security

Instalación de la aplicación (Consola de Promo)

Se deberá ejecutar como el instalador entregado desde línea de comando de la siguiente forma:root

Donde X.X.X Corresponde al número de versión de PROMO que se está instalando.

Luego de ejecutado el instalador, comenzará a descomprimirse el archivo para dar comienzo a la instalación,

Page 18: PROMO - Manual de Instalación 7

Terminada la descompresión, se solicitara autorización para proceder con la instalación de la aplicación, dar clic en " "Next

Page 19: PROMO - Manual de Instalación 7

En la siguiente pantalla se deberán aceptar los términos y condiciones de uso, una vez leídos los mismos, de estar de acuerdo, dar clic en " " para continuar. Accept

Page 20: PROMO - Manual de Instalación 7

Se deberá proveer de un nombre (persona física u organización) y un mail para poder registrar la aplicación y proseguir con la instalación, así como también se solicita re confirmar la aceptación de los términos y condiciones.Completados los campos, presionar " ":Next

Page 21: PROMO - Manual de Instalación 7

A continuación se deberá indicar la ruta de acceso a Java (JDK) y el directorio donde se realizara la instalación de Promo. Por default se propone " ". También se deberá indicar el directorio donde se /usr/local/promo/instalara la base de datos (MongoDb)

De no existir los directorios se solicitara autorización para la creación de los directorios necesarios para la instalación de PROMO.

NOTA

En caso de que PROMO trabaje integrado con BRIDGE, deberá tildarse la opción "Instalar Integración con Bridge" para una correcta configuracion de la aplicación.

Page 22: PROMO - Manual de Instalación 7

Presionar " "Si

Page 23: PROMO - Manual de Instalación 7

En la siguiente ventana se solicitara indicar el directorio donde se instalara Wildfly.

En caso de no existir el directorio, se solicitara autorización para la creación del mismo. Dar clic en "Si"

Page 24: PROMO - Manual de Instalación 7

Para iniciar la instalación, en la siguiente pantalla habrá que presionar el botón " " a fin de dar comienzo al proceso de instalación de PROMO y sus componentes.Installar

Durante la instalación se presentara una ventana de progreso donde se podrá visualizar los componentes que se están instalando y su progreso.

Page 25: PROMO - Manual de Instalación 7

Finalizado el proceso se presentara un pop-Up de proceso terminado, donde se deberá presionar " " y luego " " para terminar el proceso.Aceptar Salir

Page 26: PROMO - Manual de Instalación 7

Una vez instalada la consola, sera requerido iniciar Wildfly, lo cual podrá hacerse manualmente ejecutando " ", o bien podrá configurarse Wildfly como servicio en linux siguiendo los pasos indicados en la sudo ./standalone.shWeb para tal fin.

Configurar Motor de Simulación como servicio en LINUX

Deberá generarse un archivo desde cualquier editor de texto, con el nombre " " y deberá contener las siguientes líneas:promo.service

Una vez generado el archivo, debera guardarse en y ejecutar el siguiente comando para notificar al sistema:  /etc/systemd/system

Luego habrá que habilitarlo para que ejecute al inicio con el siguiente comando:

De ser necesario accionar sobre el servicio podrán ejecutarse los siguientes comandos:

systemctl start promo   iniciar el servicio   detener el serviciosystemctl stop promo

  reiniciar el serviciosystemctl restart promo    ver estado del servicio1systemctl status promo

PROMO - BRIDGE

Page 27: PROMO - Manual de Instalación 7

Durante la instalación de la consola de promociones podrá indicarse si ésta operará integrada o no con Bridge.De ser así, será requerido tener instalado previamente Bridge Manager ya que Promo utilizara servicios y vistas de Bridge.

Para Instalar la consola integrada con Bridge, durante el proceso de instalación, ya sea sobre Windows o sobre Linux, deberá tildarse en la ventana de Opciones de Instalación, la opción "Instalar Integración con Bridge"

Con lo cual, al presionar "Siguiente", en el siguiente popUp se mostrara como ruta para Wildfly, el directorio donde este instalado la App Server de Bridge. También deberá tenerse en cuenta que el archivo de configuracion para las conexiones con la base de Bridge, entre otras configuraciones, propias de PROMO sera " ".promoconfig.properties

Page 28: PROMO - Manual de Instalación 7

En este archivo, aparte de encontrar las opciones de configuracion de base de promo (mongoDB) y la estructura de directorio por defecto, también encontraran los valores de configuracion para la integración con Bridge, ya sea se utilice una base SQL o una base Oracle.

Ejemplo:

De usarse un esquema de base de datos u otro habrá que descomenar y configurar la opción correspondiente.

Configurar el envío de prefijos de cupones y tarjetas a Bridge

1- En la consola de PROMO. Ir a Administración > Información de configuración.

2- Buscar " " (clave) de la categoría .soap.url promo.bridge

El valor deberá ser la URL al servicio de Bridge Manager que espera recibir los prefijos. Ejemplo: http://10.x.1x.1x:8180/bridge/services/bridgeCoreSOAP?wsdl.

3- Para forzar la ejecución de este servicio se puede ejecutar el job "Exportación de Tipos de Tarjetas y Cupones a Bridge (SOAP)" en Administración > areas programadas.T

Ejecución del sistema

Page 29: PROMO - Manual de Instalación 7

Acceder a la Consola de administración

Una vez instalada la consola de PROMO podrá ser accedida desde algunos de los siguientes browsers soportados por Promo: o ,Firefox Google Chorme

Ingresar la siguiente URL en la barra de direcciones del :Browser

http://IP-SERVIDOR:8080/promo

Donde es la dirección IP o DNS del computador donde se está ejecutando el servidor de aplicaciones.IP-SERVIDOR

Errores en la instalación de la consola

404 – ERROR de Inicializacion en Instalador

Este error pude se produce al no iniciarse la instalación de la consola desde una pantalla de comando ejecutada como administrador. Se deberá ejecutar como administrador, en modo comando el instalador de PROMO (promo-console-installer-6.x.x.jar)

Errores de inicialización de la consola

404 – ERROR (al iniciar la aplicación WEB)Este error pude producirse porque no está levantado el servicio WildFly. Deberá revisarse en los servicios del sistema que el servicio WildFly este en ejecución. De no estarlo, iniciarlo y refrescar la página del navegado y volver a probarOtro de los motivos por los cuales pueda darse este error es que no se haya descomprimido correctamente el aplicativo, para corroborarlo habrá que chequear en el directorio de instalación synthesis\promo\appse

si hay un archivo llamada " ". De encontrarse este archivo, indicara que se ha producido un error en la inicialización de la aplicación. Contactar al administrador del rver\standalone\deployments promo.war.failedsistema para su solución.

Page 30: PROMO - Manual de Instalación 7

Motor de Promociones

Introducción

Como se mencionó en el punto anterior, el motor de promociones es el componente de PROMO encargado de recibir tickets directamente desde el punto de venta, luego procesarlos, y, finalmente, informar las promociones que participaron y los artículos afectados.La instalación del motor de promociones se realiza conjuntamente con la instalación de la consola de Promo, al ejecutarse el instalador de la aplicación. La comunicación se establece a través de mensajes XML enviados mediante TCP/IP, REST o Pipes (IBM 4690).

Pre-Requisitos del sistema

En el siguiente cuadro se detallan los requisitos mínimos y recomendados para la instalación del motor de promociones:

Descripción Requisito Mínimo (5 Puntos de Venta)

Memoria RAM libre (con HD) 1024 MB

JVM (Java Virtual Machine) Versión 1.8

Velocidad de procesador 4 x 2 GHz

Capacidad de disco rígido (libres) 1 GB

Sistema Operativo Según requisitos.

Instalación (Linux/Windows)

Instalación del Motor de PROMO desde el Instalador

NOTA

Se recomienda realizar un chequeo de los servicios agregados luego de la instalación de PROMO para cerciorarse de que estén iniciados y ejecutándose correctamente.Para ello, acceder a los servicios del sistema y chequear que los siguientes servicios estén corriendo: Wildfly // MongoDB // PromoSimEngine

IMPORTANTE

Los requisitos dependen del uso de funciones y carga esperada.  Entonces se requiere una estimación y estudio de cada caso para realizar un ajuste en los recursos requeridos.

Page 31: PROMO - Manual de Instalación 7

Se provee un archivo donde X.X.X es la versión del motor que se está instalando ( ). promo-gengine-installer-X.X.X.jar 6.4.0Se deberá ejecutar como administrador, en modo comando el instalador del Motor de PROMO ( )promo-gengine-installer-X.X.X.jar

Al ejecutarse el instalador aparecerá la siguiente ventana:

Presionar "Siguiente" para continuar.

Se deberán aceptar los términos y condiciones para continuar con la instalación del motor de PROMO.

Page 32: PROMO - Manual de Instalación 7

Presionar en " " para continuar.Aceptar

Luego de aceptados los términos y condiciones, se solicitara que se identifique el nombre del usuario y el e-mail de quien (empresa o persona) está realizando la instalación.

Page 33: PROMO - Manual de Instalación 7

Presionar " " para continuar.Siguiente

A continuación se deberá indicar la ruta de acceso a Java (JDK) y el directorio donde se realizara la instalación del motor de PROMO. Por default se propone " ". c:\synthesis\gengine

Se podrá indicar aquí, por medio del check "Instalar Servidor REST (Default TCP/IP)", para que se instale el motor como SERVIDOR REST sino se instalara por default en modo TCP/IP.

Importante: Verificar de No instalar el motor donde se instalo previamente el motor de simulacion de la consola  (el motor de simulación se instala por default en \synthesis\promo\engine) de ocurrir eso no funcionará correctamente.

Page 34: PROMO - Manual de Instalación 7

Presionar " " para continuar.Siguiente

En el siguiente Pop-UP se deberá indicar la URL de acceso a "Director" para futuras actualización y el código de tienda que tomara el motor A continuación se deberá indicar

Page 35: PROMO - Manual de Instalación 7

Presionar " " para continuar.Siguiente

En la siguiente pantalla que se presente, habrá que presionar el botón " " a fin de dar comienzo al proceso de instalación del motor de PROMO y sus componentes.Instalar

Page 36: PROMO - Manual de Instalación 7

Finalizada la instalación se mostrara la siguiente ventana donde se informara la correcta instalación del motor de PROMO. Se solicitara dar Clic en " " y luego en " " para terminar con el proceso. Aceptar Salir

Page 37: PROMO - Manual de Instalación 7

1. 2. 3. 4.

Terminado el proceso de instalación del motor de promociones podrá chequearse en los servicios del sistema la existencia de dos nuevos servicios correspondientes al motor de promociones y al agente Director que ya estarán ejecutándose de manera atomística, hecho que marcara la correcta instalación y puesta en funcionamiento del nuevo motor de PROMO.

Instalación de Versiones Anteriores del Motor de PROMO

Se provee un archivo g-engine-x.x.x-installer.zip donde x.x.x es la versión del motor que se está instalando. Para instalar:

Crear una carpeta donde se ejecutará el motor (Cuidado de tener permisos de lectoescritura en la misma)Descomprimir el contenido del zip en dicha carpeta.Modificar el archivo con los parámetros correctos de configuración acorde al entorno en que se estará ejecutando.conf/config.xmlEjecutar en modo comando como administrador " " en Windows o " " en Linux.tcp.bat sudo ./tcp.sh

Configuraciones Generales del Motor:

Page 38: PROMO - Manual de Instalación 7

Archivos de Configuración

CONFIG.XML

<general> <simulation>false</simulation> <compatibilityMode>false</compatibilityMode> <mapIdentifiers></mapIdentifiers> <ticketIdentifiers>store,terminal</ticketIdentifiers> <disableLoyalty>false</disableLoyalty> <disablePrices>false</disablePrices> <!--identificar único por cada instancia del motor.--> <!-- <engineId></engineId> --> <!--Nombre único por cada instancia del motor.--> <!-- <engineName></engineName> --> <promotionCacheMode>false</promotionCacheMode> <useExactLimitValue>true</useExactLimitValue> <negativeDiscount>true</negativeDiscount> <!-- Limita (en true) dentro de un mismo paso que un cupon no de mas del 100% de un producto, (descuentosMonetarios + valor del cupon > xprice) recorta el valor del cupon para que no supere el 100%--> <adjustCalculatedCoupon>false</adjustCalculatedCoupon></general>

Los parámetros de configuración de la sección General son:

Tag/Parámetro

Descripción Valor por defecto

simulation Indica si el motor opera para simulaciones desde la consola o no. Valor por defecto "False" (No simulación) false

compatibilityMode

indica si el motor opera en modo compatible con el antiguo motor (Integraciones 4690) agrupando o no los beneficios en la respuestas dadas por el motor. Por default el parámetro viene definido en "False" (No compatble) por lo que en este modo agrupara los beneficios (motor nuevo). En caso de definir el beneficio en "True", no se agruparan los beneficios (compatibilidad con antiguo motor).

false

mapIdentifiers

identificaran las carpetas por las cuales el motor irá en búsqueda del mapa para evaluar la promoción. Deberán definirse en una lista separada por comas. companyId

ticketIdentifiers

indicara por qué atributo se identificara al ticket cuando el motor opere como multiempresa. store, terminal

disableLoyalty

El valor por default de este parámetro será "false" indicando que el motor mantiene una comunicación con PROMO central para la gestión de elementos de Fidelidad. En caso de configurar en "true" este parámetro, se deshabilitara la comunicación con PROMO central, por lo que un status de Finish, commit, rollback, etc etc se evaluara como un status "sales" (método de evaluación previo a Fidelidad).

false

disablePrices El valor por default de este parámetro será "false" indicando que el motor utiliza preciadores, esto habilitara la funcionalidad de precios (desde la consola se generan listas de precios y seran distribuidos al motor) y se disponibilizara el status de prices y en caso de utlizar en los tickets items con unitPrice=0 los buscara los precios de los preciadores (listas de precios). En caso de configurar en "true" este parámetro indica que NO esta habilitada esta funcionalidad.

false

Page 39: PROMO - Manual de Instalación 7

engineId identificador único del motor. Deberá configurarse cuando se desee que el motor reporte su mapa activo a la consola de PROMO. 0

engineName Nombre único del motor.Junto con el "EnginerId" deberá configurarse cuando se desee que el motor reporte su mapa activo a la consola de PROMO.

promotionCacheMode

Activa el modo de trabajo "Cache de Promociones" del motor.  Reservado para SOLO este modo de trabajo particular.(desde v7.EP2) false

useExactLimitValue

Otorgamiento de beneficio con límites: true otorga el saldo(default), false no otorga beneficio si el apply supera el saldo true

negativeDiscount

Permite o no que los descuentos otorgados superen el valor del producto true

adjustCalculatedCoupon

Limita (cuando esta en ) dentro de un mismo paso que un cupon no de mas del 100% de un producto, ( ) recorta el valor del cupon para true descuentosMonetarios + valor del cupon > xpriceque no supere el 100% (a partir de

7.1)

false

Configuración de la operatoria (contingencia) del Motor:Prices

<prices> <!--Directorio donde se guardarán los precios a actualizar por contingencia --> <directory>prices</directory> <!--Cantidad de segundos en los que chequea si existen hay precios de contingencia-> <check>30</check></prices>

Configuración de la operatoria del Motor:OffLine

<offline><!--Directorio donde se guardarán los tickets offline--><directory>offline</directory>

<!--Cantidad de segundos en los que chequea offline--> <check>60</check></offline>

Directorio de donde tomará los mapas:

Page 40: PROMO - Manual de Instalación 7

<map> <!--Directorio desde donde el motor lee los mapas--><directory>sales</directory>

<!--Cantidad de segundos en los que chequea nuevo mapa--><check>600</check>

<!--Cantidad de dias hasta remover el archivo del mapa--><daysUntilRemoval>100</daysUntilRemoval>

<!-- remover mapas simulados --><removeSimulatedMaps>true</removeSimulatedMaps>

<!-- máximo numero de mapas simulados a mantener --><simulatedMapsMax>10</simulatedMapsMax>

<!-- máximo numero de mapas simulados para iniciar el proceso de remoción --><simulatedMapsThreshold>30</simulatedMapsThreshold>

<!-- remover mapas que sobrepasen el maximo simulatedMapsMax --><removeNonSimMaps>false</removeNonSimMaps>

</map>

Configuración de Decimales en la respuesta:

<response> <!--Decimales de redondeo de la respuesta--> <roundDecimals>2</roundDecimals> <roundCountables>3</roundCountables> <roundPoints>2</roundPoints> <!-- Metodo de redondeo de puntos: roundDown/roundMath (default) --> <roundPointsMethod>roundMath</roundPointsMethod> <!-- Solo redondear el summary del beneficio (false: default) <roundPointsTotalOnly>false</roundPointsTotalOnly></response>

Nota

Parámetro de los motores: El estatus de los motores se informa en el mismo tiempo en que se chequean los mapas. El motor que por ejemplo tiene configurados 600 segundos, cada 10 minuto vas a tener checkun estatus del motor.

Page 41: PROMO - Manual de Instalación 7

Puertos

<server> <!--Con valor true se disponibiliza el uso de https--> <useHttps>false</useHttps>

<!--El nombre del archivo que contiene el almacén de claves, especificando su ruta absoluta.--> <keyStore>./conf/keystore</keyStore>

<!--Contraseña requerida por https correspondiente a la clave del almacén de claves--> <keyStorePassword>nosotros</keyStorePassword>

<!--Con valor true se disponibiliza la restricción de recursos a determinados roles--> <useRoleAccessRestrictions>false</useRoleAccessRestrictions>

<!--Ruta donde se encuentra el archivo de definición de usuarios y roles--> <usersDefinition>./conf/engineUsers.properties</usersDefinition>

<!--Ruta donde se encuentra la carpeta que contiene al archivo de asignación de roles a recursos web.xml--> <configurationDirectory>./conf</configurationDirectory>

<!--Puerto del servidor rest--> <rest>8888</rest>

<!--Puerto del servidor socket--> <socket>3000</socket></server>

Conexión con PROMO Central

<promoCentral> <url>http://localhost:8080/promo</url> <user>sender</user> <password>mate</password> <!--Define el timeout en segundos de comunicacion con la consola central si se especifica este aplica en general y anula a los otros dos.--> <!-- timeout></timeout --> <!--Define el timeout en segundos de conneccion con la consola Central.--> <!-- connectionTimeout></connectionTimeout --> <!--Define el timeout en segundos de comunicacion con la consola Central.--> <!-- communicationTimeout></communicationTimeout --> <!-- Descomentar en el caso que la mensajeria no lo implemente y se requiere el envio de un valor fijo --> <!-- companyId></companyId --> </promoCentral>

Page 42: PROMO - Manual de Instalación 7

Extensiones (opcional):

<!--Directorio donde el motor busca el archivo entities.xml donde se configuran las extensiones para las entidades --><extensions> <directory>extensions</directory></extensions>

Datos Internos (opcional)

<!--Directorio de trabajo del cache de datos interno utilizado por el motor, en caso de no especificarse el motor usa "./data" --><cachedata> <directory>data</directory></cachedata>

Optimización de carga de mapas en motor

(a partir de Promo v7.1)

Esta mejora consiste en habilitar la utilización de mapas pre-compilados, significa que el motor, luego de procesar un mapa xml generado por consola, guardará archivos compilados de mapas, promociones e indices en el directorio indicado, para que en caso de reiniciar el motor, cargar los mapas compilados en vez de cargarlos desde el xml, lográndose con esto un mejora de tiempo sustancial en mapas grandes.

En config.xml del motor se agregó dentro del tag <map>, dos entradas para configurar:<compiled> es un flag que en 'true' habilita la utilización de mapas pre-compilados,<compiledDirectory> indica el directorio donde se almacenaran esos mapas compilados. De no indicarse el motor usará el directorio 'compiled' .

Ejemplo de la configuración:

<configuration> ... <map> ... <!--En true se almacena los mapas compilados para optimizar el tiempo de carga de mapas en caso de reinicio del motor --> <compiled>true</compiled> <!--Directorio para almacenar los mapas compilados, solo se utiliza si compiled es true--> <compiledDirectory>compiled</compiledDirectory> </map>

En modo simulación esta funcionalidad no se utiliza ( el motor no la toma en cuenta en caso que haya sido configurada ) ya que lo esperado es que los mapas sean renovados frecuentemente para las simulaciones.

Page 43: PROMO - Manual de Instalación 7

LOGGING.PROPERTIES

En este archivo podrán configurarse los niveles de logueo de la consola, siendo el nivel SEVERE el nivel por default y ALL el nivel de logueo para debug.

# Agregar -Djava.util.logging.config.file=logging.properties como parametro a la JVM _# http://www.javapractices.com/topic/TopicAction.do?Id=143_handlers = java.util.logging.ConsoleHandler java.util.logging.FileHandler .level = SEVERE # File Logging java.util.logging.FileHandler.pattern = ./logs/gengine.log java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter java.util.logging.FileHandler.level = SEVERE #java.util.logging.FileHandler.limit = 10000000 #java.util.logging.FileHandler.count = 10

 # Console Logging java.util.logging.ConsoleHandler.level = SEVERE

Motor Multitienda

El Motor de promociones cuenta con la posibilidad de que levante y lea mapas de diferentes directorios. Cada directorio se corresponderá con una tienda distinta y en cada directorio podrá listar un conjunto de mapas.El modo Multitienda se activa por configuración, encontrándose desactivado por default. La mensajería asociada al motor no se verá alterada por la activación del modo Multitienda.

Configuración de Multitienda

Para que el motor de promociones funcione en modo Multitienda, deberá de editarse el archivo y editar el siguiente tag:"…\conf\Config.xml"

<general> …… <mapIdentifiers></mapIdentifiers> <ticketIdentifiers>store,terminal</ticketIdentifiers> …… </general>

Donde en se identificaran las carpetas por las cuales el motor irá en búsqueda del mapa para evaluar la promoción. Deberán definirse en una lista separada por comas. <mapIdentifiers></ mapIdentifiers>En caso de tener elementos, en deberá quedar solamente definido "terminal" ya que al ticket lo va a identificar siempre por la concatenación de y <ticketIdentifiers></ticketIdentifiers> <mapIdentifiers> <ticketIdentifiers>Para que los cambios sean tomados correctamente se deberán guardar los cambios y reiniciar el motor de promociones.

Page 44: PROMO - Manual de Instalación 7

SEGURIDAD

CONFIGURACION HTTPS

El motor de Promo puede ser configurado para trabajar en modo HTTPS.

Para una comprensión general de este modo de trabajo puede referirse a  ( )  pero en definitiva un resumen del mismo es:http://en.tldp.org/HOWTO/SSL-Certificates-HOWTO/x64.html

     1.- El cliente hace un pedido al servidor usando el protocolo https://

     2.- El servidor le envía su certificado y clave pública.

     3.- El cliente verifica que el certificado sea emitido por una entidad de confianza, que esté vigente, y que corresponda al servidor contactado.

     4.- Si todo es correcto, el cliente usa la clave pública obtenida del servidor para encriptar una clave simétrica aleatoria y el mensaje http cifrado con esta misma clave aleatoria para luego enviarla al servidor.

     5.- El servidor desencripta la clave simétrica usando su clave privada (porque fué cifrada por el cliente con su clave pública) y utiliza esta clave para desencriptar la url y los datos http.

     6.- El servidor genera la respuesta http response, y luego encripta todo con la clave simétrica que obtuvo anteriormente.

     7.- El cliente desencripta los datos http usando la misma clave simétrica y continúa operando con http como siempre.

De la misma forma que para la consola, el motor necesita un almacén de claves (keystore) que contiene las claves pública y privada del servidor, en conjunto con un certificado).

Para configurar esto se poseen 3 nuevos parametros en el archivo config.xml:

Tag Descripción

useHttps true indica que el motor debe trabajar en este modo.

keyStore El nombre del archivo que contiene el almacén de claves, especificando su ruta absoluta

keyStorePassword La contraseña del almacén de claves en texto plano.

Un ejemplo de configuración sería:

1. 2.

Atención

Desde v6.5.5Esta funcionalidad SOLO aplica a Motor como servidor REST.

Page 45: PROMO - Manual de Instalación 7

1.

2.

3.

4.

Ejemplo config.xml

<server> <useHttps>true</useHttps> <keyStore>c:\promo\keystore.dat</keyStore> <keyStorePassword>Promo2020</keyStorePassword> <rest>8888</rest> <socket>3000</socket></server>

  

Para generar el almacén de claves que incluye el par de claves y el certificado se deben seguir los siguientes pasos:

En este ejemplo vamos a generar un almacén de claves de nombre para un alias de nombre con validez del certificado de 365 días y los algoritmos detallados.  Pedirá información que llevará el keystore Jettycertificado, al final darle si para terminar. La clave que pide al inicio es una nueva clave y debe tenerse en cuenta ya que se configurará la misma en el motor.  Según la página esto funciona sólo para pruebas porque el certificado no es de confianza para el cliente (navegador por ej.).

keytool -keystore keystore.dat -alias jetty -genkey -keyalg RSA -sigalg SHA256withRSA -validity 365   

Se puede revisar el almacén de claves con;

keytool -list -keystore keystore.dat -storetype jks -storepass THEPASSWORD -v

Se genera el archivo csr (solicitud de firma del certificado / certificate signing request - CSR).

keytool -certreq -alias jetty -keystore keystore -file jetty.csr

En el config.xml del motor ingresar los siguientes valores:

 <useHttps>true</useHttps>

 <keyStore>C:\keystore.dat</keyStore>

 <keyStorePassword>THEPASSWORD</keyStorePassword>

Autenticacion por usuarios y roles

Page 46: PROMO - Manual de Instalación 7

El motor de Promo en modo REST, acepta autenticación de conexiones por medio de Usuarios y claves.Para habilitar la autenticación en el motor por medio de usuario y password, se debe activar la siguiente configuracion en el archivo config.xml:

Para configurar esto se poseen nuevos parametros en el archivo config.xml:

Tag Descripción

useRoleAccessRestrictions true indica que el motor debe trabajar en este modo.

usersDefinition El nombre del archivo que contiene el almacén de usuarios y claves, especificando su ruta absoluta

configurationDirectory La ruta completa donde se encuentra el archivo web.xml de configuración de seguridad.  Si el archivo no existe se tomarán los valores por defecto con un unico usuario y rol.

Un ejemplo de configuración sería:

Ejemplo config.xml

<server> <useRoleAccessRestrictions>false</useRoleAccessRestrictions> <usersDefinition>./conf/engineUsers.properties</usersDefinition> <configurationDirectory>./conf</configurationDirectory></server>

Archivo  de Usuarios (engineUsers.properties)

El formato del archivo de usuarios cumple el siguiente patrón:

<nombre de usuario>:<espacio>MD5:<clave como hash md5>,<rol1>,<rol2>,<rol n>

Entonces imaginemos configurar 3 usuarios: admin, sender y user.  La clave codificada de los mismos (MD5) se puede obtener desde: http://www.md5.cz/

1. 2.

Atención

Desde v6.5.5Esta funcionalidad SOLO aplica a Motor como servidor REST.

Atención

Nota de seguridad: Tener en cuenta que al ser base64 la codificación de usuario y contraseña, las mismas pueden ser reconvertidas a string sin problemas, por lo tanto debería mejor considerarse utilizar esta funcionalidad en conjunto con https.

Page 47: PROMO - Manual de Instalación 7

El archivo de usuarios quedaría conformado como:

Ejemplo config.xml

admin: MD5:4f4ea4182f8cbb5730694fb4866804ae,role-admin,role-sendersender: MD5:4f4ea4182f8cbb5730694fb4866804ae,role-senderuser: MD5:4f4ea4182f8cbb5730694fb4866804ae,role-user,role-min

Tomemos el usuario admin, con clave promo2020 y roles admin y sender.

Roles  de Usuarios (engineUsers.properties)

Los roles son declarados en el archivo web.xml y siguen la siguiente estructura:

Ejemplo config.xml

<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name>Promo engine</display-name> <login-config> <auth-method>BASIC</auth-method> <realm-name>promoEngine</realm-name> </login-config> <security-role> <role-name>role-admin</role-name> </security-role> <security-role> <role-name>role-sender</role-name> </security-role> <security-role> <role-name>role-user</role-name> </security-role> <security-constraint> <web-resource-collection> <web-resource-name>Engine</web-resource-name> <url-pattern>/engine/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>role-admin</role-name> <role-name>role-sender</role-name> </auth-constraint> </security-constraint></web-app>

Page 48: PROMO - Manual de Instalación 7

Mantenimiento - Motor

Depuración de archivos de log

Como se mencionó anteriormente, los archivos donde se registran los eventos que suceden en el motor de promociones son almacenados en uno o varios archivos de log. Estos archivos pueden crecer en tamaño dentro del disco rígido, quitando espacio que el usuario puede utilizar para otros fines. Por lo tanto es posible que se requiera eliminar algunos de estos archivos para liberar espacio. Para eliminar los archivos de log será necesario consultar el archivo de configuración de log ( ). En él estarán especificadas las políticas de log, los archivos y los directorios destinados para este ../conf/logging.propertieslfin.

Errores de inicialización

Los siguientes son errores que pueden producirse al iniciar el motor de promociones:

java.io.FileNotFoundException: \log\669comm.log (El sistema no puede hallar la ruta especificada)Indica un error en la configuración del archivo de log. El error indica que no puede encontrar la ruta o el archivo '\log\669.comm.log'. Para solucionarlo, se recomienda revisar el archivo de configuración config/log4j.xml.

Exception in thread "main" java.lang.NoClassDefFoundError: …Este error ocurre cuando hay errores en el classpath.

java.net.BindException: Address in use: JVM_BindEste error se produce cuando el puerto de comunicaciones que utilizará el Motor de promociones está reservado o siendo utilizado por otra aplicación. Sólo puede suceder en una comunicación TCP/IP. Para solucionarlo se recomienda determinar cuál es la aplicación que utiliza el puerto y cerrarla o configurarla para que utilice otro, o bien modificar la configuración del Motor de promociones para que establezca sus comunicaciones por un puerto diferente (a través del archivo de configuración, propiedad ).promoCommunication.port

Errores de procesamiento

Durante su funcionamiento, el motor de promociones podrá informar errores similares a los enunciados a continuación:

[promo.MIDDLEWARE] PROMOENGINE VALIDATION ERROR: [P01] combo-component: invalid use of order-criteria with this setIndica que se ha producido un error en la validación de algún mapa que está intentando cargar. El valor que se encuentra entre corchetes indica en qué promoción se ha producido el error. De no existir los corchetes significa que el error se produjo en la definición de la convivencia de las promociones que se encuentra en el mapa. El texto que sigue a los corchetes describe el tipo de error producido. Asimismo, anterior a esta línea de log se encuentra que mapa se intentó cargar.

[promo.MIDDLEWARE.MESSAGING] Message not accepted: Parser exception parsing input message: Content is not allowed in prolog.Indica que se recibió una petición o ticket que no respeta el formato definido para la mensajería. En estos casos el motor responderá a la terminal que envió el requerimiento un mensaje de respuesta con un código de error (ver " ").Manual de mensajería – Promo

[promo.MIDDLEWARE] There is no PromoEngine available to process this request.Este mensaje se emite cuando el Motor de promociones recibe una petición que indica la utilización de una versión de mapa inexistente. Al igual que en el caso anterior, al no poder resolver la petición, se responderá con un mensaje que especificará un código de error (ver " ").Manual de referencia técnica – API de Promo

Page 49: PROMO - Manual de Instalación 7

[promo.MIDDLEWARE.MESSAGING]- WARNING: INVALID TICKET: cvc-datatype-valid.1.2.1: 's250.0' is not a valid value for 'double'.Indica que se ha recibido una petición o ticket que posee un valor o tipo de dato inválido. En este caso, el motor dará un mensaje de respuesta con un código de error (ver " ").Manual de mensajería – Promo

Documentación relacionada

PROMO - Manual de Instalación 7.0PROMO - Manual de Usuario 7.0 - EspañolPROMO - Manual de Integración 7.0 - MotorPROMO - Manual de Integração 7.0 - MotorPROMO - Manual de Integración 7.0 - ServiciosPROMO - Manual de Integração 7.0 - ServiçosPROMO - Manual de Integración 7.0 - Colas de MensajesPROMO - Manual de Usuario 7.0 - EP2 (Pr)PROMO - Manual de Usuario Principal 7.0Anexos

Información de ConfiguraciónExisten parámetros de configuración que pueden ser modificados para personalizar el comportamiento de PROMO. Algunos de estos parámetros solo estarán disponibles en la consola de PROMO Principal y otros podrán ser editados desde la consola de PROMO de cada compañía.Estos parámetros se encuentran en la Consola de PROMO, " y son:Menú " " >> "Administración Información de Configuración

Configuraciones disponibles para el :Usuario Principal

Módulo Clave Valor Descripción

1 Promo operative.system windows Sistema operativo

2 Promo soap.url http://10.4.13.108:8280/bridge/services/bridgeCoreSOAP?wsdl

Dirección de web service de bridge.

3 Negocio lang es_AR (Argentina) General: idioma de la aplicación (etiquetas)

4 Negocio backupDirectory C:/synthesis/promo/backup General: de backup

5 Negocio mongoDBDirectory C:/synthesis/promo/mdb/bin General: directorio base de datos

6 Negocio mongoDBHostname localhost Host de la base de datos.  En caso de poseer una configuracion en replicaset el formtao de configuracion es: "replicaName/node1:port1,node2:port2"

Se destaca que deberá de definirse el campo     cuando se utilice la función de Backup en ClustersmongoDBPort vacío

7 Negocio mongoDBPort 27017 Puerto de la base de datos.  En caso de replicaset este parametro es ignorado.

8 General auditDateCleaner 30 Eliminar registros de las tablas de importación.

9 General importReceiptDateCleaner

30 Eliminar registros de las tablas de importación.

10 General ticketGeneratorSeconds 2 DEMO: cantidad de segundos de generación de ticket para demos

Page 50: PROMO - Manual de Instalación 7

11 Negocio charsMaximumAlphabetical 

20 Cantidad máxima de caracteres alfabéticos

12 Negocio charsMaximumNumerical  20 Cantidad máxima de caracteres numéricos

13 Negocio charsMaximumQuantity  20 Cantidad máxima de caracteres totales

14 Negocio charsMaximumSpecial  20 Cantidad máxima de caracteres especiales

15 Negocio charsMinimumQuantity  7 Cantidad mínima de caracteres totales

16 1Negocio charsMinimumUser  3 Cantidad minima de caracteres en el nombre de usuario

17 Negocio maximumLoginFailedCount 

3 Cantidad máxima de reintentos de login fallidos sucesivos

18 Negocio numberQuantity  1 Cantidad mínima de caracteres numéricos

19 Negocio passwordExpirationDays  30 Días de expiración de la contraseña del usuario

20 Negocio specialCharsQuantity  0 Cantidad mínima de caracteres especiales

21 Negocio stringQuantity  1 Cantidad mínima de caracteres alfabéticos

22 Negocio userBlockDays  90 Bloqueo de usuario - días de inactividad

23 Negocio userLockTime  30 Periodo de bloqueo de la cuenta de usuario (en minutos)

24 Promo engineSalesPath C:/synthesis/promo/engine/sales/ Directorio de Mapas del Motor

Configuraciones disponibles para el :Usuario Admin. de cada compañía

Modulo Clave Valor Descripción

Cupones barcodePath C:/synthesis/promo/images/barcode/ Directorio imagenes de codigos de barra

Cupones barcodeUrl http://localhost:8080/promo/assets/barcode/ Url imagenes de codigos de barra

Promo fileDirectory C:/synthesis/promo/catalogs/napse\ Importación de catálogo: directorio donde estarán los archivos

Negocio moneySymbol $ Símbolo de moneda

Tarjetas de fidelidad

max.qty 999 Cantidad máxima de tarjetas a generar por cada operación de alta masiva

Tarjetas de fidelidad

isEditableAfterCardsGeneration false Permitir la edición del tipo de tarjeta luego de haber generado una tarjeta activa

Tarjetas de fidelidad

prefix.active false Utilizar prefijo númerico incremental para tipos de tarjeta

Cupones CODE128 PPPSSSTTTnnnnnnnnnnnnnnnnnn Formato de código de barras CODE128

Cupones EAN13 PPPSSSTTTnnnc Formato de código de barras EAN13

Cupones UPCA PPPSSSTTTnnc Formato de código de barras UPCA

Cupones max.qty 999 Cantidad maxima de generación Masiva de Cupones por transacción

Cupones prefix.active true Utilizar prefijo númerico incremental para tipos de cupón

Page 51: PROMO - Manual de Instalación 7

Cupones amountFormat %.02f Formato en el que se imprimen los montos de los cupones

Promo applicationMethod resume Promociones: valor por defecto en el método de aplicación

Promo divisionMethod proportional Promociones: valor por defecto en el método de división

Promo divisionPrice benefited-price Promociones: valor por defecto el tipo de precio beneficiado

Promo fileList.txt.Separator , Importación de catálogo: separador

Promo fileList.xls.ColStart 0 Importación de catálogo: columna de comienzo de la importación de catálogo

Promo fileList.xls.Direction vertical Importación de catálogo: forma de importación

Promo fileList.xls.RowStart 0 Importación de catálogo: fila de comienzo de la importación de catálogo

Promo separator | Importación de catálogo: separador de columnas

Promo terminatedOnError true Termina la importación de catalogo, si al menos uno fallo. Si es false, no termina e informa los catalogos fallidos

Promo updateSize 100 Importación de catálogo: tamaño de subida

Negocio charsMaximumAlphabetical  20 Cantidad máxima de caracteres alfabéticos

Negocio charsMaximumNumerical  20 Cantidad máxima de caracteres numéricos

Negocio charsMaximumQuantity  20 Cantidad máxima de caracteres totales

Negocio charsMaximumSpecial  20 Cantidad máxima de caracteres especiales

Negocio charsMinimumQuantity  7 Cantidad mínima de caracteres totales

Negocio charsMinimumUser  3 Cantidad minima de caracteres en el nombre de usuario

Negocio maximumLoginFailedCount  3 Cantidad máxima de reintentos de login fallidos sucesivos

Negocio numberQuantity  1 Cantidad mínima de caracteres numéricos

Negocio passwordExpirationDays  30 Días de expiración de la contraseña del usuario

Negocio specialCharsQuantity  0 Cantidad mínima de caracteres especiales

Negocio stringQuantity  1 Cantidad mínima de caracteres alfabéticos

Negocio userBlockDays  90 Bloqueo de usuario - días de inactividad

Negocio userLockTime  30 Periodo de bloqueo de la cuenta de usuario (en minutos)

Promo distributionThreadPool 10 Cantidad de hilos creados para la distribución simultánea

Promo path C:/synthesis/promo/import/ Directorio para la importacion de Mapas de Promociones.

Promo benefit.active false Utilizar campo numérico incremental para beneficios

Promo promotion.code.active false Utilizar campo numérico incremental para promociones

Cupones default.from [email protected] Email por defecto con el que se enviaran los correos

Cupones default.insertImages false Indica si acepta o no barcodes

Cupones default.subject Promo Test Mail Asunto por default

Cupones host smtp.gmail.com Host del proveedor de email

Cupones password ************** Contraseña de la cuenta de email

Page 52: PROMO - Manual de Instalación 7

Cupones port Puerto de conexión

Cupones smtp.auth true Habilitar Auth SMTP

Cupones smtp.port 587 Puerto SMTP

Cupones smtp.socketFactory.class javax.net.ssl.SSLSocketFactory nombre de la clase SSLSocketFactory

Cupones smtp.socketFactory.fallback false Fallback de socketFactory

Cupones smtp.socketFactory.port 465 Puerto SMTP de socketFactory

Cupones smtp.starttls.enable true Habilitar Start TLS

Cupones username [email protected] Usuario o nombre de la cuenta de email

Promo use.item.catalog 1 Mapas: algoritmo de cálculo de colisiones

Promo cleanEngineStatusHistory 7 Tiempo en días que la consola mantendrá el historial de estados del motor

Promo deployedEditable.enabled false Habilita la edición de promoción con el estado Deployed.

Promo promotion.enginestatus.communication 600 Tiempo que transcurre desde el último informe de estatus del motor o consola, para considerarlo offline. Si en ese tiempo no informó se lo considera offline.

Promo promotion.images.height 250 Promociones: alto default de las imagenes

Promo promotion.images.path C:/synthesis/promo/images/promotion/ Promociones: directorio para almacenamiento de imágenes

Promo promotion.images.width 250 Promociones: ancho default de las imagenes

Promo reportParticipants false Promociones: valor global que determina si la promoción informa participantes

Promo reportParticipantsVisible true Determina si se visualiza o no, la opción reportar participantes

Promo method.of.payment NOTHING=No calcular promociones por medio de pago Promocion Codificada: NOTHING, ON_ITEMS_PAID, ON_PAYMENT_MADE

Promo method.of.payment.onItemsPaid.class com.synthesis.promo.engine.partialPayment.hardcoded.promotion.PartialPaymentsGSPromotion

Promocion Codificada: nombre de la promoción por medio de pago basada en ítems.

Promo method.of.payment.onItemsPaid.name Promociones basadas en items Promocion Codificada: nombre de la promoción por medio de pago basada en ítems.

Promo method.of.payment.onItemsPaid.tenderMethodPropertyKey

promo.configuration.tenderMethod.itemMethod Promocion Codificada: nombre de la promoción por medio de pago basada en ítems.

Promo method.of.payment.onPaymentMade.class PartialPaymentsSSPromotion Promocion Codificada: nombre de la promoción por medio de pago basada en ítems.

Promo method.of.payment.onPaymentMade.name Promociones basadas en pagos Promocion Codificada: nombre de la promoción por medio de pago basada en ítems.

Promo method.of.payment.onPaymentMade.tenderMethodPropertyKey

promo.configuration.tenderMethod.paymentMethod Promocion Codificada: nombre de la promoción por medio de pago basada en ítems.

Promo ldapAuthentication false Determina si se autentica contra un Directory Service

Promo ldapAuthentication.autheticationMode DIGEST-MD5 Es el modo de seguridad que se autentica, usar "DIGEST-MD5" como valor default dado que este modo encripta la información contra el Directory Service.

Promo ldapAuthentication.urlServer URL del server contra el que se autentica.

Promo testEnginePORT 3001 Simulación: puerto en el que corre el motor para simulación

Promo testEngineRetries 2 Simulación: reintentos de conexión al motor

Promo testEngineSalesPath C:/synthesis/promo/engine/sales/ Simulación: ruta del motor

Promo testEngineTimeout 8000 Simulación: timeout de conexión al motor

Page 53: PROMO - Manual de Instalación 7

Redes sociales

facebook.appId 1068803576479010 Id de la aplicación de facebook

Redes sociales

facebook.permissions [publish_actions, manage_pages] Permisos de la aplicación de facebook

Redes sociales

facebook.secret dfa5ffe6aa6306fc49472dbcba3c16a9 Clave secreta de la aplicación de facebook

Redes sociales

twitter.accessToken 2848331890-D2geAfGVL9u2bD6TrD1LxH5fUsXlBnHLa3FOziK Token de acceso a twitter

Redes sociales

twitter.accessTokenSecret NHd6JbcoLaBK5QEfrKgmOaQwwxmbwlEtOYlQni3Fx6H3y Token secreto de acceso a twitter

Redes sociales

twitter.consumerKey HTPKOHdatasoDsm2Ud7ULnUapAKFXoC Clave consumer key de twitter

Redes sociales

twitter.consumerSecret X1plqdQWK0nRCGz6KFxm37IZTzp4O7w9BjLSspIr4mYWLZsrOy Clave consumer secret de twitter

Tarjetas de fidelidad

continueOnError true Permitir continuar la importación de catálogo de tarjetas ante un error

Tarjetas de fidelidad

insertionOption INSERT_OR_UPDATE Describe la opción de inserción para la importación del catálogo de tarjetas

Transacciones cleanTransactions 90 Cantidad de días que permanecerán los registros de transacciones en la base de datos

Lista de precios

priceList.distribution.items.batch.size 1000 Cantidad de Precios a enviar al motor desde la consola en la distribución de precios (por comunicacion).

Lista de precios

priceList.job.cleanPriceListSchedule.time 30 Cantidad de días a mantener los items de la lista de precios futuros procesados

Lista de precios

priceList.lockForUpate 15 Minutos para poder desbloquear Lista cero en el proceso rest

Lista de precios

priceList.mongo.bulk.insertOrUpdate 200 Cantidad de registros a insertar por lote en el proceso rest

Podrán existir cambios correspondientes a:

actualización de la consola de administración (de existir alguna actualización se entregará la correspondiente documentación y la forma de instalarla),depuración de backups de BD.

Depuración de archivos de backup de Base de datos

La aplicación registra un backup automático diario de la base de datos MongoDB. Es por ello que es necesario realizar un cierto mantenimiento, consistente en la depuración de los mismos a fin de que la periódicamentecarpeta de backup no ocupe demasiado en disco.

NOTA

Tener en cuenta que para realizar el mantenimiento se deberá detener la aplicación, realizar los cambios y luego volver a iniciarla.

Page 54: PROMO - Manual de Instalación 7

Alta de cliente durante la transacción

A partir de Promo 7.0.2 -

Para que el alta de clientes pueda efectuarse al momento de procesarse una transacción, deberá de habilitarse en el archivo de configuraciones de la Consola de Promo (“ ”) el siguiente atributo:promoplus.properties

 # Habilita el alta de clientes on the fly

promo.allowNonExistingCustomers = true

Una vez actualizado, deberá de reiniciarse el Wildfly para que los cambios sean tomados correctamente.

Los clientes serán creados utilizando el estado " " en el caso de enviarse los datos mínimos y al mismo tiempo Promo detecte que el cliente no existe.  Los datos mínimos mencionados son (marcados en loyaltyValidationRojo): 

<customer-add seq="1"               id="10090504" identifier="10090504" type="test" name="pepe" lastName="rodrigues" identifierType="cpf" email="[email protected]" />

<?xml version="1.0" encoding="UTF-8"?><message companyId="napse" store="1" terminal="1" date-time="2020-11-03 11:11:22" init-tck="true" messageId="1" void-trx="false" response="true" status="loyaltyValidation" evaluate="true" map-version="2" tckpath="Y" suggest="true"><customer-add seq="1" id="47001517" identifier="47001517" type="test" name="bruno" lastName="Lopez" identifierType="cpf" email="[email protected]" /></message>

Nota: Para mas informacion ver "Manual de Integracion 7.0 - Motor" - LoyaltyValidation.

Enmascarar Contraseña de DB

La clave enmascarada de base de datos se genera mediante la promo-crypto-tool que sera provista.

El programa toma como ingreso a la clave a encriptar y devuelve la clave encriptada que se debe situar en el archivo en una entrada llamada (por ej. grails.promoplus.properties grails.mongodb.encryptedPasswordmongodb.encriptedPassword=lYYBAfxLR40=).

En caso de utilizar grails.mongodb.encryptedPassword se debe considerar comentar o eliminar la anterior grails.mongodb.password ya que en caso de existir ambas siempre utilizará grails.mongodb.password. En caso de que el archivo promoplus.properties no exista, se tomará, como valor por defecto, a v9vbhV.

Para encriptar una clave se debe utilizar promo-crypto-tool de la siguiente forma en una consola: 

java -jar <nombre del jar> <contraseña a encriptar>, por ej java -jar promo-crypto-tool-1.0.0.jar abcdefg

o bien

Page 55: PROMO - Manual de Instalación 7

java -jar <nombre del jar> y al ejecutarlo, de modo interactivo, solicitará el ingreso de la contraseña.

En ambos casos la contraseña encriptada se obtendrá por pantalla.

Al momento de levantar el servidor, se hará uso de Datasource.groovy que mantiene el llamado a assignMongodbPassword() el cual a su vez llama al desencriptador para obtener la contraseña para asignársela a  .grailsmongodb.password.

Configuración Atributos con espacios en Condiciones Simples

En Promo 7 por default no se puede ingresar en Condiciones Simples atributos con espacios, al ingresar el espacio toma como completo el nombre del atributo ingresado, como cuando se presiona la barra espaciadora:

NOTA

Se debe considerar la limitación del algoritmo tripledes, el cual acepta sólo caracteres us-ascii como entrada del encriptador. Utilizar caracteres diferentes genera contraseñas encriptadas inválidas.

NOTA 2

Se asume que si existe, en el archivo promoplus/promoconfig.properties, una contraseña no encriptada   no debe existir la entrada de contraseña encriptada (grails.mongodb.password) (grails.mongodb. y viceversa. La entrada no deseada se puede eliminar o comentar.encryptedPassword)

Page 56: PROMO - Manual de Instalación 7

Por configuración se puede cambiar y permitirá ingresar espacios en blanco en los atributos ingresados. Para eso debe editar el archivo  y agregar la siguiente línea:promoplus.properties

promo.delimiters = no-space 

Con esta configuración para que interprete que se terminó de escribir el elemento debe presionar la tecla tab.

Page 57: PROMO - Manual de Instalación 7

Si ingresa el parámetro: promo.delimiters = space funciona como viene por default, que no permite ingresar espacios dentro del texto ingresado en los atributos.

Configuración de Redes Sociales

Para trabajar con redes sociales PROMO posee una serie de opciones de configuración que se describen a continuación. También es importante aclarar que los servicios de redes sociales están en constante evolución y cambio por lo cual aquí se hace referencia al sitio del servicio en cuestión para obtener la información actualizada al respecto.

Configurar Facebook

Desde la consola de cada compañía, accediendo con el usuario administrador, y accediendo a " se encontraran las siguientes configuraciones que serán necesarias completar Administración Información de configuración"para la correcta publicación en la red social.

Page 58: PROMO - Manual de Instalación 7

Generación de Aplicación en Facebook

Para poder utilizar la publicación en Facebook se deberá ingresar a , darse de alta como y agregar una nueva aplicación siguiendo los pasos https://developers.facebook.com/ desarrollador de Aplicaciones Facebookindicados en la página. Al crear una aplicación para Facebook, se comienza en estado de desarrollo y para poder realizar publicaciones hay que dar los permisos de " " al usuario de FB que realizara las publicaciones.Administrador

Por otra parte, si se quiere compartir o que otro usuario pueda realizar publicaciones, es necesario agregarlo al grupo de contactos (amigos) y darle permisos de " ".Administrador

Al acceder a la URL indicada más arriba, se accederá a la sección de " " de Facebook.Facebook for Developers

Se deberá dar clic en "Mis Apps".

Una vez allí, habrá que dar clic en el botón verde de " ". Crear app

Se presentara el siguiente popUp donde se deberá seleccionar el tipo de app que se desea crear. En este caso, seleccionaremos " ", y se deberá presionar " ".Negocio Continuar

Page 59: PROMO - Manual de Instalación 7
Page 60: PROMO - Manual de Instalación 7

En el siguiente popUp se deberán ingresar los datos solicitados para dar nombre a la app que se esta creando y presionar el botón " "Crear app

Page 61: PROMO - Manual de Instalación 7
Page 62: PROMO - Manual de Instalación 7

Una vez creada la app se mostrara la siguiente pantalla, desde donde podrá accederse, desde la opción " " >> " ", a los datos de identificación de la aplicación recientemente creada.Configuración Básica

Los datos a considerar y completar en esta sección serán:

Identificador de la app: Sera requerido en Promo para poder configurar los datos de conexión a la app de Facebook (Los datos mostrados en las imágenes son de carácter ilustrativo y no son validos para la )configuracion de ninguna app

Clave secreta de la app: Sera requerido en Promo para poder configurar los datos de conexión a la app de Facebook. La clave se mostrará enmascarada y se solicitara la clave de usuario de FB para mostrarla.Nombre para mostrar: Sera el nombre de al app que se mostrara a los usuarios de FB.Dominio de la app: Deberá indicarse el dominio donde se encuentra Promo.Correo electrónico de contacto: Deberá indicarse el mail de contacto para la app.URL de la Política de privacidad: Deberá indicarse la política de privacidad de la compañía que desea publicar en FB desde Promo.

Sera necesario tener una de Facebook dada de alta y asociada a la cuenta de usuario de Facebook para poder realizar las publicaciones en esta pagina.pagina

Desde el perfil de usuario con el que se haya generado la app de Facebook, se deberá dar clic " " que se encuentra a la izquierda de la pagina.Paginas

Nota

Los datos presentes en esta imagen son solo de carácter ilustrativo y deberán ser reemplazados por las credenciales adquiridas con los usuarios de desarrollo de cada aplicación.

Page 63: PROMO - Manual de Instalación 7

Se presentara la siguiente pagina, donde se deberá dar clic en " "Crear nueva pagina

Page 64: PROMO - Manual de Instalación 7

Al presionar en " ", se mostrará la siguiente pantalla, donde deberá de completarse la información solicitada en el margen izquierdo.Crear nueva pagina

Una vez generada la pagina e ingresados los datos de configuracion aportados por la aplicación generada, se podrá proceder a la publicación de las promociones en la red social. (ver - "Manual de usuario Promo 7 Distribuci">> " ")ón Redes Sociales

Page 65: PROMO - Manual de Instalación 7

NOTA

 Se deberá ser administrador tanto de la pagina como de la aplicación generada en Facebook para poder realizar las publicaciones desde PROMO.

IMPORTANTE

Https obligatorio para la publicacion en Facebbok

Facebook sólo se integra con sistemas que funcionen con https. Promo tendrá que tener configurado su wildfly con https

Para la cunfiguracion de wildfly con https sera necesario editar el archivo " " ubicado enstandalone.xml ...\synthesis\promo\appserver\standalone\configuration

Alli sera requerido agregar los siguientes tags en:

<security-realm name="ApplicationRealm"/>

Para Promo sobre Wildfly 9

<security-realm name="ApplicationRealm"> <server-identities> <ssl> <keystore path="server.keystore" relative-to="jboss.server.config.dir" keystore-password="Promo2020" alias="jbossWildFly" key-password="Promo2020" /> </ssl>...</server-identities>

Page 66: PROMO - Manual de Instalación 7

Para Promo sobre Wildfly 12

<security-realm name="ApplicationRealm"> <server-identities> <ssl> <keystore path="server.keystore" relative-to="jboss.server.config.dir" keystore-password="Promo2020" alias="jbossWildFly" key-password="Promo2020" generate-self-signed-certificate-host="localhost"/> </ssl>...</server-identities>

<server name="default-server"/>

<https-listener name="https" socket-binding="https" security-realm="ApplicationRealm" enable-http2="true"/>

Page 67: PROMO - Manual de Instalación 7

Configurar Twitter

Desde la consola de cada compañía, accediendo con el usuario , y accediendo a   se encontraran las configuraciones que serán necesarias completar para la administrador Administración >> Información de configuracióncorrecta publicación en la red social.

También sera necesario generar y colocar el archivo "server.keystore" en el directorio ...\synthesis\promo\appserver\standalone\configuration. ( Como son claves de encriptación, tienen que ser generadas dentro del ambiente de instalación. Desde Napse se utilizó la herramienta de pruebas "keytool" de Java para la generación del mismo)

Una vez guardados los cambios en el standalone.xml y colocado el archivo "server.keystore.txt" en el directorio indicado, deberá de reiniciarse el wildfly para que los cambios sean tomados correctamente.

Page 68: PROMO - Manual de Instalación 7

Generación de perfil en Twitter

Deberá accederse a la URL  y presentara la siguiente pantalla:https://developer.twitter.com/

Deberá darse clic en el botón correspondiente al usuario logueado en Twitter,  se desplegara un menú y se dará clic en "Apps"

Se presentara la siguiente pantalla y debera darse clic en "Create an app"

Page 69: PROMO - Manual de Instalación 7

Sera necesario completar los campos con los datos solicitados para poder crear la aplicación en base a las políticas de seguridad de Twitter.

Completos todos los campos, dar clic en "Create" y se mostraran las configuraciones disponibles para la nueva aplicación recientemente generada:

Para obtener los Ids y Tokens deberá darse clic en la solapa "Keys and Tokens" donde se visualizaran los datos necesarios para configurar correctamente los permisos de acceso desde Promo.

Page 70: PROMO - Manual de Instalación 7

Una vez ingresados los datos de configuracion aportados por la aplicación generada, se podrá proceder a la publicación de las promociones en la red social. (ver   - " ">> "Manual de usuario Promo 7 Distribución Redes ")Sociales

Validar CVV solo cuando se realiza un consumo en una Tarjeta de Fidelidad

(a partir de Promo 6.5)

Se disponibiliza la posibilidad de poder indicar por configuracion que el CVV de una tarjeta de Fidelidad solo sea validado cuando se realiza un consumo de saldos en ella.

La tarjeta debe de tener activa la opción de CVV requerido en su tipo de tarjeta.

Para habilitar esta opción deberá definirse en el archivo " " el parametropromoconfig.properties  promo.general.cvvOnlyForConsume = true

IMPORTANTE

No podrán subirse a las redes sociales imágenes con tamaños motor a 1 MB.

Page 71: PROMO - Manual de Instalación 7

Integración con Syslog/QRADAR

La implementación del envío de eventos a QRadar se apoya en el sistema de logueo log4j utilizado por Promo, agregando un appender específico para syslog "SysLogAppender" disponible en el paquete log4j, y el desarrollo de un clase que presta servicio a tal fin denominada "SysLogService" la cual formatea los mensages en otra clase "SysLogMessageFactory".

Para habilitar el envío a QRadar, se debe editar el archivo de configuracion de logueo "log4j.xml" insertando las siguientes entradas antes del final:

<appender name="syslogappender" class="org.apache.log4j.net.SyslogAppender"> <param name="syslogHost" value="myserver:myport"/> <param name="facilityPrinting" value="false"/> <param name="facility" value="AUTHPRIV"/> <param name="header" value="false"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{yyyy-MM-dd'T'HH:mm:ss.SXXX} %m%n"/> </layout> </appender> <logger name="sts.console.audit.SysLogService" additivity="false"> <level value="info"/> <appender-ref ref="syslogappender"/> </logger>

</log4j:configuration>

Cambiar en el parámetro " " , el valor "myserver:myport", por el correspondiente a la dirección ip y port del syslog server QRadar.  Ejemplo: localhost:514syslogHost

Luego re-deployar la consola de Promo para que tome la configuración.

Tipos de eventos :

Los eventos que serán enviados a QRadar en una primera instancia son los correspondientes a usuario: login, logout, login failed, nuevo usuario, modificación de usuario.

Configuración de Ambiente

Opción de configuración que afecta al funcionamiento del ambiente en su totalidad y se realiza desde el archivo promoplus.properties.

Page 72: PROMO - Manual de Instalación 7

promo.backupOptions --gzip indica que el backup va a ser comprimido a nivel colección. Si tiene un valor diferente la base no va a comprimir a nivel colección.

promo.card.customersNonNominated true Permite que al validar que se considere al CPF como si fuera una tarjeta nominada.

Resolución de problemas

Durante su funcionamiento, la Consola de administración podrá informar errores inesperados. Los errores que puedan a llegar a ocurrir utilizando la aplicación serán informados mediante un pop-up en rojo indicando la causa del mismo. Asimismo, el log de la aplicación que se encuentra en indicará más detalle acerca del mismo. \synthesis\promo\logSi el error es por un tema de permisos o página no encontrada, se informará mediante una pantalla aclaratoria con el problema ocurrido.

Desinstalación

Para proceder con la des-instalación de la consola y motor de PROMO se deberá:

1- Bajar servicios

PromoSImEngineWildflyMongoDBPromoEngine (si se instaló el motor)PromoEngineDirector (si se instaló el motor)

2- Borrar directorio C:\Synthesis (ruta donde se instaló la consola)

3- Desinstalar MongoDB

4- Borrar los servicios de PromoSinEngine, Wilfly y MongoDB, y PromoEngine, PromoEngineDirector si se instaló el motor

Reverso de actualizaciones ante problemas en el proceso

Ante algun problema durante la actualizacion de una version de consola o motor, debera de bajarse los servicios involucrados y colocar el archivo .war o .jar anterior,  segun se trate de una actualizacion de consola o motor respectivamente y volver a subir los servicios.

Luego de reesablecido el sistema contactar a Sericios de Atencion al Cliente para poner en conocimiento de lo sucedido con el proceso de actualizacion.

Herramienta para métricas de fidelidad

Page 73: PROMO - Manual de Instalación 7

(A partir de Promo 7.2) Con el objetivo de medir los tiempos de proceso de elementos de fidelidad, se han incorporado métricas en el log de aplicación.

Se implementa la actualización en el log a nivel INFO tanto del lado consola como del motor, de las siguientes operaciones:

LoyaltyValidationLoyaltyActivationLoyaltyTransferLoyaltyVoidLoyaltyAssignFINISHCOMMITROLLBACKTransactionRequestReturnFinishCatalogRedeemValidationLOYALTYVALIDATIONEXFINISHEXPricesvoidTotalblackList

Para habilitar los cambios realizados se agregaron las siguiente propiedades en los archivos correspondientes al logging tanto del lado consola como del motor:

Habilitar logueo en consola, ir a : ..\synthesis\promo\appserver\modules\system\layers\base\com\synthesis\configuration\main\log4j.xml

Valor por defecto  , pasar a   para habilitar la funcionalidad.ERROR INFO

log4j.xml (consola)

<category name="grails.app.services.sts.console.api.ApiService"><priority value="ERROR" /></category>

Habilitar logueo en motor, ir a: ...\synthesis\promo\engine\conf\logging.properties

Valor por defecto  , pasar a   para habilitar la funcionalidad.SEVERE INFO

logging.properties (engine)

engine.operation.level = INFO

Adicionalmente, una vez actualizado el valor de la propiedad  ,  se cambia el nivel de logging de SEVERE a INFO de las siguientes propiedades:engine.operation.level

java.util.logging.FileHandler.level = INFOjava.util.logging.ConsoleHandler.level = INFO

Page 74: PROMO - Manual de Instalación 7

Resultado del cambio:

server.log

15,52,20,949 INFO [sts.console.api.ApiService@http-nio-8080-exec-2] -->loyaltyTransfer15,52,20,974 INFO [sts.console.api.ApiService@http-nio-8080-exec-2] <--loyaltyTransfer 0.025 seconds15,52,23,334 INFO [sts.console.api.ApiService@Actor Thread 5] ApiService.status.mapActives Starting processing at Fri Jul 23 15:52:23 ART 202115,52,23,335 INFO [sts.console.api.ApiService@Actor Thread 3] ApiService.status.mapActives processed Finish at Fri Jul 23 15:52:23 ART 202115,52,23,357 INFO [sts.console.api.ApiService@http-nio-8080-exec-8] -->processEngineRequest: checking on console type:DYNAMIC_ATTRIBUTES ...15,52,23,380 INFO [sts.console.api.ApiService@http-nio-8080-exec-1] -->processEngineRequest: checking if console has any pending to be process on engine...15,52,29,749 INFO [sts.console.api.ApiService@http-nio-8080-exec-2] -->commit15,52,29,752 INFO [sts.console.api.ApiService@http-nio-8080-exec-2] <--commit 0.003 seconds

gengine.log

INFORMACIÓN: -->OperationFinish:remoteEvaluationjul 23, 2021 3:54:52 PM engine.operation.Operation loggerTimeStopINFORMACIÓN: <--OperationFinish:remoteEvaluation 0.913 seconds -><?xml version="1.0" encoding="UTF-8"?><message ack="0" companyId="napse" engine="7.1.4-SNAPSHOT" mapversion="44" messageId="1" store="napse" terminal="1" transaction="napse_napse_1_20210723100025"> <loyalty> <loyaltycards> <loyaltycard ack="0" amount="1800.00" id="550003" seq="1" type="tdf_001"/> </loyaltycards> <coupons/> <errors/> <customers/> <redeemTable/> </loyalty></message> jul 23, 2021 3:55:04 PM engine.operation.Operation loggerTimeStartINFORMACIÓN: -->OperationCommit:remoteEvaluationjul 23, 2021 3:55:04 PM engine.operation.Operation loggerTimeStopINFORMACIÓN: <--OperationCommit:remoteEvaluation 0.053 secondsjul 23, 2021 4:13:57 PM engine.operation.Operation loggerTimeStartINFORMACIÓN: -->OperationLoyaltyValidation:remoteEvaluationjul 23, 2021 4:13:57 PM engine.operation.OperationLoyaltyvalidation validationINFORMACIÓN: Se valida que el cuerpo del mensaje no este vacio en LoyaltyValidationjul 23, 2021 4:13:57 PM engine.operation.Operation loggerTimeStopINFORMACIÓN: <--OperationLoyaltyValidation:remoteEvaluation 0.373 seconds

Page 75: PROMO - Manual de Instalación 7

1. 2. 3. 4.

1.

2.

3. 4. 5.

6.

Apéndice A: Autenticación de Usuarios Externos (SAML2)

Por medio de la implementacion en PROMO de SAML2 se lograra la integración de PROMO con un sistema de autenticacion externos de usuarios de la consola de PROMO.

Se deberá tomar en cuenta que dentro de la consola existen roles de usuario que permiten ingresar a las diferentes funcionalidades que deberán mantenerse dentro de la consola. 

 Sera requerido siempre tener el usuario creado en la base para poder acceder a la consola y realizar la autenticación.

Para que promo utilice saml2, se deberá agregar, en el directorio donde permanecen los .properties, los archivos properties correspondientes. Éstos son

saml.properties - Archivo principal de configuraciones.saml-keymanager-passwords.propertiessaml-metadata-providers.properties - Archivo correspondiente a la configuración del proveedor de identidad.saml-metadata-sp-defaults.properties - Archivo correspondiente a la configuración que utilizará PROMO para generar su archivo xml de metadatos.

Consideraciones de la pruebas de Integración

Para realizar pruebas se utilizó   https://capriza.github.io/samling/samling.html

Alta de usuarios en la consola de PROMO por medio del servicio rest correspondiente ( ), También podrán darse de alta manualmente desde la consola. En ambos casos deberá de tenerse createOrUpdateUsersen cuenta que los usuarios no deberán tener asignadas ninguna restricción en cuanto a políticas de seguridad propias de PROMO.Obtener su de metadatos en el menú idp metadata ( ) y guardarlos en un archivo (preferiblemente  ). Debe apuntarse al mismo desde la xml https://capriza.github.io/samling/samling.html#   xml idp.xmlconfiguración por properties.Guardar el archivo  en idp.xml C:\synthesis\promo\idp.xmlEditar el archivo allí saml-metadata-providers.properties especificando   la ruta absoluta donde se colocó el archivo idp.xmlIniciar PROMO (Wildfly) con los cuatro  correspondientes a saml.properties

IMPORTANTE

Al utilizar un sistema de autenticacion externos los usuarios dados de alta en la consola no deberán poseer ningún tipo de configuracion de políticas de seguridad de PROMO.

NOTA

La operación en consola sucede al iniciar o cerrar sesión. Al usar saml, el inicio de sesión de PROMO se reemplaza por el inicio de sesión del proveedor de identidad.

Page 76: PROMO - Manual de Instalación 7

6. 7. 8. 9.

10. 11. 12. 13.

14.

15.

16.

Generar el de PROMO accediendo a , guardarlo en un (preferiblemente  ).xml http://localhost:8080/promo/saml/metadata xml sp.xmlSe guardó en sp.xml C:\synthesis\promo\sp.xmlEditar el archivo allí   saml.properties especificando   la ruta absoluta donde se colocó el archivo sp.xmlEditar el archivo especificando la ruta de promo  saml-metadata-sp-defaults.properties http://localhost:8080/promoDetener PROMO (wildfly)Borrar los directorios \temp y \data que se encuentran en el directorio \standalone de la instalacion de PROMO.Iniciar PROMO(wildfy)Al acceder a la consola de PROMO en lugar de la pantalla de inicio de sesión aparecerá la pantalla de samling. Esta pantalla permite configurar qué se desea enviar al proveedor de servicios, que en este caso es PROMO. Sólo modificar, dentro de " " el campo " " con el nombre de usuario con el que se desea acceder a PROMO.Saml Response Properties Name IdentifierPresionar "NEXT"

En la siguiente pantalla que se presenta presionar "Post Response"

Page 77: PROMO - Manual de Instalación 7

15.

16. Se presentara la consola de PROMO, logueada con el usuario ingresado:

Si el usuario no corresponde a ningún usuario dado de alta en PROMO el login fallará, y se volverá a la pantalla del punto 13 para volver a intentar a ingresar un usuario valido y poder iniciar sesión en PROMO.

Si el usuario es uno existente iniciará sesión en PROMO sin problemas, presentándose la pantalla de Gestión de Promociones.

Propertis:

saml.properties, debe mantener la ruta absoluta al archivo de metadatos del proveedor de servicios.

IMPORTANTE

Saml2 funciona con la primer empresa existente y no principal. Todo usuario se verificará con dicha empresa. Para el caso del acceso con la empresa Synthesis, se reservó el usuario synthesis, es decir, si se necesita acceder a la compañía principal se debe utilizar el usuario synthesis. El cliente deberá dar de alta en su proveedor de identidad a este usuario previamente.

Page 78: PROMO - Manual de Instalación 7

## Configuraciones para la utilización de SAML2# Más info en https://sphoortia.github.io/grails-spring-security-saml/docs/guide/configuration.html#grails.plugin.springsecurity.saml.userGroupAttribute = memberOfgrails.plugin.springsecurity.saml.metadata.sp.file = C:\\synthesis\\promo\\sp.xmlgrails.plugin.springsecurity.saml.metadata.sp.alias = promo_samlgrails.plugin.springsecurity.saml.responseSkew = 60grails.plugin.springsecurity.saml.idpSelectionPath = /grails.plugin.springsecurity.saml.loginFormUrl = /saml/login

saml-metadata-providers.properties, clave ping, debe mantener la ruta absoluta al archivo de metadatos del proveedor de identidad.

ping=C:\\synthesis\\promo\\idp.xml

, clave entityBaseURL, debe mantener la ruta de promo.saml-metadata-sp-defaults.properties

local=truealias=promo_samlentityBaseURL=http://localhost:8080/promosecurityProfile=metaiopsigningKey=pingencryptionKey=pingtlsKey=pingrequireArtifactResolveSigned=falserequireLogoutRequestSigned=falserequireLogoutResponseSigned=falseidpDiscoveryEnabled=false

saml-keymanager-passwords.properties

#apollo = nalle123

NOTA

Para volver al sistema de logueo habitual, sin utilizacion de SAML2 solo deberan eliminarse los 4 archivos .propertis del directorio \main y reiniciar PROMO (Wildfly).

Page 79: PROMO - Manual de Instalación 7

Apéndice B: OS4690

Instalación de Motor en OS4690

Se deberán seguir los siguientes pasos para instalar correctamente el motor de PROMO en un OS4690:

Envié el jar entregado a un controlador, al raíz del disco con el nombre, por ejemplo: F promo-gengine-installer-x.x.x.jar

Ejecutar el instalador:  F:/instala> javaebin:java -jar promo-gengine-installer-x.x.x.jar

Dependiendo si está disponible el modo gráfico, se podrá ejecutar en ese modo o en modo texto. Se recomienda el modo gráfico y ejecutar desde la carpeta F:/instala

Cuando se solicite, indicar estos valores: 

Directorio java: /opt/java/tdk8 Directorio de instalación: /cdrive/f_drive/instala/promo

Pueden presentarse errores al instalar servicios. Esto es debido a los permisos del Linux4690, ignorar.

Se generan los archivos:

F:/instala/ant.install.logF:/instala/ant.install.properties

Se genera la carpeta F:/instala/promo

Revisar y Copiar los siguientes archivos:   Modifcar el  config.xml (…promo/engine/conf) para especificar las rutas correctas:

<offline> <!-Directorio donde se guardarán los tickets offline-> <directory>/cdrive/f_drive/promo/engine/offline</directory> <!-Cantidad de segundos en los que chequea offline-> <check>60</check> </offline> <map> <!-Directorio desde donde el motor lee los mapas-> <directory>/cdrive/f_drive/promo/engine/sales</directory>

        

Modificar logging.properties (…promo/engine/conf)    para especificar las rutas correctas:  java.util.logging.FileHandler.pattern = /cdrive/f_drive/promo/engine/logs/promo

Configurar aplicación Background: 

Programa shell:Parámetros: F:/promo/engine/tcp4690.bat  (o rest4690.bat para trabajar como servidor tcp ip o rest según sea el caso). 

Page 80: PROMO - Manual de Instalación 7

     Iniciar cuando es Maestro y cuando no es Maestro     Activar configuración y cargar Controlador 

Apéndice C: Variables de Entorno

Set PATH JAVA_HOME en Windows

Para que la aplicación se ejecute correctamente será necesario, setear la variable JAVA_HOME en Windows.  Para ello ingresar a Panel de Control > Sistemas y Seguridad > Sistemas y seleccionar "Configuración Avanzada del Sistema" En la solapa de Opciones Avanzadas, dar clic en "Variables de Entorno". En Variables de Sistema, posicionarse en JAVA_HOME y dar clic en "Editar" y colocar la ruta donde se encuentre JAVA.

Page 81: PROMO - Manual de Instalación 7

En Variables del sistema, buscar PATH, y hacer clic en "Editar", luego agregar % JAVA_HOME% \ bin

Page 82: PROMO - Manual de Instalación 7

Dar clic en " " para guardar los cambios y que la variable quede seteada correctamente.Aceptar

Apéndice D: Actualizaciones de Consola

Page 83: PROMO - Manual de Instalación 7

1. 2. 3. 4. 5.

Actualización por nuevos Release

En caso de que un nuevo reléase de su versión de consola sea liberado, pudra realizar la actualización de la versión de PROMO siguiendo estos pasos:

Bajar el servicio de Wildfly (acceder a la sección de servicios del sistema y detener Wildfly)Acceder al directorio donde este instalada la consola de PROMO (por default en C:\synthesis\promo)Ingresar al directorio C:\synthesis\promo\appserver\standalone y eliminar los directorios "data" y "tmp"Ingresar al directorio C:\synthesis\promo\appserver\standalone\deployments y reemplazar el archivo promo.war existente por el enviado por el personal de Synthesis.Hecho esto, iniciar nuevamente el servicio wilfly.

En caso de terminar satisfactoriamente el proceso, este archivo será renombrado como promo.war.deployed. De presentarse algún error durante la descompresión de la actualización, se generara un archivo llamado promo.war.failed el cual deberá ser enviado al personal de soporte para su análisis y posterior resolución del inconveniente a fin de iniciar correctamente la consola.

NOTA

Una vez iniciado el servicio luego del reemplazo del archivo promo.war, en el directorio C:\synthesis\promo\appserver\standalone\deployments se generara un archivo llamado promo.war.isdeploying, indicando que se están descomprimiendo los archivos de la actualización.