Archive for February 27th, 2007

O que você acha de transformar usuários em efetivos tomadores de decisão quando falamos de regras de negócio. Sabe aquele desejo antigo de UML para Analistas e Código para Programadores, ou melhor ainda: Caixinhas, Bolas, Setas e etc ligadas forma a execução de um processo do sistema! Parece loucura, mas não é. Usando BPM, ESB, JBI e etc, temos várias mecanismos para encaixar essas facilidades.

Errata:Sendo assim podemos criar uma Domain Specific Language (DSL), uma linguagem que é especifica para usuários, onde eles possam entender o que está acontecendo nas regras de negócio do sistema. É mais ou menos isso que o

Sendo assim, criamos um arquivo .DSL , que vai permitir que utilizemos uma linguagem natural que é especifica para usuários, onde eles possam entender o que está acontecendo nas regras de negócio do sistema. É mais ou menos isso que o projeto que estou ajudando tem que fazer, então vamos a um pequeno exemplo: PT_BR.dsl :
[java] Imprima “{msg}”=System.out.println(”{msg}”)
[when]A quantidade produto igual a {value}=p : Produto( estoque =={value})
[then]Chame o comando de continuação de Produto=p.dispatch();
[/java]

[java]rule “Estoque”

when
A quantidade produto igual a 0;
then
Imprima “Estoque zerado”;
Chame o comando de continuação de Produto
end
[/java]

E com uma alteração no Engine de Leitura de Regras:

[java]

Reader dsl =
new InputStreamReader( Thread.currentThread().getContextClassLoader().getResourceAsStream

(”com/summatech/framework/rules/dsl/”+ lang.toString() +”.dsl”));

PackageBuilder builder = new PackageBuilder();
builder.addPackageFromDrl( source, dsl );
[/java]

Agora, temos a possibilidade de trabalhar 100% com DSLs, sendo assim, em idiomas humanos, sendo assim inglês, francês e etc.

Consulte o site do JBoss Rules

Abraços

Edgar