Avançar para a área de conteúdo

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Na primeira vez que você efetua sign in no developerWorks, um perfil é criado para você. Informações selecionadas do seu perfil developerWorks são exibidas ao público, mas você pode editá-las a qualquer momento. Seu primeiro nome, sobrenome (a menos que escolha ocultá-los), e seu nome de exibição acompanharão o conteúdo que postar.

Todas as informações enviadas são seguras.

  • Fechar [x]

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Todas as informações enviadas são seguras.

  • Fechar [x]

Modelando seus processos de negócio com o IBM WebSphere Lombardi Edition, Parte 4: Desenvolvendo um serviço humano usando Coaches

Chang Hua Sun, Staff Software Engineer, IBM
Chang Hua Sun photo
Chang Hua Sun é engenheiro da equipe de software da equipe de otimização de serviço e desempenho dos negócios dentro do IBM Software Group, no qual ele desenvolve tecnologias e soluções de SOA e BPM.
Xiao Xing Liang, Software Engineer, IBM
Xiao Xing Liang photo
Xiao Xing Liang é engenheiro de software e trabalha para o Centro de Design SOA no Laboratório de Desenvolvimento na China. Ele é um desenvolvedor certificado pela IBM para o WebSphere Enterprise Developer e para o SOA Solution Designer. Seu foco atual está no controle SOA e em tópicos relacionados, incluindo WebSphere Service Registry and Repository, Rational Asset Manager, Tivoli Application Dependency Discovery Manager e Tivoli Change and Configuration Management Database.
Xi Ning Wang, Staff Software Engineer and Development Lead, IBM
Xi Ning Wang photo
Xi Ning Wang é engenheiro de equipe de software e líder de desenvolvimento de infraestrutura em nuvem, IBM SOA Advanced Technologies, IBM Software Group. Ele já projetou e desenvolveu tecnologias de SOA e soluções em projetos importantes. Atualmente, está focado nas áreas de computação em nuvem e solução de segmento de mercado. Ele foi designado como um autor contribuinte para o IBM developerWorks em 2009.
Xin Li, Staff Software Engineer, IBM
Xi Lin photo
Xin Li é engenheiro de software no Laboratório de desenvolvimento da IBM China, onde se concentra no design e desenvolvimento relacionado ao SOA. Li Xin tem bastante experiência em integração de sistema de domínio de telecomunicações e também muito conhecimento sobre normas e tecnologias de telecomunicações.

Resumo:  Na Parte 4 desta série, você aprenderá a usar os Coaches do WebSphere® Lombardi V7.1 para criar um serviço humano para coleta de detalhes da ordem de um usuário e exibição de um resumo da ordem para o usuário, usando uma amostra de processo de ordem de compra.

Visualizar mais conteúdo nesta série

Data:  02/Fev/2012
Nível:  Introdutório Também disponível em :   Inglês
Atividade:  279 visualizações
Comentários:  


Visão Geral

A Parte 1 desta série forneceu uma visão geral dos recursos e arquitetura do WebSphere Lombardi V7.1 (a partir de agora chamado de Lombardi). Na Parte 2 você aprendeu como usar os recursos mais comuns do Lombardi, incluindo a definição de processo de negócios (BPD), integração e serviços humanos e de regra para modelar o processo de amostra. Na Parte 3 você aprendeu como usar alguns recursos avançados do Lombardi para atender aos requisitos mais complexos, incluindo processos aninhados, marcos, mecanismos de evento, manipulação de exceção e exposição dos serviços da web do Lombardi.

Na Parte 4, você aprenderá a usar os Coaches do Lombardi para desenvolver serviços humanos. Continuaremos a usar o cenário de negócio típico de um processo de ordem de compra como nossa amostra.


Visão geral do designer de Coach do Lombardi

Os Coaches do Lombardi fornecem a interface para interação com o usuário final e são normalmente usados para desenvolver serviços humanos. A Figura 1 mostra o layout do designer de Coach do Lombardi.


