FeaturesPluginsDocs & SupportCommunityPartners

Guia do desenvolvedor para BPEL Designer

Sobre o mapeador BPEL

O mapeador BPEL está disponível como uma aba na visualização Design, Código-fonte ou Registro do processo BPEL.

O mapeador BPEL fornece uma estrutura para processar e direcionar dados do processo BPEL. Essa estrutura está formada pelos seguintes componentes:

  • Barra de menus. A barra de menus fornece todos os operadores, elementos necessários e funções XPath você pode usar para criar mapeamentos BPEL. Você também pode aprimorar ou estender os mapeamentos BPEL incorporando predicados que consistem em funções XPath.
  • Painel de árvore de origem. O painel de árvore de origem é colocado à esquerda e contém um componente em árvore que fornece acesso as variáveis de dados e aos links de parceiro do processo comercial.
  • Painel de mapeamento. O painel de mapeamento contém uma tela para a criação de mapeamentos BPEL. Quando você seleciona uma função na barra de menus, é exibida uma caixa de função no painel de mapeamento. Se a função aceitar quaisquer argumentos, então o lado esquerdo da caixa de função possuirá um conector para cada argumento. Se um argumento for opcional, então será mostrado um ponto de interrogação depois do nome do argumento. O lado direito da caixa de função possui um conector para o resultado. Você pode usar o Mapeador BPEL com os seguintes elementos de processo comercial:
    • Atividade Atribuir. Você pode definir uma ou mais atribuições de cópia.
    • Atividade If. Você pode definir a condição.
    • Elemento ElseIf em uma atividade If. Você pode definir a condição.
    • Atividade Para cada. Você pode definir a condição.
    • Atividade Repetir até. Você pode definir a condição.
    • Atividade While. Você pode definir a condição.
    • Atividade Aguardar Você pode especificar o prazo ou a duração.
    • Evento onAlarm Você pode especificar o prazo ou a duração.
  • Painel da árvore de destino. Este painel é colocado à direita. O componente Árvore do painel de destino depende do elemento do processo comercial que você está mapeando. O painel contém os seguintes componentes:
    • Para uma atividade Atribuir, o painel da direita contém o mesmo componente em árvore que o painel da esquerda.
    • Para uma atividade If, elemento ElseIf, atividade Para cada, atividade Repetir até e atividade While, o painel da direita contém um nó Resultado.
    • Para a atividade Aguardar e evento onAlarm, o painel da direita contém um nó Prazo ou Duração.

Para abrir a janela Mapeador BPEL:

  • Abra o diagrama BPEL e faça o seguinte:
    • Clique duas vezes no elemento que requer o mapeador BPEL. A aba Mapeador se abre.
    • Selecione um elemento que requer o mapeador e na barra de ferramentas do diagrama, clique na aba Mapeador.
Se você quiser ver o mapeador e o diagrama do processo ao mesmo tempo, coloque o mapeador em uma janela separada. Para obter mais informações, consulte Clonando visualizações de documento.

Criando mapeamentos BPEL

Você pode criar um mapeamento do painel da árvore de origem diretamente para o painel da árvore de destino, sem usar qualquer uma das funções. Esse tipo de mapeamento pode ser qualquer um dos seguintes:

  • Variável para variável
  • Parte para parte
  • Elemento XSD para elemento XSD
  • Atributo XSD para atributo XSD

Você também pode criar um mapeamento que use uma ou mais funções XPath na barra de menus do mapeador BPEL. Por exemplo, se o processo BPEL incluir uma atividade Aguardar que espera por um período de tempo, você poderá usar a função Duration Literal para especificar a duração.

Para criar um mapeamento sem usar quaisquer funções:

  1. No painel da árvore de origem, expanda o componente de árvore até que o nó do qual você deseja mapear apareça.
  2. Se o painel da árvore de destino contiver um componente de árvore, expanda o componente de árvore até que o nó para o qual você deseja mapear apareça.
  3. Selecione o nó no painel da árvore de origem e arraste o ponteiro para o nó no painel da árvore de destino.

    Um link conecta os nós.

