MANUAL  DE INSTALAÇÃO


PROMO 7.2







Índice

Introdução

PROMO é uma solução que permite separar a gestão das promoções do ponto de venda.
Possui dois grandes componentes: o " Motor de Promoções ", responsável por calcular as promoções participantes quando uma transação é realizada no ponto de venda e reportá-las uma vez que o cálculo esteja concluído; e o " Console de Administração ", responsável por fornecer uma ferramenta de administração centralizada.
Este manual ilustra como instalar ambos os componentes e as diferentes opções que podem ser configuradas para o seu funcionamento.

Console de administração - PROMO

Introdução

A Consola de Administração é o componente web para a administração e criação de promoções, cupões, cartões de fidelização e mapas que PROMO dispõe. Através desta ferramenta será possível, entre outras coisas, criar promoções e definir suas condições, cupons, cartões, combos e benefícios. Também será possível criar os mapas que contém as promoções para posteriormente gerar os arquivos de configuração que serão carregados no " Motor de Promoções ", para que os tickets possam ser avaliados e as promoções calculadas com base nas definições geradas no Console.

Referências Práticas

Información

É um requisito que antes de instalar o console os seguintes componentes sejam instalados:

  • MongoDB 4.2
  • JDK 1.8.0_25


Junto com o console PROMO, o motor de simulação e o Wildfly serão instalados durante o processo.

Instalando o MongoDB 4.2


Você pode seguir as etapas na documentação de instalação online do Mongo.

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

Após a instalação do mongo, sua segurança deve ser configurada da seguinte forma:

  1. Execute o serviço Mongo usando sudo service mongod start

2. Execute o comando mongo

3. O sistema estará dentro do console do Mongo, com o qual devem ser executados os seguintes comandos ali mesmo:


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



NOTA

Nestes exemplos, são utilizados o nome de usuário "promousr" e a senha "thepassword", esta pode ser alterada de acordo com o que for solicitado pelo usuário.



4. Saia do console usando o comando " exit "

5. Execute o comando > service mongod stop para interromper a execução do mongo.

6. Edite o arquivo /etc/mongod.conf e descomente a tag " Security " para habilitar a segurança, colocando a seguinte linha conforme a imagem:



Pré-requisitos do sistema

Segue abaixo os requisitos mínimos para instalação do Console de Administração PROMO que irá operar com 1 (uma) empresa.
Os requisitos mínimos de hardware são fornecidos como um guia para dimensionar um ambiente de não produção. Para instalações em ambientes de produção com requisitos específicos de desempenho e volume de dados, é necessário um dimensionamento específico para estimar a configuração apropriada.

Considere que a seguinte configuração seria necessária para usar um mapa não maior que 1 MB e sem usar funções de fidelidade , caso contrário, você deve analisar quanta memória deve usar.

A instalação do banco de dados e do JDK está descrita nas Referências Práticas

Descrição

Requisito mínimo (10 lojas)

Memória RAM livre

16 GB

JVM (Java Virtual Machine)

jdk-8u25-windows-x64 ou superior

Processador

8x2,5 GHz

Capacidade do disco rígido (grátis)

200 GB

Sistema operativo

Windows Server 2008 R2, Windows 7 64 bits

servidor de banco de dados

MongoDB 4.2


IMPORTANTE

Os requisitos dependem do uso do recurso e da carga esperada. Em seguida, é necessária uma estimativa e estudo de cada caso para fazer um ajuste nos recursos necessários.

NOTA

O uso de máquinas virtuais adiciona sobrecarga que pode afetar o desempenho ou a escalabilidade. 


IMPORTANTE

Além disso, o JDK deve ser adicionado à variável de ambiente %PATH%. (consulte 8 Apêndice B: Variáveis ​​de ambiente )

Executando o instalador (Windows)

O instalador " promo-console-installer-7.2.2.SNAPSHOT.jar " deve ser executado como administrador a partir do modo de comando para prosseguir com a instalação e configuração do console PROMO e do mecanismo de simulação. Para isso, deve-se executar o comando java –jar promo-console-installer-7.2.2.SNAPSHOT.jar . Também serão instalados os seguintes componentes essenciais para o correto funcionamento do aplicativo:

  • Wildfly 20

O serviço Wildfly será inicialmente configurado por padrão no diretório sugerido, ocupando a porta 8080.
Ao final do instalador, todos os serviços e diretórios correspondentes serão criados.

Instalação do aplicativo


O instalador do PROMO deve ser executado como administrador, em modo de comando ( promo-console-installer-xxxjar )

A seguinte tela será apresentada onde você deve pressionar " Avançar ":


Em seguida, será solicitada a aceitação dos termos e condições de uso do aplicativo.


Após a aceitação dos termos e condições, será solicitado a identificação do nome do usuário e o e-mail da pessoa (empresa ou pessoa) que está realizando a instalação.


Em seguida, você deve indicar o caminho de acesso ao Java (JDK) e o diretório onde o Promo será instalado. Por padrão, " c:\synthesis\Promo " é proposto . Também deve ser indicado o diretório onde o banco de dados será instalado (MongoDb).



Caso os diretórios não existam, será solicitada autorização para a criação dos diretórios necessários para a instalação do PROMO.


Você será solicitado a indicar o diretório onde o Wildfly será instalado, para que o mecanismo seja instalado como um serviço .

Caso o diretório não exista, será solicitada autorização para sua criação.



Agora que o MongoDb será instalado, você deve inserir as credenciais do servidor de banco de dados.

Serão solicitadas informações se você deseja instalar ou apenas ativar os serviços que são instalados com o PROMO.


Se você instalou o mecanismo como um aplicativo ou como um serviço, continuará com as seguintes etapas:

Na próxima tela que aparecer, você deverá pressionar o botão " Instalar " para iniciar o processo de instalação do PROMO e seus componentes.


Terminada a instalação, será exibida a seguinte janela onde será informada a correta instalação do console PROMO e será solicitado o clique em “ OK ” para finalizar o processo.


estrutura de diretório

Depois de instalar o console de administração, uma estrutura de diretório semelhante à seguinte permanecerá no diretório de instalação (por exemplo: "c:\synthesis\promo").
Os seguintes diretórios e arquivos são alguns dos que devem ser observados:

  • síntese\promo\imagens : diretório de imagens
  • \synthesis\promo\images\profile
  • \synthesis\promo\images\barcode: Contém as imagens dos códigos de barras associados aos cupons emitidos.
  • \synthesis\promo\images\promotion: contém as imagens que estão associadas às promoções
  • \synthesis\promo\logs: informações sobre os traces de execução da aplicação, incluindo informações técnicas em caso de alguma falha.
  • \synthesis\promo\backup: backups do banco de dados MongoDB
  • \synthesis\promo\import: diretório onde devem ser armazenados os mapas para importação de promoções.
  • \synthesis\promo\mdb: aqui estão as funções utilizadas no banco de dados.
  • \synthesis\promo\engine: o mecanismo de promoções usado pelo console para simulá-las.
  • \synthesis\promo\catalogs: diretório onde serão armazenados os arquivos de catálogo (. catalogs ) que serão importados ao iniciar o aplicativo. As pastas correspondentes a cada empresa devem ser geradas manualmente, indicando o ID da empresa no nome do diretório. (Ex: \synthesis\promo\catalogs\22 onde 22 corresponde ao ID da nova Ccia)
  • \synthesis\promo\export: (a partir do Promo v7.1) os arquivos que são exportados com o botão "Massive Export" encontrado nos relatórios serão baixados para este diretório. Este diretório é criado automaticamente quando você instala o Promo. Mas deve-se observar que, se você estiver fazendo uma atualização em vez de uma nova instalação, deverá criar esse diretório manualmente.


 Instalação do Linux (CentOS 7)


É um requisito que antes de instalar o console os seguintes componentes sejam instalados:

  • MongoDB 4.2
  • JDK 1.8.0_25

Descrito em Referências Práticas

Instalação do aplicativo (Promo Console)


O instalador fornecido a partir da linha de comando deve ser executado como root da seguinte forma:


Onde XXX Corresponde ao número da versão PROMO que está sendo instalada.


Depois de executar o instalador, ele começará a descompactar o arquivo para iniciar a instalação, que seguirá os mesmos passos do Windows.

Uma vez instalado o console, será necessário iniciar o Wildfly, o que pode ser feito manualmente executando " sudo ./standalone.sh ", ou o Wildfly pode ser configurado como um serviço no linux seguindo os passos indicados na Web para esse fim .

Configurar o Simulation Engine como um serviço no LINUX

Um arquivo deve ser gerado a partir de qualquer editor de texto, com o nome " promo.service " e deve conter as seguintes linhas:


Uma vez gerado o arquivo, ele deve ser salvo em  /etc/systemd/system e executar o seguinte comando para notificar o sistema:


Então você terá que habilitá-lo para ser executado na inicialização com o seguinte comando:


Caso seja necessário atuar no serviço, os seguintes comandos podem ser executados:

systemctl start promo  → iniciar o serviço
systemctl stop promo → parar o serviço
systemctl restart promo → reiniciar o serviço
systemctl status promo   → visualizar status do serviço1

 execução do sistema


Acesse o Console de Administração

Uma vez instalado o console PROMO, ele pode ser acessado de qualquer um dos seguintes navegadores suportados pelo Promo: Firefox ou Google Chorme ,

Digite o seguinte URL na barra de endereços do navegador :


http:// SERVER-IP :8080/promo


Onde SERVER-IP é o endereço IP ou DNS do computador onde o servidor de aplicativos está sendo executado.


Erros de instalação do console


  • 404 – ERRO de Inicialização no Instalador




    Esse erro pode ocorrer quando a instalação do console não é iniciada a partir de um prompt de comando executado como administrador. O instalador do PROMO deve ser executado como administrador, em modo de comando (promo-console-installer-6.xxjar)

Erros de inicialização do console


404 – ERRO (ao iniciar a aplicação WEB)
Este erro pode ocorrer porque o serviço WildFly não está ativo. Deve ser verificado nos serviços do sistema que o serviço WildFly está rodando. Se não estiver, inicie-o e atualize a página do navegador e tente novamente.
Outra razão pela qual este erro pode ocorrer é que o aplicativo não foi descompactado corretamente. Para verificar isso, você terá que verificar o diretório de instalação synth\promo\appserver \standalone\deployments se houver um arquivo chamado " promo.war.failed ". Caso este arquivo seja encontrado, indicará que ocorreu um erro na inicialização do aplicativo. Entre em contato com o administrador do sistema para obter a solução.

