Obtendo o tutorial de scripts python de dados SharePoint usando o connect bridge

Obtendo dados do SharePoint em scripts Python - um tutorial usando o Connect Bridge

Ana NetoConnectors, Technical 1 Comment

"Você já se perguntou como acessar o Microsoft SharePoint em seus scripts Python?

Este tutorial aborda exatamente isso: você será capaz de fazê-lo de uma maneira fácil, usando uma ferramenta chamada Connect Bridge".

Resumo

  • O que faz: permite que um script em Python leia e escreva listas SharePoint e bibliotecas de documentos utilizando SQL simples, através do ODBC e do pyodbc módulo.
  • Como: Uma ferramenta comercial, a Connect Bridge (com versão de avaliação gratuita disponível), funciona como um intermediário entre o Python e a SharePoint e apresenta a API da SharePoint como se fosse uma base de dados.
  • O que precisas: um computador com Windows, Python 3, pyodbc, Connect Bridge com uma conta SharePoint configurada e a cadeia de ligação ODBC que esta gera.
  • O que recebe: um script principal com cerca de 15 linhas, além de exemplos de SQL e procedimentos armazenados para criar listas, inserir registos e carregar e descarregar documentos.
  • Advertências: Apenas para Windows (conforme testado pelo autor); licença comercial.
  • Melhor para: equipas que pensam em SQL e querem evitar aprender diretamente a API do SharePoint.

Índice

Introdução

Este artigo descreve como fazer Python ligar ao SharePoint, ou seja, como aceder aos dados dos sistemas Microsoft SharePoint (2013, 2016, 2019 ou Online) a partir de scripts na linguagem Python. As transferências de dados são efetuadas através da camada ODBC.

Nota de atualização: Os exemplos deste artigo foram originalmente criados e testados entre 2019 e 2022 com o Python 3.7 e módulo de pyodbc versão 4.0.26. Em outubro de 2026, simplificámos o script e reescrevemos o seu tratamento de erros para o Python 3.14 e o pyodbc 5.3.0. Se algo se comportar de forma diferente no seu ambiente, por favor, informe-nos nos comentários.

É importante notar que neste artigo utilizamos um produto comercial chamado Connect Bridge. Isto é, de facto, o que torna possível a integração Python / SharePoint, ao permitir a comunicação de dados de uma forma que de certeza não compromete a integrida do lado do SharePoint (e, acredite em mim, isto é MUITO importante). Pode iniciar um período de teste gratuito com o Connect Bridge, para que possa experimentar tudo isto por si mesmo.

O que é este "Connect Bridge"?

Fico contente por teres perguntado! Connect Bridge é uma plataforma de integração desenvolvida pelo Connecting Software que permite conectar qualquer software através de drivers ODBC, drivers JDBC ou Web Services. A visão geral da arquitetura da ferramenta está neste diagrama de cenário cliente-servidor.

Ligar(opens in a new tab)

Connect Bridge arquitetura da plataforma de integração

Como pode ver no diagrama, a ferramenta pode ser usada para aceder não apenas aos dados do Microsoft SharePoint a partir do seu script Python, mas também pode ir buscar/portar dados de/para o Microsoft Exchange e Microsoft Dynamics CRM, entre muitos outros.

O objectivo - obter dados SharePoint usando o Python

O objectivo do nosso trabalho era criar um script Python que nos permitisse falar com o SharePoint via Connect Bridge.

Nós usamos SharePoint, mas é possível usar lógica similar para conectar a Microsoft Exchange ou a um CRM como o Salesforce ou Dynamics.

A começar...

Agora vamos começar este tutorial! Nosso objetivo é criar um script Python simples que acesse uma instância de SharePoint. Assumimos que a instância SharePoint já existe (certifique-se que tem as suas credenciais de login em mãos). Estes são passos simples que você precisa seguir:

1. Peça uma avaliação gratuita e instale o Connect Bridge
2. Instale o Python para Windows versão 3.14+. Tenha em atenção que, para facilitar a escrita, a execução e a depuração do meu script, utilizámos Liclipse 12.0.1 com o plugin pydev, mas isto é, obviamente, opcional. Qualquer editor serve, como o VS Code ou o PyCharm.
3. Instale o módulo de pyodbc 5.3.0+
4. Execute o Connect Bridge Management Studio e
4.1. Adicionar uma conta para SharePoint (Contas - Adicionar conta). Aqui é onde você vai precisar das credenciais que mencionamos anteriormente.
4.2. Abra o Nova Consulta e depois a opção Navegador de Conexão. Encontre o Conector SharePoint e abra-o até ver o DefaultConnection. Clique com o botão direito do mouse sobre ele e escolha Obter cadeia de ligação. Depois copie a cadeia de ligação ODBC. Você vai precisar dela para passá-la para o script.
4.3. Use a opção Nova Consulta para testar uma consulta que irá acessar o que você precisa no SharePoint. Vamos fazer uma consulta de exemplo aqui, mas é aqui que deve colocar o que procura no SharePoint. Uma vez que você tenha clicado em Nova Consultaabra o Navegador de Conexão. Encontre o Conector SharePoint e abra-o até ver o Tabelas opção. Verá que o esquema contém uma "tabela" chamada Site_Pages, pelo que podemos construir a nossa consulta como

