Arquivo da tag: WebParts

Big Tip: Como copiar uma página e manter todas as webparts?

 

Olá SharePointers,

Hoje vou postar uma dica um pouco mais avançada e quase não documentada. Quem nunca precisou copiar uma página e levar todas as webparts junto e ficou frustrado ao descobrir que não tem um jeito de fazer isso via API?

Tanto faz o meio que você utilize, o resultado sempre é o mesmo: Pode ser Copiar o item via API, exportar o ASPX e importar novamente. Nada funciona.

A única alternativa é fazer isso via SharePoint designer. Pelo menos temos uma alternativa para fazer, mas não é nada agradável quando temos que replicar essa ação em produção. E aí? Qual alternativa que temos?

Como o SharePoint Designer consegue fazer, ele deve usar alguma API. Então nossa tarefa é só descobrir qual é. Abri o Fiddler e identifiquei o request que o SharePoint designer fez e o resto foi só converter em Script.

O script abaixo faz um post na URL “/_vti_bin/_vti_aut/author.dll” do site e passa as informações das páginas que você quer copiar.

A documentação da Microsoft fala o seguinte sobre o Author.dll:

The ISAPI extension that implements authoring operations, such as uploading files, applying themes, renaming and deleting documents, and so forth.
Path: http://www.server.com/subweb/_vti_bin/_vti_aut/author.dll

Ou seja, essa extensão ISAPI é utilizada para operações de “autoria”: Upload de arquivos, aplicar temas, renomear e deletar documentos, copiar documentos copiando todo o histórico (outra função que não tem como fazer “pelas vias comuns”).

 

Abaixo está o script para realização da cópia. Só passar a URL do site onde está a página, a página de onde você quer copiar e o nome da nova página. Exemplo:

clonePageWithParts.ps1 -Url http://site/subsite -ServiceName /subsite -SourcePage “Pages/default.aspx” -DestPage “Pages/newpage.aspx”

[Atualização 16/03/2015 11:05] Coloquei o script no site do MSDN Code mpara facilitar oa cesso: https://code.msdn.microsoft.com/Clone-a-page-with-all-c6512b5b

 

Mais informações e leituras recomendadas:

FrontPage Server Extensions RPC – move document Method: https://msdn.microsoft.com/en-us/library/office/ms440627(v=office.14).aspx

Overview of the SharePoint Team Services Architecture (antigo, mas interessante)

https://msdn.microsoft.com/en-us/library/office/ms463030(v=office.14).aspx

http://www.edinkapic.com/2009/05/what-sharepoint-and-vermeer-have-in.html