SharePoint and LibreOffice



Similar documents
Getting started with 2c8 plugin for Microsoft Sharepoint Server 2010

San Jose State University

Contents. 2 Alfresco API Version 1.0

Portal Factory CMIS Connector Module documentation

TIBCO ActiveMatrix BPM - Integration with Content Management Systems

TIBCO ActiveMatrix BPM Integration with Content Management Systems Software Release September 2013

Orchestrating Document and Media Management using CMIS

Digital Asset Management Beyond CMIS

Information Technology Services

Kaldeera Workflow Designer 2010 User's Guide

SharePoint Integration Framework Developers Cookbook

RoomWizard Synchronization Software Manual Installation Instructions

Using SSH Secure FTP Client INFORMATION TECHNOLOGY SERVICES California State University, Los Angeles Version 2.0 Fall 2008.

wce Outlook Contact Manager Documentation

EMC Documentum Content Management Interoperability Services

Nintex Workflow 2010 Installation Guide. Installation Guide Nintex USA LLC, All rights reserved. Errors and omissions excepted.

Subversion Server for Windows

AXIS 70U - Using Scan-to-File

BlueJ Teamwork Tutorial

Contents About the Contract Management Post Installation Administrator's Guide... 5 Viewing and Modifying Contract Management Settings...

Alfresco Online Collaboration Tool

DocuSign for SharePoint

CMIS as the basis for ECM services in the cloud

Alfresco. Wiley Publishing, Inc. PROFESSIONAL. PRACTICAL SOLUTIONS FOR ENTERPRISE. John Newton CONTENT MANAGEMENT. Michael Farman Michael G.

Accessing Data with ADOBE FLEX 4.6

How to Back Up and Restore an ACT! Database Answer ID 19211

The full setup includes the server itself, the server control panel, Firebird Database Server, and three sample applications with source code.

Colligo Manager 5.1. User Guide

ARCONICS CONTENT MANAGEMENT SYSTEM FOR UL

Table of Contents. 1. Content Approval...1 EVALUATION COPY

Infor Cloud Printing Service Administration Guide

Change Management for Rational DOORS User s Guide

HOW TO SILENTLY INSTALL CLOUD LINK REMOTELY WITHOUT SUPERVISION

Unisys INFOIMAGE FOLDER ON WINDOWS NT. Connector for Microsoft Exchange. Getting Started Guide

R i o L i n x s u p p o r r i o l i n x. c o m 1 / 3 0 /

PTC Integrity Eclipse and IBM Rational Development Platform Guide

IBM BPM V8.5 Standard Consistent Document Managment

TAMUS Terminal Server Setup BPP SQL/Alva

Pre-configured AS2 Host Quick-Start Guide

Cloudfinder for Office 365 User Guide. November 2013

Customer Tips. Xerox Network Scanning HTTP/HTTPS Configuration using Microsoft IIS. for the user. Purpose. Background

HR Onboarding Solution

SharePoint AD Information Sync Installation Instruction

Colligo Contributor File Manager 4.6. User Guide

Installing Microsoft Exchange Integration for LifeSize Control

WatchDox Administrator's Guide. Application Version 3.7.5

Coveo Platform 7.0. Microsoft Dynamics CRM Connector Guide

metaengine DataConnect For SharePoint 2007 Configuration Guide

Installing and Using the Zimbra Reporting Tool

Microsoft Visual Studio Integration Guide

Colligo Engage Windows App 7.0. Administrator s Guide

Learn how to create web enabled (browser) forms in InfoPath 2013 and publish them in SharePoint InfoPath 2013 Web Enabled (Browser) forms

Using EMC Documentum with Adobe LiveCycle ES

Matrix Logic WirelessDMS Service 2.0

This manual provides information and instructions for Mac SharePoint Users at Fermilab. Using Sharepoint from a Mac: Terminal Server Instructions

WatchDox for Mac User Guide

Is Liferay Right for Your Organization? Seven Things to Consider When Choosing a Portal Platform

NS DISCOVER 4.0 ADMINISTRATOR S GUIDE. July, Version 4.0

Configuring Controller 8.2 to use Active Directory authentication

Connector for Microsoft Office SharePoint Server. ados.com Therefore Corporation, all rights reserved.

Step-By-Step build Advanced InfoPath Form and SharePoint Designer Workflow

Colligo Manager 6.0. Offline Mode - User Guide

IBM SPSS Collaboration and Deployment Services Version 6 Release 0. Single Sign-On Services Developer's Guide

Source Control Guide: Git

DMSplus for Microsoft SharePoint 2010

FileMaker Server 11. FileMaker Server Help

