Como usar o copyINTOITEMS para copiar arquivos nos itens do Doclib existentes
-
25-09-2019 - |
Pergunta
Este é o meu cenário: preciso copiar arquivos para uma biblioteca de documentos do SharePoint usando seus serviços da Web e definir metadados neles. Tudo isso é possível com o CopyINTOITEMS (da Copy WebService), exceto para campos de pesquisa. O copyINTOITEMS os ignora, por isso preciso de outra maneira de definir dados nesses campos.
Eu tentei criar um item de lista com os metadados obrigatórios e de pesquisa dos campos e, em seguida, usando o ID do item (criando um campo de informação de campo com o ID, bem como alguns outros metadados simples), chamados de método CopyImoTems e, em vez de atualizar O item, o SharePoint criou um novo.
Não posso fazer isso na ordem inversa, porque não tenho como obter o ID do item criado por copyintoitems ...
Então, a pergunta é: como posso fazer upload de um arquivo para uma biblioteca de documentos do SharePoint e definir todos os seus metadados? Incluindo campos de pesquisa.
Solução
- Use uma colocação regular
WebRequest
para Carregue o documento na biblioteca - Consulte a biblioteca de documentos para encontrar o ID do item que você acabou de enviar (com base no caminho)
- Use o Lists.asmx Serviço da Web Para atualizar os metadados do documento
Outras dicas
Lembre -se de que, se a contagem de itens da pasta de destino + a contagem de itens das pastas ancestrais exceder o limite de exibição da lista, você não poderá consultar a lista do ID (Etapa 2 da resposta do kit).
As consultas podem ser feitas com mais eficiência se forem restringidas a um ramo específico na hierarquia da pasta. Uma solução alternativa seria modificar as configurações do site, mas as consultas seriam lentas e tornariam a solução menos portátil porque o limite para o Office365 e os BPOs não podem ser alterados.
Isso explica muito melhor: http://office.microsoft.com/en-us/office365-sharepoint-online-enterprise-help/create-or-delete--folder-g-list-or-library-ha1027771961.aspx