Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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 Author Editor Moderator Why Extend CMS Workflow? Email notification More approval steps, parallel steps More state transitions, timeouts Delegation Ad-hoc collaboration Trigger other processes Email Notification Email Email Author Editor Moderator Parallel Steps Editor - Graphics Author Editor - Marketing Editor - PR Legal Review 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: <HTTP module name>_<Event name> public void Posting_Approved( Object sender, ChangedEventArgs e ) {} demo Email Notification with the CMS Posting Events HTTP module 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 Creating a Custom Web Author Control Development/Test Estimates Email 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 demo Teamplate Kevin Hein Vice President Business Development Teamplate 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 Community Resources http://www.microsoft.com/communities/default.mspx Most Valuable Professional (MVP) http://www.mvp.support.microsoft.com/ Newsgroups Converse online with Microsoft Newsgroups, including Worldwide http://www.microsoft.com/communities/newsgroups/default.mspx User Groups Meet and learn with your peers http://www.microsoft.com/communities/usergroups/default.mspx evaluations © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.