Integrando a Manipulação de Tarefa Manual em um Ambiente Virtual do WebSphere Portal e do WebSphere Process Server

Use o Unified Task List Portlet para configurar um portal de processo de negócios para manipulação de tarefa manual

Um dos componentes para a criação de uma solução de integração de gerenciamento de processo de negócio, e baseada no WebSphere® Portal Server e WebSphere Process Server ou IBM® Business Process Manager, é o portlet Unified Task List. Este artigo mostra como começar a usar o portlet Unified Task List, como configurá-lo manualmente e também por meio de scripts. Você também aprenderá como configurar uma solução de manipulação de tarefa em um ambiente de portal virtual com vários códigos de idioma.

Franz-Josef Schneider, Certified Senior IT Specialist, IBM

Photo of Franz-Josef SchneiderFranz-Josef Schneider trabalha como Senior IT Specialist para a equipe do IBM Software Services para WebSphere na Alemanha. Ele tem mais de 10 anos de experiência com projetos de cliente em muitos produtos WebSphere. Seu principal interesse é a arquitetura e implementação da web, SOA, BPM, ESB (integração) e soluções de Portal. Em muitos compromissos com clientes, ele também trabalhou em assuntos como alta disponibilidade, análise e otimização de desempenho e implementações e revisões de segurança.



25/Set/2012

Introdução

Em uma solução de processo de negócio com tarefas manuais, sempre há o requisito de um frontend para os usuários localizarem, solicitarem e trabalharem em suas tarefas. Há diversas possibilidades para a integração frontend de manipulação de tarefas . Ao escolher uma solução, os requisitos de negócio e técnicos devem ser considerados. Uma opção de manipulação de tarefa é integrar uma solução em um ambiente do WebSphere Portal. Por exemplo, as principais funcionalidades do servidor de portal são integração de conteúdo, plataformas sociais e trabalho inteligente. Com a integração de processo mencionada, o WebSphere Portal Server pode ser aumentado para um portal de processo de negócio.

Os conceitos e detalhes técnicos sobre como criar uma solução de integração de portal de processo de negócio, usando o WebSphere Portal Server V7.0 (a partir de agora chamado de Portal Server) e o WebSphere Process Server V7.0 (a partir de agora chamado de Process Server), são documentados neste artigo (veja a Figura 1). Esse artigo tem base em experiências de projeto concretas e a solução é online em um ambiente 24x7. O foco desse artigo é específico para o Process Server. Observe que as principais partes deste artigo também são válidas para o IBM Business Process Manager (BPM) e para a integração do WebSphere Portal.

Figura 1. Integre o Portal Server com o Process Server
Integre o Portal Server com o Process Server

Quando o assunto são opções de implementação para a manipulação de tarefas em um ambiente do Portal Server, também há opções para usar o "My Tasks Portlet", os widgets de tarefa manual do Business Space, a implementação de portlet personalizado ou estender a funcionalidade do portlet Unified Task List com o pacote Business Process Accelerator. É possível usar o pacote Business Process Accelerator para criar portlets de processamento de negócio para processar as tarefas manuais exibidas na Unified Task List.

Para obter mais detalhes sobre as opções de integração, consulte Integrating WebSphere Portal with IBM Business Process Manager.

Em nosso projeto, nós avaliamos as opções de integração mencionadas anteriormente a fim de localizar a melhor solução para a integração da manipulação de tarefas manuais. Os requisitos e as restrições para a solução de integração vêm de usuários de negócio e também da equipe técnica. Um requisito técnico era, por exemplo, exibir e configurar a solução totalmente automatizada usando scripts.

Uma boa integração no Portal Server e a "aparência" eram questões importantes para usuários de negócio. Isso fornecia uma extensão perfeita do ambiente existente do Portal Server. Do lado técnico, um dos requisitos era ter a integração baseada em componentes e protocolos fracamente acoplados.

O site do portal existente usa bastante os portais virtuais, que trouxeram requisitos adicionais para a solução de portal de processo de negócio. Era importante que as tarefas manuais fossem cientes do portal virtual. Os portais virtuais são usados no ambiente de projeto para fornecer sites de portal específicos do país. A ciência do portal virtual obriga que a solução de lista de tarefa mostre apenas tarefas manuais específicas a um portal virtual, respectivamente, para o ambiente do país do usuário.

A Figura 2 mostra a dependência de tarefa do portal virtual (país). A lista de tarefas na sede (HQ) deve mostrar somente tarefas manuais definidas para HQ, e vice-versa, as tarefas manuais para Alemanha (DE) precisam ser exibidas no portal virtual DE.

Figura 2. Dependências de tarefa manual em um ambiente de portal virtual
Dependências de tarefa manual em um ambiente de portal virtual

IBM BPM

A próxima geração de WebSphere Process Server é o IBM Business Process Manager (BPM) V7.5. Esse produto também é suportado pela Unified Task List. É possível adotar a instalação e a configuração descritas neste artigo a fim de configurar a integração com o IBM BPM.

Baseado principalmente nos requisitos mencionados, o resultado da avaliação do projeto foi usar o Unified Task List Version 5.0 para a integração de processo de negócio.

Este artigo mostra como começar a usar o Unified Task List e como configurar o Unified Task List com tarefas manuais, além de procedimentos automatizados (script). Você também aprenderá como configurar uma solução de integração em ambientes de portal virtual.


Introdução ao Unified Task List

Integrating Process Server é um dos recursos do Unified Task List. Também é possível usar a Unified Task List para integrar o WebSphere Lombardi Edition e o IBM Business Process Manager. Os recursos enviados com o Unified Task List atendem aos requisitos de integração e frontend da maioria das soluções comuns. Também é possível usar o pacote de desenvolvedor do Unified Task List para personalizar e ampliar ainda mais os recursos do Unified Task List.


