empowering business users with hybrid solutions
DESCRIPTION
Empowering business users with hybrid solutions - Presented by Bob German 6 March 2013 at SPTechCon San FranciscoTRANSCRIPT
![Page 1: Empowering business users with hybrid solutions](https://reader035.vdocuments.site/reader035/viewer/2022070320/55869192d8b42ac1788b46f1/html5/thumbnails/1.jpg)
Empowering Businesswith
Hybrid Code/No-Code SolutionsBob GermanSharePoint Practice DirectorBlueMetal Architects
@Bob1German
![Page 2: Empowering business users with hybrid solutions](https://reader035.vdocuments.site/reader035/viewer/2022070320/55869192d8b42ac1788b46f1/html5/thumbnails/2.jpg)
About the Speaker
Bob GermanSharePoint Practice Director and Principal Architect at BlueMetal Architects
Developer and architect on the SharePoint platform since it was called “Site Server 3.0”
Co-author of SharePoint 2010 Development with Silverlight for Addison-Wesley
http://blogs.msdn.com/BobGerman
BlueMetal Architects We are experts at building solutions that exactly meet
the needs of our customers by apply the right people, processes and platforms.
Our focus is on modernizing applications through expertise in Creative, Social, Development and Data.
We have offices in Boston, New York, and Chicago.
@Bob1German
![Page 3: Empowering business users with hybrid solutions](https://reader035.vdocuments.site/reader035/viewer/2022070320/55869192d8b42ac1788b46f1/html5/thumbnails/3.jpg)
SharePoint People
Business Users
Business Technical
Power Users / Analysts
Business Technical
Developers
Business Technical
@Bob1German
![Page 4: Empowering business users with hybrid solutions](https://reader035.vdocuments.site/reader035/viewer/2022070320/55869192d8b42ac1788b46f1/html5/thumbnails/4.jpg)
Empowering the Power Users
How can we develop SharePoint solutions which empower business users to:
Maintain and update the solution Change the solution to accommodate new business needs Innovate
Des
ign
for E
mpo
wer
men
t
@Bob1German
![Page 5: Empowering business users with hybrid solutions](https://reader035.vdocuments.site/reader035/viewer/2022070320/55869192d8b42ac1788b46f1/html5/thumbnails/5.jpg)
Degrees of Freedom
Robo
ts P
ast a
nd P
rese
nt
@Bob1German
![Page 6: Empowering business users with hybrid solutions](https://reader035.vdocuments.site/reader035/viewer/2022070320/55869192d8b42ac1788b46f1/html5/thumbnails/6.jpg)
Agenda
Forms WorkflowWeb Parts
How can we add degrees of freedomto these solutions?
@Bob1German
![Page 7: Empowering business users with hybrid solutions](https://reader035.vdocuments.site/reader035/viewer/2022070320/55869192d8b42ac1788b46f1/html5/thumbnails/7.jpg)
A Question of Agility
Business Agility Business processes Products and services Scale Markets
Organizational Agility Can other orgs use something similar? How would a reorg affect the solution?
Technical Agility How will this work in the next version of SharePoint? How will this work in the next generation of client technology?
Low-hanging Fruit Sometimes it’s just as easy to build something flexible…
@Bob1German
![Page 8: Empowering business users with hybrid solutions](https://reader035.vdocuments.site/reader035/viewer/2022070320/55869192d8b42ac1788b46f1/html5/thumbnails/8.jpg)
Web Parts
Web Parts empower business users to build their own pages and mash-ups but…
Sometimes there isn’t a web part to do something For more degrees of freedom:
Find ways to make the web part general Allow for flexible editing Build a connectable web part that can be configured in a flexible way
Approach 2007 2010 2013 Beyond
Configurable Web Part
Yes Yes Yes Almost Certainly
Connected Web Part
Yes Yes Yes Probably
@Bob1German
![Page 9: Empowering business users with hybrid solutions](https://reader035.vdocuments.site/reader035/viewer/2022070320/55869192d8b42ac1788b46f1/html5/thumbnails/9.jpg)
Client wanted a web part that shows users the weatherforecast for their location based on user profile
Client liked Accuweather widget but it isn’t integratedwith SharePoint
Wanted the user’s zip code to drive the display
Scenario 1 – Weather Web Partdemo
@Bob1German
![Page 10: Empowering business users with hybrid solutions](https://reader035.vdocuments.site/reader035/viewer/2022070320/55869192d8b42ac1788b46f1/html5/thumbnails/10.jpg)
Client wanted a user directory web part to put on adepartmental web page
Scenario 2 – User Directorydemo
@Bob1German
![Page 11: Empowering business users with hybrid solutions](https://reader035.vdocuments.site/reader035/viewer/2022070320/55869192d8b42ac1788b46f1/html5/thumbnails/11.jpg)
Client wanted a collaborative “dashboard” showingall aspects of a property undermanagement
Scenario 3 – Collaborative Dashboarddemo
@Bob1German
![Page 12: Empowering business users with hybrid solutions](https://reader035.vdocuments.site/reader035/viewer/2022070320/55869192d8b42ac1788b46f1/html5/thumbnails/12.jpg)
Best Practices
1. Allow editing of HTML and other visual settings2. Think of similar / related use cases3. For complex configurations, consider using the web
part itself as an editing surface4. Consider breaking up special-purpose web parts
into connected general-purpose web parts5. Consider developing on the client side!
It’s the wave of the future – one of the primary methods for building SharePoint 2013 apps
It can lead to very responsive user experiencesWeb
Par
ts
@Bob1German
![Page 13: Empowering business users with hybrid solutions](https://reader035.vdocuments.site/reader035/viewer/2022070320/55869192d8b42ac1788b46f1/html5/thumbnails/13.jpg)
InfoPath Form
InfoPath forms empower business users to create and manage the forms but…
Sometimes you hit a brick wall when InfoPath can’t do something
For more degrees of freedom: Create a sandboxed InfoPath solution – users can still edit and update the form Create a web service that InfoPath can call
Approach 2007 2010 2013 Beyond
Sandboxed InfoPath Solution
No Yes Yes Maybe
Admin Approved InfoPath Solution
Yes Yes Yes Maybe
Custom Web Service
Yes Yes Yes Probably
@Bob1German
![Page 14: Empowering business users with hybrid solutions](https://reader035.vdocuments.site/reader035/viewer/2022070320/55869192d8b42ac1788b46f1/html5/thumbnails/14.jpg)
Scenario 1 – Look up Group Members
Complex approval process Approvers are selected from
Active Directory groups in the form InfoPath does not have a way
to enumerate an AD group
SOLUTION: Custom Web Service Set up as a secondary data source in InfoPath Configure using InfoPath Rules Form can still be edited by power users; web service is reusable in other forms
@Bob1German
![Page 15: Empowering business users with hybrid solutions](https://reader035.vdocuments.site/reader035/viewer/2022070320/55869192d8b42ac1788b46f1/html5/thumbnails/15.jpg)
Scenario 2 – Repeating Field
Repeating field in InfoPath – need to use it in a workflow
OOB options are – first, last, comma-separated We needed maximum function
SOLUTION: Sandboxed Form Code Could have used a custom workflow action to extract, but wanted to
adapt the form as well Users can still edit other form detail; no need for admin to install in
Central Admin
@Bob1German
![Page 16: Empowering business users with hybrid solutions](https://reader035.vdocuments.site/reader035/viewer/2022070320/55869192d8b42ac1788b46f1/html5/thumbnails/16.jpg)
Scenario 3 – Wildcard Lookup
Form for use in a marketing request Needed to allow users to select documents based on
awildcard, such as M*.pptx
No support from IT – deploying a web service not possible
SOLUTION: Sandboxed Form Code Uses SharePoint object model to query the document library Business users can edit and install the solution
@Bob1German
![Page 17: Empowering business users with hybrid solutions](https://reader035.vdocuments.site/reader035/viewer/2022070320/55869192d8b42ac1788b46f1/html5/thumbnails/17.jpg)
FormsSandboxed InfoPath Form
demo@Bob1German
![Page 18: Empowering business users with hybrid solutions](https://reader035.vdocuments.site/reader035/viewer/2022070320/55869192d8b42ac1788b46f1/html5/thumbnails/18.jpg)
Decision Matrix
Desired Characteristic Sandboxed Code
Web Service Farm Code
Business User Installable
Business Users can Edit the Form
Reusable in multiple forms
Can access data beyond site collection
Most likely to be reusable beyond SharePoint 2013
Exte
ndin
g In
foPa
th
@Bob1German
![Page 19: Empowering business users with hybrid solutions](https://reader035.vdocuments.site/reader035/viewer/2022070320/55869192d8b42ac1788b46f1/html5/thumbnails/19.jpg)
Workflows
Business users can edit workflows as needs change over time, but…
Sometimes you hit a brick wall when the built-in or SharePoint Designer workflows don’t do something
For more degrees of freedom: Create a custom action for SharePoint Designer Create an event receiver that acts on an “Approval”
Approach 2007 2010 2013 BeyondCustom Workflow Action (Sandboxed)
No Yes Yes Maybe
Custom Workflow Action (Farm)
Yes Yes Yes Maybe
Approval Event Handler
Yes Yes Yes Probably
@Bob1German
![Page 20: Empowering business users with hybrid solutions](https://reader035.vdocuments.site/reader035/viewer/2022070320/55869192d8b42ac1788b46f1/html5/thumbnails/20.jpg)
Scenario 1 – Custom Form Processing
Workflow needs to strip attachments out of a form
SOLUTION: Custom Workflow Action – Sandboxed Solution Reusable anywhere All other logic can be handled in SharePoint Designer
@Bob1German
![Page 21: Empowering business users with hybrid solutions](https://reader035.vdocuments.site/reader035/viewer/2022070320/55869192d8b42ac1788b46f1/html5/thumbnails/21.jpg)
Scenario 2 – Update LOB System
Workflow needs to update a line of business system following an approval
Authorized users should be able to reconfigure the approval process
Unauthorized users should not be able to bypass the approval
SOLUTION: Event Handler as a Farm Solution Use OOB Approval form – site collection admins can reconfigure easily Event handler checks to ensure it’s running on the correct form and
library
@Bob1German
![Page 22: Empowering business users with hybrid solutions](https://reader035.vdocuments.site/reader035/viewer/2022070320/55869192d8b42ac1788b46f1/html5/thumbnails/22.jpg)
Scenario 3 – Site Provisioning
Users fill in a form and to get a SharePoint site Uses specific site templates based on user input Custom approval logic for deciding if the site should
be created
SOLUTION: Custom Workflow Action – Sandboxed Solution Whole workflow, approval, template selection set up in SharePoint
Designer Flexible action creates the site
@Bob1German
![Page 23: Empowering business users with hybrid solutions](https://reader035.vdocuments.site/reader035/viewer/2022070320/55869192d8b42ac1788b46f1/html5/thumbnails/23.jpg)
WorkflowsSandboxed Workflow Steps
demo@Bob1German
![Page 24: Empowering business users with hybrid solutions](https://reader035.vdocuments.site/reader035/viewer/2022070320/55869192d8b42ac1788b46f1/html5/thumbnails/24.jpg)
Best Practices
1. In general, custom actions for SharePoint Designer (or a 3rd party workflow) is most flexible
2. To allow use of OOB Approval workflow without SharePoint Designer, add an event handler that checks for item approved
3. For farm-level solutions, deploy to the bin in selected web apps (to avoid use elsewhere on the farm)
4. Build business rule checks into sensitive workflow actions
5. Return error flag and message to allow the workflow to handle exceptionsEx
tend
ing
Wor
kflow
s
@Bob1German
![Page 25: Empowering business users with hybrid solutions](https://reader035.vdocuments.site/reader035/viewer/2022070320/55869192d8b42ac1788b46f1/html5/thumbnails/25.jpg)
Summary
Always consider degrees of freedom beforestarting a development project- What parts of the business process are likely to change?- What skills to users have?- What permissions do users have?
Choose your technologies wisely- To future-proof your solution, pretend you’re running in Office
365- Sandboxed solutions will probably go away- Farm solutions might or might not be restricted in the future
Business Power Users are the SharePoint Heroes!
@Bob1German
![Page 26: Empowering business users with hybrid solutions](https://reader035.vdocuments.site/reader035/viewer/2022070320/55869192d8b42ac1788b46f1/html5/thumbnails/26.jpg)
Resources
Remember – bit.ly links are case sensitive!Connecting Web Parts (end user) http://bit.ly/SPT-ConnectWP-UserConnectable Web Parts (developer) http://bit.ly/SPT-ConnectWP-Dev Client Side Connection Sample http://bit.ly/SPT-Book (Chapter 7)Sample InfoPath Solutions with Sandboxed Code
http://bit.ly/SPT-InfoPathSamples
Debug InfoPath Forms with Sandboxed Code
http://bit.ly/SPT-InfoPathDebug
Create custom workflow actions (sandboxed)
http://bit.ly/SPT-WorkflowSandboxed
Create custom workflow actions (farm)
http://bit.ly/SPT-WorkflowFarm
@Bob1German
![Page 27: Empowering business users with hybrid solutions](https://reader035.vdocuments.site/reader035/viewer/2022070320/55869192d8b42ac1788b46f1/html5/thumbnails/27.jpg)
Thank You!
@Bob1German