Figura 1. O designer de Coach

  1. Mostra todos os Coaches no serviço aberto atualmente. É possível alterar ou implementar a página de Coach clicando em um dos Coaches.
  2. Mostra o design e a implementação do Coach selecionado na guia Design . É possível clicar na guia Preview para ver qual será aparência do Coach para os usuários finais quando o serviço for executado.
  3. Use os três primeiros ícones para: (1) mostrar o design do Coach; (2) mostrar o design e o código do Coach; (3) mostrar somente o código do Coach, respectivamente;
  4. Lista as seções, controles e variáveis que podem ser incluídos no Coach. Arraste uma seção ou controle da paleta para a guia Design para adicioná-lo ao Coach. Para criar um controle para uma variável incluída no serviço, arraste uma variável da paleta para a guia Design . O tipo de controle criado depende da variável. Por exemplo, uma variável de entrada que é uma cadeia de caractere cria um campo de texto de entrada.
  5. Mostra as propriedades do controle selecionado na guia Design .A Figura 1 mostra as propriedades de Order Name no Order Head Coach.

Visão geral da solução

Neste artigo, iremos desenvolver um serviço humano Submit Purchase Order na amostra de processo de Ordem de compra usando Coaches. Para a amostra e processo de Ordem de compra, o comprador precisa enviar uma ordem de compra para iniciar o processo. O serviço humano Submit Purchase Order que iremos desenvolver precisa coletar a entrada do comprador como o valor para a variável complexa order.

A Figura 2 ilustra a estrutura de dados da estrutura complexa Order. A variável order é uma instância de Order e inclui duas variáveis complexas: orderHead e orderDetail. Além disso, orderDetail é uma lista, ou array, da estrutura complexa OrderDetail. Portanto, um order incluirá um orderHead e uma ou mais variáveis orderDetail .

O serviço humano Submit Purchase Order fornecerá uma interface com o usuário para coletar informações do usuário a fim de preencher a variável order.


Figura 2. a estrutura de dados de Order

A Figura 3 ilustra o design geral de Coach para o serviço humano Submit Purchase Order. Primeiro, é necessário iniciar a variável complexa tw.local.order. Uma vez que um tw.local.order tem um tw.object.OrderHead e um ou mais tw.object.OrderDetail, desenvolveremos Coaches separados para Order Head e Order Detail. Finalmente, desenvolveremos um coach para mostrar o resumo da ordem para o usuário.


Figura 3. O coach geral para Submit Purchase Order


Iniciando o Script do Servidor de Saída

Como Order é uma variável complexa, primeiro é necessário inicializá-lo. A Figura 4 ilustra a implementação da inicialização. Você pode usar new tw.object.objectType para inicializar a variável com o tipo objectType e usar new tw.object.listof.objectType para iniciar uma variável de lista com um tipo objectType. Use um elemento Server Script para executar a inicialização.

Algumas das propriedades de Order podem ser receber valores padrão; por exemplo, o identificador de orderHead pode ser inicializado como o ID de instância do processo (tw.system.currentProcessInstanceID) e a data e hora da ordem podem ser inicializadas como a data e hora do sistema atual, como mostra a Figura 4.


Figura 4. Iniciando o script do servidor de saída


Criando o Coach Order Head

Como mostrou a Figura 4, uma ordem incluirá um orderHead e uma ou mais variáveis orderDetail . Para preencher a variável order , é necessário fornecer uma interface para coletar informações de orderHead e orderDetail . Como há apenas um orderHead para uma ordem, primeiro é necessário criar um Coach para orderHead.


Figura 5. O Coach Create Order Head

A Figura 5 ilustra a implementação do coach Create Order Head. Como orderHead, orderDate e orderTime são iniciados como mostra a Figura 4, e orderCloseDate, orderCloseTime receberão valores no fechamento da ordem, você precisa apenas desenvolver entradas para orderHeadName, buyer, supplierName, supplierContact e needBuyerConfirm.

Para a entrada do tipo String , arraste e solte Text ou Text Area (para entrada de diversas linhas) da paleta à direita e mude o Label e selecione Binding para o texto de entrada, como mostra a Figura 6.

Para a entrada do tipo Boolean (needBuyerConfirm), é possível arrastar e soltar Check Box da paleta e configurar as propriedades Label e Binding , da mesma forma que fez com o texto de entrada.


Figura 6. Configure as propriedades de Input Text

Após coletar a entrada do usuário, você precisa de pelo menos um botão para enviar os valores do formulário para o backend. A Figura 7 mostra as propriedades de Button Group. Nas propriedades de Presentation , é possível configurar o Label e até mesmo adicionar alguns scripts em Validation Script para executar alguma validação.


Figura 7. Configure as propriedades de Button Group


Criando o Coach Order Detail