NOTA

Recomenda-se verificar os serviços adicionados após a instalação do PROMO para garantir que eles sejam iniciados e executados corretamente.
Para isso, acesse os serviços do sistema e verifique se os seguintes serviços estão rodando:  
Wildfly // MongoDB // PromoSimEngine

Registros do console

Para aqueles logs que contenham código, código de barras, identificador (cliente, cartão, cupom), cujo valor esteja registrado no banco de dados, será mostrado o id gerado pelo mongodb para o registro, nos casos em que o registro não estiver no banco de dados (por exemplo o caso de importações), o valor será substituído por asteriscos-

Quando o valor for menor que três caracteres, exibirá tudo com asteriscos; se o valor for maior que 4, os três últimos caracteres ficarão visíveis e os demais em asteriscos.

Isso se aplica aos seguintes processos:

-Registro massivo de cupons

-Registro massivo de cartões

-Api rest/importações por catálogos, cartões, cupons, clientes

Exemplo de registro:

Motor de Promoções

Introdução

Conforme referido no ponto anterior, o motor de promoções é a componente PROMO encarregada de receber os bilhetes diretamente no ponto de venda, processá-los posteriormente e por último reportar as promoções que participou e os artigos afetados.
A instalação do motor de promoção é feita em conjunto com a instalação da consola Promo, quando é executado o instalador da aplicação. A comunicação é estabelecida por meio de mensagens XML enviadas usando TCP/IP, REST ou Pipes (IBM 4690).

Pré-requisitos do sistema

A tabela a seguir detalha os requisitos mínimos e recomendados para instalar o mecanismo de promoções:


Descrição

Requisito Mínimo (5 Pontos de Venda)

Memória RAM livre (com HD)

1024 MB

JVM (Java Virtual Machine)

Versão 1.8

velocidade do processador

4x2GHz

Capacidade do disco rígido (grátis)

1GB

Sistema operativo

De acordo com os requisitos.

IMPORTANTE

Os requisitos dependem do uso do recurso e da carga esperada. Em seguida, é necessária uma estimativa e estudo de cada caso para fazer um ajuste nos recursos necessários.

Instalação (Linux/Windows)


Instalando o PROMO Engine a partir do instalador

Um arquivo promo-gengine-installer-XXXjar é fornecido onde XXX é a versão do mecanismo que está sendo instalado (7.2.3.SNAPSHOT).
O instalador do PROMO Engine deve ser executado como administrador, em modo de comando ( promo-genengine-installer-XXXjar )


Quando o instalador for executado, a seguinte janela será exibida:


Pressione "Avançar" para continuar.


Os termos e condições devem ser aceitos para continuar com a instalação do motor PROMO.


Clique em " OK " para continuar.


Após a aceitação dos termos e condições, será solicitado a identificação do nome do usuário e o e-mail da pessoa (empresa ou pessoa) que está realizando a instalação.


Pressione " Avançar " para continuar.


Em seguida, você deve indicar o caminho de acesso ao Java (JDK) e o diretório onde o motor PROMO será instalado. Por padrão, " c:\synthesis\genengine " é proposto 

Você pode indicar aqui, por meio da verificação "Instalar Servidor REST (TCP/IP Padrão)", para que o mecanismo seja instalado como um SERVIDOR REST, caso contrário, será instalado por padrão no modo TCP/IP.


Importante: Marque Não instale o mecanismo onde o mecanismo de simulação do console foi instalado anteriormente (o mecanismo de simulação é instalado por padrão em \synthesis\promo\engine) se isso acontecer, ele não funcionará corretamente.




Pressione " Avançar " para continuar.


No Pop-UP a seguir, deve ser indicada a URL de acesso ao "Diretor" para futuras atualizações e o código da loja que o motor levará. Em seguida, você deve indicar

Se você deseja instalar o mecanismo como um aplicativo, marque a caixa de seleção

Após pressionar o botão Avançar, deve-se indicar o caminho onde se encontra a pasta webapps da instalação do apache TomEE.

Depois de pressionar Next, você deve preencher os parâmetros solicitados:

Se a opção de Instalar o motor como aplicativo não for escolhida ao pressionar o botão Avançar, no próximo Pop-UP você deve indicar a URL de acesso ao "Diretor" para futuras atualizações e o código da loja que o motor usará.

Pressione " Avançar " para continuar.


Na próxima tela que aparecer, você deverá pressionar o botão " Instalar " para iniciar o processo de instalação do mecanismo PROMO e seus componentes.


Terminada a instalação, será exibida a seguinte janela onde será informada a correta instalação do motor PROMO. Ser-lhe-á pedido que clique em " Aceitar " e depois em " Sair " para terminar o processo. 

 


Terminado o processo de instalação do motor de promoções, pode-se verificar nos serviços do sistema a existência de dois novos serviços correspondentes ao motor de promoções e ao agente Director, que já estarão a funcionar de forma atomística, facto que marcará a correcta instalação e arranque do motor de promoções novo motor PROMO.


Instalando Versões Anteriores do PROMO Engine


Um arquivo g-engine-xxx-installer.zip é fornecido onde xxx é a versão do mecanismo que está sendo instalado. Para instalar:

  1. Crie uma pasta onde o mecanismo será executado (Cuidado para ter permissões de leitura e gravação nela)
  2. Descompacte o conteúdo do zip nessa pasta.
  3. Modifique o arquivo conf/config.xml com os parâmetros de configuração corretos de acordo com o ambiente em que será executado.
  4. Execute no modo de comando como administrador " tcp.bat " no Windows ou " sudo ./tcp.sh " no Linux.

Instalação do PROMO Engine através da janela de comando (CMD)

A seguir, é indicado com um exemplo da versão 7.2.2, como realizar a instalação do motor Promo através da janela de comando.

  • Crie uma pasta onde o arquivo de configuração será salvo.

  • Salve o arquivo do instalador do mecanismo para a versão que deseja instalar nessa pasta.

  • Abra uma janela de comando no modo administrador

  • A janela do cmd é aberta.

  • Vá para a pasta onde salvamos o instalador e copie o caminho.

  • Volte para a janela de comando e digite cd, deixe um espaço e cole o caminho que copiamos no ponto anterior.

  • Pressione Enter e estaremos posicionados na pasta.

  • Em seguida, verificamos a versão do jvm (Java Virtual Machine)

  • Veremos a versão do Java:

Deve ser uma versão Java 1.8

  • Em seguida, vamos executar o arquivo de instalação do mecanismo. Para forçá-lo a ficar em modo texto, devemos digitar na janela do cmd:

java -jar promo-gengine-installer-7.2.2.jar texto

E então pressionamos Enter.

  • Teremos a seguinte resposta:

E veremos esta imagem:

  • O instalador é executado em modo texto. Veremos a seguinte tela, então pressione Enter.

  • Em seguida, você deve selecionar Enter para visualizar a licença.

  • A Licença é exibida e nos perguntam se queremos aceitar a licença, como o valor padrão é sim, pressionamos Enter.

  • Em seguida, aparece a seguinte tela onde nos perguntam se lemos e aceitamos os Termos e Condições de Uso. O valor padrão é false, portanto, devemos digitar true e pressionar Enter.

  • A próxima tela nos pede para inserir o nome completo. Escrevemos o nome e pressionamos Enter.

  • Em seguida, ele nos pede para inserir o e-mail. Entramos no e-mail e pressionamos Enter.

  • Em seguida, ele nos pede para indicar o caminho onde o jdk está instalado.

Procuramos a pasta onde temos o java instalado, selecionamos o caminho e copiamos.

Em seguida, colamos esse caminho na janela do cmd.

  • Próximo passo, ele nos pede para entrar no diretório onde queremos fazer a instalação.

Para fazer isso, primeiro criamos uma pasta para a versão 7.2  

Dentro dele, uma pasta de motor para o motor.

Em seguida, selecionamos e copiamos o caminho para a pasta do mecanismo.

Por fim, colamos esse caminho na janela do cmd e pressionamos Enter.

  • Na próxima etapa, ele nos pergunta se queremos instalar o serviço REST. Como o valor padrão é false, devemos digitar true e pressionar Enter.

  • Em seguida, ele nos pergunta se instalamos o TomEE, como o valor padrão é false, pressionamos Enter.

  • Em seguida, ele nos pergunta se instalamos o Director, não vamos instalá-lo, portanto, devemos digitar false e pressionar Enter. Em seguida, ele pergunta o caminho para o Diretor, pressionamos Enter.

  • Então devemos indicar o id do motor e pressionar Enter.

  • Também precisamos inserir um nome para o mecanismo e pressionar Enter.

  • Na próxima etapa devemos inserir a porta SOCKET, pois vamos deixar o valor padrão de 3000, pressionamos Enter.

  • Em seguida, ele nos pede para entrar na porta REST, como vamos deixar o valor padrão 8888, pressionamos Enter.

  • Em seguida, precisamos preencher o URL do console. Se vamos deixar o valor padrão, pressionamos Enter.

  • O próximo passo pede as lojas associadas ao motor, neste caso pressionamos Enter.

  • Lá a instalação começa e nos mostra informações de progresso.

Até que nos diga que a instalação foi bem-sucedida e que foi concluída.

Depois de um tempo, a janela do cmd fica disponível novamente (se isso não acontecer, você pode pressionar CTRL+C).

Considerações a ter em conta

  1. Já feita a instalação, foram gerados dois arquivos na pasta onde está armazenado o arquivo do instalador do motor

Tudo o que escrevemos durante a instalação foi registrado no arquivo ant.istall.properties.

Por isso, se tivermos que fazer a mesma instalação, pegamos o instalador com esse arquivo ant.install.properties e vamos encontrar todos os valores carregados, bastando pressionar Enter.

2. Se eu quiser fazer uma instalação do 0, eu apago essas duas pastas e ela não terá mais os valores pré-carregados, tendo que fazer todo o processo novamente.

3. Lembre-se de que o java deve ser instalado anteriormente e que a versão deve ser 1.8.

 Configurações Gerais do Motor:

O motor de Promoções possui arquivos dentro da pasta ./conf para parametrizar seu funcionamento. Esses arquivos são detalhados a seguir.