Creating Home Directories for Windows and Macintosh Computers

MarkLogic Server. Connector for SharePoint Administrator s Guide. MarkLogic 8 February, 2015

Installation & User Guide

Using Microsoft Windows Authentication for Microsoft SQL Server Connections in Data Archive

Specify the location of an HTML control stored in the application repository. See Using the XPath search method, page 2.

IBM Connections Plug-In for Microsoft Outlook Installation Help

NSi Mobile Installation Guide. Version 6.2

Eclipse installation, configuration and operation

DocumentsCorePack Client

Cloud Elements! Marketing Hub Provisioning and Usage Guide!

Technical Bulletin. SQL Express Backup Utility

Using IBM dashdb With IBM Embeddable Reporting Service

CA DLP. Stored Data Integration Guide. Release rd Edition

escan SBS 2008 Installation Guide

ISL Online Integration Manual

Informatica Cloud Connector for SharePoint 2010/2013 User Guide

Application Notes: MaxACD Connector For Salesforce

CROWNPEAK C# API SYSTEM CONFIGURATION GUIDE VERSION 3.0.1

Site Maintenance Using Dreamweaver

EBOX Digital Content Management System (CMS) User Guide For Site Owners & Administrators

Microsoft SharePoint 2010 End User Quick Reference Card

MAPI Connector Overview

