26
EBZ 321 Extending CMS 2002 Publishing Processes Scott Fynn Microsoft Consulting Services National Practices

EBZ 321 Extending CMS 2002 Publishing Processes Scott Fynn Microsoft Consulting Services National Practices

Embed Size (px)

Citation preview

Page 1: EBZ 321 Extending CMS 2002 Publishing Processes Scott Fynn Microsoft Consulting Services National Practices

EBZ 321

Extending CMS 2002 Publishing Processes

Scott Fynn

Microsoft Consulting Services

National Practices

Page 2: EBZ 321 Extending CMS 2002 Publishing Processes Scott Fynn Microsoft Consulting Services National Practices

Agenda

Workflow for Web Publishing?CMS 2002: Built-In WorkflowWhy Extend Workflow?Extending Workflow

CMS 2002 Publishing EventsExternal Page State

Creating Web Author Controls

Partner SolutionsDeploying Workflow

Page 3: EBZ 321 Extending CMS 2002 Publishing Processes Scott Fynn Microsoft Consulting Services National Practices

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.

Page 4: EBZ 321 Extending CMS 2002 Publishing Processes Scott Fynn Microsoft Consulting Services National Practices

Workflow for Web Publishing

Human to Human Task RoutingExample: Document Collaboration

Human to ApplicationData ProcessingExample: Online Request Forms

Application to ApplicationApplication IntegrationExample: Integrated Billing Systems

Web publishing involves aspects of all three!

Page 5: EBZ 321 Extending CMS 2002 Publishing Processes Scott Fynn Microsoft Consulting Services National Practices

Built-In Workflow

CMS 2002 provides:

Three roles, three kinds of state changesAuthor (..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!

Page 6: EBZ 321 Extending CMS 2002 Publishing Processes Scott Fynn Microsoft Consulting Services National Practices

More Built-In Workflow

There are ten official page statesThe ones you expect:

The page has been Saved by the AuthorThe page is Waiting for Editor ApprovalThe page is Waiting for Moderator ApprovalThe page is now Published and live.

The more subtle ones:The page is brand New and hasn’t been savedThe page is Editor- or Moderator-DeclinedThe page is Approved but not live yetThe page has been Deleted or is Expired

Page 7: EBZ 321 Extending CMS 2002 Publishing Processes Scott Fynn Microsoft Consulting Services National Practices

Built-In Workflow

ModeratorModeratorAuthorAuthor EditorEditor

Page 8: EBZ 321 Extending CMS 2002 Publishing Processes Scott Fynn Microsoft Consulting Services National Practices

Why Extend CMS Workflow?

Email notification

More approval steps, parallel steps

More state transitions, timeouts

Delegation

Ad-hoc collaboration

Trigger other processes

Page 9: EBZ 321 Extending CMS 2002 Publishing Processes Scott Fynn Microsoft Consulting Services National Practices

Email Notification

ModeratorModeratorAuthorAuthor EditorEditor

EmailEmail EmailEmail

Page 10: EBZ 321 Extending CMS 2002 Publishing Processes Scott Fynn Microsoft Consulting Services National Practices

Parallel Steps

AuthorAuthor Editor - MarketingEditor - Marketing

Editor - GraphicsEditor - Graphics

Editor - PREditor - PR

Legal Legal ReviewReview

Page 11: EBZ 321 Extending CMS 2002 Publishing Processes Scott Fynn Microsoft Consulting Services National Practices

Extending Workflow

Using CMS page stateCMS 2002 publishing events

global.asax or custom httpmodule

Using external state (DB or XML)Use page GUID as key valueCreate your own workflow classCustomize the web author console

Partner tools Teamplate, Sourcecode

Page 12: EBZ 321 Extending CMS 2002 Publishing Processes Scott Fynn Microsoft Consulting Services National Practices

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

Page 13: EBZ 321 Extending CMS 2002 Publishing Processes Scott Fynn Microsoft Consulting Services National Practices

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 ) {}

Page 14: EBZ 321 Extending CMS 2002 Publishing Processes Scott Fynn Microsoft Consulting Services National Practices

Email Notification Email Notification with the CMS Posting with the CMS Posting Events HTTP moduleEvents HTTP module

demodemo

Page 15: EBZ 321 Extending CMS 2002 Publishing Processes Scott Fynn Microsoft Consulting Services National Practices

Writing a Custom HTTP Module

Derive from IHttpModule

Implement:Init(): use “+=“ to register the events

Dispose(): use “-=“ to un-register the eventsInit(…) { 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

Page 16: EBZ 321 Extending CMS 2002 Publishing Processes Scott Fynn Microsoft Consulting Services National Practices

Using External Page State

Extend number of steps, parallel stepsDatabase requirements:

Store page state by GUIDStore workflow stepsStore users for each stepStore state transition rules for each step

Code requirements:Workflow class - state transition methods.Web forms for reportingCMS Web Author controls for integration

Page 17: EBZ 321 Extending CMS 2002 Publishing Processes Scott Fynn Microsoft Consulting Services National Practices

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

Page 18: EBZ 321 Extending CMS 2002 Publishing Processes Scott Fynn Microsoft Consulting Services National Practices

Code walkthroughCode walkthrough

Creating a Custom Creating a Custom Web Author ControlWeb Author Control

Page 19: EBZ 321 Extending CMS 2002 Publishing Processes Scott Fynn Microsoft Consulting Services National Practices

Development/Test Estimates

Email NotificationSimple: 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

Page 20: EBZ 321 Extending CMS 2002 Publishing Processes Scott Fynn Microsoft Consulting Services National Practices

Dedicated Workflow Software

SourceCode K2.NET 2003

TeamPlate

Page 21: EBZ 321 Extending CMS 2002 Publishing Processes Scott Fynn Microsoft Consulting Services National Practices

TeamplateTeamplate

Kevin HeinKevin HeinVice PresidentVice PresidentBusiness DevelopmentBusiness DevelopmentTeamplateTeamplate

demodemo

Page 22: EBZ 321 Extending CMS 2002 Publishing Processes Scott Fynn Microsoft Consulting Services National Practices

Deploying Workflow

Start simple!

Understand the business goalsSpeed?

Correctness?

Use an iterative design process

Allow emergency workarounds

Page 23: EBZ 321 Extending CMS 2002 Publishing Processes Scott Fynn Microsoft Consulting Services National Practices

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

Page 24: EBZ 321 Extending CMS 2002 Publishing Processes Scott Fynn Microsoft Consulting Services National Practices

Community Resources

Community Resourceshttp://www.microsoft.com/communities/default.mspx

Most Valuable Professional (MVP)http://www.mvp.support.microsoft.com/

NewsgroupsConverse online with Microsoft Newsgroups, including Worldwidehttp://www.microsoft.com/communities/newsgroups/default.mspx

User GroupsMeet and learn with your peershttp://www.microsoft.com/communities/usergroups/default.mspx

Page 25: EBZ 321 Extending CMS 2002 Publishing Processes Scott Fynn Microsoft Consulting Services National Practices

evaluationsevaluations

Page 26: EBZ 321 Extending CMS 2002 Publishing Processes Scott Fynn Microsoft Consulting Services National Practices

© 2003 Microsoft Corporation. All rights reserved.© 2003 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.