SharePoint Intelligence Extending Share Point Designer 2010 Workflows With Custom Actions

Uploaded on

Automating business processes with SharePoint is a powerful way to increase efficiency within any organization. With SharePoint Designer 2010, no-code (or declarative) workflows can be built to run …

Automating business processes with SharePoint is a powerful way to increase efficiency within any organization. With SharePoint Designer 2010, no-code (or declarative) workflows can be built to run either SharePoint 2010 On-Premise or in the cloud with Office 365. In this session, we’ll develop an expense report workflow from beginning to end to show how SharePoint Designer Workflows are being used in business today.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads


Total Views
On Slideshare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide
  • Who i I am nothing but SharePoint Clients


  • 1. Extending SharePoint Designer 2010 Workflows with Custom Actions
    Ivan Sanders
    SharePoint MVP Developer, Evangelist
  • 2.
  • 3. 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 Element
    Contains 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.
  • 4. 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.
    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.
  • 5. Workflow in SPO?
    New Workflow targets
    Reusable Workflows can be applied to any list
    Site Workflows can execute on site
    New Workflow events
    Emitted by SharePoint Online (i.e. WorkflowStarted)
    Custom Events, Event Receivers
  • 6. Workflow Designer
    Improved declarative workflow designer
  • 7. Task Process Designer
  • 8. Actions
    Actions get work done in the workflow
    Create, copy, change, or delete list items/documents
    Check items in or out
    Send an e-mail
    Create a task for person or group
    Collect data via task for use in the workflow
    Pause or stop the workflow
    Log workflow information to a History list
    Set workflow variables or perform calculations
  • 9. Conditions
    Control flow of the workflow
    If any value equals value
    If current item field equals value
    Created by a specific person
    Created in a specific date span
    Title field contains keywords
  • 10. Steps
    Allow you to organize your workflow
    Steps performed in Serial or Parallel
  • 11. Impersonation
    Workflows run with permissions of user
    Use impersonation step to run as workflow author
  • 12. WorkflowSharePoint Designer 2010Implementing Workflows
  • 13. Custom Workflow Actions
    Define class/method in Visual Studio 2010
    Sandbox Solutions API
    Define new action via <WorkflowActions> schema
    Maps designer to method call
  • 14. Workflow Events
    Implemented via Workflow Event Receiver
    Override SPWorkflowEventReceiver
  • 15. Creating and Deploying DocumentSet Actions & Customizable Conditions
  • 16. SP2010 vs. SPO
    Can’t export from SPD2010 to VS2010
    Can’t build Visual Studio code workflows in a sandboxed solution
  • 17. Summary
    Implement the workflow in SharePoint Designer 2010
    Custom or copy & modify built in workflow
    Actions, conditions and steps
    Develop custom workflow actions and events in Visual Studio 2010
  • 18. Who can you trust??
    The blogs I trust through all of the noise.
    Maurice Prather
    Andrew Connell
    Spence Harbar
    Jim Duncan
    Heather Solomon
    Todd Klindt
    Todd Baginski
    Todd Bleeker Tielens
    Patrick Tisseghem
    Ted Patisson
    Lars Fastrup
    Keith Richie
    Bill Baer
  • 19. Thank you
    Ivan Sanders
    SharePoint MVP Developer, Evangelist
  • 20. What's on the Flash drive
  • 21. Extras
    SharePoint 2007
    SharePoint Sushi
    SharePointManager2007 / 2010
    2007 Office SDK1.5
    SQL Scripts
    SharePoint 2010
    2010 Documentation
    2010 Tips and tricks
    SQL Scripts
  • 22. Resources
    Download SharePoint Designer 2010
    Introducing SharePoint Designer 2010
    SharePoint Designer 2010 Workflow
    Creating SharePoint Workflow Solutions
    Walkthrough: Create a Custom Site Workflow Activity
  • 23. Performance
  • 24. Database Performance
    Database Volumes
    Separate 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.
  • 25. 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.
  • 26. Database Performance
    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.
  • 27. 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.
  • 28. 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.
  • 29. 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.
  • 30. 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.
  • 31. 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.