EBZ 321 Extending CMS 2002 Publishing Processes Scott Fynn Microsoft Consulting Services National Practices
Agenda Workflow for Web Publishing? CMS 2002: Built-In Workflow Why Extend Workflow? Extending Workflow CMS 2002 Publishing Events External Page State Creating Web Author Controls Partner Solutions Deploying Workflow
Web Publishing: Content Management Server 2002 Web Content Management: Integrated suite of tools that facilitates the creation, publication, and maintenance of content for the Web. Workflow: A method of using software to enforce publishing processes.
Workflow for Web Publishing Human to Human Task Routing Example: Document Collaboration Human to Application Data Processing Example: Online Request Forms Application to Application Application Integration Example: Integrated Billing Systems Web publishing involves aspects of all three!
Built-In Workflow CMS 2002 provides: Three roles, three kinds of state changes Author (..who Submits) Editor (..who Approves or Declines) Moderator (..who Approves or Declines) Result: 1 content approval step. Moderators approve publishing details Moderators do not re-approve content!
More Built-In Workflow There are ten official page states The ones you expect: The page has been Saved by the Author The page is Waiting for Editor Approval The page is Waiting for Moderator Approval The page is now Published and live. The more subtle ones: The page is brand New and hasn’t been saved The page is Editor- or Moderator-Declined The page is Approved but not live yet The page has been Deleted or is Expired
Built-In Workflow Moderator Author Editor
Why Extend CMS Workflow? notification More approval steps, parallel steps More state transitions, timeouts Delegation Ad-hoc collaboration Trigger other processes
Notification Moderator Author Editor
Parallel Steps Author Editor - Marketing Editor - Graphics Editor - PR LegalReview
Extending Workflow Using CMS page state CMS 2002 publishing events global.asax or custom httpmodule Using external state (DB or XML) Use page GUID as key value Create your own workflow class Customize the web author console Partner tools Teamplate, Sourcecode
CMS 2002 Publishing Events Events raised in response to publishing actions Microsoft.ContentManagement.Publishing.Events Some events: Page Submitting / Submitted Page Approving / Approved Page Deleting / Deleted To consume these events: Use CMS’ handy posting event HTTP module Write your own custom HTTP module
Using CMS’ HTTP module Add HTTP module to web.config: Microsoft.ContentManagement. Publishing.Events.PostingEventsModule Add your event handler to global.asax with the following naming convention: _ public void Posting_Approved( Object sender, ChangedEventArgs e ) {}
Notification with the CMS Posting Events HTTP module demo demo
Writing a Custom HTTP Module Derive from IHttpModule Implement: Init(): use “+=“ to register the events Dispose(): use “-=“ to un-register the events Init(…) { PostingEvents.Current.Approved += new delegate( this.Eventhandler(…) ) } Create your custom event handler Compile and add new assembly to GAC Register HTTP module in web.config
Using External Page State Extend number of steps, parallel steps Database requirements: Store page state by GUID Store workflow steps Store users for each step Store state transition rules for each step Code requirements: Workflow class - state transition methods. Web forms for reporting CMS Web Author controls for integration
Custom Web Author Controls Inherit from BasePostbackAction Override Available with logic that decides if the “approve” link should show Detects user Looks up page state Override PerformActionBehaviour with your “approve” code. Add action to DefaultConsole.aspx
Code walkthrough Code walkthrough Creating a Custom Web Author Control
Development/Test Estimates Notification Simple: 1 week XML- or UI-driven: 3-4 weeks External page state (multiple >2 or parallel steps) Hardcoded steps: 2-4 weeks User interface: 6+ weeks
Dedicated Workflow Software SourceCode K2.NET 2003 TeamPlate
Teamplate Kevin Hein Vice President Business Development Teamplate demo demo
Deploying Workflow Start simple! Understand the business goals Speed? Correctness? Use an iterative design process Allow emergency workarounds
Summary Start with the “Out of the Box” workflow Use publishing event model to implement simple workflow extensions Use external page state and web author console for complex workflow extensions Partners offer powerful solutions Future: BizTalk Human Workflow Services
Community Resources Most Valuable Professional (MVP) Newsgroups Converse online with Microsoft Newsgroups, including Worldwide User Groups Meet and learn with your peers
evaluations evaluations
© 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.