Apr 202009
 

As part of the Alfresco Consulting team, I’ve done some work on web scripts for reporting workflow status, keyed off of custom workflow metadata.  At the AIIM conference a few weeks ago, I was asked multiple times about Alfresco’s ability to expose workflow reports. Last week I came across a post from Kas Thomas who wondered, “Does workflow always have to suck?“, which touched on workflow reporting.  My conclusion after all of this: we need to build workflow status reporting. And I’m going to start on it.

Now there are a lot of ways in which we could build this out.  First, we need to consider the reporting context.  Do we want to report based on:

  • the system as a whole (“show me all workflow status in the entire system”)
  • web content management use (“show me all workflow status for web project X”)
  • user (“show me how user ‘bobsmith’ is involved in workflow”)
  • group (“show me how group ‘marketing’ is involved in workflow”)
  • asset type (“show me all workflow status pertaining to ‘.jpg’ files”)
  • asset (“show me all workflow status related to this particular document”)
  • path (“show me all workflow status related to assets in/under this path”)
  • workflow (“show me all status related to all instances of this named workflow”)
  • workflow task (“show me all status related to all instances of this named workflow task”)
  • something else I haven’t thought of yet (please comment here if you have other suggestions)

Since I want to get something going that will be of the most use to the most people, I’m going to start with reporting by user, then by group.  My next consideration will be exactly what to report.  I have not used any other workflow software besides Alfresco, so if you’ve got input on this, I would love to hear it (please comment below).  That said, so far I’m thinking that given a user id, the report will show:

  • the number of currently active workflows the user is/may be involved it (i.e. this would be inclusive of pooled tasks assigned to a group that the user is a part of)
  • the number of currently active workflow tasks the user has assigned to them

Given a user id and a date range, the report will show:

  • the number of completed tasks
  • the number of completed workflows
  • the average duration of each completed task

Better still, given a user id, date range (Jan 1, 2008 – December 31, 2008), and recurring time period (monthly), the report could show a bar chart or line graph of the aforementioned metrics.  Perhaps you can even add the ability to compare one user to another on those metrics.

A few things are notably missing so far.  Nowhere have I mentioned the ability to key off of custom workflow metadata, or report on custom workflow metadata. Perhaps the former could be addressed via the inclusion of a name/value pair that serves as a filter.  For example, providing {http://www.mycompany.com/model/my-workflow/1.0}/customId=42 could serve to filter out any workflow that does not have that custom metadata set on the workflow’s start task.  Reporting custom workflow metadata probably doesn’t make sense as part of a “by user” oriented report, but probably does make sense as part of a named workflow report.  What do you think?

Hopefully this post will drum up some food for thought, and ideally some feedback on what Alfresco users might want from a workflow reporting perspective.  Please feel free to share your thoughts on the subject by commenting here or participating in the workflow forum at http://forums.alfresco.com/en/viewforum.php?f=34.

  8 Responses to “Alfresco Workflow Status Reporting”

  1. Wouldn’t it be nice to integrate BI softwares to delegate the reporting stuff and just show them inside Alfresco (BIRT, Talend …) ?

  2. Hey Brian, how is it going regarding this post? The report piece is very important… we got so many requests for this… I am sending this to some people at the office… if you are still waiting for comments, I am sure they will have some things to say about it…

  3. Hi Claudia,

    This still has my focus, and I’ve started on it. I’m starting out with user and group based reporting, and will then move into other types of reports. I would love to get more feedback on specifics – what data would you want to see in these reports? Please comment here.

    Thanks,
    -Brian

  4. Brian,

    Claudia asked me to chime in on workflow reporting. It looks like you have most of what I would have commented on. Not to be to repetitive I will focus some other things.

    I am not sure of all that Alfresco currently tracks but for starters I have seen the need to track the following for a variety of customers:

    Workflow Definition, Workflow instance (WI) start time, WI Completion time, WI Imitator, WI Status (in process, current, abandoned/cancelled), time when notes/comment where added, state of item in workflow (versioned and tagged) to allow comparisons, task start/finish time, and escalation occurrence for tasks/WI.

    I see that you are starting on user and group reporting, but I do see a lot of requirements for system/global level reporting.

    Everything in your list for reporting contexts seems to be spot on, I have seen each multiple times in reporting requirements for variety of customers. I would pay attention to how the reports are invoked in respect to the context.

    Some system allows you to navigate to an item and invoke the report (call it “in-context”). This is nice if system is structured in way that allows the user to invoke the simple reports with the same interaction with the UI. This general limited to simple reports and limited ad hoc capabilities. Some systems treat documents/content and workflow definitions differently causing inconsistent UI interaction for reporting.

    The other side is to create a centralized workflow management GUI would allow for more complex multi-value reporting. The downside is more complexity creating another way to select items to report on, beyond “in-context” reporting leveraging the OOB GUI. Plus side is the ability to create global, and complex ad hoc reports.

    Of course have both would centralized report and “in-context” reporting features would be nice.

  5. Hi Frank,

    So ‘in-context’ reporting should be very easily achievable via simple web client customization, such as adding an action icon. Because all workflow data will be exposed via REST interface, all those ‘in-context’ invocations will just need to hit a certain URL and maybe pass a few parameters in.

    As far as enabling ad-hoc reports, I’m trying to strike a balance. Instead of exposing the entire contents of the “workflow database” and enabling the caller to slice and dice it however they want, I’m planning to expose context specific buckets of workflow information. For example, users, groups, workflow definitions are examples of contexts. For each, I’ll expose all related data, including custom metadata where applicable. See my post about the design of this thing here.

  6. Hello, i’m rookie in alfresco. I wan´t to know where is the code for this??? i have one project, where i nedd to implement some of that solutions. can you help me? thanks

  7. Hi RP,

    See here for the project code: http://forge.alfresco.com/projects/workflowmanager/

    Thanks,
    -Brian

  8. Thanx Brian :-)

Sorry, the comment form is closed at this time.