Erro ao editar documento que está sob workflow

A algum tempo atrás me deparei com um problema relacioado a um workflow customizado que criei. Nenhum documento que estava sob o fluxo conseguia ser editado. Toda vez que tentava editá-lo dava erro.

Pesquisei e descobri que o erro era causado apenas quando a feature de publicação do SharePoint Server estava ativa. Mas isso não poderia ser a solução, aí fiquei um tempo no escuro. Hoje, finalmente encontrei a solução.

Para simular o problema fiz o passo-a-passo abaixo, o fluxo que está rodando no exemplo é um fluxo padrão do SharePoint.

1. Iniciei com a feature desativada:

clip_image001

2. Acessando o menu para editar as propriedades do item:

editaritem1

3. A tela de edição de item funciona:

editaritem2

4. Ativei a feature:

clip_image004

5. Acessando o menu para editar as propriedades do item:

editaritem3

6. Tela de erro:

clip_image006

7. Erro no log do SharePoint:

System.ArgumentNullException: Valor não pode ser nulo. Nome do parâmetro: s

em System.IO.StringReader..ctor(String s)

em System.Xml.XmlDocument.LoadXml(String xml)

em Microsoft.SharePoint.Publishing.Internal.WorkflowUtilities.FlattenXmlToHashtable(String strXml)

em Microsoft.SharePoint.Publishing.Internal.WorkflowUtilities.DoesWorkflowCancelWhenItemEdited(String associationXml)

em Microsoft.SharePoint.Publishing.WebControls.ConsoleDataSource.EnsurePageNotInLockingWorkflowIfInEditMode()

em Microsoft.SharePoint.Publishing.WebControls.ConsoleDataSource.LoadDataSource()

em Microsoft.SharePoint.Publishing.WebControls.ConsoleDataSource.OnLoad(EventArgs e)

em Microsoft.SharePoint.Publishing.WebControls.XmlConsoleDataSource.OnLoad(EventArgs e)

em Microsoft.SharePoint.Publishing.WebControls.PublishingSiteActionsMenuCustomizer.OnLoad(EventArgs e)

em System.Web.UI.Control.LoadRecursive()

em System.Web.UI.Control.LoadRecursive()

em System.Web.UI.Control.LoadRecursive()

em System.Web.UI.Control.LoadRecursive()

em System.Web.UI.Control.LoadRecursive()

em System.Web.UI.Control.LoadRecursive()

em System.Web.UI.Control.LoadRecursive()

em System.Web.UI.Control.LoadRecursive()

em System.Web.UI.Control.LoadRecursive()

em System.Web.UI.Control.LoadRecursive()

em System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Encontrei a solução no fórum do TechNet de SharePoint: http://social.technet.microsoft.com/Forums/en/sharepoint2010programming/thread/66d97848-68e2-4342-b857-eb86af16544d 

A solução foi bem simples, como o meu fluxo em questão não tinha o AssociationData configurado dava este erro.

Para solucionar o problema só seguir os passos abaixo:

1. Remover o fluxo da biblioteca

2. Editar o arquivo Elements.xml (do fluxo) e incluir abaixo da tag <Categories /> o conteúdo abaixo:

<AssociationData>

    <SharePoint></SharePoint>

</AssociationData>

3. Reinstale o workflow

4. Teste.

Com essa solução acima o erros que estava tendo no fluxo foram resolvidos, espero que os de vocês também sejam.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: