CMS 2002 Publishing Events
Download
Report
Transcript CMS 2002 Publishing Events
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.