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

Post on 05-Jan-2016

214 views 0 download

Transcript of EBZ 321 Extending CMS 2002 Publishing Processes Scott Fynn Microsoft Consulting Services National...

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

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 RoutingExample: Document Collaboration

Human to ApplicationData ProcessingExample: Online Request Forms

Application to ApplicationApplication IntegrationExample: Integrated Billing Systems

Web publishing involves aspects of all three!

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!

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

Built-In Workflow

ModeratorModeratorAuthorAuthor EditorEditor

Why Extend CMS Workflow?

Email notification

More approval steps, parallel steps

More state transitions, timeouts

Delegation

Ad-hoc collaboration

Trigger other processes

Email Notification

ModeratorModeratorAuthorAuthor EditorEditor

EmailEmail EmailEmail

Parallel Steps

AuthorAuthor Editor - MarketingEditor - Marketing

Editor - GraphicsEditor - Graphics

Editor - PREditor - PR

Legal Legal ReviewReview

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

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

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

demodemo

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

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

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 walkthroughCode walkthrough

Creating a Custom Creating a Custom Web Author ControlWeb Author Control

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

Dedicated Workflow Software

SourceCode K2.NET 2003

TeamPlate

TeamplateTeamplate

Kevin HeinKevin HeinVice PresidentVice PresidentBusiness DevelopmentBusiness DevelopmentTeamplateTeamplate

demodemo

Deploying Workflow

Start simple!

Understand the business goalsSpeed?

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 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

evaluationsevaluations

© 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.