none
Baixar um documento do SharePoint através de um script task RRS feed

  • Pergunta

  • Boa tarde.

    Estou tendo dificuldade em uma tarefa que consiste em baixar automaticamente um arquivo de uma página do Sharepoint para um local específico na rede. Eu tentei diversas formas seguindo tutoriais da net, mas até o momento nenhum funcionou.

    O que estou tentando no momento é o seguinte: criei um HTTP Connection Manager apontando para o endereço do site do Sharepoint, com minhas credenciais (usuário e senha), e também a URL completa do arquivo que eu estou tentando baixar. Então fiz o código abaixo para tentar conectar nesse endereço e baixar o arquivo:

           


    public void Main()
    {
                string FilePath = Dts.Variables["User::FilePath"].Value.ToString();
                object obj = Dts.Connections["HTTP Connection Manager"].AcquireConnection(null);
                HttpClientConnection HTTPConnection = new HttpClientConnection(obj);
                HTTPConnection.DownloadFile(FilePath, true);


                Dts.TaskResult = (int)ScriptResults.Success;
    }

    A variável FilePath contém o caminho para onde o arquivo deve ser baixado. 

    Ocorre que ao executar o script, obtenho o erro abaixo:

    "An exception of type 'System.UnauthorizedAccessException' occurred in Microsoft.SqlServer.ManagedDTS.dll but was not handled in user code

    Additional information: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))"

    A questão é que eu tenho acesso a essa página do Sharepoint, e eu inseri meu login e senha no HTTP Connection Manager. Por que ainda informa que não tenho permissão? Alguém teria alguma outra sugestão de como fazer isso? É possível?

    Obrigado.


    quarta-feira, 10 de abril de 2019 15:32

Respostas

  • Paulo,

    Exatamente isso, o usuário que esta rodando o SQL Server Agent deverá ter permissão para acessar este local, ou então você poderá alterar as permissões no SharePoint.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    • Marcado como Resposta Paulo Felício quarta-feira, 10 de abril de 2019 20:04
    quarta-feira, 10 de abril de 2019 19:15
    Moderador

Todas as Respostas

  • Paulo,

    Então, você tem acesso a página, mas não provavelmente ao local de armazenamento do arquivo na estrutura do SharePoint.

    Você consegui mapear este caminho do repositório do SharePoint como sendo um compartilhamento de unidades?


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quarta-feira, 10 de abril de 2019 17:09
    Moderador
  • Sim, eu fiz um teste aqui e consegui mapear.
    quarta-feira, 10 de abril de 2019 17:12
  • Paulo,

    Tente utilizar o componente File System Task:

    https://docs.microsoft.com/en-us/sql/integration-services/control-flow/file-system-task

    https://www.tutorialgateway.org/move-file-using-file-system-task-in-ssis/

    https://blog.sqlauthority.com/2015/03/12/sql-server-the-basics-of-the-file-system-task-part-1-notes-from-the-field-071/


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quarta-feira, 10 de abril de 2019 17:39
    Moderador
  • Fiz aqui esse procedimento rodando o SSIS diretamente na minha máquina local e funcionou. Mas ao rodar através do SQL Server Agent o job não rodou, informando o erro:

    Message
    Executed as user: GPQC\DBMSA. Microsoft (R) SQL Server Execute Package Utility  Version 11.0.6020.0 for 64-bit  Copyright (C) Microsoft Corporation. All rights reserved.    Started:  14:45:48  Error: 2019-04-10 14:45:48.63     Code: 0xC002F304     Source: Copy file File System Task     Description: An error occurred with the following error message: "The network path was not found.  ".  End Error  DTExec: The package execution returned DTSER_FAILURE (1).  Started:  14:45:48  Finished: 14:45:48  Elapsed:  0.375 seconds.  The package execution failed.  The step failed.

    Isso significa que no servidor do SQL Server Agent o usuário não tem permissão para acessar esse caminho?

    Muito obrigado pela resposta!

    quarta-feira, 10 de abril de 2019 18:02
  • Paulo,

    Exatamente isso, o usuário que esta rodando o SQL Server Agent deverá ter permissão para acessar este local, ou então você poderá alterar as permissões no SharePoint.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    • Marcado como Resposta Paulo Felício quarta-feira, 10 de abril de 2019 20:04
    quarta-feira, 10 de abril de 2019 19:15
    Moderador