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 todas as funções XPath do mapeador BPEL que você usa para criar mapeamentos BPEL. Você também pode aprimorar ou estender os mapeamentos BPEL incorporando predicados que consistem em funções XPath.
Painel da árvore de origem. O painel da árvore de origem contém um componente de árvore que fornece acesso às variáveis de dados de um processo BPEL.
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 BPEL:
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.
Painel da árvore de destino. O componente de árvore do painel da árvore de destino depende do elemento do processo BPEL que você está mapeando. O painel da árvore de destino 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, o painel da direita contém um nó Prazo ou Duração.
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:
No painel da árvore de origem, expanda o componente de árvore até que o nó do qual você deseja mapear apareça.
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.
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:
Clique no menu suspenso que contém a função.
Clique na função. Uma caixa de função é exibida no painel do meio.
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.
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.
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 a quantidade de um produto. Se você selecionar todos os produtos cuja quantidade seja maior que 50, poderá usar as funções maior que e number literal para definir a condição.
Somente alguns tipos de nós permitem criar predicados. O menu contextual desses nós contém a opção Novo predicado.
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:
No painel da árvore de origem, clique com o botão direito do mouse em um nó e escolha Novo predicado. O Editor de predicado é exibido.
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.
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:
No painel da árvore de origem, clique com o botão direito do mouse no nó do predicado e escolha Editar predicado.
Modifique a condição.
Clique em OK.
Para excluir um predicado:
No painel da árvore de origem, clique com o botão direito do mouse no nó do predicado e escolha Excluir predicado.
Duration Literal permite inserir uma literal de duração. Use o formato especificado na especificação do esquema XML.
Current Time fornece a hora atual.
Current Date fornece a data atual.
Current Date and Time fornece a data e a hora atuais.
Operador
O menu Operador contém as seguintes funções:
Maior que
Maior ou igual
Menor que
Menor ou igual
Adição
Subtração
Multiplicação
O operador Div ou divisão retorna o quociente de um determinado dividendo e divisor.
O operador Mod ou módulo retorna o resto de um determinado dividendo e divisor.
Negativo
Diferente
IGUAL
Booleano
O menu Booleano contém as seguintes funções:
True retorna verdadeiro.
False retorna falso.
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 um argumento 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.
Lang retorna verdadeiro ou falso dependendo se o idioma do nó de contexto for o mesmo ou for um subidioma do idioma especificado no argumento.
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 a primeira seqüência do argumento contiver a segunda seqüência do argumento, 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 a primeira seqüência do argumento começa com a segunda seqüência do argumento, 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.
Nós
O menu Nós contém as seguintes funções:
Last retorna o tamanho do contexto.
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.
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.
Number Literal 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.
Presume que você deseja que um processo BPEL copie dados recebidos de um parceiro. Realize as seguintes tarefas:
Adicione uma atividade Atribuir após a atividade Receber.
Selecione a atividade Atribuir e use o editor para definir uma ou mais atribuições de cópia.
O exemplo seguinte mostra uma atribuição de cópia que não usa quaisquer funções XPath. A parte itinerary da variável ItineraryIn é copiada para a parte itinerary da variável ItineraryOut. Observe que o painel esquerdo e o painel direito contêm o mesmo componente de árvore.
O exemplo seguinte mostra uma atribuição de cópia que usa a função XPath concat. A variável de entrada paramA é concatenada no fim da literal de seqüência Parameter A: e copiada para a variável de saída paramA.
Presume que você deseja executar uma série de etapas somente se uma determinada condição for verdadeira. Realize as seguintes tarefas:
Adicione uma atividade If ao processo BPEL.
Selecione a atividade If e use o editor para definir a condição Booleano.
Adicione as etapas dentro da atividade If.
O exemplo seguinte mostra um mapeamento da condição. O mapeamento usa a função XPath Not, que está disponível na porção 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.
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:
No painel esquerdo do editor, clique com o botão direito do mouse no nó de repetição e escolha Novo predicado. A janela Predicado é exibida.
Adicione a função XPath Menor que no painel do meio.
Adicione a função XPath number literal no painel do meio. Defina o valor como 3.
Mapeie o nó da variável para o primeiro argumento da função XPath Menor que.
Mapeie o resultado da função XPath number literal para o segundo argumento da função XPath Menor que.
Mapeie o resultado da função XPath Menor que para o nó Resultado no painel direito.
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.