Arquivos de configuração


CONFIG.XML
É um arquivo em formato XML com a seguinte estrutura.

<?xml version="1.0" encoding="ISO-8859-1"?>
<configuration>
    <general>
        <simulation>false</simulation>
        <compatibilityMode>false</compatibilityMode>
        <mapIdentifiers></mapIdentifiers>
        <ticketIdentifiers>store,terminal</ticketIdentifiers>
        <disableLoyalty>false</disableLoyalty>
        <disablePrices>false</disablePrices>
        <!--identificar unico por cada instancia del motor.-->
        <!--<engineId>1</engineId>-->
        <!--Nombre unico por cada instancia del motor.-->
        <!-- <engineName>ENGINE_NAME</engineName>-->
        <!-- Tiendas a las que esta asociado el motor -->
        <!-- <stores></stores> -->
        <!-- Otorgamiento de beneficio con límites: true otorga el saldo(default), false no otorga beneficio si el apply supera el saldo -->
        <useExactLimitValue>true</useExactLimitValue>
        <!-- Permite descuentos negativos true default por compatibilidad -->
        <negativeDiscount>true</negativeDiscount>
        <!-- Limita (cuando esta 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>
        <!-- Obtener de consola los limites de forma sincrona, default true -->
        <!--<fetchLimitsSync>true</fetchLimitsSync>-->
     </general>
     <prices>
         <directory>prices</directory>
         <!--Cantidad de segundos en los que chequea si existen precios offline-->
        <check>10</check>
    </prices>
    <offline>
        <!--Directorio donde se guardarán los tickets offline-->
        <directory>offline</directory>
        <!--Cantidad de segundos en los que chequea offline-->
        <check>60</check>
    </offline>
    <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>
        <!-- maximo numero de mapas simulados a mantener  -->
        <simulatedMapsMax>10</simulatedMapsMax>
        <!-- maximo numero de mapas simulados para iniciar el proceso de remocion  -->
        <simulatedMapsThreshold>30</simulatedMapsThreshold>
        <!-- remover mapas que sobrepasen el maximo simulatedMapsMax -->
        <removeNonSimMaps>false</removeNonSimMaps>
        <!--En true se almacena los mapas compilados para optimizar el tiempo de carga de mapas en caso de reinicio del motor -->
        <!--compiled>false</compiled-->
        <!--Directorio para almacenar los mapas compilados, solo se iutiliza si compiled es true-->
        <!--compiledDirectory>compiled</compiledDirectory-->
    </map>
    <response>
        <!--Decimales de redondeo de la respuesta-->
        <roundDecimals>2</roundDecimals>
        <roundCountables>3</roundCountables>
        <roundPoints>2</roundPoints>
        <!-- Metodo de redondeo de puntos:  roundDown/roundMath (default: roundDown) -->
        <roundPointsMethod>roundMath</roundPointsMethod>
        <!-- Solo redondear el summary del beneficio (default: false) -->
        <roundPointsTotalOnly>false</roundPointsTotalOnly>
        <!-- Cuando redondeo final, cantidad de decimales en el computo intermedio(default: roundDecimals) -->
        <roundPointsTotalCalcDecimals>2</roundPointsTotalCalcDecimals>
    </response>
    <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>
    <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>
    <!--Directorio donde el motor busca el archivo entities.xml donde se configuran las extensiones para las entidades -->
    <!-- extensions>
        <directory>extensions</directory>
    </extensions -->
    <!--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 -->
</configuration>



Os parâmetros de configuração da seção Geral são:

Marca/ParâmetroDescriçãoValor padrão
simulaçãoIndica se o motor opera para simulações do console ou não. Valor padrão "Falso" (sem simulação)falso
modo de compatibilidadeindica se a engine opera em modo compatível com a engine antiga (Integrações 4690) agrupando ou não os benefícios nas respostas dadas pela engine. Por defeito o parâmetro está definido em "False" (Não compatível) pelo que neste modo irá agrupar os benefícios (novo motor). Se o benefício for definido como "True", os benefícios não serão agrupados (compatibilidade com o mecanismo antigo).falso
mapIdentifiersEles identificarão as pastas pelas quais o mecanismo irá em busca do mapa para avaliar a promoção. Eles devem ser definidos em uma lista separada por vírgulas.ID da empresa
ticketIdentifiersEle indicará por qual atributo o ticket será identificado quando a engine operar como multiempresa.terminal de loja
desativarLealdadeO valor padrão deste parâmetro será "falso" indicando que o motor mantém comunicação com a central PROMO para gerenciamento dos elementos Fidelidade. Se este parâmetro for definido como "true", a comunicação com a central PROMO será desabilitada, de modo que um status de Finish, commit, rollback, etc etc será avaliado como um status de "vendas" (método de avaliação anterior ao Loyalty).falso
desativarPreçosO valor padrão deste parâmetro será "falso" indicando que o mecanismo usa precificadores, isso habilitará a funcionalidade de preços (as listas de preços são geradas no console e serão distribuídas para o mecanismo) e o status dos preços estará disponível e no caso de Utilizar itens com unitPrice=0 nos tickets buscará os preços dos avaliadores (listas de preços). Se definido como "true", esse parâmetro indica que essa funcionalidade NÃO está habilitada.falso
ID do motoridentificador único do motor. Deve ser configurado quando você deseja que o motor reporte seu mapa ativo para o console PROMO.0
engineNameNome único do motor. Junto com o "EngineId" deve ser configurado quando você deseja que o motor reporte seu mapa ativo para o console PROMO.
lojas
Reservado
promoçãoCacheModeAtiva o modo de trabalho "Cache de promoções" do motor. Reservado APENAS para este modo de trabalho específico.falso
useExactLimitValueConcedendo benefício com limites: true concede o saldo (padrão), false não concede benefício se o apply exceder o saldoverdadeiro
desconto negativoPermitir ou não permitir que os descontos concedidos ultrapassem o valor do produtoverdadeiro
ajustarCupomCalculado

Limita (quando true ) dentro de uma única etapa que um cupom não exceda 100% de um produto, ( Moneydiscounts + cupom value > xprice ) reduz o valor do cupom para que não exceda 100% (de

7.1)

falso
buscarLimitsSyncIndica se os limites serão atualizados de forma síncrona ou assíncrona. Isso modifica os tempos de resposta ao iniciar uma transação e ao realizar uma validação de fidelidade do cliente.verdadeiro




Os parâmetros de configuração da seção Preços são:

Marca/ParâmetroDescriçãoValor padrão
diretórioIndica o diretório local onde os arquivos de tabela de preços serão baixados em caso de contingência. Esses arquivos podem ser gerados no console e enviados por algum meio alternativo (ex: correio) para serem baixados nos enginespreços
verificarIntervalo de tempo em segundos em que o mecanismo verificará se há novos arquivos no diretório mencionado.10




Os parâmetros de configuração da seção Offline são:

Marca/ParâmetroDescriçãoValor padrão
diretórioDiretório local onde os arquivos serão armazenados no status offlinedesligada
verificarIntervalo de tempo em segundos em que o engine verificará se há arquivos em modo offline pendentes de envio para o console60




Os parâmetros de configuração da seção Mapa são:

Marca/ParâmetroDescriçãoValor padrão
diretórioDiretório local onde os mapas serão baixados.você sai
verificarIntervalo de tempo em segundos em que o motor verifica a existência de novos mapas. Parâmetro de verificação do motor : O status dos motores é relatado ao mesmo tempo em que os mapas são verificados. O motor que por exemplo tem 600 segundos configurado, a cada 10 minutos terá um estado do motor.600
dias até a remoçãoDias se passaram desde a expiração de um mapa até sua remoção física. Este período de expiração é normalmente o tempo que o mapa pode ser necessário novamente devido a um retorno que requer a regeneração do cenário original100
removeSimulatedMapsIndica se os mapas simulados devem ser removidos ao atingir simuladMapsThresholdverdadeiro
simuladorMapsMaxNúmero máximo de mapas de simulação a serem mantidos após serem removidos com base na propriedade anterior10
Limite de mapas simuladosQuantidade de mapas que, uma vez alcançados, iniciam o processo de remoção do mapa.30
removeNonSimMapsIndica que o processo de remoção de mapa também se aplica a mapas produtivos e não apenas ao modo de simulaçãofalso
compiladoEstá ativado os mapas funcionarão em modo "pré-compilado"falso
diretório compiladoDiretório onde os mapas compilados serão armazenadoscompilado




Os parâmetros de configuração na seção Resposta afetam a resposta e os cálculos internos do motor. Estes são:

Marca/ParâmetroDescriçãoValor padrão
RoundDecimalsIndica o número de casas decimais a serem usadas em quantidades decimais. Isto é: magnitude e quantidades como preço unitário2
rodadaContáveisIndica o número de casas decimais a serem usadas em valores contáveis. Isto é: quantidade3
roundPointsIndica o número de casas decimais a serem usadas no número relatado de pontos.2
roundPointsMethodMétodo de arredondamento para limitar os valores dos pontos de acordo com o número de casas decimais configurado. Os valores possíveis são roundDown ou roundMatharredondar para baixo
roundPointsTotalOnlyIndica que o arredondamento de Pontos é aplicado apenas ao benefício total e não aos detalhes da aplicaçãofalso
roundPointsTotalCalcDecimalsIndica o número de casas decimais a serem usadas ao informar o número total de pontos no benefício2


Os parâmetros de configuração da seção Servidor afetam a comunicação do motor como um servidor. Esses parâmetros são:

Marca/ParâmetroDescriçãoValor padrão

usar https

Ative o modo https do mecanismo Promofalso
KeyStore
Se o modo https estiver ativado, indica o keystore a ser usado
./conf/keystore
keyStorePasswordIndica a chave de acesso ao keystorenós
useRoleAccessRestrictionsAtiva o modo com usuário/senha para segurança do motorfalso
definição de usuáriosIndica o arquivo onde estão definidos os usuários e funções que se conectarão ao motor Promo./conf/engineUsers.properties
diretório de configuraçãoonde está a pasta que contém as funções de mapeamento de arquivo para recursos web.xml./conf
descansarPorta de escuta do mecanismo no modo REST Server8888
soquetePorta de escuta do mecanismo no modo Servidor TCP/IP3000


Os parâmetros de configuração da seção promoCentral afetam a comunicação do mecanismo com o console promocional. Estes são:

Marca/ParâmetroDescriçãoValor padrão
urlEndereço onde o console promocional está localizadohttp://localhost:8080/promo
do utilizadorusuário para realizar o login OAUTH2 do consoleenviar
senhaChave para realizar o login OAUTH2 do consoleamigo
tempo esgotado

Define o timeout em segundos de comunicação com a consola central se especificado, aplica-se em geral e cancela os outros dois.

-
connectionTimeoutDefine o tempo limite de conexão em segundos com o console Central.-
timeout de comunicaçãoDefine o tempo limite em segundos de comunicação com o console Central.-
ID da empresa

Descomente caso a mensagem não o implemente e seja necessário o envio de um valor fixo

-




Os parâmetros de configuração da seção Extensões afetam a definição das entidades que o mecanismo irá manipular. Os parâmetros são:

Marca/ParâmetroDescriçãoValor padrão
diretórioDiretório onde o arquivo entity.xml será armazenado. Se o diretório não for especificado, o padrão será a raiz do mecanismo.extensões







Os parâmetros de configuração da seção cacjeData são:

Marca/ParâmetroDescriçãoValor padrão
diretórioDiretório de trabalho do cache de dados interno usado pelo mecanismo, se não especificado, o mecanismo usa "./data"dados






Download centralizado de logs do mecanismo no console 


A partir desta versão, um usuário com função de administrador no console Promo pode baixar os logs do mecanismo.

Para isso, deve-se configurar no config.xml do motor e adicionar as informações do FTP:

</ftp>

      <url>[SERVIDOR]</url>

      <porta>[PORTA]</porta]

      <usr>[USER]</usr>

      <senha>[SENHA]</senha>

      <sftp>falso</sftp>