Para usar uma função em um mapeamento:

  1. Clique no menu suspenso que contém a função.
  2. Clique na função.

    Uma caixa de função aparece no painel de mapeamento.

  3. Mapeie quaisquer argumentos para o conector apropriado no lado esquerdo da caixa de função. A origem pode ser um nó no painel da árvore de origem ou a saída de outra caixa de função. Se um argumento for opcional, então será mostrado um ponto de interrogação depois do nome do argumento.
  4. Mapeie o resultado do lado direito da caixa de função. O destino pode ser um nó no painel da árvore de destino ou a entrada em outra caixa de função.

Para minimizar um link ou função em um mapeamento:

  1. Selecione o link ou função
  2. Clique no ícone de sinal de menos pequeno no ponto em que o link entra no painel de árvore.

Para excluir um link ou função em um mapeamento:

  1. Selecione o link ou função
  2. Pressione Excluir.

Trabalhando com predicados

O mapeador BPEL permite criar predicados compostos por funções XPath.

Um predicado aplica uma condição a um nó que pode ter vários valores. O resultado é o subconjunto de nós que satisfazem a condição.

Por exemplo, supondo que um nó representa o número de produtos. Se você quiser selecionar todos os produtos cujo total é maior que 50, use as funções greater than e number literal para definir a condição.

Somente alguns tipos de nós permitem criar predicados. O menu pop-up desses nós contém a opção Novo predicado. Quando você expande o componente de árvore no painel de árvore de origem, os nós que podem ter predicados são marcados com um asterisco (*).

Ao criar um predicado, você pode usá-lo em uma atribuição. Por exemplo, você pode copiar dados de um predicado no painel da árvore de origem para um nó no painel da árvore de destino.

Você pode editar ou excluir um predicado existente.

Para criar um predicado:

  1. No painel de árvore de origem, clique com o botão direito do mouse em um nó que esteja marcado com um asterisco (*) e escolha Novo predicado.

    O editor de predicados aparece.

  2. Use funções XPath para criar a condição do predicado. Mapeie o resultado para o nó do predicado no painel da árvore de destino.
  3. Clique em OK.

    O editor adiciona o nó do predicado imediatamente abaixo do nó original. A condição aparece entre colchetes.

Para editar um predicado:

  1. No painel da árvore de origem, clique com o botão direito do mouse no nó do predicado e escolha Editar predicado.
  2. Modifique a condição.
  3. Clique em OK.

Para excluir um predicado:

  1. No painel da árvore de origem, clique com o botão direito do mouse no nó do predicado e escolha Excluir predicado.
  2. Clique em Sim.

Referência de função XPath

Um conjunto de funções XPath está disponível na barra de menus do Mapeador BPEL. Essas funções estão baseadas na especificação XPath 1.0. Além disso, o menu contém algumas funções de extensão XPath.

Cada função possui zero ou mais argumentos. Cada função retorna um único resultado.

A barra de menus contém os seguintes menus suspensos: , Operador, Booleano, String, Nós, Número.

Operador

O menu Operador contém as seguintes funções:

  • Maior
  • Maior ou igual
  • Menor
  • Menor ou igual
  • Adição
  • Subtração
  • Multiplicação
  • Divisão
  • Resto
  • Negativo
  • Diferente
  • Equal

Booleano

O menu Booleano contém as seguintes funções:

  • And usa a seguinte lógica: se ambos os argumentos forem verdadeiros, a função retornará verdadeiro. Se um argumento for falso, a função retornará falso.
  • Or usa a seguinte lógica: se nenhum dos argumentos for verdadeiro, a função retornará verdadeiro. Se ambos os argumentos forem falsos, a função retornará falso.
  • Not usa a seguinte lógica: se o argumento for falso, a função retornará verdadeiro. Se o argumento for verdadeiro, a função retornará falso.
  • Linguagem retorna verdadeiro ou falso dependendo se o idioma do nó de contexto for o mesmo ou for um subidioma do idioma especificado no argumento.
  • Falso lógico retorna falso.
  • Verdadeiro lógico retorna verdadeiro.
  • Boolean converte o argumento em um booleano. Para obter informações detalhadas sobre a lógica, consulte a especificação XPath 1.0.

Seqüência

