Post

5 followers Follow
1
Avatar

Changes to Clarizen Data Model in Clarizen 6.0

Changes to Clarizen Data Model in Clarizen 6.0 – updates to customizations needed

Clarizen Version 6.0 introduces a powerful new capability called ‘To Do’ tasks, that is; tasks not attached to a parent work item (project, task, milestone), as opposed to Version 5.4, where tasks are required to have a parent; a project, milestone or another task.  

To Do tasks allow people to track their own personal or operational Clarizen tasks as well as opening a wide range of scenarios for people to keep their Clarizen work coordinated and centralized.

Version 6.0 offers four ways to distinguish To Do tasks:

1) Task Project field is empty (blank)

2) A Toggle (checkbox) field called To Do List item (API name: $FloatingTask), which is checked if the field is exposed on the grid.

01.png

 

3) Hovering the mouse pointer over the task name exposes the path [To do list]

02.png

 

4) The To Do tasks has a different icon from tasks with a parent: 

  • 03.png  ─ To Do task
  • 04.png   ─ Parented task

Technically-speaking, this change affects the way customizations are built under Version 6, and might have an effect on customizations imported from a previous version of Clarizen.

Implications for Admins

Regarding customizations, when building customization associations to work items in Version 5.4, and referring the work item’s - $Parent or $ParentProject, or $Project, you could rely on the fact that the relation would not be empty and the customization (based on the specific case, requiring this referencing) would always work.

However, in Version 6.0 this assumption might not be correct, and in the case of a To Do task, the customization fails because of a non-exiting parent. A similar error message might appear:

Val_er.jpg

If you have a customization on your account referencing the $parent, $ParentProject or $Project which will fail several times when triggered by a To Do task, the rule shuts down and notifies the organization Admins. However, this can affect your workflows and user experiences. This, of course, is not desired behavior.

 

What you need to do:

You will have to go through your customizations before migrating to Version 6.0 and ensure to complete the following steps for your customizations to continue to work seamlessly.

 

If you make your changes under version 5.4:

  1. Use the Isnull() function on each reference to: $Parent, $ParentProject, $Project and check in the Rule that the parent is actually defined. i.e.: “if( not isNull ($Project) ||  not isNull ($ParentProject) || not isNull ($Parent), [do something], [do something else])”

  2. Wrap your customization with the “ Catch” function:

Sample 1

i.e.: “catch($Project.ID,’’[do something if fail]’)”

Sample 2 

The 'Catch' function can be useful in case you have a large piece of code which you wish to leave 'as-is', and not edit it phrase by phrase.

i.e.: your original code is something like this:

$project.Name <> 'My Project' && $Parent.Manager= 'Bart Simpson' || $StartDate<Date(2014,01,05)

Instead of checking the isNull() function on both the $project and $parent, you can edit the code to be:

Catch($project.Name <> 'My Project' && $Parent.Manager= 'Bart Simpson', [do something if catch return error]) || $StartDate<Date(2014,01,05)

 

If you make your changes under Version 6.0:

  1. Same changes as 5.4 can be applied.
  2. Use the “$FloatingTask”  Boolean to make safety checks.

i.e.: “if($FloatingTask,[do somthing],[do something else])”

 

Notes:

  • Clarizen customizations support nested referencing, aka $Parent.Parent.Parent; up to five nested levels.
  • Ensure your customizations are safe including when using such a structure in your code.  

How to find these potential exceptions easily?

Clarizen recently released a new capability to search customization content from the Customization screen search box, making it simple to find the cases in which Project, Parent Project and/or Parent is used in your customizations, and prompts you to add a checkmark to verify that the field does in fact have a value prior to attempting to update or run any other actions on it. 

05.png

Clarizen Answered

Please sign in to leave a comment.

15 comments

0
Avatar

Hi Chip,

To convert a to do list into a task, you may show it in the grid of the tasks module, then hover with your mouse on the task name case.

The small edit button will appear, and you'll be able, among others, to select a parent for the task (a project, another task etc)

Jonathan Angel 0 votes
Comment actions Permalink
0
Avatar

Is there any way with a custom workflow to take a task that's under a project and convert it to a to do task?

Druckenmiller, Chris 0 votes
Comment actions Permalink
0
Avatar

I think that you can by setting the field "To Do List Item" to true.

Josh Santos 0 votes
Comment actions Permalink
0
Avatar

Josh,

I can find that field just fine if I edit the columns in a view but not when I'm trying to update that field with a workflow.  It almost looks like that field isn't accessible in customizations (see screenshot)

Druckenmiller, Chris 0 votes
Comment actions Permalink
0
Avatar

I'm attaching another screenshot of the list of columns to choose from in the Timesheets view for comparison.

Druckenmiller, Chris 0 votes
Comment actions Permalink
0
Avatar

I was going to ask what kind of workflow it was, but then I reread the thread.  Let my try this on my demo account.

Josh Santos 0 votes
Comment actions Permalink
0
Avatar

I'm trying to create it as a workflow rule for work item.

Very simply, I want to convert tasks under a specific project in our setup to to do lists with no parent project when their status is set to 'completed.'

I don't have any workflow saved or set up for this as I've been stumped on how to actually change the to do list item field to "true."  Simply changing the name of the parent project to blank or null, of course, throws a validation error.

Druckenmiller, Chris 0 votes
Comment actions Permalink
0
Avatar

It appears you are right, there is no to-do field accessible.  Let me get some feedback from our product team.

Josh Santos 0 votes
Comment actions Permalink
0
Avatar

You actually have to delete the link between the parent and the task, which is less intuitive than it sounds. Below is the action you have to run. Tested it and it works one one or multiple tasks.

 

custaction.png

Josh Santos 0 votes
Comment actions Permalink