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:
- 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.
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:
- Crie uma pasta onde o mecanismo será executado (Cuidado para ter permissões de leitura e gravação nela)
- Descompacte o conteúdo do zip nessa pasta.
- Modifique o arquivo conf/config.xml com os parâmetros de configuração corretos de acordo com o ambiente em que será executado.
- 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
- 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âmetro | Descrição | Valor padrão |
---|---|---|
simulação | Indica se o motor opera para simulações do console ou não. Valor padrão "Falso" (sem simulação) | falso |
modo de compatibilidade | indica 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 |
mapIdentifiers | Eles 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 |
ticketIdentifiers | Ele indicará por qual atributo o ticket será identificado quando a engine operar como multiempresa. | terminal de loja |
desativarLealdade | O 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ços | O 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 motor | identificador único do motor. Deve ser configurado quando você deseja que o motor reporte seu mapa ativo para o console PROMO. | 0 |
engineName | Nome ú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çãoCacheMode | Ativa o modo de trabalho "Cache de promoções" do motor. Reservado APENAS para este modo de trabalho específico. | falso |
useExactLimitValue | Concedendo benefício com limites: true concede o saldo (padrão), false não concede benefício se o apply exceder o saldo | verdadeiro |
desconto negativo | Permitir ou não permitir que os descontos concedidos ultrapassem o valor do produto | verdadeiro |
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 |
buscarLimitsSync | Indica 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âmetro | Descrição | Valor padrão |
---|---|---|
diretório | Indica 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 engines | preços |
verificar | Intervalo 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âmetro | Descrição | Valor padrão |
---|---|---|
diretório | Diretório local onde os arquivos serão armazenados no status offline | desligada |
verificar | Intervalo de tempo em segundos em que o engine verificará se há arquivos em modo offline pendentes de envio para o console | 60 |
Os parâmetros de configuração da seção Mapa são:
Marca/Parâmetro | Descrição | Valor padrão |
---|---|---|
diretório | Diretório local onde os mapas serão baixados. | você sai |
verificar | Intervalo 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ção | Dias 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 original | 100 |
removeSimulatedMaps | Indica se os mapas simulados devem ser removidos ao atingir simuladMapsThreshold | verdadeiro |
simuladorMapsMax | Número máximo de mapas de simulação a serem mantidos após serem removidos com base na propriedade anterior | 10 |
Limite de mapas simulados | Quantidade de mapas que, uma vez alcançados, iniciam o processo de remoção do mapa. | 30 |
removeNonSimMaps | Indica que o processo de remoção de mapa também se aplica a mapas produtivos e não apenas ao modo de simulação | falso |
compilado | Está ativado os mapas funcionarão em modo "pré-compilado" | falso |
diretório compilado | Diretório onde os mapas compilados serão armazenados | compilado |
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âmetro | Descrição | Valor padrão |
---|---|---|
RoundDecimals | Indica o número de casas decimais a serem usadas em quantidades decimais. Isto é: magnitude e quantidades como preço unitário | 2 |
rodadaContáveis | Indica o número de casas decimais a serem usadas em valores contáveis. Isto é: quantidade | 3 |
roundPoints | Indica o número de casas decimais a serem usadas no número relatado de pontos. | 2 |
roundPointsMethod | Mé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 roundMath | arredondar para baixo |
roundPointsTotalOnly | Indica que o arredondamento de Pontos é aplicado apenas ao benefício total e não aos detalhes da aplicação | falso |
roundPointsTotalCalcDecimals | Indica o número de casas decimais a serem usadas ao informar o número total de pontos no benefício | 2 |
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âmetro | Descrição | Valor padrão |
---|---|---|
usar https | Ative o modo https do mecanismo Promo | falso |
KeyStore | Se o modo https estiver ativado, indica o keystore a ser usado | ./conf/keystore |
keyStorePassword | Indica a chave de acesso ao keystore | nós |
useRoleAccessRestrictions | Ativa o modo com usuário/senha para segurança do motor | falso |
definição de usuários | Indica 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ção | onde está a pasta que contém as funções de mapeamento de arquivo para recursos web.xml | ./conf |
descansar | Porta de escuta do mecanismo no modo REST Server | 8888 |
soquete | Porta de escuta do mecanismo no modo Servidor TCP/IP | 3000 |
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âmetro | Descrição | Valor padrão |
---|---|---|
url | Endereço onde o console promocional está localizado | http://localhost:8080/promo |
do utilizador | usuário para realizar o login OAUTH2 do console | enviar |
senha | Chave para realizar o login OAUTH2 do console | amigo |
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. | - |
connectionTimeout | Define o tempo limite de conexão em segundos com o console Central. | - |
timeout de comunicação | Define 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âmetro | Descrição | Valor padrão |
---|---|---|
diretório | Diretó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âmetro | Descrição | Valor padrão |
---|---|---|
diretório | Diretó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
- 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ção | Descrição |
---|---|
usar https | true indica que o mecanismo deve funcionar neste modo. |
KeyStore | O nome do arquivo que contém o keystore, especificando seu caminho absoluto |
keyStorePassword | A senha do armazenamento de chaves em texto simples. |
Um exemplo de configuração seria:
<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:
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
Você pode revisar o keystore com;
keytool -list -keystore keystore.dat -storetype jks -storepass THEPASSWORD -v
O arquivo csr (solicitação de assinatura de certificado - CSR) é gerado.
keytool -certreq -alias jetty -keystore keystore -arquivo jetty.csr
- 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
- 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ção | Descrição |
---|---|
useRoleAccessRestrictions | true indica que o mecanismo deve funcionar neste modo. |
definição de usuários | O nome do arquivo que contém o usuário e o armazenamento de chaves, especificando seu caminho absoluto |
diretório de configuração | O 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:
<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
O arquivo de usuários seria composto como:
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:
<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
- PROMO - Manual de Instalación 7.0
- PROMO - Manual de Usuario 7.0
- PROMO - Manual de Integración 7.0 - Motor
- PROMO - Manual de Integração 7.0 - Motor
- PROMO - Manual de Integración 7.0 - Servicios
- PROMO - Manual de Integração 7.0 - Serviços
- PROMO 7.0 - Manual de Integración - Colas de Mensajes
- Anexos
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ódulo | Dica | Valor | Descrição | |
---|---|---|---|---|
1 | promoção | sistema operacional | janelas | Sistema operativo |
2 | promoção | sabão.url | http://10.4.13.108:8280/bridge/services/bridgeCoreSOAP?wsdl | Endereço do serviço da Web da ponte. |
3 | Negócios | idioma | es_AR (Argentina) | Geral: idioma do aplicativo (tags) |
4 | Negócios | diretório de backup | C:/síntese/promo/backup | Geral: cópia de segurança |
5 | Negócios | mongoDBDirectory | C:/synthesis/promo/mdb/bin | Geral: diretório do banco de dados |
6 | Negócios | mongoDBHostname | host 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 |
7 | Negócios | mongoDBPort | 27017 | Porta do banco de dados. No caso de replicaset este parâmetro é ignorado. |
8 | Em geral | auditDateCleaner | 30 | Remova os registros das tabelas de importação. |
9 | Em geral | importReceiptDateCleaner | 30 | Remova os registros das tabelas de importação. |
10 | Em geral | ticketGeneratorSeconds | 2 | DEMO: número de segundos de geração de tickets para demos |
onze | Negócios | caracteres Máximo Alfabético | vinte | Número máximo de caracteres alfabéticos |
12 | Negócios | caracteres Máximo Numérico | vinte | Número máximo de caracteres numéricos |
13 | Negócios | charsMaximumQuantity | vinte | Número máximo de caracteres totais |
14 | Negócios | caracteres Máximo Especial | vinte | Número máximo de caracteres especiais |
quinze | Negócios | caracteresMinimumQuantity | 7 | Número mínimo de caracteres totais |
16 | 1Empresa | charsMinimumUser | 3 | Número mínimo de caracteres no nome de usuário |
17 | Negócios | maximumLoginFailedCount | 3 | Número máximo de tentativas sucessivas de login com falha |
18 | Negócios | númeroQuantidade | 1 | Número mínimo de caracteres numéricos |
19 | Negócios | passwordExpirationDays | 30 | Dias de expiração da senha do usuário |
vinte | Negócios | specialCharsQuantity | 0 | Número mínimo de caracteres especiais |
vinte e um | Negócios | stringQuantidade | 1 | Número mínimo de caracteres alfabéticos |
22 | Negócios | userBlockDays | 90 | Bloqueio de usuário - dias de inatividade |
23 | Negócios | userLockTime | 30 | Período de bloqueio da conta do usuário (em minutos) |
24 | promoção | engineSalesPath | C:/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ódulo | Dica | Valor | Descrição |
---|---|---|---|
cupons | caminho do código de barras | C:/synthesis/promo/images/barcode/ | Diretório de imagens de código de barras |
cupons | código de barras | http://localhost:8080/promo/assets/barcode/ | URL de imagens de códigos de barras |
promoção | diretório de arquivos | C:/síntese/promo/catálogos/napse\ | Importação do catálogo: diretório onde ficarão os arquivos |
Negócios | dinheiroSímbolo | $ | símbolo de moeda |
cartões de fidelidade | quantidade máx. | 999 | Número máximo de cartões a serem gerados para cada operação de registro massivo |
cartões de fidelidade | isEditableAfterCardsGeneration | falso | Permitir a edição do tipo de cartão após a geração de um cartão ativo |
cartões de fidelidade | prefixo.ativo | falso | Use prefixo de número incremental para tipos de cartão |
cupons | CÓDIGO128 | PPPSSSTTTnnnnnnnnnnnnnnnnnnnn | Formato de código de barras CODE128 |
cupons | EAN13 | PPPSSSTTTnnnc | Formato de código de barras EAN13 |
cupons | UPCA | PPSSSTTTnnc | Formato de Código de Barras UPCA |
cupons | quantidade máx. | 999 | Quantidade máxima de geração de cupons em massa por transação |
cupons | prefixo.ativo | verdadeiro | Use prefixo de número incremental para tipos de cupom |
cupons | quantidadeFormato | %.02f | Formato em que os valores dos cupons são impressos |
promoção | método de aplicação | resume | Promoções: valor padrão no método apply |
promoção | método de divisão | proporcional | Promoções: valor padrão no método split |
promoção | preço da divisão | preço-benefício | Promoções: valor padrão o tipo de preço beneficiado |
promoção | fileList.txt.Separator | , | Importação de Catálogo: Guia |
promoção | fileList.xls.ColStart | 0 | Importação de Catálogo: Iniciar Coluna de Importação de Catálogo |
promoção | fileList.xls.Direction | vertical | Importação de catálogo: método de importação |
promoção | fileList.xls.RowStart | 0 | Importação de Catálogo: Iniciar Linha de Importação de Catálogo |
promoção | separador | | | Importação de Catálogo: Separador de Colunas |
promoção | terminadoEmErro | verdadeiro | Encerra a importação do catálogo, se pelo menos um falhar. Se falso, não encerre e relate catálogos com falha |
promoção | atualizarTamanho | 100 | Importação do catálogo: tamanho do upload |
Negócios | caracteres Máximo Alfabético | vinte | Número máximo de caracteres alfabéticos |
Negócios | caracteres Máximo Numérico | vinte | Número máximo de caracteres numéricos |
Negócios | charsMaximumQuantity | vinte | Número máximo de caracteres totais |
Negócios | caracteres Máximo Especial | vinte | Número máximo de caracteres especiais |
Negócios | caracteresMinimumQuantity | 7 | Número mínimo de caracteres totais |
Negócios | charsMinimumUser | 3 | Número mínimo de caracteres no nome de usuário |
Negócios | maximumLoginFailedCount | 3 | Número máximo de tentativas sucessivas de login com falha |
Negócios | númeroQuantidade | 1 | Número mínimo de caracteres numéricos |
Negócios | passwordExpirationDays | 30 | Dias de expiração da senha do usuário |
Negócios | specialCharsQuantity | 0 | Número mínimo de caracteres especiais |
Negócios | stringQuantidade | 1 | Número mínimo de caracteres alfabéticos |
Negócios | userBlockDays | 90 | Bloqueio de usuário - dias de inatividade |
Negócios | userLockTime | 30 | Período de bloqueio da conta do usuário (em minutos) |
promoção | distribuiçãoThreadPool | 10 | Número de threads criados para distribuição simultânea |
promoção | caminho | C:/síntese/promo/importar/ | Diretório para a importação de Mapas de Promoções. |
promoção | benefício.ativo | falso | Use campo numérico incremental para benefícios |
promoção | promoção.código.ativo | falso | Use o campo numérico incremental para promoções |
cupons | padrão.de | [email protected] | E-mail padrão com o qual os e-mails serão enviados |
cupons | default.insertImages | falso | Indica se aceita ou não códigos de barras |
cupons | default.subject | Correio de teste promocional | assunto padrão |
cupons | hospedar | smtp.gmail.com | Host do provedor de e-mail |
cupons | senha | ************ | Senha da conta de e-mail |
cupons | porta | porta de conexão | |
cupons | smtp.auth | verdadeiro | Habilitar Autenticação SMTP |
cupons | smtp.port | 587 | porta SMTP |
cupons | smtp.socketFactory.class | javax.net .ssl.SSLSocketFactory | nome da classe SSLSocketFactory |
cupons | smtp.socketFactory.fallback | falso | fallback socketFactory |
cupons | smtp.socketFactory.port | 465 | porta SMTP socketFactory |
cupons | smtp.starttls.enable | verdadeiro | Ativar Iniciar TLS |
cupons | nome de usuário | [email protected] | Usuário ou nome da conta de e-mail |
promoção | usar.item.catálogo | 1 | Mapas: algoritmo de cálculo de colisão |
promoção | cleanEngineStatusHistory | 7 | Tempo em dias que o console manterá o histórico de status do motor |
promoção | implantadoEditável.enabled | falso | Habilita a edição da promoção com o status Deployed. |
promoção | promoção.estadodomotor.comunicação | 600 | Tempo 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ção | promoção.imagens.altura | 250 | Promoções: alto padrão de imagens |
promoção | promoção.imagens.caminho | C:/síntese/promoção/imagens/promoção/ | Promoções: diretório para armazenamento de imagens |
promoção | promoção.imagens.largura | 250 | Promoções: largura padrão das imagens |
promoção | reportParticipants | falso | Promoções: Valor global que determina se a promoção reporta participantes |
promoção | reportParticipantsVisible | verdadeiro | Determina se a opção de participantes do relatório é exibida ou não |
promoção | método de pagamento | NOTHING=Não calcular promoções por meio de pagamento | Promoção codificada: NOTHING, ON_ITEMS_PAID, ON_PAYMENT_MADE |
promoção | método.de.pagamento.emItemsPaid.class | com.synthesis.promo.engine.partialPayment.hardcoded.promotion.PartialPaymentsGSPromotion | Promoção Codificada: nome da promoção por meio de pagamento por itens. |
promoção | método.de.pagamento.emItemsPaid.name | Promoções baseadas em itens | Promoção Codificada: nome da promoção por meio de pagamento por itens. |
promoção | method.of.payment.onItemsPaid.tenderMethodPropertyKey | promo.configuration.tenderMethod.itemMethod | Promoção Codificada: nome da promoção por meio de pagamento por itens. |
promoção | método.de.pagamento.onPaymentMade.class | Pagamentos ParciaisSSPromoção | Promoção Codificada: nome da promoção por meio de pagamento por itens. |
promoção | método.de.pagamento.onPaymentMade.name | Promoções baseadas em pagamento | Promoção Codificada: nome da promoção por meio de pagamento por itens. |
promoção | method.of.payment.onPaymentMade.tenderMethodPropertyKey | promo.configuration.tenderMethod.paymentMethod | Promoção Codificada: nome da promoção por meio de pagamento por itens. |
promoção | ldapAuthentication | falso | Determina se deve autenticar em um serviço de diretório |
promoção | ldapAuthentication.autheticationMode | DIGEST-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ção | ldapAuthentication.urlServer | URL do servidor no qual autenticar. | |
promoção | testEnginePORT | 3001 | Simulação: porta na qual o motor funciona para simulação |
promoção | testEngineRetries | 2 | Simulação: novas tentativas de conexão do motor |
promoção | testEngineSalesPath | C:/síntese/promoção/motor/vendas/ | Simulação: caminho do motor |
promoção | testEngineTimeout | 8000 | Simulação: timeout da conexão do motor |
Redes sociais | facebook.appId | 1068803576479010 | id do aplicativo do facebook |
Redes sociais | facebook.permissions | [publish_actions, manage_pages] | Permissões de aplicativos do Facebook |
Redes sociais | facebook.secret | dfa5ffe6aa6306fc49472dbcba3c16a9 | Chave secreta do aplicativo do Facebook |
Redes sociais | twitter.accessToken | 2848331890-D2geAfGVL9u2bD6TrD1LxH5fUsXlBnHLa3FOziK | token de acesso do twitter |
Redes sociais | twitter.accessTokenSecret | NHd6JbcoLaBK5QEfrKgmOaQwwxmbwlEtOYlQni3Fx6H3y | Token secreto de acesso ao Twitter |
Redes sociais | twitter.consumerKey | HTPKOHdatasoDsm2Ud7ULnUapAKFXoC | Chave do consumidor do Twitter |
Redes sociais | twitter.consumersecret | X1plqdQWK0nRCGz6KFxm37IZTzp4O7w9BjLSspIr4mYWLZsrOy | Senha secreta do consumidor do Twitter |
cartões de fidelidade | continueOnError | verdadeiro | Permitir continuar a importação do catálogo de fichas em caso de erro |
cartões de fidelidade | opção de inserção | INSERT_OR_UPDATE | Descreve a opção de inserção para importação de catálogo de fichas |
transações | cleanTransactions | 90 | Número de dias que os logs de transações permanecerão no banco de dados |
Lista de preços | priceList.distribution.items.batch.size | 1000 | Quantidade de Preços a enviar ao motor desde a consola na distribuição de preços (por comunicação). |
Lista de preços | priceList.job.cleanPriceListSchedule.time | 30 | Número de dias para manter os itens da lista de preços futuros processados |
Lista de preços | priceList.lockForUpate | quinze | Minutos para poder desbloquear a lista Zero no processo de descanso |
Lista de preços | priceList.mongo.bulk.insertOrUpdate | 200 | Nú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"/>
<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>
<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âmetro | Valor padrão | Descrição |
---|---|---|
promo.general.cvvOnlyForConsume | falso | Consulte Validar CVV apenas quando o consumo for feito no Cartão Fidelidade |
promo.delimiters | espaço | Consulte Atributos de configuração com espaços em condições simples |
promo.allowNonExistingCustomers | falso | Consulte o cadastro do cliente durante a transação |
promo.transaction.batch.size | 1000 | Nú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 | falso | Em 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 .enableUpsertClientes | verdadeiro | Permite 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 .returnCustCards | verdadeiro | Indica que a resposta a uma validação de fidelidade do cliente deve retornar os cartões associados a ela. |
promo.lv .returnCustCupons | verdadeiro | Indica que a resposta a uma validação de fidelidade do cliente deve retornar os cupons associados a ela. |
promo.lv .returnSegments | verdadeiro | Indica que a resposta a uma validação de fidelidade do cliente deve retornar os segmentos associados a ela. |
promo.lv .returnContracts | verdadeiro | Indica que a resposta a uma validação de fidelidade do cliente deve retornar os contratos associados a ela. |
promo.backupOptions | --gzip | indica 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 nomeados | verdadeiro | Permite 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
- saml.properties - Arquivo de configuração principal.
- saml-keymanager-passwords.properties
- saml-metadata-providers.properties - Arquivo correspondente à configuração do provedor de identidade.
- 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
- 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.
- 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.
- Salve o arquivo idp.xml em C:\synthesis\promo\ idp.xml
- Edite o arquivo saml-metadata-providers.properties especificando o caminho absoluto onde o arquivo idp.xml foi colocado
- Inicie PROMO (Wildfly) com as quatro propriedades correspondentes a saml.
- Gere o xml PROMO acessando http://localhost:8080/promo/saml/metadata , salve em um xml (de preferência sp.xml ).
- Sp.xml salvo em C:\synthesis\promo\ sp.xml
- Edite o arquivo saml.properties especificando o caminho absoluto onde o arquivo sp.xml foi colocado
- Edite o arquivo saml-metadata-sp-defaults.properties especificando o caminho promocional http://localhost:8080/promo
- Parar PROMO (wildfly)
- Exclua os diretórios \temp e \data encontrados no diretório \standalone da instalação do PROMO.
- Iniciar PROMO (wildfy)
- 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.
- Pressione "PRÓXIMO"
- Na próxima tela que aparecer, pressione "Post Response"
- 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:
- Desative o serviço Wildfly (acesse a seção de serviços do sistema e interrompa o Wildfly)
- Acesse o diretório onde está instalado o console PROMO (por padrão em C:\synthesis\promo)
- Vá para o diretório C:\synthesis\promo\appserver\standalone e exclua os diretórios "data" e "tmp"
- Acesse o diretório C:\synthesis\promo\appserver\standalone\deployments e substitua o arquivo promo.war existente por aquele enviado pela equipe da Synthesis.
- 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.