O Coach Create Order Detail é mais complicado do que o Coach Create Order Head, pois é um número incerto de variáveis orderDetail ou orderDetail pode ser uma lista. Como o número de instâncias de orderDetail em uma ordem é determinado pelo usuário, é possível desenvolver o Coach com uma página e executar o loopback para a página. As Figuras 8 e 9 ilustram as variáveis e a implementação do Coach Create Order Detail.


Figura 8. As variáveis do Coach Create Order Detail


Figura 9. A implementação do Coach Create Order Detail

É possível definir duas variáveis privadas: orderDetailNum (Integer) para registrar o número atual de entradas do usuário OrderDetail ; e orderDetailTmp (OrderDetail) para registrar o valor de entradas de usuário OrderDetail na página do Coach.

Na página do Coach Order Detail, desenvolveremos as quatro propriedades a seguir para orderDetailTmp: shipDate, productNumber, quantity e unitprice. Outras propriedades serão geradas automaticamente ou definidas em um estágio posterior. As quatro propriedades têm três entradas de texto, que podem ser configuradas conforme exibido na Figura 6.

productNumber é um controle Single Select. A Figura 10 mostra as propriedades de apresentação de um Single Select. Os dados de um controle de seleção única podem ser manuais ou dinâmicos. Manual data tem duas colunas: Value é o valor real ao enviar o formulário para o backend, Display Text é o texto exibido na página. Neste exemplo, desenvolveremos a seleção productNumber usando manual data. Você aprenderá como usar dynamic data na Parte 5.

Dois botões na página do Coach Create Order Detail controlam a lógica. Quando um dos botões é clicado, o valor de orderDetailTmp é adicionado à lista tw.local.order.orderDetail . Se o botão Save & Create Another Order Detail for clicado, o usuário será redirecionado à página do Coach Create Order Detail. Se o botão Next for clicado, a etapa Create Order Detail será concluída.


Figura 10. Propriedades de Single Select

A Figura 11 mostra a implementação da lógica. No início, orderDetailNum tem um valor padrão de zero e tw.local.orderDetailTmp é instanciado como um novo tw.object.OrderDetail.


Figura 11. As designações anteriores e posteriores para Create Order Detail

Após o usuário enviar a página do Coach, tw.local.orderDetailTmp é adicionado à lista tw.local.order.orderDetail , como mostra a Listagem 1.


Listagem 1. Designações posteriores à execução
tw.local.order.orderDetail[tw.local.orderDetailNum] = new
tw.object.OrderDetail();

tw.local.order.orderDetail[tw.local.orderDetailNum].shipDate =
tw.local.orderDetailTmp.shipDate;
tw.local.order.orderDetail[tw.local.orderDetailNum].productNumber =
tw.local.orderDetailTmp.productNumber;
tw.local.order.orderDetail[tw.local.orderDetailNum].quantity =
tw.local.orderDetailTmp.quantity;
tw.local.order.orderDetail[tw.local.orderDetailNum].unitPrice =
tw.local.orderDetailTmp.unitPrice;

tw.local.order.orderDetail[tw.local.orderDetailNum].orderDetailCode =
tw.system.currentProcessInstanceID + tw.local.orderDetailTmp.productNumber;
tw.local.order.orderDetail[tw.local.orderDetailNum].orderNumber = "ORDER_" +
tw.system.currentProcessInstanceID + tw.local.orderDetailTmp.productNumber;
tw.local.order.orderDetail[tw.local.orderDetailNum].updatedQuantity =
tw.local.orderDetailTmp.quantity;
tw.local.order.orderDetail[tw.local.orderDetailNum].updatedUnitPrice =
tw.local.orderDetailTmp.unitPrice;
tw.local.orderDetailNum = tw.local.orderDetailNum + 1;


Criando o Coach View Order Summary

Após a conclusão dos Coaches Create Order Head e Create Order Detail, a ordem estará preenchida e o trabalho do Human Service Submit Purchase Order estará concluído. No entanto, é uma boa ideia mostrar um resumo da ordem para o usuário. A Figura 12 ilustra a implementação de um Coach View Order Summary.

A seção Order Head mostra o valor de tw.local.order.orderHead como o texto de saída. A seção Order Detail mostra o valor de tw.local.order.orderDetail como um controle de tabela. O controle de tabela exibe o orderDetail e é necessário apenas para configurar a propriedade Binding, parecida com a propriedade Text Input.


Figura 12. Implementação do Coach View Order Summary


