Creating Sub Tasks in the App Designer

A Sub Task is a collection of fields that are added onto a Task design. The Task Design itself is then added as an entry in the Data Dictionary. Sub Tasks can be used repeatedly, helping you to create a more streamlined set of business processes.

What is this article about?

We will look a little more closely at Sub Tasks.  How they are put together, using the App Designer.   If you don't already know 'how it works' go back and check that article out and then come back here.

What you will need.

You will need...

  • App Designer installed on your PC
  • Your account 'on boarded'  in the platform (check with your system administrators)
  • At least the  'Designers' role.  If you are going to deploy configuration, then you will also need the 'Publishers' role.

Sub Tasks and Inline Sub Tasks

These are the two variants of Sub Tasks.  They are constructed in the same way, but have different uses and are displayed in the Client App differently.  Typical format is the standard Sub Task, great for collecting repeated information such as solving 1-to-many relationships, either:

  • Tyres on a car when reporting vehicle defects on a PoliceBox report, or
  • Health & Safety Task in Quvo where entries for a risk assessment are being collected.  

An Inline Sub Task, is where the Client App displays the fields as part of the main Task design.  The app will substitute the single (inline Sub Task) field with the individual fields and logic from the inline Sub Task. 

Use Sub Tasks to collect precursor information.

It is possible to make the Sub Task available to use as a Task in its "own right" (accessible from the New '+' button).  The scenario here, if you are going into a property to complete a report, perhaps as a social worker, or a police witness statement taker, you can obtain the address of the property once and copy & paste the information into the relevant Task(s) for each person, thereby reducing the typing needed.  

The Form Type (Task level) property has the following values in this regard:

Normal Allow the Task design to be available for use in its "own right"
SubForm Only ever use the Task design as a Sub Task.

If you want to use the Task in its "own right", you will need to assign the Task to one or more User Groups.

Designing Sub Tasks or Inline Sub Tasks

Whether a Sub Task or an Inline Sub Task, the design process is the same. 

  • Design the Sub Task as you would any for Task. 
  • Add the fields onto the design canvas & apply any conditional logic. Don't forget to put the fields into sections.
  • Complete the necessary Task level properties.   

The next step is to add the Sub Task to the Data Dictionary.   Make sure that your work in the App Designer has been 'saved' before moving to the Data Dictionary.

  • Open up the Data Dictionary, and click on the "Add New Data Dictionary Item" icon
  • Provide a name for the Data Dictionary Item
  • Select the relevant field type.  It will either be 'Sub Form' or 'Inline Sub Form', depending on your need.
Sub Task Inline Sub Task
  • Set the properties for the Data Dictionary Item.   The prompt and help text can help direct the User in the correct manner.
  • Choose the Sub Task to add to the Data Dictionary, selecting it from the drop-down list. 

  • It is now possible to use the Sub Task on any other main Task design.  Be sure to save your work in the App Designer before attempting to use the Sub Task. 

In this image, we wish to collect up to 10 addresses, perhaps relating to the home addresses for students sharing accommodation at university.     For this scenario, the Sub Task (rather than an Inline Sub Task) is used, with the 'repeating max' value set to 10.

Sub Task Naming Convention

In the above image, you will see we have prefixed the term 'SFRM' to the front to denote that it is a Sub Task.  You could follow this approach as well if you wish. 

If you wanted to use the Task in its "own right" (as per the earlier example of collecting precursor information), then you might want such Tasks named in a more User-friendly way. 

Whatever naming approach you take,  it'll be important that your publish configuration, from the App Designer to the Client App, which causes minimal or zero training overhead.  

How an Inline Sub Task works

An Inline Sub Task allows you to create smaller Task designs and incorporate them in your main task designs as if the individual fields were present on the main task design.  An Inline Sub Task is represented by one field on the main task where it is being used, but in reality (in the Client App) that single field is substituted with all the fields and logic of the Inline Sub Task.   The benefits are:

  • Allows a simpler approach to Task design (less fields on main Task canvas)
  • Better consistency between Task designs (corporate approach)
  • Enables component based (jigsaw pieces) Task design,

Where component based design is being used as a benefit,  each component could represent a specific entity such as Person, Object, Location, or Event.  Some components could be more complex than others. For example, a home owner's address might have less data collection needs (fields) than the address of an offender that is under curfew and must be monitored.


An Inline Sub Task on the main Task canvas

This image shows the Inline Sub Task, designed as SFRMAddress and added to the Data Dictionary as an Inline SubForm with the name 'ISFRMAddress'.  When it is used in a main Task design, it simply looks like one field.

When the Client App renders the Task to the user, this single field is substituted (in the Client App, at runtime) with the fields from the Inline Sub Task.   It saves the following on the main Task design:

Without inline Sub Task capability, staff involved in designing Tasks would need to take special care to ensure that the fields added to their designs for each entity (e.g. Address) were consistent.   The inline Sub Task capability reduces Task design effort and helps to maintain design consistency.

Repeating Sub Tasks - Copy & Paste behaviour

Remember that the Client App has the really cool Copy & Paste feature, which helps Users collect information more quickly, one of the tactics that can be used to reduce re-keying and improve data quality.

The Copy & Paste feature works when copying data between Tasks, that comprise the same Sub Tasks, even where the Sub Tasks have been collected on a repeating basis.   But how does Copy & Paste work in this regard?  Well, data can be overwritten or appended on a cumulative basis, depending on the setting in the App Designer.  Here is an example of why data might need to be appended.

Example - Crime Scene Guard

