Your SlideShare is downloading. ×
Yes It Can!
Learning to Leverage Plone’s Workflow
  to Bring Business Practices Online

               Cris Ewing
         ...
Plone’s Greatest Strength
Often Overlooked
• Permissions & Roles
• Permissions & Roles
• Inheritance of Rights
• Permissions & Roles
• Inheritance of Rights
• Workflow: States & Transitions
• Permissions & Roles
• Inheritance of Rights
• Workflow: States & Transitions
• Advanced Techniques
• Permissions & Roles
• Inheritance of Rights
• Workflow: States & Transitions
• Advanced Techniques
Image Credit: femaletrumpet02
http://www.flickr.com/photos/femaletrumpet02/3862031267/
Image Credit: ul_Marga
http://www.flickr.com/photos/ul_marga/755378645/
Image Credit: gossamerpromise
http://www.flickr.com/photos/gossamerpromise/432902183/
what do they open?
what do they open?

how can I find the right one?
what do they open?

how can I find the right one?
lots of permissions
CMFEditions: Save new version
                                                       CMFEditions: Access previous versions...
(and that’s a good thing)
(and that’s a good thing)
      ((take my word for it))
not so well documented


Image Credit: The empty Book (http://www.flickr.com/photos/hirok/4404405566),
a Creative Commons A...
Use The Source
Use The Source
Products.CMFCore.permissions
  AccessControl.permissions
Products.Five / permissions.zcml
zope.security / p...
help the doc team


Image Credit: http://www.flickr.com/photos/soldiersmediacenter/2570460662/,
a Creative Commons Attribut...
Permissions Manual
Permissions Manual
http://plone.293351.n2.nabble.com/plone-permissions-manual-td3666469.html
Permissions Manual
http://plone.293351.n2.nabble.com/plone-permissions-manual-td3666469.html


http://www.coactivate.org/p...
what do they open?

how can I find the right one?
Roles
Image Credit: ul_Marga
http://www.flickr.com/photos/ul_marga/755378645/
built-in roles from Plone
• Manager
• Manager
 -   Like Superman, can do anything
• Manager
 -   Like Superman, can do anything


• Owner
• Manager
 -   Like Superman, can do anything


• Owner
 -   All content management rights
• Manager
 -   Like Superman, can do anything


• Owner
 -   All content management rights


• Editor
• Manager
 -   Like Superman, can do anything


• Owner
 -   All content management rights


• Editor
 -   Can change exis...
• Manager
 -   Like Superman, can do anything


• Owner
 -   All content management rights


• Editor
 -   Can change exis...
• Manager
 -   Like Superman, can do anything


• Owner
 -   All content management rights


• Editor
 -   Can change exis...
• Contributor
• Contributor
 -   Can add new content, but not edit existing
• Contributor
 -   Can add new content, but not edit existing


• Reader
• Contributor
 -   Can add new content, but not edit existing


• Reader
 -   Can view an object, but not manage it in any...
• Contributor
 -   Can add new content, but not edit existing


• Reader
 -   Can view an object, but not manage it in any...
• Contributor
 -   Can add new content, but not edit existing


• Reader
 -   Can view an object, but not manage it in any...
• Contributor
 -   Can add new content, but not edit existing


• Reader
 -   Can view an object, but not manage it in any...
• Contributor
 -   Can add new content, but not edit existing


• Reader
 -   Can view an object, but not manage it in any...
• Contributor
 -   Can add new content, but not edit existing


• Reader
 -   Can view an object, but not manage it in any...
you can create new ones
you can create new ones
       but be cautious . . .
• Too many roles can be confusing
• Too many roles can be confusing
• Too many roles clutter the user interface
Image Credit: yin yang (http://www.flickr.com/photos/csb13/4577840509/),
a Creative Commons by-nc-nd (2.0) image from csb13...
• Permissions & Roles
• Inheritance of Rights
• Workflow: States & Transitions
• Advanced Techniques
Roles can be ‘global’ or ‘local’
Global Roles
Local Roles
so what’s the difference?
Plone Site



    Folder 1         Folder 2


        Folder 1.1      Folder 2.1




        Folder 1.2      Folder 2.2


...
Assign a Local Role on a Folder
Plone Site



    Folder 1                           Folder 2


        Folder 1.1        ...
Inheritance can be blocked
Plone Site



    Folder 1                         Folder 2


        Folder 1.1               ...
Plone Site
                Grant A Global Role (say ‘Editor’)
    Folder 1                        Folder 2


        Folde...
Global Roles CANNOT Be Blocked!!!
Plone Site



    Folder 1                    Folder 2


        Folder 1.1             ...
so what do we do?
Assign a ‘Global’ Local Role (use sharing)
Plone Site



    Folder 1                    Folder 2


        Folder 1.1    ...
Inheritance Blocking is Respected
Plone Site



    Folder 1                       Folder 2


        Folder 1.1          ...
• Permissions & Roles
• Inheritance of Rights
• Workflow: States & Transitions
• Advanced Techniques
states
Image Credit: Visits to Taiwan 2005 (http://www.flickr.com/photos/midpath/300465658/,
a Creative Commons by-nc-nd (2.0) ima...
states can:
states can:


• Assign permissions to roles
states can:


• Assign permissions to roles
• Control available transitions
states can:


• Assign permissions to roles
• Control available transitions
• and, less well known:
assign roles to groups!
transitions
Image Credit: A walk into the bamboo paths (http://www.flickr.com/photos/fotopakismo/2390882485/)
a Creative Commons by-nc-...
transitions control:
transitions control:
• Where you end up
transitions control:
• Where you end up
• How you start the journey
transitions control:
• Where you end up
• How you start the journey
 • user-initiated or automatic
transitions control:
• Where you end up
• How you start the journey
 • user-initiated or automatic
• Who can make the trip
transitions control:
• Where you end up
• How you start the journey
 • user-initiated or automatic
• Who can make the trip...
the rubber meets the road


Image Credit: Transformers (http://www.flickr.com/photos/hoffarth/4506050669/),
a Creative Comm...
A simple workflow app
A simple workflow app

• User submits a request for travel expenses
A simple workflow app

• User submits a request for travel expenses
• Approver approves or denies the request
A simple workflow app

• User submits a request for travel expenses
• Approver approves or denies the request
 • If denied,...
A simple workflow app

• User submits a request for travel expenses
• Approver approves or denies the request
 • If denied,...
A simple workflow app

• User submits a request for travel expenses
• Approver approves or denies the request
 • If denied,...
What do we need?
What do we need?
• A Simple Content Type
What do we need?
• A Simple Content Type
 • Title, Description, Amount and Receipt
What do we need?
• A Simple Content Type
 • Title, Description, Amount and Receipt
• A Workflow
What do we need?
• A Simple Content Type
 • Title, Description, Amount and Receipt
• A Workflow
 • New Request, Awaiting Ap...
What do we need?
• A Simple Content Type
 • Title, Description, Amount and Receipt
• A Workflow
 • New Request, Awaiting Ap...
What do we need?
• A Simple Content Type
 • Title, Description, Amount and Receipt
• A Workflow
 • New Request, Awaiting Ap...
What do we need?
• A Simple Content Type
 • Title, Description, Amount and Receipt
• A Workflow
 • New Request, Awaiting Ap...
What Tools to Use?
What Tools to Use?
For the Content Type: ZopeSkel?? AGX??
What Tools to Use?
        For the Content Type: ZopeSkel?? AGX??

For the Workflow: collective.wtf ?? ZMI & portal_setup???
or, perhaps . . .
dexterity & uwosh.northstar
start with a buildout
start with a buildout
start up instance
fresh plone site
fresh plone site
(it works in plone 3, too)
you’ll install two products
you’ll install two products
they’ll install dependencies
they’ll install dependencies
new control panels
new control panels
we need a simple
 content type
make a content type
make a content type
set up type basics
add fields
add fields
add fields
add fields
amount field (float)
receipt field (file)
add behaviors
(basic capabilities)
we also need a workflow
create new workflow
create new workflow
create new workflow
edit existing states
edit existing states
edit existing states
edit existing states
add new state(s)
add transition(s)
add transition(s)
add transition(s)
add transition(s)
add transition(s)
add transition(s)
add transition(s)
add transition(s)
assign workflow to type
assign workflow to type
and that’s it!
a quick live demo
• Permissions & Roles
• Inheritance of Rights
• Workflow: States and Transitions
• Advanced Techniques
content rules
content rules
no programming needed
per-field permissions
• Show different aspects of a type to different
  users
• Show different aspects of a type to different
  users

• Show different aspects of a type to the same
  user in differen...
• Show different aspects of a type to different
  users

• Show different aspects of a type to the same
  user in differen...
• Show different aspects of a type to different
  users

• Show different aspects of a type to the same
  user in differen...
• Show different aspects of a type to different
  users

• Show different aspects of a type to the same
  user in differen...
Image Credit: Mona Lisa (http://www.flickr.com/photos/caribb/2355878576/"),
a Creative Commons by-nc-nd (2.0) image from ca...
Image Credit: Les Demoiselles d'Avignon(http://www.flickr.com/photos/webtweakers/2511681891/),
a Creative Commons by-nc-nd ...
transition actions
     script (before)

     script (after)
filesystem python scripts
filesystem python scripts
      cannot be overridden
workflow events
  IBeforeTransitionEvent

  IAfterTransitionEvent
• which workflow was used
• which workflow was used
• old and new workflow states
• which workflow was used
• old and new workflow states
• which transition is happening (has happened)
• which workflow was used
• old and new workflow states
• which transition is happening (has happened)
• status of the object
• which workflow was used
• old and new workflow states
• which transition is happening (has happened)
• status of the objec...
imagine the possibilities



Image Credit: I'm So Excited (http://www.flickr.com/photos/expo86/1907930897/),
a Creative Com...
Thanks to:
WebLion
the Penn State University
cewing@uw.edu
Yes It Can: Leverage Workflow in Plone to Bring Business Process Online
Yes It Can: Leverage Workflow in Plone to Bring Business Process Online
Yes It Can: Leverage Workflow in Plone to Bring Business Process Online
Yes It Can: Leverage Workflow in Plone to Bring Business Process Online
Yes It Can: Leverage Workflow in Plone to Bring Business Process Online
Yes It Can: Leverage Workflow in Plone to Bring Business Process Online
Yes It Can: Leverage Workflow in Plone to Bring Business Process Online
Upcoming SlideShare
Loading in...5
×

Yes It Can: Leverage Workflow in Plone to Bring Business Process Online

731

Published on

One of the aspects of Plone that sets it above most other Content Management Systems is the DC Workflow package. We've all seen it in use as we publish content, but have we thought about how it can help us to implement business practices and policies as online systems?

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
731
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide








  • There are many things you can do in Plone, each is controlled by a permission. You can think of it like a series of control rooms, each of which has a locked door.
  • Each of those doors has a specific key that allows someone to open it and perform the action inside.
  • But with all the actions one can perform, the number of keys can get overwhelming. And managing permissions can be like digging through one of those junk drawers filled with random keys. Two question become important quickly:


































  • Unfortunately, this wide array of permissions isn’t really very well documented. So what can you do?




  • Or, if you happen to be community-minded (and if you’re using Plone, the chances are good that you are), you can pitch in to help the documentation team fix the problem.




  • Roles are like neatly labelled key chains that hold all the keys required to perform a well-defined set of tasks.



































































































  • remember that guards can also include groups and permissions
  • remember that guards can also include groups and permissions
  • remember that guards can also include groups and permissions
  • remember that guards can also include groups and permissions
  • remember that guards can also include groups and permissions
  • remember that guards can also include groups and permissions
  • remember that guards can also include groups and permissions
  • remember that guards can also include groups and permissions
  • remember that guards can also include groups and permissions
  • remember that guards can also include groups and permissions
  • remember that guards can also include groups and permissions
  • remember that guards can also include groups and permissions
  • remember that guards can also include groups and permissions




























  • Transcript of "Yes It Can: Leverage Workflow in Plone to Bring Business Process Online"

    1. 1. Yes It Can! Learning to Leverage Plone’s Workflow to Bring Business Practices Online Cris Ewing UW Radiology Web Services PSE2010
    2. 2. Plone’s Greatest Strength
    3. 3. Often Overlooked
    4. 4. • Permissions & Roles
    5. 5. • Permissions & Roles • Inheritance of Rights
    6. 6. • Permissions & Roles • Inheritance of Rights • Workflow: States & Transitions
    7. 7. • Permissions & Roles • Inheritance of Rights • Workflow: States & Transitions • Advanced Techniques
    8. 8. • Permissions & Roles • Inheritance of Rights • Workflow: States & Transitions • Advanced Techniques
    9. 9. Image Credit: femaletrumpet02 http://www.flickr.com/photos/femaletrumpet02/3862031267/
    10. 10. Image Credit: ul_Marga http://www.flickr.com/photos/ul_marga/755378645/
    11. 11. Image Credit: gossamerpromise http://www.flickr.com/photos/gossamerpromise/432902183/
    12. 12. what do they open?
    13. 13. what do they open? how can I find the right one?
    14. 14. what do they open? how can I find the right one?
    15. 15. lots of permissions
    16. 16. CMFEditions: Save new version CMFEditions: Access previous versions CMFEditions: Apply version control Content rules: Manage rules View Management Screens Request review List portal members FTP Access set own properties iterate: check out content Use external editor Review portal content Allow sendto List undoable changes lots of permissions Delete Objects Portlets: manage portlets Modify view template List folder contentsManage properties Undo changes iterate: check in content Add portal member Set own password CMFEditions: Checkout to location CMFEditions: Revert to previous versions Add portal folders Add portal content View Groups Reply to item Portlets: manage own portlets
    17. 17. (and that’s a good thing)
    18. 18. (and that’s a good thing) ((take my word for it))
    19. 19. not so well documented Image Credit: The empty Book (http://www.flickr.com/photos/hirok/4404405566), a Creative Commons Attribution (2.0) image from hirok's photostream
    20. 20. Use The Source
    21. 21. Use The Source Products.CMFCore.permissions AccessControl.permissions Products.Five / permissions.zcml zope.security / permissions.zcml
    22. 22. help the doc team Image Credit: http://www.flickr.com/photos/soldiersmediacenter/2570460662/, a Creative Commons Attribution (2.0) image from soldiersmediacenter's photostream
    23. 23. Permissions Manual
    24. 24. Permissions Manual http://plone.293351.n2.nabble.com/plone-permissions-manual-td3666469.html
    25. 25. Permissions Manual http://plone.293351.n2.nabble.com/plone-permissions-manual-td3666469.html http://www.coactivate.org/projects/plone-documentation/permissions-manual
    26. 26. what do they open? how can I find the right one?
    27. 27. Roles
    28. 28. Image Credit: ul_Marga http://www.flickr.com/photos/ul_marga/755378645/
    29. 29. built-in roles from Plone
    30. 30. • Manager
    31. 31. • Manager - Like Superman, can do anything
    32. 32. • Manager - Like Superman, can do anything • Owner
    33. 33. • Manager - Like Superman, can do anything • Owner - All content management rights
    34. 34. • Manager - Like Superman, can do anything • Owner - All content management rights • Editor
    35. 35. • Manager - Like Superman, can do anything • Owner - All content management rights • Editor - Can change existing, but not create new
    36. 36. • Manager - Like Superman, can do anything • Owner - All content management rights • Editor - Can change existing, but not create new • Reviewer
    37. 37. • Manager - Like Superman, can do anything • Owner - All content management rights • Editor - Can change existing, but not create new • Reviewer - Can change workflow state
    38. 38. • Contributor
    39. 39. • Contributor - Can add new content, but not edit existing
    40. 40. • Contributor - Can add new content, but not edit existing • Reader
    41. 41. • Contributor - Can add new content, but not edit existing • Reader - Can view an object, but not manage it in any way
    42. 42. • Contributor - Can add new content, but not edit existing • Reader - Can view an object, but not manage it in any way • Member
    43. 43. • Contributor - Can add new content, but not edit existing • Reader - Can view an object, but not manage it in any way • Member - No significant special rights
    44. 44. • Contributor - Can add new content, but not edit existing • Reader - Can view an object, but not manage it in any way • Member - No significant special rights • Authenticated
    45. 45. • Contributor - Can add new content, but not edit existing • Reader - Can view an object, but not manage it in any way • Member - No significant special rights • Authenticated • Anonymous
    46. 46. • Contributor - Can add new content, but not edit existing • Reader - Can view an object, but not manage it in any way • Member - No significant special rights • Authenticated distinguish folks who are logged in from folks who are not • Anonymous
    47. 47. you can create new ones
    48. 48. you can create new ones but be cautious . . .
    49. 49. • Too many roles can be confusing
    50. 50. • Too many roles can be confusing • Too many roles clutter the user interface
    51. 51. Image Credit: yin yang (http://www.flickr.com/photos/csb13/4577840509/), a Creative Commons by-nc-nd (2.0) image from csb13's photostream
    52. 52. • Permissions & Roles • Inheritance of Rights • Workflow: States & Transitions • Advanced Techniques
    53. 53. Roles can be ‘global’ or ‘local’
    54. 54. Global Roles
    55. 55. Local Roles
    56. 56. so what’s the difference?
    57. 57. Plone Site Folder 1 Folder 2 Folder 1.1 Folder 2.1 Folder 1.2 Folder 2.2 X X
    58. 58. Assign a Local Role on a Folder Plone Site Folder 1 Folder 2 Folder 1.1 Folder 2.1 Folder 1.2 Folder 2.2 X X
    59. 59. Inheritance can be blocked Plone Site Folder 1 Folder 2 Folder 1.1 Folder 2.1 Folder 1.2 Folder 2.2 X X
    60. 60. Plone Site Grant A Global Role (say ‘Editor’) Folder 1 Folder 2 Folder 1.1 Folder 2.1 Folder 1.2 Folder 2.2 X X
    61. 61. Global Roles CANNOT Be Blocked!!! Plone Site Folder 1 Folder 2 Folder 1.1 Folder 2.1 Folder 1.2 Folder 2.2 X X
    62. 62. so what do we do?
    63. 63. Assign a ‘Global’ Local Role (use sharing) Plone Site Folder 1 Folder 2 Folder 1.1 Folder 2.1 Folder 1.2 Folder 2.2 X X
    64. 64. Inheritance Blocking is Respected Plone Site Folder 1 Folder 2 Folder 1.1 Folder 2.1 Folder 1.2 Folder 2.2 X X
    65. 65. • Permissions & Roles • Inheritance of Rights • Workflow: States & Transitions • Advanced Techniques
    66. 66. states
    67. 67. Image Credit: Visits to Taiwan 2005 (http://www.flickr.com/photos/midpath/300465658/, a Creative Commons by-nc-nd (2.0) image from midpath's photostream
    68. 68. states can:
    69. 69. states can: • Assign permissions to roles
    70. 70. states can: • Assign permissions to roles • Control available transitions
    71. 71. states can: • Assign permissions to roles • Control available transitions • and, less well known:
    72. 72. assign roles to groups!
    73. 73. transitions
    74. 74. Image Credit: A walk into the bamboo paths (http://www.flickr.com/photos/fotopakismo/2390882485/) a Creative Commons by-nc-nd (2.0) image from fotopakismo's photostream
    75. 75. transitions control:
    76. 76. transitions control: • Where you end up
    77. 77. transitions control: • Where you end up • How you start the journey
    78. 78. transitions control: • Where you end up • How you start the journey • user-initiated or automatic
    79. 79. transitions control: • Where you end up • How you start the journey • user-initiated or automatic • Who can make the trip
    80. 80. transitions control: • Where you end up • How you start the journey • user-initiated or automatic • Who can make the trip • permission(s), role(s) or membership in group(s)
    81. 81. the rubber meets the road Image Credit: Transformers (http://www.flickr.com/photos/hoffarth/4506050669/), a Creative Commons by-nc-nd (2.0) image from hoffarth's photostream
    82. 82. A simple workflow app
    83. 83. A simple workflow app • User submits a request for travel expenses
    84. 84. A simple workflow app • User submits a request for travel expenses • Approver approves or denies the request
    85. 85. A simple workflow app • User submits a request for travel expenses • Approver approves or denies the request • If denied, the user can edit and re-submit
    86. 86. A simple workflow app • User submits a request for travel expenses • Approver approves or denies the request • If denied, the user can edit and re-submit • Accountant issues a reimbursement check
    87. 87. A simple workflow app • User submits a request for travel expenses • Approver approves or denies the request • If denied, the user can edit and re-submit • Accountant issues a reimbursement check • Request is closed
    88. 88. What do we need?
    89. 89. What do we need? • A Simple Content Type
    90. 90. What do we need? • A Simple Content Type • Title, Description, Amount and Receipt
    91. 91. What do we need? • A Simple Content Type • Title, Description, Amount and Receipt • A Workflow
    92. 92. What do we need? • A Simple Content Type • Title, Description, Amount and Receipt • A Workflow • New Request, Awaiting Approval, Approved, Denied, Closed
    93. 93. What do we need? • A Simple Content Type • Title, Description, Amount and Receipt • A Workflow • New Request, Awaiting Approval, Approved, Denied, Closed • A Pair of Roles
    94. 94. What do we need? • A Simple Content Type • Title, Description, Amount and Receipt • A Workflow • New Request, Awaiting Approval, Approved, Denied, Closed • A Pair of Roles • Approver, Accountant
    95. 95. What do we need? • A Simple Content Type • Title, Description, Amount and Receipt • A Workflow • New Request, Awaiting Approval, Approved, Denied, Closed • A Pair of Roles • Approver, Accountant • or do we?
    96. 96. What Tools to Use?
    97. 97. What Tools to Use? For the Content Type: ZopeSkel?? AGX??
    98. 98. What Tools to Use? For the Content Type: ZopeSkel?? AGX?? For the Workflow: collective.wtf ?? ZMI & portal_setup???
    99. 99. or, perhaps . . .
    100. 100. dexterity & uwosh.northstar
    101. 101. start with a buildout
    102. 102. start with a buildout
    103. 103. start up instance
    104. 104. fresh plone site
    105. 105. fresh plone site
    106. 106. (it works in plone 3, too)
    107. 107. you’ll install two products
    108. 108. you’ll install two products
    109. 109. they’ll install dependencies
    110. 110. they’ll install dependencies
    111. 111. new control panels
    112. 112. new control panels
    113. 113. we need a simple content type
    114. 114. make a content type
    115. 115. make a content type
    116. 116. set up type basics
    117. 117. add fields
    118. 118. add fields
    119. 119. add fields
    120. 120. add fields
    121. 121. amount field (float)
    122. 122. receipt field (file)
    123. 123. add behaviors (basic capabilities)
    124. 124. we also need a workflow
    125. 125. create new workflow
    126. 126. create new workflow
    127. 127. create new workflow
    128. 128. edit existing states
    129. 129. edit existing states
    130. 130. edit existing states
    131. 131. edit existing states
    132. 132. add new state(s)
    133. 133. add transition(s)
    134. 134. add transition(s)
    135. 135. add transition(s)
    136. 136. add transition(s)
    137. 137. add transition(s)
    138. 138. add transition(s)
    139. 139. add transition(s)
    140. 140. add transition(s)
    141. 141. assign workflow to type
    142. 142. assign workflow to type
    143. 143. and that’s it!
    144. 144. a quick live demo
    145. 145. • Permissions & Roles • Inheritance of Rights • Workflow: States and Transitions • Advanced Techniques
    146. 146. content rules
    147. 147. content rules no programming needed
    148. 148. per-field permissions
    149. 149. • Show different aspects of a type to different users
    150. 150. • Show different aspects of a type to different users • Show different aspects of a type to the same user in different states
    151. 151. • Show different aspects of a type to different users • Show different aspects of a type to the same user in different states • Allow users to edit only certain fields
    152. 152. • Show different aspects of a type to different users • Show different aspects of a type to the same user in different states • Allow users to edit only certain fields • Change which fields can be edited by state
    153. 153. • Show different aspects of a type to different users • Show different aspects of a type to the same user in different states • Allow users to edit only certain fields • Change which fields can be edited by state • and so on . . .
    154. 154. Image Credit: Mona Lisa (http://www.flickr.com/photos/caribb/2355878576/"), a Creative Commons by-nc-nd (2.0) image from caribb's photostream
    155. 155. Image Credit: Les Demoiselles d'Avignon(http://www.flickr.com/photos/webtweakers/2511681891/), a Creative Commons by-nc-nd (2.0) image from webtweakers's photostream
    156. 156. transition actions script (before) script (after)
    157. 157. filesystem python scripts
    158. 158. filesystem python scripts cannot be overridden
    159. 159. workflow events IBeforeTransitionEvent IAfterTransitionEvent
    160. 160. • which workflow was used
    161. 161. • which workflow was used • old and new workflow states
    162. 162. • which workflow was used • old and new workflow states • which transition is happening (has happened)
    163. 163. • which workflow was used • old and new workflow states • which transition is happening (has happened) • status of the object
    164. 164. • which workflow was used • old and new workflow states • which transition is happening (has happened) • status of the object • the object itself
    165. 165. imagine the possibilities Image Credit: I'm So Excited (http://www.flickr.com/photos/expo86/1907930897/), a Creative Commons Attribution Non-Commercial No-Derivative-Works (2.0) image from expo86's photostream
    166. 166. Thanks to:
    167. 167. WebLion
    168. 168. the Penn State University
    169. 169. cewing@uw.edu

    ×