Bpm Camp Prashant Web App Vs Process


Published on

Prashant Gadgil's presentation on web apps and processes - and when the two overlap or get confused.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Bpm Camp Prashant Web App Vs Process

  1. 1. Web Application or Process ? Case Study Prashant Gadgil
  2. 2. <ul><li>Characteristics of process looking like a WebApp or vice versa </li></ul><ul><li>Business Requirements </li></ul><ul><li>Modeling Options </li></ul><ul><li>An Implemented Solution </li></ul>WebApp or Process? Outline
  3. 3. <ul><li>Lot of data involved - typically coming periodic batch job from external source or SOR </li></ul><ul><li>Difficult to define an instance to satisfy all participants </li></ul><ul><ul><li>Different participants need to view this data sliced in a different perspective </li></ul></ul><ul><li>Pieces (rows) of this batch data can be “referred back” independently as part of process </li></ul><ul><li>Business needs to update/change their process input anytime after the fact and that should again trigger tasks accordingly </li></ul>WebApp or Process? Typical characteristics
  4. 4. <ul><li>High volume of number of rows possible in a batch </li></ul><ul><li>Minimal Tasks/clicks for users each day covering all data </li></ul><ul><ul><li>Due to physical time constraint or deadline to complete a step </li></ul></ul><ul><ul><li>Process input or decision by a user is time consuming but it really applies to multiple rows </li></ul></ul><ul><li>No bottlenecking on any user – turnaround time of each row is important </li></ul><ul><li>Complicated reporting of every detail of each row from outside the process context </li></ul><ul><li>Users can likely make mistake in decision and would like to correct their decision at any point in time </li></ul><ul><li>To be implemented in TeamWorks </li></ul>WebApp or Process? Business requirements
  5. 5. <ul><li>1000 orders imported in a system as a nightly batch </li></ul><ul><li>3 Participants in Process: </li></ul><ul><ul><li>Customer Service wants tasks one per State </li></ul></ul><ul><ul><li>Manufacturing wants tasks one per Manufacturing plant location </li></ul></ul><ul><ul><li>Shipping wants tasks one per Shipping Carrier </li></ul></ul><ul><ul><li>An order can be any combination of the above 3 parameters </li></ul></ul><ul><li>Each participant gives some input/decision on each row of data </li></ul>WebApp or Process? Data Example
  6. 6. <ul><li>Instance at lowest possible row (order) level </li></ul>WebApp or Process? Modelling Options
  7. 7. <ul><li>Row Level Instance </li></ul><ul><ul><li>Typical Process Model </li></ul></ul><ul><ul><li>Process for each row can flow independently </li></ul></ul><ul><ul><li>Too many tasks per Participant, one per order per participant, Too many clicks </li></ul></ul><ul><ul><li>Difficult to make decision on a subsection of orders inside one task e.g. across a certain state or manufacturing location or shipping carrier </li></ul></ul>WebApp or Process? Modeling Options
  8. 8. <ul><li>Traditional One Instance at Batch Level </li></ul><ul><ul><li>One Multi-instance loop task per participant </li></ul></ul><ul><ul><li>Efficient entry of decisions across multiple orders </li></ul></ul><ul><ul><li>“ Process” for Individual row cannot move forward until all rows are completed at any step by the participants </li></ul></ul><ul><ul><li>One user can bottleneck the whole process for the entire batch </li></ul></ul>WebApp or Process? Modelling Options
  9. 9. <ul><li>Polled Instance for the whole batch of data </li></ul>WebApp or Process? An Implemented Solution
  10. 10. <ul><li>Polled One Instance at Batch Level </li></ul><ul><ul><li>One instance created for the batch of rows </li></ul></ul><ul><ul><li>All data externalized with bpd_instance_id in tables </li></ul></ul><ul><ul><li>Polling at intervals to see what tasks can be opened up based on row statuses </li></ul></ul><ul><ul><li>Individual row (s) can move forward (task for it can open up) when its status is ready for next step </li></ul></ul><ul><ul><li>Instance ID and one or two of the parameter values only as input to any task </li></ul></ul><ul><ul><li>Each task uses this context keys to read data from tables, all decisions updated immediately updated into columns of the tables. </li></ul></ul>WebApp or Process? Polled One Instance Design
  11. 11. <ul><li>Disadvantages: </li></ul><ul><ul><li>BPD diagram does not show any “process”, just parallel boxes after a polling service </li></ul></ul><ul><ul><li>DB intensive, since polling load will increase over time </li></ul></ul><ul><ul><ul><li>Need weighted polling, recent instances poll more frequently, older instances less frequently </li></ul></ul></ul><ul><ul><ul><li>Need to have some logic in BPD to terminate/stop polling after certain criteria is met for business data in tables </li></ul></ul></ul>WebApp or Process? Polled One Instance Design
  12. 12. <ul><li>Advantages of this approach: </li></ul><ul><ul><li>If business requirements change as to when to open a task, only change is in the polling query. </li></ul></ul><ul><ul><li>Incoming data issues can be fixed in tables from back end and its related task will open in next polling. </li></ul></ul><ul><ul><li>Complicated reporting easily possible by pure queries to the underlying tables, no performance server/ tracking </li></ul></ul><ul><ul><li>No issue of in-flight process upgrade </li></ul></ul><ul><ul><li>TeamWorks for Office plug-in used to alert the users of tasks for them instead of them actively logging into a web application. </li></ul></ul><ul><ul><li>If an instance fails beyond recovery, easy to open a new instance ID with same data without losing process input and putting it in exactly same state where it failed </li></ul></ul>WebApp or Process? Polled One Instance Design