#SummitNow Alfresco for Salesforce 5 November 2013 / 13 November 2013 Will Abson Jared Ottley

Slides:



Advertisements
Similar presentations
1 Configuring Internet- related services (April 22, 2015) © Abdou Illia, Spring 2015.
Advertisements

1 Configuring Web services (Week 15, Monday 4/17/2006) © Abdou Illia, Spring 2006.
1 of 6 This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2007 Microsoft Corporation.
1 of 7 This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2007 Microsoft Corporation.
Microsoft ® Official Course Introducing Apps for SharePoint SharePoint Practice Microsoft SharePoint 2013.
7.1 © 2004 Pearson Education, Inc. Exam Managing and Maintaining a Microsoft® Windows® Server 2003 Environment Lesson 7: Introducing Group Accounts.
1 of 5 This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2006 Microsoft Corporation.
Web Proxy Server Anagh Pathak Jesus Cervantes Henry Tjhen Luis Luna.
Working with SharePoint Document Libraries. What are document libraries? Document libraries are collections of files that you can share with team members.
©2011 Quest Software, Inc. All rights reserved. Steve Walch, Senior Product Manager Blog: November, 2011 Partner Training Webcast.
Welcome to the Minnesota SharePoint User Group. Introductions / Overview Project Tracking / Management / Collaboration via SharePoint Multiple Audiences.
Salesforce Change Management Best Practices
Chapter 9 Collecting Data with Forms. A form on a web page consists of form objects such as text boxes or radio buttons into which users type information.
A Scalable Application Architecture for composing News Portals on the Internet Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta Famagusta.
Tutorial 1 Getting Started with Adobe Dreamweaver CS3
In addition to Word, Excel, PowerPoint, and Access, Microsoft Office® 2013 includes additional applications, including Outlook, OneNote, and Office Web.
CPSC 203 Introduction to Computers Lab 23 By Jie Gao.
FTP Server and FTP Commands By Nanda Ganesan, Ph.D. © Nanda Ganesan, All Rights Reserved.
Microsoft SharePoint Server 2010 for the Microsoft ASP.NET Developer Yaroslav Pentsarskyy
Presentation. Recap A multi layer architecture powered by Spring Framework, ExtJS, Spring Security and Hibernate. Taken advantage of Spring’s multi layer.
Module 6: Configuring User Environments Using Group Policy.
Training Guide for Inzalo SOP Users. This guide has been prepared to demonstrate the use of the Inzalo Intranet based SOP applications. The scope of this.

