Pergunta

Estou usando o teste do IBM ilog jrules 7.1 para fazer um POC. Estou usando tabelas de decisão para verificar os dados de registro do cliente.

minha regra da tabela de decisão do ilog é: se o estado de um cliente for CA, IL, AL, defina o status como 'elegível', caso contrário, torne o cliente 'inelegível' para a oferta.

Em um caminho feliz, posso adicionar os códigos de estado como literais de domínio e a regra funcionará bem.Mas preciso carregar esses valores de domínio dinamicamente de um banco de dados (mysql) usando algum código IRL.Alguém já fez um requisito semelhante ao meu? Seria muito útil se alguém pudesse me indicar a direção certa.

Foi útil?

Solução

Um dos princípios gerais do JRules é que você deve chamar o mecanismo de regras com todas as informações necessárias, se possível.Do ponto de vista do desempenho, acessar o banco de dados durante a execução de regras não é uma boa ideia.Você também poderá perder a capacidade de usar seu aplicativo de regras em um ambiente em cluster.Além disso, as decisões são menos rastreáveis ​​e reproduzíveis porque é mais difícil saber o que está no seu banco de dados a qualquer momento.

Dependendo da frequência com que seus dados mudam, sugiro que você adicione esses valores como um segundo parâmetro de entrada e recupere os dados antes de chamar o mecanismo de regras.A segunda possibilidade é usar o plugin de domínio dinâmico para carregar esses valores do banco de dados antes da implantação.Mas você teria que reimplantar o RuleApp sempre que os dados mudassem.Com o plugin de domínio dinâmico você pode especificar um provedor de dados (por exemplo,Excel, MySQL etc.) e preencha sua BOM com os atributos contidos no banco de dados.Esses valores de domínio dinâmico aparecem como atributos e podem ser sincronizados na visualização da BOM no Rule Studio, bem como no TeamServer:

Dynamic Domain Example

No WODM (sucessor do JRules 7.1) esta funcionalidade está incorporada, é possível que este plugin não faça parte da demonstração e tenha que ser adicionado ao 7.1 individualmente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top