O menu Seqüência contém as seguintes funções:

  • Contains usa a seguinte lógica: se o primeiro argumento string contiver o segundo argumento string, a função retornará verdadeiro. Caso contrário, a função retornará falso.
  • Normalize Space retorna a seqüência do argumento com espaço em branco normalizado pela eliminação de espaço em branco inicial e final e pela substituição de seqüências de espaço em branco por um único espaço.
  • String converte um objeto em uma seqüência.
  • Starts With usa a seguinte lógica: se o primeiro argumento string começa com o segundo argumento string, a função retornará verdadeiro. Caso contrário, a função retornará falso.
  • String Length retorna o número de caracteres da seqüência.
  • Substring retorna a subseqüência do primeiro argumento que começa na posição especificada no segundo argumento com o tamanho especificado no terceiro argumento. A posição do primeiro caractere é 1, a posição do segundo caractere é 2, e assim por diante. O terceiro argumento é opcional. Se o terceiro argumento não for especificado, a função retornará a subseqüência que começa na posição especificada no segundo argumento e que continua até o fim da seqüência.
  • Substring Before retorna a subseqüência do primeiro argumento que precede a primeira ocorrência do segundo argumento na primeira seqüência do argumento. Se a primeira seqüência do argumento não contiver a segunda seqüência do argumento, a função retornará uma seqüência vazia.
  • Substring After retorna a subseqüência da primeira seqüência do argumento que segue a primeira ocorrência da segunda seqüência do argumento na primeira seqüência do argumento. Se a primeira seqüência do argumento não contiver a segunda seqüência do argumento, a função retornará uma seqüência vazia.
  • Translate retorna a primeira seqüência do argumento com ocorrências de caracteres na segunda seqüência do argumento substituída pelo caractere na posição correspondente na terceira seqüência do argumento.
  • Concat retorna a concatenação dos argumentos.
  • String Literal permite inserir uma literal de seqüência.

O menu Nós contém as seguintes funções:

  • Local Name retorna a parte local do nome expandido do nó no conjunto de nós do argumento que está primeiro na ordem do documento. (Um nome expandido consiste em uma parte local e uma URI de espaço de nome).
  • Name retorna o nome qualificado que representa o nome expandido do nó no conjunto de nós do argumento que está primeiro na ordem do documento. (Um nome expandido consiste em uma parte local e uma URI de espaço de nome).
  • Namespace URI retorna a URI do espaço de nome do nome expandido do nó no conjunto de nós do argumento que está primeiro na ordem do documento. (Um nome expandido consiste em uma parte local e uma URI de espaço de nome).
  • Position retorna a posição do contexto.
  • Last retorna o tamanho do contexto.
  • Count retorna o número de nós no conjunto de nós do argumento.

Número

O menu Número contém as seguintes funções:

  • Number converte o argumento em um número. Para obter informações detalhadas sobre a lógica, consulte a especificação XPath 1.0.
  • Literal numérica permite inserir um número literal.
  • Round retorna o número que está mais próximo do argumento e que seja um inteiro.
  • Sum retorna a soma, para cada nó no conjunto de nós do argumento, do resultado da conversão dos valores de seqüência do nó em um número.
  • Floor retorna o maior número que não seja maior que o argumento e que seja um inteiro.
  • Ceiling retorna o menor número que não seja menor que o argumento e que seja um inteiro.

Data e hora

O menu Data-hora contém as seguintes funções:

  • Current Date fornece a data atual.
  • Current Time fornece a hora atual.
  • Current Date and Time fornece a data e hora atuais.
  • Duration Literal permite inserir uma literal de duração. Use o formato especificado na especificação do esquema XML.

BPEL

O menu BPEL contém as seguintes funções de extensão XPath:

  • doXslTransform. Essa é uma função de extensão XPath definida na especificação WS-BPEL. Ela pode ser usada em uma atividade Atribuir BPEL para chamar uma transformação XSLT.
  • Empacotar com referência de serviço. Esse é um caso especial da função doXslTransform usada para transformar dados em ServiceRefType. A função se destina a facilitar a utilização Endereçamento dinâmico.
  • doMarshal realiza a serialização de um objeto.
  • doUnMarshal realiza a desserialização de um objeto.

Exemplos de mapeamento

Esses exemplos ilustram vários cenários de mapeamento:

Cenário da atividade Atribuir