Pré-requisitos e escopo deste artigo

Este artigo não aborda a instalação e configuração básica do Portal Server e do Process Server. Ao instalar o Portal Server e o Process Server em células separadas, que é a instalação recomendada, uma configuração Single Sign On (SSO) entre células é necessária. É possível encontrar como definir uma configuração de SSO entre células na documentação do produto.

O portlet Unified Task List fornece a integração e seleção para tarefas humanas. Quando os usuários trabalham (abrem) em uma tarefa por meio da Unified Task List, uma página precisa mostrar os dados específicos da tarefa e as ações disponíveis (por exemplo, aprovar ou rejeitar uma tarefa). Essas páginas de tarefa são chamadas de definições de página de tarefa e contêm portlets de processamento de tarefas. Um portlet de processamento de tarefa é específico à tarefa humana. As definições de página de tarefa usam o conceito de Portal Server das páginas dinâmicas. Outra opção para trabalhar com tarefas manuais é o evento de broker da propriedade, que pode ser usado para comunicação dentro do portlet. Para obter mais informações, consulte a página de interfaces de usuário dinâmicas.

É possível criar páginas dinâmicas e portlets de manipulação de tarefa usando ferramentas de desenvolvimento padrão do Portal Server, como o Rational® Application Developer, ou usando o Web Experience Factory. O Unified Task List inclui construtores para fazer isso. Para obter mais informações sobre como criar portlets de processamento de tarefa que interagem com páginas dinâmicas, consulte a documentação do pacote de desenvolvedor do Unified Task List.

A criação e implementação de páginas dinâmicas e portlets de manipulação de tarefa estão além do escopo deste artigo. A documentação sobre esses assuntos pode ser encontrada na documentação do produto do Portal Server e no artigo Developing business process portal applications using WebSphere tooling.

Nesse artigo, mostramos exemplos de scripts XMLAccess e wsadmin, mas não fornecemos detalhes sobre como usar as ferramentas. Para obter mais informações, consulte XMLAccess (Interface de configuração de XML) e wsadmin.


A configuração do Unified Task List

Vamos começar com a definição das atividades e sequência de instalação e configuração da Unified Task List. A Figura 3 mostra as ações de configuração na sequência que foram consideradas bem-sucedidas em nosso projeto. Entraremos em detalhes sobre cada atividade nas seções a seguir.

Figura 3. Ações de configuração do Unified Task List
Ações de configuração do Unified Task List

Implementar e posicionar o Unified Task List

Para começar, faça o download do pacote do Unified Task List e descompacte o arquivo UnifiedTaskList_V5.0.zip . Esse arquivo contém a documentação do Unified Task list (UnifiedTaskList.pdf) e o arquivo "Portal Application Archive" (unifiedtasklist.paa), que podem ser usados com o Portal Solution Installer.

A abordagem recomendada para instalação do Unified Task List é usar o Portal Solution Installer. Se for possível usar o Portal Solution Installer em seu ambiente do Portal Server, recomendamos que siga as instruções de configuração na documentação do Unified Task List.

Na verdade, usar o Portal Solution Installer em nosso projeto não foi uma opção, pois já existiam procedimentos de implementação automatizados. Foi um requisito usar o processo de implementação estabelecido, que tem base no wsadmin e XML Access.