</ftp>

da mesma forma que o logging.properties

Otimização de carregamento do mapa do motor


Esta melhoria consiste em habilitar a utilização de mapas pré-compilados, o que significa que a engine, após processar um mapa xml gerado pelo console, salvará os arquivos compilados de mapas, promoções e índices no diretório indicado, para que se a engine for reiniciado , carregue os mapas compilados em vez de carregá-los do xml, obtendo com isso uma melhoria substancial de tempo em mapas grandes.

No config.xml do engine, foram adicionadas duas entradas para configurar dentro da tag <map>:
<compiled> é um flag que em 'true' habilita o uso de mapas pré-compilados,
<compiledDirectory> indica o diretório onde esses mapas irão ser armazenados mapas compilados. Se não for especificado, o mecanismo usará o diretório 'compilado'.

Exemplo de configuração:

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

No modo de simulação, esta funcionalidade não é utilizada (o motor não a leva em consideração caso tenha sido configurada), pois é esperado que os mapas sejam atualizados com frequência para as simulações.

Para liberar recursos na engine rodando no 4690 ao carregar mapas em engines de backup, a partir desta versão foram adicionados os parâmetros opcionais loaderDelay, loaderStartDelay e map ThreadPriority:

  • loaderDelay – pausa em milissegundos enquanto carrega cada mapa.

  • loaderStartDelay – número de milissegundos para esperar para começar a carregar os mapas após a partida do motor

  • map ThreadPriority: prioridade da thread de carregamento do mapa, valores: entre 1 (prioridade mínima) e 10 (prioridade máxima), sendo 5 a prioridade normal.


Ejemplo

<configuração>
        
        <mapa>
        
        <loaderStartDelay>60000</loaderStartDelay>
        <loaderDelay>500<loaderDelay>
        <map ThreadPriority>1</map ThreadPriority>

        </map>

 </configuração>       




LOGGING.PROPRIEDADES

Neste arquivo você pode configurar os níveis de log do console, sendo o nível SEVERE o nível padrão e ALL o nível de log de depuração.

# 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



Mecanismo de várias lojas


O Motor de Promoções tem a possibilidade de levantar e ler mapas de diferentes diretórios. Cada diretório corresponderá a uma loja diferente e em cada diretório você poderá listar um conjunto de mapas.
O modo multistore é ativado por configuração, sendo desativado por padrão. As mensagens associadas ao mecanismo não serão afetadas pela ativação do modo Multistore.

Configuração de várias lojas

Para que o motor de promoções funcione em modo Multistore, o arquivo "…\conf\Config.xml" deve ser editado e o seguinte tag editado:

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


Onde em <mapIdentifiers></ mapIdentifiers> serão identificadas as pastas pelas quais o motor irá em busca do mapa para avaliar a promoção. Eles devem ser definidos em uma lista separada por vírgulas.
No caso de haver elementos, em <ticketIdentifiers></ticketIdentifiers> deve-se definir apenas "terminal" pois o ticket sempre será identificado pela concatenação de <mapIdentifiers> e <ticketIdentifiers>
Para que as alterações sejam feitas corretamente, elas devem ser salve as alterações e reinicie o mecanismo de promoções.


SEGURANÇA

CONFIGURAÇÃO HTTPS

Atención

  1. Esta funcionalidade APENAS se aplica ao Engine como um servidor REST.

O mecanismo Promo pode ser configurado para funcionar no modo HTTPS.

Para uma compreensão geral dessa forma de trabalho, você pode consultar ( http://en.tldp.org/HOWTO/SSL-Certificates-HOWTO/x64.html ), mas, em última análise, um resumo é:

     1.- O cliente faz uma solicitação ao servidor usando o protocolo https://

     2.- O servidor lhe envia seu certificado e chave pública.

     3.- O cliente verifica se o certificado é emitido por uma entidade de confiança, se é válido e se corresponde ao servidor contactado.

     4.- Se tudo estiver correto, o cliente usa a chave pública obtida do servidor para criptografar uma chave simétrica aleatória e a mensagem http criptografada com essa mesma chave aleatória para enviá-la ao servidor.

     5.- O servidor descriptografa a chave simétrica usando sua chave privada (porque foi criptografada pelo cliente com sua chave pública) e usa essa chave para descriptografar a url e os dados http.

     6.- O servidor gera a resposta http, e então criptografa tudo com a chave simétrica que obteve anteriormente.

     7.- O cliente descriptografa os dados http usando a mesma chave simétrica e continua operando com http normalmente.

Da mesma forma que para o console, o mecanismo precisa de um keystore (keystore) que contenha as chaves pública e privada do servidor, juntamente com um certificado).

Para configurar isso, existem 3 novos parâmetros no arquivo config.xml:

MarcaçãoDescrição
usar httpstrue indica que o mecanismo deve funcionar neste modo.
KeyStoreO nome do arquivo que contém o keystore, especificando seu caminho absoluto
keyStorePasswordA senha do armazenamento de chaves em texto simples.


Um exemplo de configuração seria:

Ejemplo config.xml
<servidor>
        <useHttps>true</useHttps>
        <keyStore>c:\promo\keystore.dat</keyStore>
        <keyStorePassword>Promo2020</keyStorePassword>
        <rest>8888</rest>
        <socket>3000</socket>
</servidor>

  

Para gerar o keystore que inclui o par de chaves e o certificado, os seguintes passos devem ser seguidos:

  1. Neste exemplo vamos gerar um keystore chamado keystore para um alias chamado Jetty com validade de certificado de 365 dias e os algoritmos detalhados. Pedirá informações que levarão o certificado, ao final dê sim para finalizar. A chave que pede na inicialização é uma chave nova e deve ser levada em consideração pois a mesma será configurada no motor. Segundo a página isso funciona apenas para teste pois o certificado não é confiável pelo cliente (navegador por exemplo).

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

  2. Você pode revisar o keystore com;


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

  3. O arquivo csr (solicitação de assinatura de certificado - CSR) é gerado.



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

  4. No engine config.xml, insira os seguintes valores:

     <useHttps>true</useHttps>

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

     <keyStorePassword>ASENHA</keyStorePassword>

Autenticação por usuários e funções


Atención

  1. Esta funcionalidade APENAS se aplica ao Engine como um servidor REST.

A engine Promo em modo REST aceita autenticação de conexão por meio de Usuários e senhas. Para habilitar a autenticação na engine por meio de usuário e senha, deve-se ativar a seguinte configuração no arquivo config.xml:

Para configurar isso, existem novos parâmetros no arquivo config.xml:

MarcaçãoDescrição
useRoleAccessRestrictionstrue indica que o mecanismo deve funcionar neste modo.
definição de usuáriosO nome do arquivo que contém o usuário e o armazenamento de chaves, especificando seu caminho absoluto
diretório de configuraçãoO caminho completo onde o arquivo web.xml de configuração de segurança está localizado. Se o arquivo não existir, os valores padrão serão obtidos com um único usuário e função.


Um exemplo de configuração seria:

Ejemplo config.xml
<servidor>
	<useRoleAccessRestrictions>false</useRoleAccessRestrictions>
	<usersDefinition>./conf/engineUsers.properties</usersDefinition>
	<configurationDirectory>./conf</configurationDirectory>
</servidor>


Arquivo de usuários (engineUsers.properties)

O formato do arquivo do usuário segue o seguinte padrão:

<username>:<espaço>MD5:<chave como md5 hash>,<role1>,<role2>,<role n>

Então vamos imaginar configurar 3 usuários: admin, sender e user. Sua chave criptografada (MD5) pode ser obtida em: http://www.md5.cz/

Atención

Nota de segurança: lembre-se de que, como a codificação de nome de usuário e senha é base64, eles podem ser convertidos em string sem problemas; portanto, é melhor considerar o uso dessa funcionalidade em conjunto com https.


O arquivo de usuários seria composto como:

Ejemplo config.xml
admin: MD5:4f4ea4182f8cbb5730694fb4866804ae,role-admin,role-sender
remetente: MD5:4f4ea4182f8cbb5730694fb4866804ae,remetente de função
usuário: MD5:4f4ea4182f8cbb5730694fb4866804ae,role-user,role-min

Vamos pegar o usuário admin, com a senha promo2020 e as funções admin e sender.

Funções do usuário (engineUsers.properties)

