Activity Chaining

I've been told that ubiquitous activity chaining is a bad practice, but why is this the case? It seems to me that there are applications where activity chaining is necessary end to end, and indeed I've seen such applications function just fine.

Is it a performance concern, or more a contrast with clean code philosophy?

 

Thanks

  Discussion posts and replies are publicly visible

Parents
  • Certified Lead Developer
    Using activity chaining in excess uses up system resources and memory. You may not notice this in a dev environment, but you should always try to build your processes to be as efficient as possible. Activity chaining should not be used for utility processes that do not have forms the user needs to fill out. It should also never be used after the last User Input task on a process because it is not necessary after that point. If your process has lots of looping or large numbers of nodes in-between forms then maybe consider redesigning your process to use a SAIL wizard instead.
    One common misconception I've heard is that activity chaining makes processes faster; it doesn't. I've used activity chaining all the time on my projects. As long as you use it correctly it shouldn't be a problem.

    The activity chaining section of this link is a good read.
    docs.appian.com/.../Process_Model_Recipes.html
Reply
  • Certified Lead Developer
    Using activity chaining in excess uses up system resources and memory. You may not notice this in a dev environment, but you should always try to build your processes to be as efficient as possible. Activity chaining should not be used for utility processes that do not have forms the user needs to fill out. It should also never be used after the last User Input task on a process because it is not necessary after that point. If your process has lots of looping or large numbers of nodes in-between forms then maybe consider redesigning your process to use a SAIL wizard instead.
    One common misconception I've heard is that activity chaining makes processes faster; it doesn't. I've used activity chaining all the time on my projects. As long as you use it correctly it shouldn't be a problem.

    The activity chaining section of this link is a good read.
    docs.appian.com/.../Process_Model_Recipes.html
Children
  • It should also never be used after the last User Input task on a process because it is not necessary after that point.

    For what it's worth, I've experienced multiple use cases where this is outright incorrect.  The most obvious/important such use case, off the top of my head, is a Related Action on a record where the related action causes changes to the DB which affect the information shown on the record dashboard in question. 

    Sometimes you might notice that completing such a related action and returning to the record dashboard, you need to refresh the page once or twice before the updated information is displayed.  If activity chaining is used after the user input task (perhaps only as far as the write to data store node(s)), this issue is mitigated quite well. 

    I'm of the opinion that designers should not be made to feel worried or guilty about using activity chaining when it is necessary for the UX - as long as they don't use it in places where it's not necessary like the other examples you've noted.