.  A multi layer architecture powered by Spring Framework, ExtJS, Spring Security and Hibernate.  Taken advantage of Spring’s multi layer injection.
Online Conference June 17 th and 18 th SharePoint Online Administration with PowerShell.
How to Convert to a Managed Package Winter `07 Ralph Eddy January 4, 2007.
The New DRS Introduction. What is DRS? Digital repository for preservation and access – Maintains integrity of deposited content – Preserves content for.
Module 9 User Profiles and Social Networking. Module Overview Configuring User Profiles Implementing SharePoint 2010 Social Networking Features.
ICM – API Server & Forms Gary Ratcliffe.
The SharePoint Shepherd’s Course for End Users Based on the book by Robert L. Bogue Copyright 2011 AvailTek LLC All Rights Reserved.
Welcome to Azure App Services! Amie Seisay
FTP COMMANDS OBJECTIVES. General overview. Introduction to FTP server. Types of FTP users. FTP commands examples. FTP commands in action (example of use).
UNDERSTANDING YOUR OPTIONS FOR CLIENT-SIDE DEVELOPMENT IN OFFICE 365 Mark Rackley
The 2007 Microsoft Office System Servers Enterprise Content Management, Workflow and Forms Martin Parry Developer and Platform Group, Microsoft Ltd
Integrating Alfresco with Salesforce. Agenda About Technology Services Group Why a Salesforce / Alfresco Integration Use Cases / Examples Technical Architecture.
Excel Services Displays all or parts of interactive Excel worksheets in the browser –Excel “publish” feature with optional parameters defined in worksheet.
1 Managing Learning Assets New Horizons Conference Virginia Community College System Darek Sady Blackboard Senior Consultant April 2006 Roanoke, VA.
© 2014 IBM Corporation Activity Streams Integration IBM Connections 5.0 Workshop Author: Paul Godby IBM Ecosystem Development Duration: 45 minutes.
#SummitNow Consuming OAuth Services in Alfresco Share Alfresco Summit 2013 Will Abson
#SummitNow What's Coming Arrived in CMIS November, 2013 Gregory Melahn/Alfresco Software
CRM Training Courses &Online Courses and Salesforce Online | classroom| Corporate Training | certifications | placements| support.
Explore Various Options for Bulk File Transfer out of Alfresco Craig Tan Technical Account Manager.
Microsoft Virtual Academy Chris Oakman | Managing Partner Infrastructure Team | Eastridge Technology Curtis Sawin | Technical Solutions Professional |
Redmond Protocols Plugfest 2016 Jinghui Zhang Office Interoperability Test Tools (Test Suites and Open Source Projects) Software Engineer Microsoft Corporation.
Microsoft FrontPage 2003 Illustrated Complete Creating a Web Site.
Developers Introduction to the Power BI Platform.
ArcGIS for Server Security: Advanced
Architecture Review 10/11/2004
SharePoint 101 – An Overview of SharePoint 2010, 2013 and Office 365
Objectives Create a folder in Google Drive.
HPE Content manager TO SALEFORCE INTEGRATIONs
Consuming OAuth Services in Alfresco Share
Getting Started with Alfresco Development
Automate Custom Solutions Deployment on Office 365 and Azure
About SharePoint Server 2007 My Sites
DCR ARB Presentation Team 5: Tour Conductor.
Microsoft Dynamics.
Office 365 Development.
Excel REST API updates Sudhi Ramamurthy Sr. Program Manager.
Configuring Internet-related services
SharePoint Online Authentication Patterns
Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta
Versatile workflow management Tool
Astrea IT Services Pvt Ltd
SharePoint Foundation 2010
INSTRUCTOR NOTES/LINKS
Salesforce.com Salesforce.com is the world leader in on-demand customer relationship management (CRM) services Manages sales, marketing, customer service,
Links Launch Outlook Launch Skype Place Skype on Do Not Disturb.
Andreas Rosen QKom GmbH
Cloud Migration Training
Presentation transcript:

#SummitNow Alfresco for Salesforce 5 November 2013 / 13 November 2013 Will Abson Jared Ottley Gregory Melahn

#SummitNow Part One (Business)  Overview and Demonstration Part Two (Technical)  How it Works  Building on Salesforce  Building on Alfresco Agenda

#SummitNow Part One

#SummitNow What does the App do? Allows Salesforce Users to attach Documents to Salesforce Objects and have them stored in Alfresco  Four Specific Salesforce Object Types supported ▪ Accounts ▪ Cases ▪ Contracts ▪ Opportunities Allows Salesforce Users to Edit, View and Delete the attached Alfresco Documents Creates Chatter about the Alfresco Documents

#SummitNow Finding the App Go to the Salesforce App Exchange  Enter some search criteria (e.g. ‘Alfresco’)

#SummitNow The App Exchange Listing

#SummitNow Installing the App

#SummitNow Demo

#SummitNow Demo

#SummitNow Part Two

#SummitNow Alfresco and SF Components Alfresco Repository Salesforce Salesforce Model Sample Layouts Alfresco Share Adv. Search Form Properties Config Security Profiles VisualForce Pages Apex Classes

#SummitNow Salesforce Model Salesforce Record Salesforce Attachment CRM Account CRM Case CRM Contract CRM Opportunity Document Type 10..N Stored in /Salesforce RecordsStored in /documentLibrary/Salesforce Attachments Assoc Additional Aspects

#SummitNow Application Packaging On the Salesforce side  (??)  Deployed on the AppExchange On the Alfresco side (MyAlfresco only)  Repo AMP ▪salesforce-repo amp  Share AMP ▪salesforce-share amp

#SummitNow How it Works API: OAuth + CMIS Salesforce Users Web browser

#SummitNow How it Works API: OAuth + CMIS Salesforce Users Web browser Upload: OAuth + CORS + CMIS

#SummitNow How it Works - Downloading a File OAuth + CMIS Salesforce Users Web browser 1.User clicks Download link for a file 2.Salesforce-side code checks the user’s access token is still valid  If not valid, the token is refreshed 3.Salesforce-side code checks the document is present in Alfresco, providing nodeRef  If not present, the user is forwarded to a ‘page not found’ page 4.Salesforce-side code access the content of the file from Alfresco Cloud via CMIS and streams it back to the user

#SummitNow How it Works - Uploading a File OAuth + CMIS Salesforce Users Web browser OAuth + CORS + CMIS 1.User clicks Attach File button in their browser, taken to New Document page 2.User selects file, enters Document Name and Document Type (drop-down) and hits Save 3.Page fires off POST request to trigger Apex remote action in Salesforce-side code, which creates empty content item in the Document Library 4.Browser does a CMIS PUT directly against Alfresco Cloud to upload the content itself  This works around Salesforce request body size restrictions  Access token from Salesforce is re-used

#SummitNow Cloud Sync Firewall Corporate UsersRemote Office Sync OAuth + CMIS Salesforce Users Web browser OAuth + CORS + CMIS

#SummitNow Building on Salesforce *Does not include SOAP and REST APIs Apex Visualforce

#SummitNow CMIS API Challenges

#SummitNow CMIS API Challenges - No CMIS Client Force.com has no concept of libraries Install packages from appexchange Limited to what to is exposed by developer Add classes from other projects Count against you code total No one has written a CMIS appexchange package No one has written CMIS classses that could be added Apex Web Callouts to CMIS endpoints Governance Limits Installer must approve connecting endpoints

#SummitNow CMIS API Challenges - Tenant Id Calls to Cloud CMIS API need tenant id CMIS provides no way to discover tenant id Two options: User provides Use REST API Apex JSON parser (requires new classes) JSON objects: Reserved words Limit to home network or ask user input

#SummitNow CMIS API Challenges - Verbosity CMIS is Verbose! Can reduce a little using filters Governance Limits Example: Alfresco.com Alfresco.com site list is 400+ (and growing) Document size is 2.5 MB Options: Paging CMIS Browser Bindings

#SummitNow CMIS API Challenges - Parsing XML Apex XML parser Gotcha: DateTime String dateString = property.getChildElement('value', CMIS_NS).getText(); dateString = dateString.replace('T', ' '); dateString= dateString.substring(0, dateString.length() - 6); relatedDoc.creationDate = DateTime.valueOf(dateString);

#SummitNow CMIS API Challenges - Child Objects Lacks support for including child objects If it did…. Governance Limit Heap Size Since it doesn’t… Governance Limit Callout Requests

#SummitNow CMIS API Challenge - Delete CMIS API allows delete of relationship using objectId using: Relationship MAY be deleted when the target is removed in a peer relationship (according to the spec). Any code should allow for a 404. Previously the relationship remained and target pointed to the archiveStore.

#SummitNow CMIS API Challenges – Secondary Types Lack of support of secondary types makes the the integration dependent on Alfresco extensions. Secondary type support would allow client to fallback to base type.

#SummitNow CMIS API Challenges - Sites folder Listing documents is achieved using a CMIS getObjectByPath call We know the path of the Salesforce Record item - /Sites/ /Salesforce Records/ But, the Sites folder may not always be named 'Sites', e.g. 'Sitios'! CMIS does not provide a way to specify a QName path, rather than a name path. So, we must find out what the sites folder is called, and store this This is done when the user selects the site to be used for document storage.

#SummitNow CMIS Workbench as Node Browser org.apache.chemistry.opencmis.binding.spi.type=atompub org.apache.chemistry.opencmis.binding.atompub.url= /api.alfresco.com/cmis/versions/1.0/atom org.apache.chemistry.opencmis.binding.auth.http.basic=fals e org.apache.chemistry.opencmis.binding.header.0=Authorizat ion:Bearer org.apache.chemistry.opencmis.binding.compression=true cmis.workbench.folder.includeAcls=false cmis.workbench.object.includeAcls=false cmis.workbench.version.includeAcls=false

#SummitNow Salesforce Governance ntent/apex_gov_limits.htm 10Total number of callouts (HTTP requests or Web services calls) in a transaction 6 MBTotal heap size 10,000 milliseconds Maximum CPU time on the Salesforce servers 5 MBFile size limit

#SummitNow Security Considerations Salesforce apply strict criteria to apps before they can be publicly listed on the AppExchange Partnership with Checkmarx to allow developers to check for common vulnerabilities in their Apex / Visualforce apps The AppExchange team are responsible for performing a final check across your app and any supporting services For Alfresco this covered the MyAlfresco service Developers do not have access to the tools used This feedback process takes (up to) 8 weeks

#SummitNow Future Ideas Access Salesforce Content from Alfresco Salesforce Chatter API (plug) Avoiding Salesforce Governance limits Salesforce Canvas Framework Alfresco Embed

#SummitNow Add permission set to multiple users Every user must have the ‘Alfresco Cloud Document Management User’ permission set applied to their account. This can be scripted through the Salesforce Developer Console.

#SummitNow Example User u = [select id from User where ]; PermissionSet ps = [Select p.Id From PermissionSet p where p.label = 'Alfresco Cloud Document Management User']; PermissionSetAssignment psa = new PermissionSetAssignment(AssigneeId = u.id, PermissionSetId = ps.id); insert psa;

#SummitNow More information Documentation 00P Hd94DEAR Salesforce App Exchange Listing B34XIEAZ

#SummitNow

Known Issues and Limits We don’t support IE versions prior to IE 10 Maximum of number of documents that can be attached to a single Salesforce item is 100 Documents start out as V1.1, not 1.0 If you attach a document with the same name as an existing attachment to the same Salesforce Object, we name the attachment with a ‘- ’ suffix (up to three such attachments) Uploading a document that exceeds the Alfresco quota will fail, but a Salesforce Chatter entry will still be created (transactional integrity) The app uses the name of the Salesforce object to create the name of the folder in Alfresco where the files are uploaded. If you create two Salesforce objects with the same name, files attached to either object will be stored in the same folder Moderated sites that the Salesforce Admin is not yet a member of will still appear in the Sites dropdown

#SummitNow Force.com Limitations No local deployment process, deploy process is via an external API with only an Ant task to integrate this into your workflow Namespacing Formats not well documented The process of certifying an app is opaque and non-trivial