Executando os Coaches

As Figuras 13, 14 e 15 ilustram o serviço humano Submit Purchase Order concluído. Quando o usuário inserir os valores para Order Head e clica em Next, a página Create Order Detail é exibida. O usuário pode criar quantos detalhes da ordem quiser, clicando no botão Save & Create Another Order Detail . Finalmente, o usuário recebe um resumo da ordem.


Figura 13. Coach Submit Purchase Order


Figura 14. Detalhes da ordem


Figura 15. Resumo da ordem


Conclusão

Neste documento, você aprendeu como usar os Coaches do Lombardi para desenvolver serviços humanos. Os recursos do Coach enriquecem a experiência do usuário em nossa amostra de processo de ordem de compra.

Na Parte 5, cobriremos recursos mais avançados do Coach, incluindo ligação de dados dinâmicos, o mecanismo de renderização em tempo de execução do Coach e como customizar o Coach.


Recursos

Sobre os autores

Chang Hua Sun photo

Chang Hua Sun é engenheiro da equipe de software da equipe de otimização de serviço e desempenho dos negócios dentro do IBM Software Group, no qual ele desenvolve tecnologias e soluções de SOA e BPM.

Xiao Xing Liang photo

Xiao Xing Liang é engenheiro de software e trabalha para o Centro de Design SOA no Laboratório de Desenvolvimento na China. Ele é um desenvolvedor certificado pela IBM para o WebSphere Enterprise Developer e para o SOA Solution Designer. Seu foco atual está no controle SOA e em tópicos relacionados, incluindo WebSphere Service Registry and Repository, Rational Asset Manager, Tivoli Application Dependency Discovery Manager e Tivoli Change and Configuration Management Database.

Xi Ning Wang photo

Xi Ning Wang é engenheiro de equipe de software e líder de desenvolvimento de infraestrutura em nuvem, IBM SOA Advanced Technologies, IBM Software Group. Ele já projetou e desenvolveu tecnologias de SOA e soluções em projetos importantes. Atualmente, está focado nas áreas de computação em nuvem e solução de segmento de mercado. Ele foi designado como um autor contribuinte para o IBM developerWorks em 2009.

Xi Lin photo

Xin Li é engenheiro de software no Laboratório de desenvolvimento da IBM China, onde se concentra no design e desenvolvimento relacionado ao SOA. Li Xin tem bastante experiência em integração de sistema de domínio de telecomunicações e também muito conhecimento sobre normas e tecnologias de telecomunicações.

Ajuda para Relatar Abuso

Relatar abuso

Obrigado. Esta entrada foi sinalizada para atenção do moderador.


Ajuda para Relatar Abuso

Relatar abuso

Falha no envio do Relatório de abuso. Tente novamente mais tarde.


developerWorks: Registre-se


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Na primeira vez que você efetua sign in no developerWorks, um perfil é criado para você. Informações selecionadas do seu perfil developerWorks são exibidas ao público, mas você pode editá-las a qualquer momento. Seu primeiro nome, sobrenome (a menos que escolha ocultá-los), e seu nome de exibição acompanharão o conteúdo que postar.

Selecione seu nome de exibição

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

(Deve possuir de 3 a 31 caracteres.)


Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Classificar este artigo

Comentários

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=WebSphere
ArticleID=790696
ArticleTitle=Modelando seus processos de negócio com o IBM WebSphere Lombardi Edition, Parte 4: Desenvolvendo um serviço humano usando Coaches
publish-date=02022012

Conheça a IBM da sua cidade

Virtual Branch Office Brasil

A IBM está mais perto do que você imagina!


Tags

Help
Use o campo de pesquisa para encontrar todos os tipos de conteúdo no My developerWorks com essa tag.

Use a barra de rolagem para ver mais ou menos tags.

Tags populares mostra as principais tags para esta zona de conteúdo em particular (por exemplo, Java technology, Linux, WebSphere).

Minhas tags mostra suas tags para esta zona de conteúdo em particular (por exemplo, Java technology, Linux, WebSphere).

Use o campo de pesquisa para localizar todos os tipos de conteúdo no Meu developerWorks com essa tag. Tags populares mostra as tags principais para essa zona de conteúdo particular (por exemplo, tecnologia Java, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere). Minhas tags mostra as suas tags para essa zona de conteúdo em particular (por exemplo, tecnologia Java, Linux, WebSphere).