Tuesday, October 3, 2006

Workflows com Visual Studio e InfoPath no MOSS2007

Como referi no post anterior, o exercício de Workflow realizado no curso de Office 2007 (uma actualização do capítulo do livro "7 Development Projects for MOSS2007 and WSS") foi algo complexo, e o laboratório não incluía detalhe suficiente sobre cada passo realizado.

Para quem tiver interesse em começar a explorar o tema de Workflows em SharePoint, tem no blog do Nick Swan uma explicação passo-a-passo de um workflow com VS2005 e formulários InfoPath 2007, tanto dos vários passos como do que é necessário para fazer o deployment. O exemplo não é o mesmo do curso, apesar de muito semelhante, mas antes uma explicação detalhada do "How To" que é incluído no SDK do MOSS 2007 (SDK > Managing Enterprise Document Content > Workflows in Office SharePoint Server 2007). Este exemplo funciona bem com a beta 2 do MOSS 2007.

Algumas notas gerais que podem facilitar a sua realização:

  • Para fazer debug ao Workflow no VS2005, é necessário fazer Attach ao w3wp (Managed Code);
  • No string Install.Bat que instala a Feature e o Workflow, e que é criado automaticamente quando se cria o projecto no Visual Studio, trocar as 2 linhas que fazem o Deactivate e Uninstall da Feature para o topo. Depois de os formulários InfoPath estarem feitos e testados, comentar as duas linhas que fazem essa verificação;
  • Caso apenas se altere o código do workflow, não é necessário reinstalar a feature, basta colocar no Gac a nova versão e fazer IISRESET;
  • Um dos aspectos interessantes do exemplo é que usa o primeiro formulário tanto para na Associação como na Iniciação do workflow, o que é especificado no Workflow.Xml . O mesmo pode ser feito na criação de Tasks, mas neste caso pode não ser obrigatório repetir a associação, bastando atribuir o mesmo "Task Type" às tarefas criadas e fazer a associação uma única vez.
  • Quando se faz o Publish de um formulário IP, deve usar-se o mesmo nome que aparece nas properties (quando se vai copiar o URN).
  • O ficheiro com a Secondary Data Source, o ItemMetadata.xml, tem de ter este nome, e é case sensitive. Notar que o exemplo do Nick Swan está incorrecto neste ponto (ou antes, os screenshots estão bem, a descrição textual incorrecta). Este ponto está referido na documentação do MOSS, mas é fácil deixar passar. Se não tiver este nome, a passagem de valores para o 2º formulário não funciona.

Para quem vai começar nisto, recomendo ainda o download do ECM Starter Kit for 2007 Office System , que além das templates de projecto para o Studio tem vários exemplos de workflow sobre
MOSS.

Fazer workflows para MOSS tem a sua complexidade, que suponho vá diminuir à medida que a tecnologia ganhe maturidade, mas o potencial – já hoje – é muito grande. Repleto de "Oportunidades para ISV's". :-)


[Cross-Posted de http://www.arquitecturadesoftware.org/blogs/joaomartins]

No comments:

Post a Comment