Presume que você deseja que um processo BPEL copie dados recebidos de um parceiro. Realize as seguintes tarefas:

  1. Adicione uma atividade Atribuir após a atividade Receber.
  2. Na visualização Design, selecione a atividade Atribuir e use o Mapeador BPEL para definir uma ou mais atribuições de cópia. Para abrir o mapeador, clique duas vezes na atividade Atribuir ou escolha a aba Mapeador na barra de ferramentas.

    O exemplo seguinte mostra uma atribuição de cópia que não usa quaisquer funções XPath. O valor da variável de entrada é copiado para a variável de saída. Observe que o painel esquerdo e o painel direito contêm o mesmo componente de árvore.

    Um mapeamento direto para uma atividade Atribuir

  3.  Agora vamos usar algumas das expressões XPath. Excluir o link criado:
    • Selecione o link no painel de mapeamento (ele fica verde) e pressione Excluir.
  4. Escolha String > Concat no menu do mapeador. Uma caixa de função aparece no painel de mapeamento.
  5. Escolha String > String Literal no menu do mapeador, outra caixa de função aparece no painel de mapeamento.
  6. Clique duas vezes na caixa da função String Literal e digite O VALOR.
  7. Desenhe uma conexão da caixa da função String Literal para o conector de entrada da caixa da função Concat.
  8. Desenhe outra conexão da variável na árvore de origem para a caixa Concat.
  9. Desenhe uma conexão de saída da caixa Concat para a variável na árvore de destino. A variável de destino agora possui um valor que consiste na concatenação da string literal e do valor da variável de origem.

    O exemplo seguinte mostra uma atribuição de cópia que usa a função XPath concat. A variável de entrada é concatenada ao fim da literal string O VALOR: e copiada para a variável de saída.

    Captura de tela do mapeamento da atividade Atribuir com a função XPath concat

Cenário da atividade If

Presume que você deseja executar uma série de etapas somente se uma determinada condição for verdadeira. Realize as seguintes tarefas:

  1. Adicione uma atividade If ao processo BPEL.
  2. Adicione as etapas dentro da atividade If.
  3. Na visualização Design, selecione a atividade If e use o Mapeador BPEL para definir a condição Booleana. Para abrir o mapeador, clique duas vezes na atividade If ou escolha a aba Mapeador na barra de ferramentas.

O exemplo seguinte mostra um mapeamento da condição. O mapeamento usa a função XPath Not, que está disponível no nó Booleano da barra de menus. Se o itinerário tiver uma reserva de linha aérea, a função XPath Not retornará verdadeiro. O resultado é mapeado para o nó Resultado no painel direito.

Um mapeamento para a atividade If

Cenário de predicado

Presume que você deseja que um processo BPEL copie os dados de itinerário dos itinerários dos clientes que não tenham mais de dois em seu grupo. Os registros de entrada incluem uma variável que especifica o número de passageiros no grupo de clientes. Realize as seguintes tarefas:

  1. No painel esquerdo da janela Mapeador BPEL, clique com o botão direito do mouse no nó de repetição que está marcado com um asterisco (*) e escolha Novo predicado.

    A janela Editor de predicado é exibida.

  2. Adicione a função XPath Menor que no painel do meio.
  3. Adicione a função XPath number literal no painel do meio. Defina o valor como 3.
  4. Mapeie o nó da variável para o primeiro argumento da função XPath Menor que.
  5. Mapeie o resultado da função XPath number literal para o segundo argumento da função XPath Menor que.
  6. Mapeie o resultado da função XPath Menor que para o nó Resultado no painel direito.
  7. Clique em OK.

O exemplo seguinte mostra como o mapeamento é exibido na janela Predicado. Depois de clicar em OK, você poderá usar o nó de predicado em uma atribuição de cópia.

Captura de tela do mapeamento para predicado

Se o processo BPEL recebeu o XML abaixo, então o predicado selecionaria a primeira marca Air.

<Air>
    <NumberInParty>2</NumberInParty>
</Air>
<Air>
    <NumberInParty>4</NumberInParty>
</Air>
<Air>
    <NumberInParty>6</NumberInParty>
</Air>

início


Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Virtual Box - full virtualizer  Open ESB - The Open Enterprise Service Bus Powered by