sexta-feira, 30 de janeiro de 2015

Como alterar aprovadores de um fluxo de trabalho no SharePoint - PowerShell



Vou mostrar neste post como alterar os aprovadores de um fluxo de trabalho de aprovação do SharePoint utilizando PowerShell.



As informações sobre o fluxo de trabalho de aprovação ficam armazenadas num formulário e seu xml pode ser obtido através da propriedade AssociationData do objeto relativo a associação do fluxo de trabalho à lista/biblioteca.

No script abaixo é possível ver a troca para um novo usuário aprovador.


Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

cls

#Informe o usuário aprovador atual
$actualUser = "DOMAIN\USER"

#Informa o usuário aprovador a ser alterado
$newUser = "DOMAIN\USER"

#Url do site
$url_web = "http://<<SharePoint Site>>"

#Url da lista/biblioteca
$library_name = "Documentos"

#Nome dado a associação do fluxo de trabalho à lista/biblioteca
$workflow_association_name = "Aprovação de Publicação Matheus"

#Retorna uma instância do SPWeb
$web = Get-SPWeb $url_web

#Retorna uma instância do SPList
$library = $web.Lists[$library_name]

#Retorna a associação do fluxo de trabalho através do nome
$association = $library.WorkflowAssociations | ? { $_.Name -eq $workflow_association_name }

#Realiza a troca do aprovador dentro do xml da propriedade AssociationData
$association.AssociationData = $association.AssociationData.Replace($actualUser, $newUser)

#Atualiza as informações de associações de fluxos de trabalho
$library.UpdateWorkflowAssociation($association)

#Realiza o Dispose do objeto SPWeb

$web.Dispose()



É importante que além da troca na propriedade AssociationData seja realizada a chamada ao método UpdateWorkflowAssociation passando como parâmetro a associação de fluxo de trabalho onde foi realizada a alteração.

Qualquer dúvida ou sugestão envie nos comentários.

Abraço !!


Nenhum comentário:

Postar um comentário