2011-10-16 33 views
8

No estoy familiarizado con Sharepoint. Me gustaría consultar o leer la base de datos Sharepoint usando PHP.Conectarse a la base de datos Sharepoint a través de PHP

¿Hay alguna manera de hacerlo?

Gracias en advanc. Cualquier ayuda es muy apreciada.

+1

[ link] (http://stackoverflow.com/questions/3565845/sharepoint-access-sql-sharepoint-files) Pruebe esto –

Respuesta

5

Debería considerar el uso de Camelot PHP Tools para SharePoint, es un marco de php bien documentado para el formato Camelot XML especialmente diseñado para las listas de SharePoint.

Documentación y descarga

También necesitará el Camelot integración de SharePoint Toolkit, http://camelottoolkit.codeplex.com/ y .NET Conector Camelot (http: //www.bendsoft. com/net-sharepoint-connector /).

Instale el conector en un recuadro que pueda llegar al servidor de SharePoint, este puede ser el mismo servidor que el servidor de SharePoint, luego instale el kit de herramientas de integración en el mismo servidor que el conector. Configure el servicio de integración que se incluye en el kit de herramientas de integración (siga las instrucciones) y luego habrá terminado. También hay algunos videos de instrucciones en los sitios web.

La ventaja de usar esto es que podrá hablar con listas y bibliotecas de SharePoint a través de la API mediante el uso de consultas SQL comunes, nunca se utiliza la base de datos mssql subyacente.

Selección de datos de SharePoint con SQL

$SharePointQuery = new SharePointQuery(array(
    'sql' => "SELECT * FROM Tasks WHERE ID > 10", 
    'connection_name' => 'SharePointConnection1' 
)); 

Selección de datos de SharePoint por lista y nombre de vista

$SharePointQuery = new SharePointQuery(
    array(
     'listName' => 'Tasks', 
     'viewName' => 'All Tasks', 
     'includeAttachements' => false, 
     'connection_name' => 'SharePointConnection1', 
     'columns' => '' 
    ) 
); 

Insertar datos en SharePoint con SQL y SharePointNonQuery

$SharePointNonQuery = new SharePointNonQuery(array(
    'sql' => "INSERT INTO Tasks (Title,AssignedTo,Status,Priority,DueDate,PercentComplete) VALUES ('Test task from PHP',1,'In Progress','(1) High', '". date('Y-m-d H:i:s') ."',0.95)", 
    'method' => 'ExecuteNonQuery', 
    'connection_name' => 'SharePointConnection1' 
)); 

También son los procedimientos almacenados para ayudarle con algunas operaciones, como el manejo avanzado de las bibliotecas de documentos

descargar un archivo

$download = new CamelotDownloadFile(array(
    "file" => $_GET["file"], 
    "listName" => 'Shared Documents', 
    "connection_name" => 'SharePointConnection1' 
)); 

$download->download_file(); 

Subir un archivo

$args = array( 
    "file" => $_FILES, 
    "listName" => 'Shared Documents', 
    "folder" => 'Folder/', 
    "connection_name" => 'SharePointConnection2' 
); 

$UploadFile = new CamelotUploadFile($args); 
0

La base de datos Sharepoint no es más que MS SQL Server. Si conoce el nombre del servidor, puede conectarse a él de la misma manera que puede conectarse al servidor MSSQL desde PHP.

1

Es solo una base de datos: siempre que tenga el nombre del servidor/base de datos y los permisos adecuados, no hay nada que pueda detenerlo. Sin embargo, - el esquema es bastante complicado, por lo que descubrir lo que necesita puede ser complicado: dependiendo de lo que realmente desee hacer, es mejor que use los servicios web para acceder al Sharepoint OM.

En caso de que desee , escriba en la base de datos directamente - no lo haga. No hay una forma práctica de hacerlo sin meterse en problemas profundos más adelante, y el apoyo no podrá ayudarlo.

+2

La política de MS sobre el acceso directo a la base de datos de SharePoint es ... No. http://msdn.microsoft.com/en-us/library/bb861829(v=office.12).aspx, será mucho mejor que utilice la interfaz de servicios web: consulte la respuesta de @ Andreas. – Ryan

6

en su lugar, recomiendo usar SharePoint WebServices ... a menos que existan razones válidas (es decir, rendimiento) que no tocaría la base de datos. Quote from this answer:

  1. Esto es completamente soportado por el EULA que acordó cuando instaló SharePoint.
  2. No se garantiza que sus consultas funcionen después de aplicando parches o service packs a SharePoint, ya que Microsoft podría cambiar el esquema de la base de datos en cualquier momento.
  3. Consultar directamente la base de datos puede generar una carga adicional en un servidor y, por lo tanto, problemas de rendimiento .
  4. Las sentencias Direct SELECT en la base de datos toman bloqueos de lectura compartidos en el nivel de transacción predeterminado para que sus consultas personalizadas puedan causar interbloqueos y, por lo tanto, problemas de estabilidad.
  5. Sus consultas personalizadas pueden dar como resultado la recuperación de datos incorrectos.

Si desea saber más acerca de por qué no se debe consultar la base de datos, here es realmente un gran artículo

Query A SharePoint WebService with PHP

0

La forma más sencilla de obtener los datos de SharePoint desde PHP es probablemente a través del REST API.

Cuestiones relacionadas