In a Policing scenario, a crime takes place at a 'scene', which needs to be protected at least until an investigation has taken place and any evidence gathered.   Because of this the scene of a crime may need to be guarded by a police officer.  A "Scene Guard Log" process must be followed, which is typically 'owned' by a supervisor (e.g. a Sergeant), but is contributed by each police officer allocated as "guard" at each shift pattern.  The Sergeant is responsible for checking and completing the Scene Guard Log when it has served its purpose.

  • The Sergeant can issue the primary Scene Guard Log as a Task (point to point Tasking) to the officer who can use it to copy and paste the relevant information and begin their own period as guard. 
  • Each time a person arrives, the guard is expected to ensure that only approved persons enter or leave the scene.   The guard will log each arrival and departure  in the "Scene Guard Log" by the officer standing guard and other information such as whether the person was permitted to enter or sent away.  The coming & coing of approved persons creates a series of repeating Sub Tasks within the log.  
  • When guard has completed their period, they can simply issue the Task back to the Sergeant who will then import the data, using the copy and paste feature, into the primary Scene Guard Log.  This set of repeating Sub Tasks are added to the end of the primary Scene Guard Log, so the primary log is built on a cumulative basis.
  • The sergeant complets the Task and submits it into the system for processing.

 

The Copy & Paste feature in this use case can be combined with the 'lock on repeat' feature and the copy action feature.   Therefore care needs to be taken to ensure that data isn't unnecessarily overwritten.  The table explains how the copy & paste behaviour works.

Where you design Tasks of this nature, you will need to take this copy and paste logic into account to ensure that Users get the desired outcome. 

Sub Tasks - Document Templates

Generally, whenever you want a completed Task to deliver its output as an email attachment, perhaps looking like the original paper-based proforma, it is necessary to do this using Microsoft Word.  This involves designing the word document and adding the field place holders using the drag & drop feature from the Exportable Items tab on the Task design screen into the word document.  The word document is then uploaded to the system via the App Designer, before the word document (filename) is referenced in the Export connector tab.

But how do we get data collected from a Sub Task into a word document template?    Simply put, we create a separate word document for the data that will be collected in the Sub Task and upload it separately via the App Designer.  This will cause the export connector to create a 'fragment' of content which is then injected into the main document.  

The image shows part of a main document template which has been put together to illustrate a risk assessment.  The main document template is named "Home Fire Risk Assessment.docx", it has been uploaded to the system via the App Designer and the template's file name has been referenced in the export connector

However, the document template used to create the fragment needs to be given the same name as the Sub Task's name.   So, if the Sub Task was named "SFRMMoRItem" (for management of risk item), as shown in the this image:

 

Then the file name must be "SFRMMoRItem.docx" as shown in the next image, which is a screen shot of the template document manager in the App Designer (accessible from the File menu):

The 'Sub form' placeholder is then used in the main document template, which can be taken from the exportable items tab in the Task Design screen as shown here.    Simply drag and drop it into the main document template.  

Note that in our example (image) there are several instances of this Sub Task in the exportable items tab.  There will be one for each of the possible instances of the Sub Task which is set in the 'repeating max' (field level) property for the Sub Task's field on the Task design canvas.

If you set 'repeating max' to 30, then there will be 30 placeholders to add to the main document template.  Don't worry about the export connector leaving unnused placeholders in your completed word/pdf document.  It is the job of the export connector to intelligently remove all placeholders that are not used, which is a feature of the 'conditional logic' part of the platform's capabilities.     So, if there are 30 placeholders in your risk assessment document template, but the user only enters five risks into their app, the remaining 25 placeholders will be removed.

The document template for the Sub Task just simply needs to hold the content and style (as well as the field placeholders from the Sub Task) in a way that is styled to the destination (main) document template.   In our risk assessment example, we are adding rows to a table, each row being an entry on the risk register. 

In our images, we have the editor symbols enabled in Microsoft Word.  This is to explain that empty paragraphs will be removed by the export connector, when the empty field placeholders are removed as part of the tidy up process before the email attachment is transmitted.   By removing paragraph markers it ensures that rows of tables are joined together and not separated.    If you DO want separation place a space character before the paragraph marker.

The end result...    Here's one we did earlier, just a simple example with a single risk entry.  The table style applied in our example ensures the top two rows act as row-headers in microsoft word, so that if we hit a page break, there is reasonable formatting. 

Using Microsoft word in this way, to export documentation, provides lots of opportunity for styling the content that is emailed in attachments.   The export connector can email attachments from the word template, in PDF (Adobe Acrobat) format for you as well, this is set in the export connector.

Inline Sub Tasks - Document Templates

As we have already mentioned, inline Sub Tasks work by subtituting the single field for each individual field held in the Sub Task, on the main Task canvas, when the Task is used in the Client App.

Taking a very simple main Task design like the one in this image, we are going to collect a person's name, followed by an address.  We have already created the Inline Sub Task (named ISFRMAddress) from the SFRMAddress Task design.  The Inline Sub Task has been brought onto the main Task canvas.

The output we desire in the email attachment may be similar to this image:

As the Inline Sub Task works on the basis of field substitution, we need to remember this when building the document template in Microsoft Word:

  • Fields present in the main Task design are incorporated from its exportable items tab
  • Fields which are substituted from the Inline Sub Task are incorporated from the exportable items tab, of the Sub Task's screen.

Here is the document template in Microsoft Word. 

The fields from the first table are the forename and surname fields, which are present in the main Task design, so we can drag & drop them from the exportable items tab from the main Task.

The fields from the second table, the address, belong to the Sub Task, these are placed into the document template using drag & drop from the exportable items tab in the Sub Task's design screen.

This concludes our article on Sub Tasks and Inline Sub Tasks.  We're sure you'll agree that their capabilities are powerful and will help you create business processes that are not only easy to use by your frontline workers, but easy to maintain in the App Designer.

 

Return to App Designer Familiarisation