Post on 21-Oct-2014
description
Extending SharePoint Designer 2010 Workflows with Custom Actions
http://bit.ly/kOqLnvIvan SandersSharePoint MVP Developer, Evangelistivan@dimension-si.com http://twitter.com/@iasanders
Workflow Actions Schema Overview
Schema Elements I placed these in alphabetical order for easier reference, not in order of hierarchy. I will post the hierarchy the next time.
Action ElementContains the information needed for the workflow engine to process a workflow activity, which is called an action in Windows SharePoint Services 3.0. A workflow Action element represents a workflow activity, such as sending e-mail notifications, updating Windows SharePoint Services 3.0 list items, creating and assigning tasks, as well as many other activities.Condition Element Represents a Condition statement, which is part of a rule sentence that can be displayed in a declarative, rules-based, code-free workflow editor, such as Microsoft Office SharePoint Designer 2007.
Workflow Actions Schema Overview
Default Element The Default element is a container for other elements and has no definable attributes.
Option Element Used to populate DesignerType drop-down list box controls that are not data bound. Option elements contain text and value pairs that can be used to build a workflow sentence. They also contain information about their .NET data types.
Parameter Element Used to describe the input and output parameters for a custom Actions or Conditions method call.
RuleDesigner Element Complex type element. The RuleDesigner element contains information needed to render a workflow sentence in a declarative, code-free workflow editor such as Microsoft Office SharePoint Designer 2007.
WorkflowInfo Element WorkflowInfo is the root element of the Actions schema. This element must be included in any .ACTIONS file that is installed on the server.
Workflow in SPO?
New Workflow targetsReusable Workflows can be applied to any listSite Workflows can execute on site
New Workflow eventsEmitted by SharePoint Online (i.e. WorkflowStarted)Custom Events, Event Receivers
Workflow Designer Improved declarative workflow designer
Task Process Designer
Actions Actions get work done in the workflow Examples:
Create, copy, change, or delete list items/documents
Check items in or outSend an e-mailCreate a task for person or groupCollect data via task for use in the workflowPause or stop the workflowLog workflow information to a History listSet workflow variables or perform calculations
Conditions Control flow of the workflow Examples:
If any value equals valueIf current item field equals valueCreated by a specific personCreated in a specific date spanTitle field contains keywords
Steps Allow you to organize your workflow Steps performed in Serial or Parallel
ImpersonationWorkflows run with permissions of user
Use impersonation step to run as workflow author
WorkflowSharePoint Designer 2010Implementing Workflows
demo
Custom Workflow Actions Define class/method
in Visual Studio 2010Sandbox Solutions API
Define new action via <WorkflowActions> schemaMaps designer to
method call<Action><RuleDesigner><Parameters>
Workflow Events Implemented via Workflow Event Receiver
Override SPWorkflowEventReceiver Scope
SPSite SPWeb SPList SPContentType
Events WorkflowStarting WorkflowStarted WorkflowCompleted WorkflowLoading WorkflowUnloading WorkflowPostponed
Creating and Deploying DocumentSet Actions & Customizable Conditions
demo
SP2010 vs. SPO Can’t export from SPD2010 to VS2010 Can’t build Visual Studio code workflows in a
sandboxed solution
Summary Implement the workflow in SharePoint
Designer 2010Custom or copy & modify built in workflowActions, conditions and steps
Develop custom workflow actions and events in Visual Studio 2010
Who can you trust??The blogs I trust through all of the noise.
Maurice Prather http://www.bluedoglimited.com/default.aspx Andrew Connell http://www.andrewconnell.com/blog Spence Harbarhttp://www.harbar.net Jim Duncan Heather Solomon http://www.heathersolomon.com/blog Todd Klindt http://www.toddklindt.com/default.aspx Todd Baginski http://www.toddbaginski.com/blog Todd Bleeker http://bit.ly/edlSm5
Jan Tielens http://weblogs.asp.net/jan Patrick Tisseghem http://www.u2u.info/Blogs/Patrick/default.aspx Wictor Wilen http://www.wictorwilen.se Ted Patisson http://blog.tedpattison.net/default.aspx Lars Fastrup http://www.fastrup.net Carsten Keutmann http://keutmann.blogspot.com Keith Richie http://blog.krichie.com Bill Baer http://blogs.technet.com/b/wbaer
Thank youhttp://bit.ly/kOqLnvIvan Sanders
SharePoint MVP Developer, Evangelistivan@dimension-si.com http://twitter.com/@iasanders
What's on the Flash drive
Extras
Extras SharePoint 2007
SharePointSolutionInstaller WSPBuilder KerberosBuddy SharePoint Sushi SharePointManager2007 / 2010 SPViewPermissionSetting.wsp 2007 Office SDK1.5 SQL Scripts
SharePoint 2010 AutoSPInstaller 2010 Documentation BusinessIntelligenceLabs 2010 Tips and tricks SQL Scripts npp.5.8.6 Search.StandardMasterPageAdapter.wsp
Resources Download SharePoint Designer 2010
http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&FamilyID=d88a1505%2D849b%2D4587%2Db854%2Da7054ee28d66
Introducing SharePoint Designer 2010 http://
office.microsoft.com/en-us/sharepoint-designer-help/introducing-sharepoint-designer-2010-HA101782482.aspx
SharePoint Designer 2010 Workflow http://
office.microsoft.com/en-us/sharepoint-designer-help/introduction-to-designing-and-customizing-workflows-HA101859249.aspx
Creating SharePoint Workflow Solutions http://msdn.microsoft.com/en-us/library/ee231606.aspx
Walkthrough: Create a Custom Site Workflow Activity http://msdn.microsoft.com/en-us/library/ee231574.aspx
Performance
Addendum
Database Performance
Database VolumesSeparate database volumes into unique LUN’s
consisting of unique physical disk spindles.Prioritize data among faster disks with ranking:
○ SQL TempDB data files○ Database transaction log files○ Search database○ Content databases
In a heavily read-oriented portal site, prioritize data over logs.
Separate out Search database transaction log from content database transaction logs.
Database Performance SQL TempDB Data Files
Recommended practice is that the number of data files allocated for TempDB should be equal to number of core CPU’s in SQL Server.
TempDB data file sizes should be consistent across all data files. TempDB data files should be spread across unique LUN’s and
separated from Content DB, Search DB, etc… TempDB Log file separated to unique LUN. Optimal TempDB data file sizes can be calculated using the
following formula: [MAX DB SIZE (KB)] X [.25] / [# CORES] = DATA FILE SIZE (KB)
Calculation result (starting size) should be roughly equal to 25% of the largest content or search DB.
Use RAID 10; separate LUN from other database objects (content, search, etc…).
“Autogrow” feature set to a fixed amount; if auto grow occurs, permanently increase TempDB size.
Content Databases 100 content databases per Web application 100GB per content database
○ CAUTION: Major DB locking issues reported in collaborative DM scenarios above 100GB
○ Need to ensure that you understand the issues based on number of users, usage profiles, etc…
○ Service Level Agreement (SLA) requirements for backup and restore will also have an impact on this decision.
○ KnowledgeLake Lab testing demonstrated SharePoint performance was NOT impacted by utilizing larger DB sizes; tests included content DB sizes that were 100GB, 150GB, 200GB, 250GB, 300GB and 350GB.
Database Performance
Content Databases - Continued Pre-construct and pre-size Script generation of empty database objects “Autogrow” feature on Use RAID 5 or RAID 10 logical units
○ RAID 10 is the best choice when cost is not a concern. ○ RAID 5 will be sufficient and will save on costs, since content
databases tend to be more read intensive than write intensive. Multi-core computer running SQL Server
○ Primary file group could consist of a data file for each CPU core present in SQL Server.
○ Move each data file to separate logical units consisting of unique physical disk spindles.
Database Performance
Search Database Pre-construct and pre-size Script generation of empty database objects “Autogrow” feature on Use RAID 10 logical units
○ Should be a requirement for large-scale systems○ Search database is extremely read/write intensive
Multi-core computer running SQL Server○ Primary file group could consist of a data file for each CPU core
present in SQL Server. ○ Move each data file to separate logical units consisting of
unique physical disk spindles.
Database Performance
Search Database Search database is VERY read/write intensive! Do not place any other database data files on any logical unit
where search database files reside. If possible, try to ensure that the RAID 10 logical units for the
search database data files do not share their physical spindles with other databases.
Place the search database log files on an independent logical unit.
Database Performance
Database Maintenance Physical Volume File Fragmentation:
○ Defragment your physical volumes on a regular schedule for increased performance!
○ LUN’s need to be 20-50% larger than the data stored on them allow for effective defragmentation of the data files.
Performance Monitor Counters to watch:○ Average Disk Queue Length
Single Digit values are optimal.Occasional double-digit values aren’t a large concern.Sustained triple-digit values require attention.
Database Performance
Page Performance Minimize HTTP Requests
80% of the end-user response time is spent on the front-end. Most of this time is tied up in downloading all the components in the page: images, stylesheets, scripts, Flash, etc. Reducing the number of components in turn reduces the number of HTTP requests required to render the page. This is the key to faster pages.
For static components: implement "Never expire" policy by setting far future Expires header
Avoid Redirects Redirects are accomplished using the 301 and 302 status codes.
Here’s an example of the HTTP headers in a 301 response: Optimize Images
After a designer is done with creating the images for your web page, there are still some things you can try before you uploading the images to your web server
Avoid Empty Image src Image with empty string src attribute occurs more than one will
expect.