SELECT UniqueId, ContentType, Created, Modified, ContentVersion FROM Site_Pages LIMIT 10;

para seleccionar as 10 primeiras entradas de SharePoint's Páginas do site lista. É importante notar que embora pareça que estamos usando uma base de dados diretamente, não é o caso.

O Connect Bridge acede à API e, em seguida, apresenta-a como se fosse uma base de dados. Assim que tiver a sua consulta, copie-a, pois também vai precisar dela para a passar para o script.

Finalmente o script de Python!

O núcleo e, ao mesmo tempo, o único arquivo em nossa solução é o CBQuery.py. O código fonte completo está abaixo. Por favor, concentre-se nas linhas 70-92 que retratam a solução do núcleo. Uma descrição completa de como este script funciona está abaixo.

#!/usr/bin/env python3
# codificação: utf-8
"""
CBQuery — consultar dados e gravar dados no SharePoint

Executa consultas SQL através do controlador ODBC do Connect Bridge.

@autor:   Ana Neto 
@criado:  2019-07-04
@atualizado:  2026-10-14
"""

import sys
from argparse import ArgumentParser
from contextlib import closing

import pyodbc


def main():
    parser = ArgumentParser(description=__doc__)
    parser.add_argument("connstr", help="Cadeia de ligação ODBC do Connect Bridge Management Studio")
    parser.add_argument("query", help="Consulta SQL ou instrução EXEC a executar")
    args = parser.parse_args()

    try:
 # Fechar a ligação quando terminar
 with closing(pyodbc.connect(args.connstr)) as conn:
 cursor = conn.cursor()
 cursor.execute(args.query)

 if cursor.description is None:
                # Não foram devolvidas linhas de resultados
 conn.commit()
 print("OK")
 else:
 for row in cursor:
 print(row)
 conn.commit()

 return 0

 except KeyboardInterrupt:
 return 130
    except pyodbc.Error as err:
 print(f"Erro ODBC: {err}", file=sys.stderr)
 return 2


if __name__ == "__main__":
    sys.exit(main())

Aqui está o que o nosso script está a fazer:

  • O argparse O bloco lê os dois argumentos da linha de comandos, connstr (a cadeia de ligação ODBC) e consulta.
  • A variável `connstr` contém a cadeia de ligação ODBC que passamos ao módulo `pyodbc` para criar uma ligação ODBC (armazenada no conn variável). A ligação está envolvida em contextlib.closing, pelo que fica sempre fechado quando o bloco termina, mesmo que ocorra um erro.
  • Como próximo passo, abrimos um cursor da base de dados utilizando a ligação guardada em conn
  • Executamos a consulta SQL (esta é a consulta que foi passada através do parâmetro da linha de comandos denominado «query»)
  • Se a instrução devolver linhas, percorremos o cursor e lemos os resultados linha a linha, apresentando cada linha tal como está. Esta foi a nossa escolha para esta demonstração, mas note-se que poderia ser qualquer tipo de saída… poderíamos formatá-la como XML, JSON, CSV… ou qualquer outro tipo de formato de intercâmbio de dados. Também poderíamos simplesmente utilizar o objeto de linha de dados brutos em código posterior para realizar tarefas personalizadas.
  • Se a instrução não devolver quaisquer linhas (INSERT, EXEC), o script apresenta “OK”.
  • Em ambos os casos, a transação é confirmada explicitamente, pelo que as alterações efetuadas pelas instruções INSERT e pelos procedimentos armazenados são guardadas.
  • Os erros ODBC são enviados para o stderr e o script termina com o código 2. A combinação Ctrl+C encerra o script com o código 130, e a execução bem-sucedida termina com o código 0.

Executando o script CBQuery.py

O CBQuery.py aceita dois argumentos posicionais na linha de comandos: connstr e query.

Temos de copiar estes dados do Connect Bridge Management Studio, tal como explicado acima (ponto 4 do Como começar secção).

Em seguida, execute o script da seguinte forma:

 
python CBQuery.py "" "SELECT UniqueId, ContentType FROM Site_Pages LIMIT 10;"

