What’s New in Design 5.4.9

What’s New in Design 5.4.9

Summary This article lists the new features of Design version 5.4
Applies to askiadesign
Written for  All
Keywords 5.4 ; design;

Table of content:

Query Web Service routing

We added a new routing Query a web service where the Web Service is called from the server and not from the browser – effectively hiding the call from the interviewee. The interface allows you to run different scripts depending on the success of the call and to manipulate and store the different parts of the response. We can manipulate XML or JSON response format directly using the askiascripts. If you want to know more about it, read the related blog post here.


Script Keywords

New Global keywords:

New HttpResponse Object properties and methods:

  • Headers- Returns a dictionary with all the headers of the response.
  • StatusCode- Returns the status code of the response as number.
  • Body- Returns the body of the response as string.

New MethodResult Object properties:

  • Success- Returns True when the operation succeed, otherwise it return False and chance is to have an ErrorMessage which indicates the reason of failure.
  • ErrorCode- Returns the code of failure. It's always DK when the Success is True, or when there is no error code provided by the API that throw the exception.
  • ErrorMessage- Returns the reason of failure. It's always empty when the Success is True, and most of time non-empty when it's False

New Variant basic type methods:

  • LoadJSON()- Use the JSON string in argument to initialize the value of the variant.
  • ToBoolean()- Converts whatever value is inside the variant to a boolean.
  • ToNumber()- Converts whatever value inside the variant to a number.
  • ToDate()- Converts whatever value inside the variant to a date.
  • ToString()- Converts whatever value inside the variant to a string.
  • ToArray()- Converts whatever value is inside the variant to an array of variants.
  • ToNumberArray()- Converts whatever value is inside the array to an array of numbers.
  • ToStringArray()- Converts whatever value is inside the array to an array of strings.
  • ToDictionary()- Converts whatever value is inside the variant to a dictionary.
  • InnerTypeOf()- Returns the type of the basic value hold by the Variant.

New Array Object methods:

  • LoadJSON()Use the JSON string in argument to initialize the value of the variant array.
  • RemoveDuplicates()- Remove the duplicates values of the array.

New Dictionary Object properties and methods:

  • Count- Returns the number of key/value pairs within the dictionary.
  • Keys- Returns the list of sorted keys within the dictionary.
  • Values- Returns the list of values within the dictionary.
  • ContainsKey()- Indicates if the key exist in the dictionary.
  • RemoveKey()- Remove the key/value pair associated with the specified key.
  • Set()- Add or update the dictionary with the specified key and value.
  • LoadXML()- Use the XML string in argument to set or reset all the dictionary keys.
  • LoadJSON()- Use the JSON string in argument to initialize the value of the dictionary.

Default ADCs

In the screen generation options, we have added the possibility to set the default ADCs to use for numeric, open ended and date questions


Open live survey

You can now open a live survey directly from design (File menu->Open live survey...) without the need of usage of supervisor in order to apply modifications to a survey present in the cca.


Note: To do this, you need to create a Module Design in the supervisor and allow the user to have multiple logins and in the restrictions of the user, allow the module Design.

Platform one choose community

Whenever you add P1 questions to the survey, the system checks if the survey has already got some questions defined and associated to P1.

If no question has been defined, the system lets you choose from a list of predefined communities.


These communities are stored in the file defined in the options under File path for storing P1 communities


Dynamic libraries

We have added some new functionalities to the dynamic libraries

Text substitution

Use ## as a delimitor anywhere in your survey (including routings or screens) to have a text substitution

##Keyword=value1;value2;..|Long message to display|option1;option2;option3|Short message to display##

This offers a text substitution - either an open edit or a combo box if you specify some possible values
- Option:
closed => means the combo-box has a fixed list

- Examples:

##ProductName|Please enter the name of the product you want to test##
##ProductType=beer;soda;wine;mineral water|Please enter the type of the product |closed|Type of product:##

Entering a list of responses

If you want to offer a list of responses, create a dummy response with the @@ delimiter

@@Keyword|Long message to display|option1;option2;option3|Short message to display@@

- Option: 
nologo=> means you should not enter a logo for the responses

- Example:

@@Brand|Enter the list of brands|nologo|List of brands:@@

Uploading a resource

The resource must exist and you must use ~~ as a delimiter in the name

~~ Long message to display|extension1;extension12;extenstion3|Short message to display~~

- Example:

~~ Please upload a logo for the brand|bmp;jpg;png|Logo:~~

Conditional selection of questions / responses / routings

You can decide if a question / response / routing is going to be incuded depending on the entered settings
You must use the && delimiter in the shortcut for the questions, in the caption of the response or in the commentary of a routing


The object will be kept if Setting1 has any of the values indicated and if Setting2 has any of the values indicated 
If the Setting starts by # (as in #Setting1), the number of items in that setting will be taken in account - this lets you do something n function of the number of brands entered
- Example:


Import a list of responses and corresponding entry codes from an external database. 

The database must exist and you must use @@ as a delimiter in the name. Put the code in a response caption of your template.

@@List_items|Wizard_description|||database|connection string|SQL query@@


@@brandlist|Insert list of brands|||database|Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Askia\Suite5490\BrandList.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES"|SELECT Brand,ID,Country FROM [Sheet1$] WHERE Country="##Country##" Order by Brand@@

Import a whole survey somewhere in a master template

The qex file must exist and you must use ~~ as a delimiter in the name. Put the code in a long caption of a chapter in your master template.

~~Survey file|qex|Survey:|path of the qex file~~


~~Survey file|qex|Survey:|C:\Askia\Suite5490\BrandTemplate.qex~~

Use ADO connection string with Fast finder (January 2019)

Up to now Fast finder only worked with a DSN (and ODBC database)
We have made sure you could now use ADO (so refer to any connection string including DSN)

Have more questions? Submit a request