Para integrar o Unified Task List no processo de implementação automatizado, usamos as seguintes etapas:

  1. Extraia o arquivo Unified Task List PAA (Portal Application Archive). Usando sua ferramenta zip favorita, descompacte o arquivo Unified Task List PAA em um diretório temporário.
  2. A partir do diretório descompactado, copie o arquivo tpir.jar no seguinte diretório do Portal Server Profile: <PortalServer_ProfileDirectory>/PortalServer/config.

    É possível encontrar o arquivo tpir.jar no diretório descompactado em:
    <unifiedtasklist>\unifiedtasklist\components\unifiedtasklist\shared\app\
  3. Reinicie o Portal Server da seguinte maneira:
    <PortalServer_ProfileDirectory>/ConfigEngine.sh stop-server start-server
  4. Implemente e inicie o Unified Task List usando o script wsadmin. O arquivo Unified Task List Web Archive (WAR) está localizado no diretório descompactado em:
    <unifiedtasklist>\unifiedtasklist\components\unifiedtasklist\installableApps\
     portlets\unifiedtasklist.war
  5. É possível usar a amostra de script de comando wsadmin exibido na Listagem 1 para instalar o arquivo WAR. Para obter informações adicionais sobre como iniciar e usar o wsadmin, consulte o Centro de Informações.
    Listagem 1. Amostra de script wsadmin para instalação e inicialização do aplicativo Unified Task List
    ##Sample wsadmin jython script to install the UTL war file
    #
    # Define UTL specific deployment parameters
    #
    # !Set/check the following parameters !
    utl_war_file="E:/1UTL/unifiedtasklist.war"
    nodeName="punk-wp7-node02"
    serverName="WebSphere_Portal"
    appName="unifiedtasklist_war"
    ############
    
    print "-> Starting Unified Task List installation."
    # Install the UTL war file
    cellName=AdminControl.getCell()
    AdminApp.install(utl_war_file, '[ -nopreCompileJSPs -distributeApp
    -nouseMetaDataFromBinary -nodeployejb -appname '+appName+'
    -createMBeansForResources -noreloadEnabled -nodeployws
    -validateinstall warn -noprocessEmbeddedConfig -filepermission
    .*\.dll=755#.*\.so=755#.*\.a=755#.*\.sl=755 -noallowDispatchRemoteInclude
    -noallowServiceRemoteInclude -asyncRequestDispatchType DISABLED
    -nouseAutoLink -contextroot /wps/unifiedtasklist -MapModulesToServers
    [[ WPF unifiedtasklist.war,WEB-INF/web.xml WebSphere:cell='+cellName+',
    node='+nodeName+',server='+serverName+' ]] -MapWebModToVH
    [[ WPF unifiedtasklist.war,WEB-INF/web.xml default_host ]]]' )
    print "  - Application installed."
    
    # Save the configuration
    AdminConfig.save()
    print "  - Configuration saved - Starting application."
    
    # Start the UTL application
    # Get the WebSphere AppServer Application Manager Object
    appManager = AdminControl.queryNames('cell='+cellName+',node='+nodeName+',
    type=ApplicationManager,process='+serverName+',*')
    AdminControl.invoke(appManager, 'startApplication', appName)
    print "  - Application Unified Task List started"
    print "-> Installation done."
    ####DONE###
  6. Agora, registre o aplicativo Unified Task List implementado no Portal Server. O registro de portlets pré-implementados no Portal Server é realizado por meio de um script de XMLAccess.

    A Listagem 2 mostra um exemplo de XMLAccess para registrar o portlet Unified Task List pré-implementado.
    Listagem 2. XMLAccess para registrar o aplicativo Unified Task List pré-implementado no Portal Server
    <?xml version="1.0" encoding="UTF-8"?>
    <request xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:noNamespaceSchemaLocation="PortalConfig_7.0.0.xsd" type="update"
     create-oids="true">
    <portal action="locate">
    	<web-app action="update" predeployed="true" active="true"
    	uid="com.bowstreet.portlet.WebAppRunner2_unifiedtasklist.webmod">
    	
    		<url>file:<WP_Profile_Dir>\installedApps\<NodeName>\
             unifiedtasklist_war.ear\unifiedtasklist.war</url>
    		<context-root>/wps/unifiedtasklist</context-root>
    		<display-name>unifiedtasklist</display-name>
    
    		<servlet action="update" active="true" objectid="Unified Task List
            Portlet" referenceid="Unified Task List Portlet.servlet" />
    
    		<portlet-app action="update" active="true" uid="Unified Task List
             Portlet">
    			<portlet action="update" active="true" uniquename="UTL_Portlet"
    			name="Unified Task List Portlet"
    			servletref="Unified Task List Portlet.servlet">
    			</portlet>
    		</portlet-app>
    	</web-app>
    </portal>
    </request>
  7. Crie uma página de portal e coloque o Unified Task List usando o XMLAccess.

    A Listagem 3 mostra o script XMLAccess para criação de uma página "HumanTasks" do Portal Server e colocação do portlet Unified Task List nessa página. Isso é apenas um exemplo, uma vez que você deseja colocar essa página em um local mais apropriado em sua estrutura de página do Portal Server.
    Listagem 3. XMLAccess para criação de uma página do Portal Server e posicionamento do portlet Unified Task List
    <request build="wp7001CF03_001_15" type="update" version="7.0.0.1"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation=
    "PortalConfig_7.0.0.xsd">
        <portal action="locate">
            <web-app action="locate" domain="rel" uid="com.bowstreet.portlet.
              WebAppRunner2_unifiedtasklist.webmod">
                <servlet action="locate" domain="rel"
                 name="Unified Task List Portlet"/>
                <portlet-app action="locate" domain="rel"
                 name="com.bowstreet.portlet.WebAppRunner2_unifiedtasklist"
                 uid="com.bowstreet.portlet.WebAppRunner2_unifiedtasklist">
     <portlet action="locate" domain="rel" uniquename="UTL_Portlet"
          objectid="utlPortletID"/>
                </portlet-app>
            </web-app>
    	
            <content-node action="locate" domain="rel" uniquename=
             "wps.content.root"/>
            <content-node action="locate" domain="rel" uniquename=
             "ibm.portal.Home"/>
            <content-node action="update" active="true"
             allportletsallowed="true" content-parentref="ibm.portal.Home"
             create-type="explicit" domain="rel" ordinal="300" type="page"
             uniquename="Task">
                <supported-markup markup="html" update="set"/>
                <localedata locale="de">
                    <title>Meine Aufgaben</title>
                </localedata>
                <localedata locale="en">
                    <title>My Tasks</title>
                </localedata>
    			<component action="update" active="true" deletable="undefined"
                 domain="rel" modifiable="undefined" ordinal="100"
                 orientation="V" skinref="undefined" type="container"
                 width="undefined">
                        <component action="update" active="true"
                         deletable="undefined" domain="rel"
                         modifiable="undefined" ordinal="100"
                         skinref="undefined" type="control"
                         width="undefined">
                    <portletinstance action="update" domain="rel"
                      portletref="utlPortletID">
    		<preferences
    name="wpf_edit_defaults.com.ibm.accelerators.utl.VisibleFilters:VisibleFilters"
     update="set">
    	<!-- Define the Visible Filters for -this- Virtual Portal :
          HQ-->
    	<value><![CDATA[
    	<FilterSettings xmlns="http://www.ibm.com/wps/utl/VisibleFiltersSchema">
    	<DefaultFilter>Headquarter_Tasks</DefaultFilter>
    	<VisibleFilters>
    <FilterID>Headquarter_Tasks</FilterID>
    <FilterID>Headquarter_ClaimedTaks</FilterID>
    <FilterID>Headquarter_UnClaimedTasks</FilterID>
    </VisibleFilters>
    </FilterSettings>]]>
    				</value>
    </preferences>
    			</portletinstance>
    		</component>
    			</component>
    		</content-node>
    	</portal>
    </request>

    Após a conclusão bem-sucedida das etapas de implementação e posicionamento, o portlet Unified Task List fica disponível no Portal Server e é possível fazer outras configurações.

  8. Para acessar o Unified Task List, faça login no Portal Server e selecione a página My Tasks . O nome da página "My Tasks" foi definida por meio do posicionamento do script XMLAccess. Caso você esteja usando um conjunto de código de idiomas diferente de inglês em seu navegador, o nome da página será traduzido para o idioma apropriado. Para códigos de idioma do alemão, o nome da página é "Meine Aufgaben".

    Há apenas uma instância do portlet Unified Task List para todos os portais de país (portais virtuais). Essa instância única é compartilhada e posicionada em páginas separadas nos portais virtuais.

Configure o portlet Unified Task List

Dica

Ao trabalhar com a configuração do Unified Task List Web (Portal), sempre clique em Save e em Back para confirmar suas alterações. Após clicar em Save, aguarde até que o navegador tenha concluído o recarregamento. O processo da ação Save não informa que sua gravação foi concluída. Além disso, não selecione Back no menu do portlet para retornar à visualização principal.

Agora, você implantou e posicionou o Unified Task List. As próximas etapas são as configurações específicas de integração e do ambiente. Para acessar a configuração do Unified Task List, abra a página na qual o Unified Task List foi posicionado, passe o mouse sobre o canto superior direito do portlet (menu portlet) e selecione Configure para abrir a visualização de configuração do portlet, como mostra a Figura 4.

Figura 4. Abra a visualização de configuração para o portlet Unified Task List
Abra a visualização de configuração para o portlet Unified Task List

Configure as instâncias do provedor de tarefas

Provedores de tarefa

As instâncias do provedor de tarefas são serviços que acessam sistemas backend a fim de recuperar tarefas. Neste artigo, o sistema backend é um Process Server.

  1. Abra a configuração do Unified Task List e clique em Task Provider Instances.

    Ao configurar uma Task Provider Instance, é necessário escolher um provedor. Para o Process Server, as opções "IBM WebSphere Process Server" e "IBM WebSphere Process Server 7 (Task Query Table API)" estão disponíveis. Para esclarecer qual provedor usar, discuta com seus desenvolvedores de processo de negócio e pergunte se a implementação do processo de negócio usa tabelas de consulta de tarefa. Em nosso projeto, não usamos as tabelas de consulta de tarefa e, portanto, o provedor IBM WebSphere Process Server foi escolhido, como mostra a Figura 5.

    Figura 5. Configuração da Task Provider Instance
    Configuração da Task Provider Instance
  2. Defina um Name para o provedor de tarefa, selecione Enabled para ativá-lo e clique em Next.
  3. Para configurar a Process Server Task Provider Instance, o terminal do Human Task Manager Web Service SOAP do sistema Process Server é necessário.

    Há duas opções para obter o terminal do Process Server TaskContainer SOAP.

  4. "Construa" o Terminal SOAP. Substitua os parâmetros de sistema do Process Server na seguinte URL para obter a URL correta do terminal SOAP:
    http://<WPS_HOST>:<WPS_HTTP_PORT>/HT MIF_<WPS_Node>_<WPS_Server>/sca/com/ibm/task/
     api/sca/HTMWS

    Veja um exemplo:

    http://wps01.stage.mycompany.de:9082/HTMIF_WPSStageNode01_WPSStageServer01/
     sca/com/ibm/task/api/sca/HTMWS
  5. Exporte os arquivos WSDL do Human Task Manager usando o WebSphere Application Server Admin Console – essa é a abordagem recomendada:
    1. Abra o IBM Solution Console no sistema Process Server. Navegue até Applications > Application Types > WebSphere enterprise applications TaskContainer_<WPS_Node>_<WPS_Server> > arquivos WSDL do Publish .
    2. Abra o arquivo zip e navegue até o seguinte diretório:
      TaskContainer_<WPS_Node>_<WPS_Server>.ear\h.jar\META-INF\
       wsdl\com\ibm\task\api\sca\
    3. Abra o arquivo HTMWS.wsdl . O terminal SOAP é definido no final do arquivo: <soap:address location="<TaskManager_SOAP_Endpoint"/>.

    Dica

    Ao usar o provedor de tarefa "WebSphere Process Server", as chamadas do Serviço da web usarão o terminal JAX-RPC. Quando você usa o Task Query Table e o provedor de tarefa para "IBM WebSphere Process Server 7 (Task Query Table API)", os terminais JAX-WS serão usados.

    Quando você usa um Balanceador de carga ou um Servidor HTTP em frente do sistema Process Server, <WPS_HOST> e <WPS_HTTP_PORT> precisam ser definidos para o Servidor HTTP com os valores de Balanceador de carga.

    As tarefas retornadas de uma Task Provider Instance são definidas por Where Clause of Task Query (veja a Figura 6). Uma cláusula where tem base na sintaxe Human Task Query. Detalhes sobre as consultas com cláusula where do Process Server podem ser encontrados no Centro de Informações do Process Server.

    É possível digitar completamente uma sequência de consulta de tarefa personalizada ou usar uma das amostras de cláusula. Em nosso projeto, começamos com uma amostra de cláusula e a estendemos com a consulta para a propriedade personalizada do portal virtual.

    Figura 6. Configure um terminal de provedor de tarefa e consulta de tarefa
    Configure um terminal de provedor de tarefa e consulta de tarefa

    Veja a seguir um exemplo de uma cláusula de consulta que mostra todas as "Ready Tasks" para o portal virtual "Sede". O portal virtual é identificado pelo valor "hq" para a propriedade de tarefa personalizada "vp.selector.prop". As propriedades personalizadas de tarefa são descritas com mais detalhes na próxima seção.

    (TASK.TKTID = TASK_TEMPL_DESC.TKTID) AND (TASK.STATE = TASK.STATE.STATE_READY) AND
     (TASK.KIND = TASK.KIND.KIND_PARTICIPATING) AND (WORK_ITEM.REASON = WORK_ITEM.REASON.
     REASON_POTENTIAL_OWNER) AND TASK_CPROP1.NAME='vp.selector.prop' AND
     TASK_CPROP1.STRING_VALUE='hq'
    • TASK_CPROP1.NAME: esse parâmetro precisa estar disponível na tarefa manual.
    • TASK_CPROP1.STRING_VALUE: esse valor de parâmetro é consultado na consulta.

Detalhes do provedor de tarefas

Dentro da configuração da Unified Task List, é possível definir diversos provedores de tarefa. Isso pode ser necessário se houver diversos servidores backend. Ou, como é o nosso caso, o requisito é que a Unified Task List apresente um menu personalizado com as opções de exibição da lista de tarefas "All Tasks", "Claimed Tasks" e "Ready Tasks" (tarefas não solicitadas).

Definimos uma Task Provider Instance para cada um dos estados da tarefa (All, Claimed, Ready). A distinção entre os diferentes estados de tarefa ocorre por meio do parâmetro "TASK.STATE" na instrução de consulta Human Task.

Para recapitular, outro requisito do projeto era apresentar aos usuários somente tarefas específicas ao portal virtual (país). Para isso acontecer, usamos uma propriedade personalizada no nível das tarefas manuais com o nome de "vp.selector.prop". As definições de propriedade personalizada precisam ocorrer durante o desenvolvimento da tarefa manual no WebSphere Integration Developer. Encontre mais detalhes sobre as propriedades personalizadas de tarefa manual em Selecionando uma tarefa manual com propriedades customizadas usando o WebSphere Process Server.

Para selecionar tarefas com base nos valores de propriedade personalizados, as consultas de tarefa manual do Task Provider são estendidas para localizar somente as tarefas que corresponderem ao valor da propriedade personalizada. Com base nisso, criamos três instâncias do Task Instance Provider para cada portal virtual existente. Para este exemplo, há apenas dois portais virtuais, mas isso pode ser ampliado.

Isso resulta em seis instâncias do Task Provider, como mostra a Tabela 1.

Tabela 1. Mapeamento do provedor de tarefa para a propriedade personalizada
Nome do provedor de tarefasValor da propriedade personalizada (vp.selector.prop)
All Tasks para o Portal alemão de
Claimed Task para o Portal alemão de
Ready Tasks para o Portal alemão de
All Tasks para o Portal sede hq
Claimed Task para o Portal sede hq
Ready Tasks para o Portal sede hq

Com todos os provedores de tarefa definidos, a configuração de Unified Task List para nosso projeto parece com a Figura 7.

Figura 7. Lista de provedores de tarefa definidos
Lista de provedores de tarefa definidos

Combine os provedores de tarefa usando os filtros de tarefa

Usando os filtros, as tarefas humanas de mais de uma Task Provider Instance podem ser combinadas em um item de menu para os usuários de negócio. Mesmo se houver apenas uma Task Provider Instance, será necessário definir um filtro para a configuração dessa instância.

Tivemos que definir um filtro para cada Task Provider Instance, portanto terminamos com seis filtros.

  1. Na configuração da Unified Task List, selecione Filters (veja a Figura 8) e clique em Add para definir um novo filtro.
  2. Defina um nome para o filtro e para definir uma chave de recurso. Falaremos sobre a chave de recurso posteriormente.
  3. Na caixa suspensa, selecione o Task Instance Provider para criar um filtro e clique no ícone + para adicionar o provedor à configuração do filtro. Clique em Submit para completar a configuração do filtro.
    Figura 8. Configuração do filtro
    Configuração do filtro

    Agora, o filtro está disponível na visualização de configuração Filters, como mostra a Figura 9.

    Figura 9. Lista de filtros definidos
    Lista de filtros definidos

Configuração da manipulação de tarefa da Unified Task List

Há três opções para o método de conexão de manipulação de tarefa: Dynamic Portal Page, External URL e Property Broker Event. Baseado principalmente nas experiências de projeto da equipe, o método Dynamic Portal Page foi usado no projeto citado. Essa seção se concentrará na configuração para o uso de Dynamic Portal Pages para manipulação de tarefas.

Manipuladores de tarefa

Os manipuladores de tarefa definem o que acontece quando um usuário seleciona uma tarefa na Unified Task List para encaminhar um fluxo de trabalho. Os manipuladores de tarefa determinam como a Unified Task List se conecta às tarefas que os usuários precisam completar.

Quando um usuário de negócio solicita uma tarefa, a próxima etapa é abrir e trabalhar com essa tarefa. Isso significa que os dados da tarefa precisam ser apresentados ao usuário no frontend com recursos para executar as possíveis ações de tarefa. Essa funcionalidade é fornecida pelas páginas de manipulação de tarefas e portlets de manipulação de tarefa. A criação de páginas de manipulação de tarefa e portlets de manipulação de tarefas não é coberta neste artigo.

Além das páginas de tarefa e dos portlets de manipulação de tarefas, uma outra página de portal é exigida. Essa página adicional é chamada nó de extensão. A página nó de extensão é uma página de portal simples, que precisa ser ativada como um nó de extensão. É possível encontrar detalhes sobre essa tarefa na documentação de produto do Portal Server, Developing a dynamic UI configuration. As páginas de manipulação de tarefa e um nó de extensão precisam ser definidos para cada portal virtual.

Dica

É possível colocar as páginas de manipulação de tarefa e de portal em um local aleatório na estrutura de site sua página de portal. A única restrição é que você não precisa colocar as páginas de manipulação de tarefa abaixo do nó de extensão. Se você fizer isso, a criação da página dinâmica para a manipulação de Unified Task não funcionará.

O foco desta seção é a configuração da manipulação de tarefa da Unified Task List.

Cada tipo de tarefa manual exige uma página de manipulação de tarefa separada. E para cada página de manipulação de tarefa, uma definição de manipulação de tarefa precisa ser configurada na Unified Task List. Por exemplo, em nosso projeto tivemos cinco tipos de tarefa manual, portanto, criamos cinco configurações de manipulação de tarefas, um para cada página de manipulação de tarefa.

Para configurar uma Unified Task List Task Handler, é necessário o nome exclusivo da página de manipulação de tarefa para o tipo de tarefa específico. Pense em um conceito de nomenclatura para nomes exclusivos ao criar as páginas de tarefa no Portal Server.

Abra a configuração da Unified Task List e selecione Task Handling (veja a Figura 10), clique em Add para abrir a configuração de manipulação de tarefa.

Ao abrir a configuração Task Handling, a Unified Task List se conecta ao Process Server definido (instâncias do provedor de tarefa). Ou seja, todas as opções exibidas nas caixas suspensas representam os módulos que estão realmente em execução a partir do sistema Process Server.

Trabalhar com a configuração de manipulação de tarefa é na verdade o primeiro teste para verificar se a configuração do provedor de tarefa e a comunicação entre células estão corretas.

Se você não vir outros módulos, consulta sua configuração e os arquivos de log do Portal Server para possíveis mensagens de erro.

Além do campo de entrada de texto para o ID exclusivo da página de portal, todos os outros parâmetros podem ser selecionados a partir das caixas suspensas.

Figura 10. Configuração da manipulação de tarefa
Configuração da manipulação de tarefa

Atribua a página de manipulação de tarefa correta a um tipo de aplicativo e de tarefa e clique em Submit para criar o manipulador de tarefas. Lembre-se, você precisa criar um manipulador de tarefas para cada tipo de tarefa.

Configure os filtros visíveis a fim de apresentar a lista de tarefas aos usuários

Com a configuração realizada até o momento, é possível se conectar ao Process Server. Você criou filtros e definiu a manipulação de tarefa. Esta seção mostra como configurar os itens de menu da Unified Task List apresentados aos usuários de negócios. Os itens de menu são definidos como filtros visíveis.

Conforme mencionado, os usuários do Process Server e do Portal precisam ver e trabalhar apenas em tarefas manuais específicas aos seus países. Isso é diferenciado pelo identificador do portal virtual ao qual o usuário está conectado, por exemplo https://myPortalHost.com/wps/myportal/de ou https://myPortalHost.com/wps/myportal/hq.

Para conseguir isso, defina a propriedade personalizada chamada "vp.selector.prop" nas tarefas manuais. Essa propriedade personalizada é usada como o critério de filtro na cláusula where em nossas instâncias de provedor de tarefas. Além disso, os filtros visíveis da Unified Task List são usados para filtrar ainda mais e agrupar a forma como essas tarefas são exibidas ao usuário.

Usando a configuração de filtro visível, é possível definir quais filtros são exibidos no portal virtual de um país específico. A configuração de filtro visível é diferente para cada portal virtual no qual o portlet Unified Task List é usado.

Em nossa experiência de projeto, não começamos com a configuração de filtro visível antes de finalizar a configuração da localização. Primeiro, crie e altere os arquivos de localização (consulte Usando a localização com filtros) e inicie com a configuração do filtro visual. Dessa forma, você vê o texto localizado para os filtros na configuração de filtro visível.

Para acessar a configuração de Filtro Visual, clique em Edit Shared Settings no menu do portlet Unified Task List. Para adicionar filtros à lista de filtros visíveis nas configurações compartilhadas, selecione um filtro a partir da lista e adicione-o clicando em add icon. É possível adicionar diversos filtros à lista de filtros visíveis. Em nosso caso, adicionamos os filtros visíveis para tarefas solicitadas, tarefas não solicitadas e todas as tarefas. Dessa forma, o usuário pode selecionar entre três visualizações na Unified Task List.

Com os três filtros visíveis definidos e os arquivos em pacote do recurso ajustado, o menu Unified Task List parece com a Figura 11 ou a Figura 12.

Figura 11. Menu Unified Task List para o código de idioma alemão
Menu Unified Task List para o código de idioma alemão
Figura 12. Menu Unified Task List para o código de idioma inglês
Menu Unified Task List para o código de idioma inglês

Após a configuração de filtro visível, a Unified Task List está pronta para ser testada.

Usando a localização com filtros e filtros visíveis

A Unified Task List fornece funcionalidades de localização, que têm base nos recursos de código de idioma do Portal Server. Dependendo das configurações de código de idioma dos usuários (idioma do navegador, perfil do Portal), todas as páginas e portlets são traduzidas para o idioma do usuário.

Como você viu na seção Combinar provedores de tarefa usando filtros de tarefa , cada filtro tem uma chave de recurso associada definida. Você usa arquivos de pacote configurável de recursos para definir e traduzir o texto para as chaves de recurso de filtro definidas.

Os arquivos de pacote configurável de recursos estão localizados em um diretório configurável abaixo deste caminho:

<PortalServer_Home>/shared/app/<Bundle_Directory>

O nome do "Bundle_Directory" é configurado como uma propriedade personalizada no provedor de ambiente do Portal Server Config Service Resource. Use as etapas a seguir para configurar o diretório e os nomes de arquivo de pacote.

  1. Abra o "Integrated Solutions Console" para a célula do Portal Server.
  2. Acesse Resource environment providers > WP ConfigService> Custom properties.
  3. Clique em New (ou edite a propriedade existente).
  4. Insira processintegration.filtersetresourcebundle no campo Name .
  5. Para o campo Value, insira uma definição de pacote para o diretor de pacote e o nome do arquivo de pacote, como DirectoryName.BundleFilenamePrefix.

    Por exemplo, se os arquivos de pacote estiverem armazenados da seguinte maneira:

    <PortalServer_Home>/shared/app/yourCompany/WP_WPS_Bundle_xx.properties

    Insira o seguinte nome de pacote como yourCompany.WP_WPS_Bundle.

  6. Clique em Apply e OK.

    Os arquivos de pacote são nomeados BundleFilenamePrefix_<Locale>.properties. Se nenhum arquivo de pacote para o código de idioma do usuário for encontrado, o arquivo de localização padrão, BundleFilenamePrefix.properties será usado.

    É possível editar os arquivos de localização existentes ou apenas adicionar outros arquivos de localização ao diretório a fim de atender aos requisitos de idioma. Em um ambiente de WebSphere ND em cluster com diversos nós, é necessário distribuir os arquivos de pacote a todos os nós do Portal.

    Também é possível criar os arquivos de pacote configurável de recursos usando um editor de texto e colocar os arquivos em uma estrutura de diretório de arquivo de resposta em um sistema de arquivo compartilhado.


Configure a Unified Task List usando um procedimento de script

Em um projeto do mundo real, sempre recomendamos gerar um script e automatizar todas as etapas de instalação e configuração. Com uma configuração de script, é possível minimizar as falhas causadas por ações manuais e fornecer um processo de instalação rápido, confiável e repetido.

Nas últimas seções, usamos a interface da web da Unified Task List para fazer a configuração. Usando essa abordagem, o esforço para configurar um ambiente de projeto com diversos estágios, como sistemas de desenvolvimento, de teste e de produção, é muito alto e com tendência a erros.

Para automatizar a configuração da Unified Task List, é possível configurar um procedimento com base em alguns scripts de configuração. Os scripts são principalmente baseados na Portal Server XML Configuration Interface, XMLAccess.

Conforme visto durante a configuração manual, a Unified Task List tem duas seções de configuração:

  • A configuração comum para todos os portais virtuais (como instância de provedor de tarefas, filtros, manipulação de tarefas e localização).
  • A configuração compartilhada, que é específica ao portal virtual (filtros visíveis).

Configuração comum

A configuração comum da Unified Task List é salva como dados de preferência no nível do portlet. Para visualizar a configuração, abra o Configure Portlet (veja a Figura 13) na administração de gerenciamento de portlets do Portal Server para o portlet Unified Task List.

Figura 13. Abra a configuração da Unified Task List
Abra a configuração da Unified Task List

A Figura 14 mostra a preferência e valores de configuração da amostra. Como é possível ver, os nomes de preferência correspondem às opções da Unified Task List configuradas na configuração da interface da web.

Figura 14. Página de preferência do Unified Task List Portlet
Página de preferência do Unified Task List Portlet

As configurações são representadas como uma sequência nos campos Value e não devem ser alteradas aqui, nem seria fácil fazer isso. Para editar e alterar a configuração do portlet, uma boa abordagem é exportar os dados para um arquivo XML. Isso pode ser feito na administração do Portal ou usando XMLAccess.

Para exportar as configurações necessárias usando XMLAccess, o Unified Task List Web Module precisa ser exportado. Isso pode ser feito usando o script exibido na Listagem 4.

Listagem 4. XMLAccess to export the Unified Task List configuration
<?xml version="1.0" encoding="UTF-8"?>
<request build="wp7001CF03_001_15" type="export" version="7.0.0.1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="PortalConfig_7.0.0.xsd">
    <portal action="locate">
        <web-app action="export" domain="rel" uid="com.bowstreet.portlet.
         WebAppRunner2_unifiedtasklist.webmod">
        </web-app>
</portal>
</request>

O arquivo XML de XMLAccess resultante contém todos os dados comuns que podem ser ajustados para outro ambiente. O arquivo XML é abrangente e muito grande para ser exibido aqui. É possível encontrar um arquivo de amostra na seção Download deste artigo.

É possível usar o arquivo XML exportado da Unified Task List para importar a configuração para outro ambiente. Por exemplo, se você testou com êxito a configuração no ambiente de teste, poderá configurar a Unified Task List, idêntica no ambiente de produção, usando esse arquivo XML do XMLAccess. Na verdade, você terá que pelo menos alterar os dados de conexão do Process Server para direcionar o provedor de tarefas ao sistema de produção do Process Server. Para isso, será necessário alterar todas as entradas de <ID>SoapEndpoint</ID> , usar XMLAccess para importar a configuração para o Portal Server.

Além disso, um pré-requisito para isso funcionar é que é necessário ter concluído as etapas descritas na seção Implementar e posicionar o Unified Task List para o ambiente de destino. Se você tiver feito alterações ao arquivo de pacote configurável de recursos, lembre-se de transferir também esses arquivos para o outro sistema.

Script da configuração compartilhada

A configuração específica do portal virtual para filtros visíveis é definida no nível de instância do portlet. É possível definir esses dados usando um script XMLAccess. A Listagem 5 mostra a configuração de filtro visível para um portal virtual específico (Alemanha: de).

Listagem 5. XMLAccess para definição da configuração compartilhada usada para filtros visíveis
<request build="wp7001CF03_001_15" type="update" version="7.0.0.1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="PortalConfig_7.0.0.xsd">
<portal action="locate">
	<web-app action="locate" domain="rel" uid="com.bowstreet.portlet.
     WebAppRunner2_unifiedtasklist.webmod">
            <servlet action="locate" domain="rel"
             name="Unified Task List Portlet"/>
            <portlet-app action="locate" domain="rel"
             name="com.bowstreet.portlet.WebAppRunner2_unifiedtasklist"
			uid="com.bowstreet.portlet.WebAppRunner2_unifiedtasklist">
<portlet action="locate" domain="rel" name="Unified Task List Portlet"
 objectid="utlPortletID"/>
            </portlet-app>
        </web-app>
	
        <content-node action="update" active="true" allportletsallowed="true"
         content-parentref="ibm.portal.Home"
	create-type="explicit" domain="rel" ordinal="300" type="page"
      uniquename="Task">
<component action="update" active="true" deletable="undefined"
    domain="rel" modifiable="undefined" ordinal="100" orientation="V"
    skinref="undefined" type="container" width="undefined">
<component action="update" active="true" deletable="undefined"
  domain="rel" modifiable="undefined" ordinal="100" skinref="undefined"
   type="control" width="undefined">
    <portletinstance action="update" domain="rel"
     portletref="utlPortletID">
<preferences	name="wpf_edit_defaults.com.ibm.accelerators.utl.
 VisibleFilters:VisibleFilters" update="set">
							
<!-- Define the Visible Filters for Virtual Portal : DE-->
<value><![CDATA[
<FilterSettings xmlns="http://www.ibm.com/wps/utl/VisibleFiltersSchema">	
<DefaultFilter>Germany_Tasks</DefaultFilter>
      <VisibleFilters>
<FilterID>Germany_AllTasks</FilterID>						
<FilterID>Germany_ClaimedTasks</FilterID>
		<FilterID>Germany_UnclaimedTasks</FilterID>
	</VisibleFilters>
</FilterSettings>]]>
</value>
                      </preferences>
                    </portletinstance>
                    </component>
            </component>
        </content-node>
    </portal>
</request>

Dica

Para executar os scripts XMLAccess em um portal virtual, anexe a raiz de contexto do portal virtual como um valor para o parâmetro de linha de comando de conexão "-url": http://<WP_HOST>:<<WP_SERVER_HTTP_PORT>/<PortalContext_ROOT>/config/<VP-ContextRoot>.

Usando os scripts de amostra fornecidos com este artigo, não é necessário configurar manualmente a Unified Task List. É necessário apenas executar o XMLAccess para importar a configuração comum e a compartilhada para um ambiente do Portal Server. Isso minimiza o esforço manual e garante configurações idênticas em ambientes diferentes.


Dicas de resolução de problemas

Se o ambiente tiver atendido a todos os pré-requisitos e você tiver executado as etapas deste artigo, o portlet Unified Task List deverá exibir as tarefas disponíveis.

Caso contrário, veja alguns pontos a serem verificados:

  • O SSO realmente funciona?
    Consulte estas notas técnicas sobre como validar o SSO.
  • O usuário do Portal realmente tem tarefas no Process Server?
    É possível verificar isso, por exemplo, com o "Business Process Explorer" (BPC Explorer) no site do Process Server.
    1. Verifique se o usuário foi atribuído como um possível proprietário para as tarefas.
    2. Faça login no BPC Exporer com o usuário e clique em My To-dos.
  • Se a configuração estiver correta e o usuário tiver tarefas, o rastreamento ajudará a analisar ainda mais a situação.
    Para ver o que está acontecendo na Unified Task List, ative a seguinte sequência de rastreamento no Portal Server: com.ibm.accelerators.utl.*=all. Além disso, para ver mais detalhes sobre o site do Process Server, ative os seguintes detalhes de rastreamento:
    com.ibm.bpe.*=all: com.ibm.task.*=all:com.ibm.ws.security.
     *=all:com.ibm.ws.staffsupport.*=all

A análise dos dados de rastreamento pode ser complexa, mas os dados podem fornecer uma dica da causa e do motivo de a Unfied Task List não mostrar as tarefas esperadas.


Conclusão

A Unified Task List é uma opção para ampliar um ambiente do WebSphere Portal Server para um portal de processo de negócio. Usando exemplos obtidos de um projeto de cliente real, este artigo mostrou a sequência e ações detalhadas para executar a Unified Task List. Com base nisso, você aprendeu a integrar em um ambiente de portal virtual e a usar scripts para a configuração.


Agradecimentos

O autor gostaria de agradecer Paul Thomas e David Rockett pela revisão técnica deste artigo. Além disso, agradeço a Thomas Reske que forneceu suporte e orientação na criação deste artigo.


Download

DescriçãoNomeTamanho
Code sample fileUTL-Scripts.zip9KB

Recursos

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

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

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

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

Elija su nombre para mostrar



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.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

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

 


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


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=WebSphere
ArticleID=837086
ArticleTitle=Integrando a Manipulação de Tarefa Manual em um Ambiente Virtual do WebSphere Portal e do WebSphere Process Server
publish-date=09252012