As funções são declaradas no arquivo web.xml e seguem a seguinte estrutura:

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>Mecanismo promocional</display-name>
 <login-config>
 <auth-method>BASIC</auth-method>
 <realm-name>promoEngine</realm-name>
 </login-config>
 <função de segurança>
 <role-name>role-admin</role-name>
 </security-role>
 <função de segurança>
 <role-name>remetente da função</role-name>
 </security-role>
 <função de segurança>
 <role-name>role-user</role-name>
 </security-role>
 <restrição de segurança>
 <coleção de recursos da web>
 <web-resource-name>Mecanismo</web-resource-name>
 <url-pattern>/engine/*</url-pattern>
 </web-resource-collection>
 <auth-constraint>
 <role-name>role-admin</role-name>
 <role-name>remetente da função</role-name>
 </auth-constraint>
 </security-constraint>
</web-app>


 Manutenção - Motor

Depurando arquivos de log

Conforme mencionado acima, os arquivos onde são registrados os eventos que ocorrem no motor de promoções são armazenados em um ou vários arquivos de log. Esses arquivos podem aumentar de tamanho no disco rígido, ocupando espaço que o usuário pode usar para outros fins. Portanto, pode ser necessário excluir alguns desses arquivos para liberar espaço.
Para excluir os arquivos de log será necessário consultar o arquivo de configuração do logging ( ../conf/logging.propertiesl ). Ele especificará as políticas de log, arquivos e diretórios destinados a essa finalidade.

erros de inicialização

A seguir estão os erros que podem ocorrer ao iniciar o mecanismo de promoções:

  • java.io.FileNotFoundException: \log\669comm.log (O sistema não pode encontrar o caminho especificado)
    • Indica um erro na configuração do arquivo de log. O erro indica que não foi possível encontrar o caminho ou arquivo '\log\669.comm.log'. Para corrigir isso, é recomendável revisar o arquivo de configuração config/log4j.xml.


  • Exceção no thread "principal" java.lang.NoClassDefFoundError: …
    • Este erro ocorre quando há erros no classpath.


  • java.net.BindException: Endereço em uso: JVM_Bind
    • Este erro ocorre quando a porta de comunicação a ser utilizada pelo Promotion Engine está reservada ou em uso por outro aplicativo. Isso só pode acontecer em uma comunicação TCP/IP. Para resolvê-lo, é recomendável determinar qual é o aplicativo que usa a porta e fechá-lo ou configurá-lo para usar outro, ou modificar a configuração do Promotion Engine para que estabeleça suas comunicações através de uma porta diferente (através do arquivo de configuração , propriedade promoCommunication .port ).

erros de processamento

Durante sua operação, o mecanismo de promoções pode relatar erros semelhantes aos listados abaixo:

  • [promo.MIDDLEWARE] PROMOENGINE VALIDATION ERROR: [P01] combo-component: uso inválido de critérios de ordem com este conjunto
    Indica que a validação falhou para algum mapa que você está tentando carregar. O valor entre colchetes indica em qual promoção ocorreu o erro. Caso os colchetes não existam, significa que ocorreu o erro na definição da coexistência das promoções encontradas no mapa. O texto após os colchetes descreve o tipo de erro produzido. Além disso, antes desta linha de log, é encontrado qual mapa foi tentado carregar.


  • [promo.MIDDLEWARE.MESSAGING] Mensagem não aceita: Mensagem de entrada de análise de exceção do analisador: O conteúdo não é permitido no prólogo.
    Indica que foi recebida uma solicitação ou ticket que não respeita o formato definido para a mensagem. Nestes casos, o motor irá responder ao terminal que enviou o pedido uma mensagem de resposta com um código de erro (ver "Manual de Mensagens – Promo").


  • [promo.MIDDLEWARE] Não há PromoEngine disponível para processar esta solicitação.
    Esta mensagem é emitida quando o Promotion Engine recebe uma solicitação indicando o uso de uma versão de mapa inexistente. Como no caso anterior, como a solicitação não pode ser resolvida, ela responderá com uma mensagem que especificará um código de erro (consulte "Manual de referência técnica – Promo API").


  • [promo.MIDDLEWARE.MESSAGING]- AVISO: TICKET INVÁLIDO: cvc-datatype-valid.1.2.1: 's250.0' não é um valor válido para 'double'.
    Indica que uma solicitação ou ticket foi recebido com um valor ou tipo de dados inválido. Neste caso, o motor dará uma mensagem de resposta com um código de erro (ver "Manual de Mensagens – Promo").


Documentação relacionada

Informações de configuração

Existem parâmetros de configuração que podem ser modificados para personalizar o comportamento do PROMO.
Alguns destes parâmetros só estarão disponíveis na consola PROMO principal e outros poderão ser editados a partir da consola PROMO de cada empresa.
Esses parâmetros são encontrados no Console PROMO, Menu " Administração " >> " Informações de configuração " e são:


Configurações disponíveis para o Usuário Principal :


MóduloDicaValorDescrição
1promoçãosistema operacionaljanelasSistema operativo
2promoçãosabão.urlhttp://10.4.13.108:8280/bridge/services/bridgeCoreSOAP?wsdlEndereço do serviço da Web da ponte.
3Negóciosidiomaes_AR (Argentina)Geral: idioma do aplicativo (tags)
4Negóciosdiretório de backupC:/síntese/promo/backupGeral: cópia de segurança
5NegóciosmongoDBDirectoryC:/synthesis/promo/mdb/binGeral: diretório do banco de dados
6NegóciosmongoDBHostnamehost local

Hospedeiro do banco de dados. No caso de ter uma configuração replicaset, o formato de configuração é: "replicaName/node1:port1,node2:port2"

Observe que o  campo mongoDBPort deve ser definido vazio ao usar a função Backup em Clusters

7NegóciosmongoDBPort27017Porta do banco de dados. No caso de replicaset este parâmetro é ignorado.
8Em geralauditDateCleaner30Remova os registros das tabelas de importação.
9Em geralimportReceiptDateCleaner30Remova os registros das tabelas de importação.
10Em geralticketGeneratorSeconds2DEMO: número de segundos de geração de tickets para demos
onzeNegócioscaracteres Máximo Alfabético vinteNúmero máximo de caracteres alfabéticos
12Negócioscaracteres Máximo Numérico vinteNúmero máximo de caracteres numéricos
13NegócioscharsMaximumQuantity vinteNúmero máximo de caracteres totais
14Negócioscaracteres Máximo Especial vinteNúmero máximo de caracteres especiais
quinzeNegócioscaracteresMinimumQuantity 7Número mínimo de caracteres totais
161EmpresacharsMinimumUser 3Número mínimo de caracteres no nome de usuário
17NegóciosmaximumLoginFailedCount 3Número máximo de tentativas sucessivas de login com falha
18NegóciosnúmeroQuantidade 1Número mínimo de caracteres numéricos
19NegóciospasswordExpirationDays 30Dias de expiração da senha do usuário
vinteNegóciosspecialCharsQuantity 0Número mínimo de caracteres especiais
vinte e umNegóciosstringQuantidade 1Número mínimo de caracteres alfabéticos
22NegóciosuserBlockDays 90Bloqueio de usuário - dias de inatividade
23NegóciosuserLockTime 30Período de bloqueio da conta do usuário (em minutos)
24promoçãoengineSalesPathC:/síntese/promoção/motor/vendas/Diretório do Mapa do Motor



Configurações disponíveis para o usuário administrador. de cada empresa :

MóduloDicaValorDescrição
cuponscaminho do código de barrasC:/synthesis/promo/images/barcode/Diretório de imagens de código de barras
cuponscódigo de barrashttp://localhost:8080/promo/assets/barcode/URL de imagens de códigos de barras
promoçãodiretório de arquivosC:/síntese/promo/catálogos/napse\Importação do catálogo: diretório onde ficarão os arquivos
NegóciosdinheiroSímbolo$símbolo de moeda
cartões de fidelidadequantidade máx.999Número máximo de cartões a serem gerados para cada operação de registro massivo
cartões de fidelidadeisEditableAfterCardsGenerationfalsoPermitir a edição do tipo de cartão após a geração de um cartão ativo
cartões de fidelidadeprefixo.ativofalsoUse prefixo de número incremental para tipos de cartão
cuponsCÓDIGO128PPPSSSTTTnnnnnnnnnnnnnnnnnnnnFormato de código de barras CODE128
cuponsEAN13PPPSSSTTTnnncFormato de código de barras EAN13
cuponsUPCAPPSSSTTTnncFormato de Código de Barras UPCA
cuponsquantidade máx.999Quantidade máxima de geração de cupons em massa por transação
cuponsprefixo.ativoverdadeiroUse prefixo de número incremental para tipos de cupom
cuponsquantidadeFormato%.02fFormato em que os valores dos cupons são impressos
promoçãométodo de aplicaçãoresumePromoções: valor padrão no método apply
promoçãométodo de divisãoproporcionalPromoções: valor padrão no método split
promoçãopreço da divisãopreço-benefícioPromoções: valor padrão o tipo de preço beneficiado
promoçãofileList.txt.Separator,Importação de Catálogo: Guia
promoçãofileList.xls.ColStart0Importação de Catálogo: Iniciar Coluna de Importação de Catálogo
promoçãofileList.xls.DirectionverticalImportação de catálogo: método de importação
promoçãofileList.xls.RowStart0Importação de Catálogo: Iniciar Linha de Importação de Catálogo
promoçãoseparador|Importação de Catálogo: Separador de Colunas
promoçãoterminadoEmErroverdadeiroEncerra a importação do catálogo, se pelo menos um falhar. Se falso, não encerre e relate catálogos com falha
promoçãoatualizarTamanho100Importação do catálogo: tamanho do upload
Negócioscaracteres Máximo Alfabético vinteNúmero máximo de caracteres alfabéticos
Negócioscaracteres Máximo Numérico vinteNúmero máximo de caracteres numéricos
NegócioscharsMaximumQuantity vinteNúmero máximo de caracteres totais
Negócioscaracteres Máximo Especial vinteNúmero máximo de caracteres especiais
NegócioscaracteresMinimumQuantity 7Número mínimo de caracteres totais
NegócioscharsMinimumUser 3Número mínimo de caracteres no nome de usuário
NegóciosmaximumLoginFailedCount 3Número máximo de tentativas sucessivas de login com falha
NegóciosnúmeroQuantidade 1Número mínimo de caracteres numéricos
NegóciospasswordExpirationDays 30Dias de expiração da senha do usuário
NegóciosspecialCharsQuantity 0Número mínimo de caracteres especiais
NegóciosstringQuantidade 1Número mínimo de caracteres alfabéticos
NegóciosuserBlockDays 90Bloqueio de usuário - dias de inatividade
NegóciosuserLockTime 30Período de bloqueio da conta do usuário (em minutos)
promoçãodistribuiçãoThreadPool10Número de threads criados para distribuição simultânea
promoçãocaminhoC:/síntese/promo/importar/Diretório para a importação de Mapas de Promoções.
promoçãobenefício.ativofalsoUse campo numérico incremental para benefícios
promoçãopromoção.código.ativofalsoUse o campo numérico incremental para promoções
cuponspadrão.de[email protected]E-mail padrão com o qual os e-mails serão enviados
cuponsdefault.insertImagesfalsoIndica se aceita ou não códigos de barras
cuponsdefault.subjectCorreio de teste promocionalassunto padrão
cuponshospedarsmtp.gmail.comHost do provedor de e-mail
cuponssenha************Senha da conta de e-mail
cuponsporta
porta de conexão
cuponssmtp.authverdadeiroHabilitar Autenticação SMTP
cuponssmtp.port587porta SMTP
cuponssmtp.socketFactory.classjavax.net .ssl.SSLSocketFactorynome da classe SSLSocketFactory
cuponssmtp.socketFactory.fallbackfalsofallback socketFactory
cuponssmtp.socketFactory.port465porta SMTP socketFactory
cuponssmtp.starttls.enableverdadeiroAtivar Iniciar TLS
cuponsnome de usuário[email protected]Usuário ou nome da conta de e-mail
promoçãousar.item.catálogo1Mapas: algoritmo de cálculo de colisão
promoçãocleanEngineStatusHistory7Tempo em dias que o console manterá o histórico de status do motor
promoçãoimplantadoEditável.enabledfalsoHabilita a edição da promoção com o status Deployed.
promoçãopromoção.estadodomotor.comunicação600Tempo decorrido desde o último relatório de status do mecanismo ou do console para ser considerado offline. Se você não relatou nesse período, é considerado offline.
promoçãopromoção.imagens.altura250Promoções: alto padrão de imagens
promoçãopromoção.imagens.caminhoC:/síntese/promoção/imagens/promoção/Promoções: diretório para armazenamento de imagens
promoçãopromoção.imagens.largura250Promoções: largura padrão das imagens
promoçãoreportParticipantsfalsoPromoções: Valor global que determina se a promoção reporta participantes
promoçãoreportParticipantsVisibleverdadeiroDetermina se a opção de participantes do relatório é exibida ou não
promoçãométodo de pagamentoNOTHING=Não calcular promoções por meio de pagamentoPromoção codificada: NOTHING, ON_ITEMS_PAID, ON_PAYMENT_MADE
promoçãotodo.de.pagamento.emItemsPaid.classcom.synthesis.promo.engine.partialPayment.hardcoded.promotion.PartialPaymentsGSPromotionPromoção Codificada: nome da promoção por meio de pagamento por itens.
promoçãométodo.de.pagamento.emItemsPaid.namePromoções baseadas em itensPromoção Codificada: nome da promoção por meio de pagamento por itens.
promoçãomethod.of.payment.onItemsPaid.tenderMethodPropertyKeypromo.configuration.tenderMethod.itemMethodPromoção Codificada: nome da promoção por meio de pagamento por itens.
promoçãotodo.de.pagamento.onPaymentMade.classPagamentos ParciaisSSPromoçãoPromoção Codificada: nome da promoção por meio de pagamento por itens.
promoçãométodo.de.pagamento.onPaymentMade.namePromoções baseadas em pagamentoPromoção Codificada: nome da promoção por meio de pagamento por itens.
promoçãomethod.of.payment.onPaymentMade.tenderMethodPropertyKeypromo.configuration.tenderMethod.paymentMethodPromoção Codificada: nome da promoção por meio de pagamento por itens.
promoçãoldapAuthenticationfalsoDetermina se deve autenticar em um serviço de diretório
promoçãoldapAuthentication.autheticationModeDIGEST-MD5É o modo de segurança que autentica, use "DIGEST-MD5" como valor padrão, pois esse modo criptografa as informações no serviço de diretório.
promoçãoldapAuthentication.urlServer
URL do servidor no qual autenticar.
promoçãotestEnginePORT3001Simulação: porta na qual o motor funciona para simulação
promoçãotestEngineRetries2Simulação: novas tentativas de conexão do motor
promoçãotestEngineSalesPathC:/síntese/promoção/motor/vendas/Simulação: caminho do motor
promoçãotestEngineTimeout8000Simulação: timeout da conexão do motor
Redes sociaisfacebook.appId1068803576479010id do aplicativo do facebook
Redes sociaisfacebook.permissions[publish_actions, manage_pages]Permissões de aplicativos do Facebook
Redes sociaisfacebook.secretdfa5ffe6aa6306fc49472dbcba3c16a9Chave secreta do aplicativo do Facebook
Redes sociaistwitter.accessToken2848331890-D2geAfGVL9u2bD6TrD1LxH5fUsXlBnHLa3FOziKtoken de acesso do twitter
Redes sociaistwitter.accessTokenSecretNHd6JbcoLaBK5QEfrKgmOaQwwxmbwlEtOYlQni3Fx6H3yToken secreto de acesso ao Twitter
Redes sociaistwitter.consumerKeyHTPKOHdatasoDsm2Ud7ULnUapAKFXoCChave do consumidor do Twitter
Redes sociaistwitter.consumersecretX1plqdQWK0nRCGz6KFxm37IZTzp4O7w9BjLSspIr4mYWLZsrOySenha secreta do consumidor do Twitter
cartões de fidelidadecontinueOnErrorverdadeiroPermitir continuar a importação do catálogo de fichas em caso de erro
cartões de fidelidadeopção de inserçãoINSERT_OR_UPDATEDescreve a opção de inserção para importação de catálogo de fichas
transaçõescleanTransactions90Número de dias que os logs de transações permanecerão no banco de dados
Lista de preçospriceList.distribution.items.batch.size1000Quantidade de Preços a enviar ao motor desde a consola na distribuição de preços (por comunicação).
Lista de preçospriceList.job.cleanPriceListSchedule.time30Número de dias para manter os itens da lista de preços futuros processados
Lista de preçospriceList.lockForUpatequinzeMinutos para poder desbloquear a lista Zero no processo de descanso
Lista de preçospriceList.mongo.bulk.insertOrUpdate200Número de registros a inserir por lote no processo restante



Pode haver alterações correspondentes a:

  • atualização do console de administração (se houver atualização, será entregue a documentação correspondente e a forma de instalação),
  • depuração de backups de banco de dados.

NOTA

Lembre-se de que, para realizar a manutenção, você deve parar o aplicativo, fazer as alterações e iniciá-lo novamente.


Depuração de arquivo de backup de banco de dados

O aplicativo registra um backup automático diário do banco de dados MongoDB. Por isso é necessário fazer alguma manutenção, que consiste em limpá-los periodicamente para que a pasta de backup não ocupe muito espaço em disco.


Mascarar senha do banco de dados

A chave de banco de dados mascarada é gerada pela ferramenta de criptografia promocional que será fornecida.

O programa pega a chave a ser criptografada como entrada e retorna a chave criptografada para ser colocada no arquivo promoplus.properties em uma entrada chamada grails.mongodb.encryptedPassword (por exemplo, grails.mongodb.encryptedPassword=lYYBAfxLR40=).

No caso de usar grails.mongodb.encryptedPassword, você deve considerar comentar ou remover o anterior, grails.mongodb.password, pois se ambos existirem, sempre usará grails.mongodb.password. Se o arquivo promoplus.properties não existir, o valor padrão será v9vbhV.

Para criptografar uma chave, você deve usar promo-crypto-tool da seguinte maneira em um console: 


java -jar <nome do jar> <senha para criptografar>, por exemplo, java -jar promo-crypto-tool-1.0.0.jar abcdefg

o bem

java -jar <nome do jar> e ao ser executado, de forma interativa, pedirá a senha.


Em ambos os casos, a senha criptografada será obtida na tela.

Ao iniciar o servidor, será utilizado Datasource.groovy, que mantém a chamada a assignMongodbPassword() que por sua vez chama o descriptografador para obter a senha para atribuir ao  grails .mongodb.password.


NOTA

Deve-se levar em consideração a limitação do algoritmo tripledes, que aceita apenas caracteres us-ascii como entrada do criptografador. O uso de caracteres diferentes resulta em senhas criptografadas inválidas.


NOTA 2

Presume-se que se existir, no arquivo promoplus, uma senha não criptografada  (grails.mongodb.password),  a entrada da senha criptografada  (grails.mongodb.encryptedPassword) não deve existir  e vice-versa. A entrada indesejada pode ser excluída ou comentada.


Configurações de redes sociais

Para trabalhar com redes sociais, o PROMO possui uma série de opções de configuração que serão descritas a seguir. Importa ainda esclarecer que os serviços de redes sociais estão em constante evolução e alteração, pelo que se faz referência aqui ao site do serviço em causa para obter informação atualizada a este respeito.

configurar facebook

A partir do console de cada empresa, acessando com o usuário administrador, e acessando " Administration Configuration Information" você encontrará as seguintes configurações que serão necessárias completar para a correta publicação na rede social.


  • Geração de aplicativos do Facebook

Para usar a publicação no Facebook, você deve entrar em https://developers.facebook.com/ , registrar-se como desenvolvedor de aplicativos do Facebook e adicionar um novo aplicativo seguindo as etapas indicadas na página.
Ao criar um aplicativo para o Facebook, ele começa em um estado de desenvolvimento e, para fazer publicações, você deve conceder permissões de " Administrador " ao usuário do FB que fará as publicações.

Por outro lado, se você deseja compartilhar ou que outro usuário possa fazer publicações, é necessário adicioná-lo ao grupo de contatos (amigos) e dar-lhe permissões de " Administrador " .

Ao acessar a URL indicada acima, você acessará a seção " Facebook for Developers " do Facebook.


Clique em "Meus aplicativos".


Uma vez lá, você terá que clicar no botão verde " Criar aplicativo ".


O seguinte pop-up será apresentado onde você deve selecionar o tipo de aplicativo que deseja criar. Neste caso, selecionaremos " Negócios " e " Continuar " deve ser pressionado.



No pop-up a seguir, você deve inserir os dados solicitados para nomear o aplicativo que está sendo criado e pressionar o botão " Criar aplicativo " .


Uma vez criado o aplicativo, a seguinte tela será exibida, de onde será possível acessar, na opção " Configurações " >> " Básico ", os dados de identificação do aplicativo recém-criado.

Nota

Os dados presentes nesta imagem são meramente ilustrativos e devem ser substituídos pelas credenciais adquiridas com os usuários de desenvolvimento de cada aplicativo.

Os dados a considerar e completar nesta seção serão:

  • Identificador do app : Será necessário no Promo poder configurar os dados de conexão ao app do Facebook ( Os dados mostrados nas imagens são meramente ilustrativos e não são válidos para a configuração de nenhum app )
  • Chave secreta do aplicativo : Será necessário no Promo para poder configurar os dados de conexão ao aplicativo do Facebook. A senha será exibida mascarada e será solicitada a senha do usuário do FB para exibi-la.
  • Nome de exibição : será o nome do aplicativo que será mostrado aos usuários do FB.
  • Domínio do aplicativo : O domínio onde o Promo está localizado deve ser indicado.
  • E-mail de contato : O e-mail de contato do aplicativo deve ser indicado.
  • URL da Política de Privacidade : A política de privacidade da empresa que você deseja publicar no FB da Promo deve ser indicada.


Será necessário ter uma página de Facebook cadastrada e associada à conta de usuário do Facebook para fazer publicações nesta página.

No perfil de usuário com o qual foi gerado o aplicativo do Facebook, você deve clicar em " Páginas " que fica à esquerda da página.


A seguinte página será apresentada, onde você deve clicar em " Criar nova página "


Ao clicar em " Criar uma nova página ", a seguinte tela será exibida, onde as informações solicitadas na margem esquerda devem ser preenchidas.


Uma vez gerada a página e inseridos os dados de configuração fornecidos pelo aplicativo gerado, as promoções podem ser publicadas na rede social. (ver Manual do Usuário Promo 7 - " Distribuição " >> " Redes Sociais ")

NOTA

Você deve ser administrador tanto da página quanto do aplicativo gerado no Facebook para poder fazer publicações de PROMO. 


IMPORTANTE

Https obrigatório para publicação no Facebbok

O Facebook só se integra com sistemas que funcionam com https. Promo terá que ter seu wildfly configurado com https


Para configurar o wildfly com https será necessário editar o arquivo " standalone.xml " localizado em ...\synthesis\promo\appserver\standalone\configuration


Lá será necessário adicionar as seguintes tags em:


<security-realm name="ApplicationRealm"/>

Para Promo sobre Wildfly 9
<security-realm name="ApplicationRealm">
   <identidades do servidor>
      <ssl>
         <keystore path="server.keystore" relativo-to="jboss.server.config.dir" keystore-password="Promo2020" alias="jbossWildFly" key-password="Promo2020" />
      </ssl>
...
</identidades do servidor>



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>



<nome do servidor="servidor padrão"/>

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


Também será necessário gerar e colocar o arquivo "server.keystore" no diretório ...\synthesis\promo\appserver\standalone\configuration. (Como são chaves de criptografia, elas devem ser geradas no ambiente de instalação. Do Napse, a ferramenta de teste Java "keytool" foi usada para gerá-lo)


Depois que as alterações forem salvas no standalone.xml e o arquivo "server.keystore.txt" tiver sido colocado no diretório indicado, o wildfly deverá ser reiniciado para que as alterações sejam realizadas corretamente.





configurar twitter

A partir do console de cada empresa, acessando com o usuário administrador , e acessando Administração >>  Informações de configuração, você encontrará as configurações que serão necessárias concluir para a correta publicação na rede social.


  • Geração de perfil do Twitter

A URL https://developer.twitter.com/ deve ser acessada  e a seguinte tela será exibida:

Clique no botão correspondente ao usuário logado no Twitter, um menu será exibido e clique em "Aplicativos"


A seguinte tela será exibida e você deve clicar em "Criar um aplicativo"


Será necessário preencher os campos com os dados solicitados para criar o aplicativo com base nas políticas de segurança do Twitter.

Preencha todos os campos, clique em "Criar" e serão exibidas as configurações disponíveis para a nova aplicação gerada:

Para obter os Ids e Tokens, você deve clicar na aba "Chaves e Tokens" onde serão exibidos os dados necessários para configurar corretamente as permissões de acesso do Promo.

Depois de inseridos os dados de configuração fornecidos pelo aplicativo gerado, as promoções podem ser publicadas na rede social. (ver  Manual do Usuário Promo 7  - " Distribuição " >> " Redes Sociais ")

IMPORTANTE

Imagens com tamanhos de mecanismo de 1 MB não podem ser carregadas em redes sociais.



Integração com Syslog/QRADAR

A implementação do envio de eventos para o QRadar é baseada no sistema de logging log4j utilizado pela Promo, adicionando um syslog appender específico “SysLogAppender” disponível no pacote log4j, e o desenvolvimento de uma classe que disponibiliza um serviço para este fim denominado “SysLogService” que formata as mensagens em outra classe "SysLogMessageFactory".


Para ativar o envio para o QRadar, deve-se editar o arquivo de configuração de criação de log "log4j.xml" inserindo as seguintes entradas antes do 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>


Altere o valor "myserver:myport" no parâmetro " syslogHost " para aquele correspondente ao endereço ip e porta do servidor syslog do QRadar. Exemplo: localhost:514

Em seguida, reimplemente o console Promo para que ele assuma a configuração.


Tipos de eventos:

Os eventos que serão enviados ao QRadar em primeira instância são aqueles correspondentes ao usuário: login, logout, falha no login, novo usuário, modificação do usuário.


Parâmetros de configuração do ambiente

Esta seção lista as opções de configuração que afetam o funcionamento do ambiente como um todo e é feita a partir do arquivo promoplus.properties.

ParâmetroValor padrãoDescrição
promo.general.cvvOnlyForConsumefalsoConsulte Validar CVV apenas quando o consumo for feito no Cartão Fidelidade
promo.delimitersespaçoConsulte Atributos de configuração com espaços em condições simples
promo.allowNonExistingCustomersfalsoConsulte o cadastro do cliente durante a transação
promo.transaction.batch.size1000Número máximo de transações que serão processadas cada vez que a tarefa agendada for executada (padrão 30 seg.). Este parâmetro pode afetar o desempenho do sistema.

promo.general.pauseQuartz

falsoEm ambientes multinodo permite desativar a execução de tarefas agendadas em qualquer um dos referidos nós. Esta opção permite que nós com baixa capacidade de processamento executem tarefas que requerem mais recursos.
promo.lv .enableUpsertClientesverdadeiroPermite a criação ou atualização de clientes durante o LoyaltyValidation. Ou seja, quando um cliente é enviado para ser validado e os dados chave são especificados, será feita uma tentativa de criar ou atualizar o referido cliente.
promo.lv .returnCustCardsverdadeiroIndica que a resposta a uma validação de fidelidade do cliente deve retornar os cartões associados a ela.
promo.lv .returnCustCuponsverdadeiroIndica que a resposta a uma validação de fidelidade do cliente deve retornar os cupons associados a ela.
promo.lv .returnSegmentsverdadeiroIndica que a resposta a uma validação de fidelidade do cliente deve retornar os segmentos associados a ela.
promo.lv .returnContractsverdadeiroIndica que a resposta a uma validação de fidelidade do cliente deve retornar os contratos associados a ela.
promo.backupOptions--gzipindica que o backup será compactado no nível da coleção. Se tiver um valor diferente, a base não será compactada no nível da coleção.
promo.card.clientesNão nomeadosverdadeiroPermite que o CPF seja considerado como se fosse um cartão nomeado na validação.


1. Valide o CVV apenas quando o consumo for feito no Cartão Fidelidade

Disponibiliza-se a possibilidade de poder indicar por configuração que o CVV de um cartão Fidelidade só é validado quando são consumidos saldos no mesmo.

O cartão deve ter a opção CVV necessária ativa em seu tipo de cartão.

Para habilitar esta opção, o parâmetro  promo.general.cvvOnlyForConsume = true deve ser definido no arquivo " promoconfig.properties ".


2. Atributos de configuração com espaços em condições simples

No Promo 7, por padrão, os atributos com espaços não podem ser inseridos nas Condições Simples. Ao inserir o espaço, assume o nome do atributo inserido como completo, como quando a barra de espaço é pressionada:

Por configuração pode ser alterado e permitirá inserir espaços em branco nos atributos inseridos. Para isso você deve editar o arquivo promoplus.properties e adicionar a seguinte linha: 

promo.delimiters = no space

Com esta configuração, para que interprete que o elemento terminou de escrever, deve-se pressionar a tecla tab.


Se você inserir o parâmetro:  promo.delimiters = space  funciona como vem por padrão, o que não permite inserir espaços dentro do texto inserido nos atributos.


3. Cadastro do cliente durante a  transação

Para que os clientes sejam cadastrados no momento do processamento de uma transação, o seguinte atributo deve estar habilitado no arquivo de configuração do Promo Console (“ momoplus.properties ”):

 # Permite o registro do cliente em tempo real

promo.allowNonExistingCustomers = verdadeiro

Depois de atualizado, o Wildfly deve ser reiniciado para que as alterações sejam feitas corretamente.

Os clientes serão criados usando o status " LealityValidation " no caso de enviar os dados mínimos e ao mesmo tempo Promo detectar que o cliente não existe. Os dados mínimos mencionados são (marcados em vermelho): 

<customer-add seq="1" id="10090504" identifier="10090504" tipo ="test" de nome ="pepe" último ="rodrigues" identificador de="cpf"  nome e-mail tipo ="mimail@test.com" />

<?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 mais informações consulte "Manual de Integração 7.2 - Engine" - LoyaltyValidation.


Informações do gerente

A partir de 7.2.3, será usado o Director versão 2.0 que não é compatível com a versão 1


Resolução de problemas

Durante a operação, o console de administração pode relatar erros inesperados. Erros que possam ocorrer durante o uso do aplicativo serão reportados por um pop-up vermelho indicando a causa do erro. Além disso, o log do aplicativo encontrado em \synthesis\promo\log indicará mais detalhes sobre ele.
Se o erro for devido a um problema de permissão ou página não encontrada, será informado por meio de uma tela de esclarecimento com o problema ocorrido.


Desinstalar


Para prosseguir com a desinstalação do console e do mecanismo PROMO, você deve:

1- Baixar serviços

    • PromoSImEngine
    • Wilfly
    • MongoDBGenericName
    • PromoEngine (se o mecanismo foi instalado)
    • PromoEngineDirector (se o mecanismo foi instalado)


2- Exclua o diretório C:\Synthesis (caminho onde o console foi instalado)

3- Desinstale o MongoDB

4- Exclua os serviços de PromoSinEngine, Wilfly e MongoDB, e PromoEngine, PromoEngineDirector se o mecanismo foi instalado


Reversão de atualizações em caso de problemas no processo

Caso ocorra algum problema durante a atualização de uma versão de console ou motor, você deve baixar os serviços envolvidos e colocar o arquivo .war ou .jar anterior, dependendo se é uma atualização de console ou motor respectivamente, e refazer o upload do Serviços.

Após a restauração do sistema, entre em contato com o Atendimento ao Cliente para informar o ocorrido com o processo de atualização.



Apêndice A: Autenticação de usuário externo (SAML2)


Através da implementação do SAML2 no PROMO, será alcançada a integração do PROMO com um sistema de autenticação externo para usuários do console PROMO.

Deve-se levar em consideração que dentro do console existem funções de usuário que permitem o acesso às diferentes funcionalidades que devem ser mantidas dentro do console. 

 Sempre será necessário ter o usuário criado na base para poder acessar o console e realizar a autenticação.


IMPORTANTE

Ao utilizar um sistema de autenticação externo, os usuários cadastrados no console não devem possuir nenhum tipo de configuração de política de segurança PROMO.


Para promo usar saml2, os arquivos de propriedades correspondentes devem ser incluídos no diretório onde os .properties permanecem. Estes são

  1. saml.properties - Arquivo de configuração principal.
  2. saml-keymanager-passwords.properties
  3. saml-metadata-providers.properties - Arquivo correspondente à configuração do provedor de identidade.
  4. saml-metadata-sp-defaults.properties - Arquivo correspondente à configuração que o PROMO utilizará para gerar seu arquivo xml de metadados.

NOTA

A operação do console ocorre no login ou logoff. Ao usar saml, o login PROMO é substituído pelo login do provedor de identidade.


Considerações de teste de integração

Para testes,  https://capriza.github.io/samling/samling.html foi usado 


  1. Registro de usuários no console PROMO através do serviço de descanso correspondente ( createOrUpdateUsers ) Eles também podem se registrar manualmente no console. Em ambos os casos, deve-se levar em conta que não deve ser atribuída nenhuma restrição aos usuários em termos de políticas de segurança próprias da PROMO.
  2. Obtenha seu xml de metadados no menu de metadados idp ( https://capriza.github.io/samling/samling.html# )  e salve-o em um arquivo xml (de preferência  idp.xml ). Deve ser apontado a partir da configuração por propriedades.
  3. Salve o arquivo  idp.xml em  C:\synthesis\promo\ idp.xml
  4. Edite o arquivo saml-metadata-providers.properties especificando  o caminho absoluto onde o arquivo idp.xml  foi colocado  
  5. Inicie PROMO (Wildfly) com as quatro propriedades  correspondentes a saml.
  6. Gere o xml PROMO acessando http://localhost:8080/promo/saml/metadata , salve em um xml (de preferência  sp.xml ).
  7. Sp.xml salvo em  C:\synthesis\promo\ sp.xml
  8. Edite o arquivo saml.properties especificando  o  caminho absoluto onde o arquivo sp.xml foi colocado   
  9. Edite o arquivo saml-metadata-sp-defaults.properties especificando o caminho promocional http://localhost:8080/promo 
  10. Parar PROMO (wildfly)
  11. Exclua os diretórios \temp e \data encontrados no diretório \standalone da instalação do PROMO.
  12. Iniciar PROMO (wildfy)
  13. Ao acessar o console PROMO, aparecerá a tela de amostra ao invés da tela de login. Esta tela permite configurar o que você deseja enviar para a operadora, que neste caso é a PROMO. Basta modificar, dentro de " Saml Response Properties " o campo " Name Identifier " com o nome do usuário com o qual deseja acessar o PROMO.
  14. Pressione "PRÓXIMO"



  15. Na próxima tela que aparecer, pressione "Post Response"



  16. Será exibido o console PROMO, logado com o usuário informado:


Caso o usuário não corresponda a nenhum usuário cadastrado no PROMO, o login falhará, e você retornará à tela do ponto 13 para tentar novamente inserir um usuário válido e conseguir fazer o login no PROMO.

Se o usuário for um usuário existente, ele fará login no PROMO sem problemas e a tela de Gerenciamento de promoções será exibida.


IMPORTANTE

Saml2 trabalha com a primeira empresa existente e não com a principal. Todos os usuários serão verificados com a referida empresa. No caso do acesso com a empresa Síntese, o usuário síntese foi reservado, ou seja, caso precise acessar a empresa principal, deverá utilizar o usuário síntese. O cliente deve registrar este usuário previamente com seu provedor de identidade.



Características:

  • saml.properties , você deve manter o caminho absoluto para o arquivo de metadados do provedor de serviços.

    #
    # 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 = memberOf
    grails.plugin.springsecurity.saml.metadata.sp.file = C:\\synthesis\\promo\\sp.xml
    grails.plugin.springsecurity.saml.metadata.sp.alias = promo_saml
    grails.plugin.springsecurity.saml.responseSkew = 60
    grails.plugin.springsecurity.saml.idpSelectionPath = /
    grails.plugin.springsecurity.saml.loginFormUrl = /saml/login
  • saml-metadata-providers.properties , chave de ping, deve conter o caminho absoluto para o arquivo de metadados do provedor de identidade.

    ping=C:\\synthesis\\promo\\idp.xml
    
  • saml-metadata-sp-defaults.properties , a chave entityBaseURL, deve conter o caminho promocional.

    local=true
    alias=promo_saml
    entityBaseURL=http://localhost:8080/promo
    securityProfile=metaiop
    signingKey=ping
    encryptionKey=ping
    tlsKey=ping
    requireArtifactResolveSigned=false
    requireLogoutRequestSigned=false
    requireLogoutResponseSigned=false
    idpDiscoveryEnabled=false



  • saml-keymanager-passwords.properties
    #apollo = nalle123


NOTA

Para voltar ao sistema de login normal, sem usar o SAML2, basta deletar os 4 arquivos .propertis do diretório \main e reiniciar o PROMO (Wildfly).




Apêndice B: OS4690

Instalação do motor no OS4690

As etapas a seguir devem ser seguidas para instalar corretamente o mecanismo PROMO em um OS4690:

  • Enviei o jar entregue para um controlador, para a raiz do disco F com o nome, por exemplo: promo-gengine-installer-xxxjar
  • Execute o instalador:   F:/install> javaebin:java -jar promo-gengine-installer-xxxjar
  • Dependendo se o modo gráfico está disponível, ele pode ser executado nesse modo ou no modo de texto. O modo gráfico é recomendado e executado a partir da pasta F:/install
  • Quando solicitado, forneça estes valores: 

Diretório Java: /opt/java/tdk8
Diretório de instalação: /cdrive/f_drive/install/promo

  • Podem ocorrer erros durante a instalação de serviços. Isso ocorre devido às permissões do Linux4690, ignore.
  • Os arquivos são gerados:

F:/install/ant.install.log
F:/install/ant.install.properties

  • A pasta F:/installs/promo é gerada
  • Revise e copie os seguintes arquivos: Modifique o config.xml (…promo/engine/conf) para especificar os caminhos corretos:


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

        

  • Modifique logging.properties (…promo/engine/conf) para especificar os caminhos corretos: java.util.logging.FileHandler.pattern = /cdrive/f_drive/promo/engine/logs/promo
  • Configurar aplicativo em segundo plano: 

Programa : shell
Parâmetros: F:/promo/engine/tcp4690.bat (ou rest4690.bat para funcionar como tcp ip ou rest server conforme o caso). 


  •      Iniciar quando for Master e quando não for Master
  •      Ative a configuração e carregue o Controlador 





Apêndice C: Variáveis ​​de ambiente

Definir PATH JAVA_HOME no Windows


Para que o aplicativo funcione corretamente, será necessário definir a variável JAVA_HOME no Windows. Para fazer isso, vá para Painel de controle > Sistemas e segurança > Sistemas e selecione "Configurações avançadas do sistema"
Na guia Opções avançadas, clique em "Variáveis ​​de ambiente". Em Variáveis ​​do Sistema, posicione-se em JAVA_HOME e clique em "Editar" e coloque o caminho onde está localizado o JAVA.




Em System Variables, localize PATH, clique em "Editar" e adicione %JAVA_HOME%\bin



Clique em " OK " para salvar as alterações e que a variável esteja configurada corretamente.




Apêndice D: atualizações do console


Atualização por novos lançamentos


Caso seja lançada uma nova versão da sua versão do console, você pode atualizar a versão PROMO seguindo estas etapas:

  1. Desative o serviço Wildfly (acesse a seção de serviços do sistema e interrompa o Wildfly)
  2. Acesse o diretório onde está instalado o console PROMO (por padrão em C:\synthesis\promo)
  3. Vá para o diretório C:\synthesis\promo\appserver\standalone e exclua os diretórios "data" e "tmp"
  4. Acesse o diretório C:\synthesis\promo\appserver\standalone\deployments e substitua o arquivo promo.war existente por aquele enviado pela equipe da Synthesis.
  5. Feito isso, inicie o serviço wilfly novamente.


NOTA

Assim que o serviço for iniciado após a substituição do arquivo promo.war, um arquivo chamado promo.war.isdeploying será gerado no diretório C:\synthesis\promo\appserver\standalone\deployments, indicando que os arquivos de atualização estão sendo descompactados.


Após a conclusão bem-sucedida do processo, esse arquivo será renomeado como promo.war.deployed.
Caso ocorra algum erro durante a descompactação da atualização, será gerado um arquivo chamado promo.war.failed, que deverá ser enviado para a equipe de suporte para análise e posterior resolução do problema para que o console seja inicializado corretamente.





  • Sem rótulos