Tags

, ,

Hoje no BPEL não existe uma função especifica para que possamos trabalhar diretamente com Regex (Regular Expression) no BPEL, por isso irei demonstrar neste Post uma das maneiras que podemos fazer para aplicar uma Regex à um processo.

Neste exemplo iremos basicamente passar um valor ao nosso BPEL e validaremos estes valores através do Regex.

Para nossos testes crie um projeto chamado RegexBpel

Imagem Blog UansCarvalho

Dentro do nosso Composite.xml adicione um BPELProcess chamado RegexBPELProcess

Imagem Blog UansCarvalho

Dentro do seu RegexBPELProcess adicione um Transformation e dê o nome de Transform_Regex

Imagem Blog UansCarvalho

Dê um duplo clique agora sobre o seu Transform_Regex

Em Source adicione seu inputVariable e em Target Variable deixe seu outputVariable e clique em no Sinal de + para abrirmos a Transformation.

Imagem Blog UansCarvalho

Ligue agora seu input com seu result.

Imagem Blog UansCarvalho

Agora vá no Source do seu Transformation e adicione a seguinte linha na declaração de suas namespaces.

xmlns:strClass=”http://www.oracle.com/XSL/Transform/java/java.lang.String”

Imagem Blog UansCarvalho

Agora adicione o trecho de código abaixo do seu <xsl:value-of select=”/client:process/client:input”/>

<xsl:call-template name=”strReplace”>
        <xsl:with-param name=”param” select=”/client:process/client:input”/>
</xsl:call-template>

Agora retire sua linha <xsl:value-of select=”/client:process/client:input”/>

Então ficará assim:

Imagem Blog UansCarvalho

Adicione agora o trecho de código abaixo do seu </xsl:template>

<xsl:template name=”strReplace”>
    <xsl:param name=”param”/>
    <xsl:value-of select=”strClass:replaceAll($param, ‘[^0-9]’, ”)”/>
</xsl:template>

Imagem Blog UansCarvalho

Veja acima que estamos usando a função replaceAll, iremos pegar o que será passado em nosso Input através da variavel $param, aplicaremos a Regex [^0-9] onde não será permitido passarmos qualquer valor que seja diferente do intervalo de números de 0 a 9 e por ultimo através das aspas simples, digo que caso existe estes valores trocaremos por nada, ou seja, irá apenas retirar estes valores.

Faça agora o deploy do seu projeto e vamos aos testes

Direto no EM (Enterprise Manager) do seu BPEL veja abaixo que estou passando os valores

A-1-2%3*4=5

Imagem Blog UansCarvalho

Execute e veja no Response o retorno:

Imagem Blog UansCarvalho

Veja que no meu response foi retirado qualquer valor que passei diferente dos números.

 

Duvidas ? Deixe seu comentário e faça download deste  Projeto :-)

 

Abraços e até a Próxima

/:-D