E se eu quiser criar uma lista de contatos SharePoint e escrever nela?

Suponhamos agora que queremos criar uma lista de contactos na tabela SharePoint e criar um contacto nessa lista.

Basicamente, temos de seguir o mesmo processo, mas alterar a consulta para utilizar um “procedimento armazenado”. Mais uma vez, este “procedimento armazenado” irá, na verdade, aceder ao SharePoint através da API, mas está a inserir os dados no SharePoint que especificou. Eis a consulta que precisamos de executar:

 
SQL
EXEC SP_CREATE_TABLE 'MyContacts', 'This table was created using Connect Bridge', true, 'Contacts';

Os parâmetros, por ordem, são: o nome da nova lista (Os meus contactos); uma descrição; um indicador booleano (Verdadeiro); e o modelo de lista SharePoint no qual se basear (Contatos). 

A consulta cria uma nova lista do SharePoint (MyContacts), com uma descrição que aparecerá na barra de lançamento rápido da página do SharePoint.

Agora, precisamos de executar a seguinte consulta para atualizar a reflexão do esquema ODBC Connect Bridge de acordo com o esquema SharePoint. Assim, a nossa nova “tabela” fica visível para o cliente ODBC. (Este procedimento não requer parâmetros.)

 
SQL
EXECUTE SP_UPDATE_SCHEMA;

Neste ponto, podemos inserir uma entrada de contacto na nossa lista de contactos.

 
SQL
INSERT INTO MyContacts (FirstName, LastName) VALUES ('Ana', 'Neto');

Deverá agora poder ver a nossa entrada e a nossa nova lista do SharePoint entrando no SharePoint.

Podemos selecionar a entrada que acabamos de criar, executando a seguinte consulta.

 
SQL
SELECT FirstName,LastName FROM MyContacts

Carregamento e descarregamento de documentos partilhados

Para carregar um documento partilhado, iremos utilizar a lista “Documentos” existente SharePoint e o “Procedimento Armazenado” SP_INSERT_SHAREDDOCUMENT. Os parâmetros que este aceita são:

  • Nome da tabela de documentos partilhados
  • Nome do ficheiro
  • Pasta (caminho relativo, no servidor)
  • Tipo MIME
  • Dados do ficheiro (codificados em Base64; no exemplo abaixo, SGVsbG8gV29ybGQ= é simplesmente o texto “Hello World”)

Podemos inserir o documento executando a seguinte declaração:

 
SQL
EXEC SP_INSERT_SHAREDDOCUMENT
    'Documentos',
    'hello2.txt',
    '/Documentos Partilhados/NovaPasta',
    'text/plain',
    'SGVsbG8gV29ybGQ=';

Se quiser verificar previamente se a pasta existe, pode executar a instrução abaixo. Os seus parâmetros são o nome da biblioteca de documentos e o caminho relativo da pasta:

 
SQL
EXEC SP_ENSURE_FOLDER_PATH
    'Documentos',
    '/NovaPasta';

Depois de executar o SP_INSERT_SHAREDDOCUMENT, podemos verificar a presença do documento na tabela "Documents" executando a instrução:

 
SQL
SELECT Id,Name FROM Documents;

Também podemos descarregar o conteúdo binário de um determinado documento a partir de uma determinada biblioteca de documentos, executando a instrução abaixo. Os seus parâmetros são o nome da biblioteca e o ID do documento, tal como devolvidos pela função SELECT acima:

 
SQL
EXEC SP_SAVE_SHAREDDOCUMENT_BY_ID 'Documents', 2;

Nesta altura, pode verificar se o documento partilhado existe na interface do utilizador do SharePoint.

Restrições

Até agora, só temos conseguido utilizar a ferramenta Connect Bridge a partir de sistemas operativos Windows, uma vez que não existe nenhuma biblioteca cliente ODBC disponível para Linux (e nem sequer temos a certeza de que isso seja possível). Por isso, certifique-se de que testa os seus scripts Python numa máquina com Windows.

Conclusão

Vimos como é possível aceder facilmente aos dados do SharePoint em Python utilizando a plataforma de integração Connect Bridge. Agora imagine que o que viu neste artigo também é possível com o Microsoft Dynamics CRM e o Microsoft Exchange! Sim, com o Connect Bridge isso é possível e o procedimento é semelhante.

A quem posso dirigir-me para fazer perguntas?

Ana Neto

Por Ana Neto, consultor técnico em Connecting Software.

"Sou engenheiro de software desde 1997, com uma paixão mais recente pela escrita e por falar em público. Tem alguma pergunta ou comentário sobre este artigo? Gostaria muito de receber o seu feedback, deixe um comentário abaixo!"

Comments 1

  1. Avatar para o tempo de trabalho

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.