You are viewing limited content. For full access, please sign in.

Question

Question

Workflow feature requests

asked on December 17, 2015 Show version history

We've been compiling a list of features that would be great to have in Workflow, and I finally have enough free time to write everything up. They aren't in any specific order.

 

1. Creating Global Tokens

We have many workflows where the first activity is Assign Token Values that creates things like folder paths etc. that are re-used across the workflow inside Move/Route activities. However, most of the time these stay the same. So it would be nice to be able to create them at the global level, maybe inside the Workflow Admin Console. We could then access them inside each workflow under the Global list.

2. Archiving Workflows

We would like the ability to "archive" workflows and remove them from various lists like Rule Manager. Disabling their starting rules only makes them unavailable to users, but from an administrative perspective, keeping the lists (Rule Manager, Download Workflow, etc.) clean while at the same time keeping the workflow definitions in the database (only in an Archival status) where they can continue to be backed up would be great.

3. Renaming Workflows

The only way to rename a workflow seems to be to download it to the Designer, change the name, publish it, recreate its starting rules, and delete the old one. That's five steps for a simple task. I feel like it should be possible to right-click a workflow in the Rule Manager or in the Admin Console and selecting 'rename' or something.

4. Key-Value Pair Generation

Being able to create arbitrary multi-value tokens is great, but not enough. Often times (especially when using Workflow for reporting), we need to be able to compile large amounts of data and organize them in a clean way. So if we have "project name" and "project manager", storing them inside two separate multi-value tokens doesn't make sense, because the only way to find a project manager that is assigned to a given project in that case is to use the index counters, and those aren't guaranteed to be synchronized (some projects don't have project managers for example).

So we would like the ability to create two-dimensional, dictionary-type data structures inside workflow, and then refer to a key to get its value and vice versa. Being able to easily convert these pairs to JSON or XML would be extra-nice, since a lot of our custom front-ends use those. For instance, sending a project name/project manager pair like this:

{"Front Office Renovation": "Bobby Smith"}

to a web service would allow that service to consume it easily.

5. Object Generation

This is similar to the key-value pairs, but more complex. It would be nice to have a "Create Object" activity where you can define an object and its various properties, and then refer to it using its unique ID further down in the workflow. Basically, like creating a C# class with a set of properties on the fly, and then creating instances of that class, populating its properties and adding it to collections inside loops (e.g. multi-value token).

Example use case: Let's say you're using workflow to compile project-related data from various sources, such as the LF repository and third-party tables. You want this data to be organized under a Project object. Each project has a name, id, project manager (optional), and budget. In C# this may look something like this:

public class Project {

    public int id                   { get; set; }
    public string name              { get; set; }
    public string projectManager    { get; set; }
    public int budget               { get; set; }

}

A workflow activity can allow you to specify the name of this class and its properties, and then allow you to create new instances of it (and assign data to its properties) inside the workflow.

6. Starting Workflows via Email

I've brought this up to the development team before, but I wanted to revisit it. Being able to start workflows by simply emailing an account e.g. workflow@ourdomain.com would be incredibly powerful. You could then have various starting rules in the rule manager to specify conditions like "if from" or "if subject contains word", and have the email fields (to, from, body, etc.) available inside the workflow as tokens.

7. Starting Workflows via Web Request

Currently, whenever we need the ability to start a workflow via a web request, we have to write a custom web service that's a wrapper around the Workflow SDK, and then deploy that service on IIS. This can be a ton of work. It would be great to have something that's more tightly integrated into Workflow itself. An administrator should be able to define starting rules that are web requests. For example, it would be great if we could create starting rules like:

    Request Type: POST

    Request URL: /workflow/myWF

    Request Body contains keyword

    Request Body Format is JSON

 

Workflow would then listen for POST requests to that URI, filter incoming requests based on the conditions (as well as things like the existence of a valid API key that was created in the Admin Console), and then process the data inside the workflow.

8. Inline Conditionals Inside Token Editor

It would be great if the token editor had inline conditionals. For instance, imagine an email activity where the To field contains the following tokens:

%(Project_Manager), %(Customer)

If we want to make it so that the customer token is included only if certain conditions are met, we need to place the email activity inside a Conditional Decision. The problem is that this can make workflows very crowded, because every minor change in the condition warrants an entirely new branch, and the the rest of the email fields remain exactly the same.

But if we could do something like this:

%(Project_Manager), %(Customer#if_%Project_Type_equals_"public"#)

Then we could have one email activity to cover both cases.

7 0

Replies

replied on December 17, 2015

Starting Workflows from incoming mailboxes would be a huge win for us too! Our users are manually printing each email using Snapshot which then starts the workflow, also then using Snapshot to print each attachment. We are on Lotus Notes which seems more painful to integrate than Outlook. So a big tick for this feature request if it can combine the email body + attachments. We would essentially be able to use more than 50 mailboxes to hook into saving us 000's of man hours to process.

 

 

 

2 0
replied on December 17, 2015

Thank you for your suggestions.  Many of these can be used by our location too.

1 0
replied on August 18, 2017

I know this is a late post, but maybe this will help someone ...

In reference to ..

#1:  You can reference a custom .dll tied to an xml configuration file to reference global variables.

#2:  I agree - there's not a whole lot of workflow organization and management features!

#3:  You can export, and re-import to change the names and maintain rules.

#4:  Just store a KeyValuePair in a token, and when you need it, cast it back to KVP to use it.

#5:  I use the same method as #1.

#6 & #8:  Agree!!

1 0
replied on May 8, 2019

Thanks, Rich.  I just used your tip #3 to rename a workflow and keep its starting rules.  Worked great and wasn't too difficult!

0 0
You are not allowed to follow up in this post.

Sign in to reply to this post.