How To Backup In Cisco Uk Central And Cisco Cusd (Cisco) Cusm (Custodian) (Cusd) (Uk) (Usd).Com) (Ucs) (Cyse

SPHOL207: Database Snapshots with SharePoint 2013

EMC Documentum Content Management Interoperability Services

What s New in Version 10 Details for Web Essentials

Adeptia Suite 6.2. Application Services Guide. Release Date October 16, 2014

ThirtySix Software WRITE ONCE. APPROVE ONCE. USE EVERYWHERE. SMARTDOCS SHAREPOINT CONFIGURATION GUIDE THIRTYSIX SOFTWARE

Windows 7 Hula POS Server Installation Guide

Nintex Workflow 2013 Help

Introduction to Mobile Access Gateway Installation

Wakanda Studio Features

Oracle Transportation Management. Content Management System Integration Guide Release 6.3 Part No. E

Transcription:

// Represents the model of a Writer document. class SW_DLLPUBLIC SwDoc : public IInterface, public IDocumentRedlineAccess, SharePoint and LibreOffice public IDocumentFieldsAccess, public IDocumentStylePoolAccess, public IDocumentLineNumberAccess, public IDocumentStatistics, interoperability through CMIS public IDocumentState, public IDocumentLayoutAccess, public IDocumentExternalData Jacobo Aragunde Pérez http://blogs.igalia.com/jaragunde @JacoboAragunde

Contents Introduction The CMIS protocol Writing your own client: the libcmis project Connecting to your SharePoint server from LibreOffice The future of CMIS integration in LibreOffice

Introduction

Open Source experts and consultants 14 years of experience Contributors to: Client-side web tecnologies: WebKit, Chromium Compilers: V8, JavaScriptCore, Guile Multimedia: GStreamer, Grilo Accessibility: ATK, Orca Open documents: LibreOffice, Poppler...

Backed by The Document Foundation Healthy mix of volunteer and corporate contributors Around 100 monthly committers and 2000 commits 7M lines of code >20 years of history Exact history was lost before Sept. 18th, 2000, but old source code comments show that Writer core dates back until at least November 1990.

The CMIS protocol

Stands for Content Management Interoperability Services Abstraction layer for interoperability across enterprise content management systems (ECM) using web protocols ECMs store unstructured data

Provides: Common data model for typed files and folders with properties that can be get/set Services for adding and retrieving documents May provide: Access control system Version control Relations Queries

Bindings: SOAP (WebService) AtomPub (RESTful) JSON (from CMIS 1.1)

Domain model Repository Topmost object Any number, minimum one Objects Types Folder, document More can be added Types have properties Hierarchies can be built

Domain model: objects Folders One root folder per repository Define a hierarchy Standard properties: name, access date, etc. Documents Standard properties: name, modification date, etc. Have a content stream with a MIME type

Services Repository service List and get properties of repositories Expose available types Navigation service Browse folder hierarchy Object service CRUD of documents and folders Access by object ID or by path

Services Versioning service Create and access versions Only documents are versionable Determined by the document type

Some server implementations Alfresco IBM Content Manager Magnolia CMS Nuxeo SharePoint 2010, 2013

Some client implementations Drupal LibreOffice Liferay Salesforce.com SharePoint 2010, 2013

A common interaction Get repositories from the server Get root folder for some repository Navigate through the folders Check out a document Check in modified document

Writing your own client: the libcmis project

What is libcmis C++ client library for the CMIS protocol Enables client applications to connect servers like SharePoint Open source project GPLv2, MPL 1.1 LGPLv2, link from proprietary software Brought to you by the LibreOffice community http://libcmis.sourceforge.net/

What libcmis provides C++ and plain C APIs Classes abstracting CMIS entities Specific implementation for selected servers, including SharePoint Command line client tool

Code examples // Get repositories from the server libcmis::session* session = libcmis::sessionfactory::createsession( url, username, password, repoid, nosslcheck, oauth2data, verbose ); vector< libcmis::repositoryptr > repos = session >getrepositories( ); for ( vector< libcmis::repositoryptr >::iterator it = repos.begin( ); it!= repos.end(); ++it ) { ( *it ) >getname( ); ( *it ) >getid( ); } // Get root folder for some repository session >setrepository( repoid ); libcmis::folderptr root = session >getrootfolder();

Code examples // Navigate through the folders std::vector< libcmis::objectptr > children = root >getchildren( ); for ( vector< libcmis::objectptr >::iterator it = repos.begin( ); it!= repos.end( ); ++it ) { ( *it ) >getname( ); ( *it ) >getid( ); if ( ( *it ) >getbasetype( ) == "cmis:folder" ) { libcmis::folder* childfolder = dynamic_cast< libcmis::folder* >( ( *it ).get() ); childfolder >getchildren( ); //... } }

Code examples // Check out a document libcmis::objectptr cmisobj = session >getobject( objectid ); if ( cmisobj >getbasetype( ) == "cmis:document" ) { libcmis::document* doc = dynamic_cast< libcmis::document* >( cmisobj.get() ); libcmis::documentptr pwc = doc >checkout( ); // private working // copy // pwc >cancelcheckout( ); } boost::shared_ptr< istream > in = document >getcontentstream( /*streamid*/ ); ofstream out( document >getcontentfilename().c_str() ); out << in >rdbuf(); out.close();

Code examples // Check in modified document bool major = false; string comment = "Fix minor spelling issues"; libcmis::propertyptrmap newproperties; // populate with any new // properties boost::shared_ptr< ostream > stream; // fill it in with the new // document contents string contenttype = "application/vnd.oasis.opendocument.text"; string filename = "document.odt"; libcmis::objectptr cmisobj = session >getobject( objectid ); libcmis::document* doc = dynamic_cast< libcmis::document* >( object.get() ); libcmis::documentptr newdoc = doc >checkin( major, comment, properties, stream, contenttype, filename );

Alternative CMIS libraries Apache Chemistry (OpenCMIS) on Java platforms NCMIS or VB.CMIS on Microsoft platforms

Connecting to your SharePoint server from LibreOffice

Enable CMIS in your server CMIS connector is part of the SharePoint 2010 Administration Toolkit Includes a consumer web part (client) and a producer (server) Follow documentation instructions to install and configure

Connect from LibreOffice

Connect from LibreOffice

Connect from LibreOffice

Problems Feature not visible to average users Only accessible through LO custom file dialogs May be visible or not depending on default dialog configuration Default configuration in most LO providers hides it! Lack of users means under-average testing and maintenance

The future of CMIS integration in LibreOffice

Goals Increase visibility of the feature Integrate in standard LibreOffice workflow Ease access to popular storage services Expectation: LibreOffice 5.1 early 2016

Increase visibility Specific entry in Start Center Open from remote, save to remote menu options and/or toolbar buttons

Start Center entry Mockups from LibreOffice Design Session: CMIS improvement - User Prompt GmbH

Integrate in standard workflow Open from remote, save to remote menu options and/or toolbar buttons Specific dialog to open and save from remote locations Not part of the LibreOffice file dialogs any more Make feature independent from dialog configuration

Dialog for remote operations Mockups from LibreOffice Design Session: CMIS improvement - User Prompt GmbH

Ease access to popular storage services Dialogs to manage different services Entries for most popular services Dialog complexity depending on the service

Dialogs for service configuration Mockups from LibreOffice Design Session: CMIS improvement - User Prompt GmbH

Summary CMIS protocol for interoperability with ECMs like SharePoint You can use libcmis to develop your own C/C++ client LibreOffice can connect to CMIS servers including SharePoint Usability is not great right now CMIS support in LibreOffice is being improved as we speak

Thank you! 2015 Igalia, S.L.

References CMIS - Wikipedia CMIS standard specification - OASIS What s this thing called CMIS? - Jens Hübel CMIS connector overview Microsoft Technet LibreOffice Design Session: CMIS improvemen t - User Prompt GmbH