What's New in AskiaDesign 7.0.0
Table of Contents
- New visual aid in the status bar when the file is modified and not saved
- Replacing an existing ADC or ADP
- New XML format of the library
- New option to remove unused translations
- New 'Ignore routings' when testing a specific question of a survey
- AskiaDesign now uses the entry code when working with data returned as a string or an array of strings
- New routing action 'Set ADX properties'
- New routing action 'Mark as completed'
- New AskiaScript properties on the Survey object
- New AskiaScript quota methods (.OpenQuota() and .OpenBalancedQuota()) on the Question object
- Accept categories as string for the AskiaScript quota methods of the question object
- Persistence of the quotas definition in AskiaDesign
- Added the Quota property and .ToString() method in the Interview object to return in JSON format the entire quota tree
- Added .Skip() and .SkipAndKeepData() methods on the questions collections type
- Open interview .dat files when testing a survey
- Added a new tab in the internet settings for v6 screens - screen generation for the default controls
- Rotation of questions on merged screens now works when using chapter rotation options or Change order routing using v6 screens
- Array of Responses supports the Tags property
- Added a new check box 'Live caption'
- Added a new file type for the ADX parameter
- Added the possibility to use CultureInfo for the SetLanguage() method
- Added new AskiaScript keywords
- Fraud Detection
- Changed the naming of the semi-open
- Added UserData for responses
- Added FilterByTag for responses object
- Added 'Publish to live survey'
- Added a new setting 'Allow multiple debug window'
- Added Instructions and Comments fields for questions
- New AskiaScript properties on the Question object
- Added Instructions and Comments fields in Translator
- Added 'Exclude from speed detection' calculation options on questions
- Added a 'Collected in field' option on questions
- Added new AskiaScript keyword QuotaTreeToDo()
- Create a survey to provide the wizard for interactive surveys
- Trim entry codes by default
- Added search for EntryCodes and UserData in the Find dialog
- Added 'Collected in field' and 'Exclude from speed detection' on right-click>Set questions in the treeview
- Added a new setting to freeze entrycodes automatically when saving the survey
New visual aid in the status bar when the file is modified and not saved
We have added a new visual aid in the Status Bar ('Modified') when a survey is modified but not saved. If the survey doesn't contain modifications then nothing is shown.
Replacing an existing ADC or ADP
When adding an ADC or ADP that is already in the survey, we have added a warning to replace the existing one or cancel. We also now indicate the version numbers of both files, so that we know whether the replacement is with an older version file or newer version file.
New XML format of the library
We have changed the format of our library. Before we used Microsoft access file (.bib). We now use XML.
Note: When you open AskiaDesign 32 bit, the system will transform automatically your old .bib library to the new XML format and create a folder BiblioLib. You will find the corresponding files inside this new folder.
To know where your library is located, open the Options menu in AskiaDesign (local and/or global library path):
New option to Remove unused translations
When we delete a language from a survey or use a survey library, all the languages are kept in the survey.
In order to reduce the file size, we have added a new option in Edit menu -> Remove unused translations.
New 'Ignore routings' when testing a specific question of a survey
We have added a new option in the 'Go To question' window to ignore your routings until the selected question (without running in the background the entire routing until that question).
AskiaDesign now uses the entry code when working with data returned as a string or an array of strings
When the return value of a 'Set value', 'Set value and hide', 'Change response order', 'Ignore responses' routing or the '.SetValue() AskiaScript' method when running an AskiaScript or Query web service is a number or an array of numbers then AskiaDesign uses the index of the responses.
If the return value is a string or an array of strings then AskiaDesign now uses the entrycode of the responses.
Note for variant, we apply the same rule so if the return value is a variant or an array of variant then we look the inner type of each values so if it's a number then AskiaDesign uses the index of the responses. If it's a string then AskiaDesign uses the entry code of the responses.
New routing action 'Set ADX properties'
We have added a new routing action 'Set ADX properties' to manage ADC/ADP properties from AskiaDesign Routing. For example you can send custom properties to an ADC for a specific question type through AskiaScript, and not (as is the current behaviour) by manually specifying the property for each question in the Screens Mode.
The corresponding AskiaScript methods:
CurrentADC.SetProperty(string_id_property,variant_value)
CurrentADP.SetProperty(string_id_property,variant_value)
Note: we can chain the SetProperty method.
Attention: it doesn’t work with parameter of type 'question'.
New routing action 'Mark as completed'
We have added a new routing action 'Mark as completed' which triggers a "completed" tag in survey, lists, quotas and statistics when a respondent has reached the question where the routing is set, but abandoned the interview before the end.
For instance, during a web interview where the respondent doesn't validate the few last questions.
New AskiaScript properties on the Survey object
We have added two new properties on the Survey object:
- DurationMedian - Returns the median duration of interviews in seconds.
- SpeedMedian - Returns the median speed of interviews. The speed is (the number of clicks + the number of OK keystrokes / 3) / Duration.
New AskiaScript quota methods (.OpenQuota() and .OpenBalancedQuota()) on the Question object
We have added two new quota methods on the Question object:
- OpenQuota - Returns the list of indexes of the responses of the TargetQuestion still open ( to do > 0), and sorted from the max to-do to the min to-do, using the count for the sort.
- OpenBalancedQuota - Returns the list of indexes of the responses of the TargetQuestion still open ( to do > 0), and sorted from the max to the min, using the following formula for the sort: (Target% - Observed%).
Difference between AvailableQuota() and OpenQuota():
Let’s imagine a simple quota tree like this – we want to know which Product we should test (A, B or C) . . .
|
|
|
Target |
Observed |
ToDo |
|
Total |
|
30 |
6 |
24 |
|
Product A |
|
8 |
6 |
2 |
|
|
Male |
6 |
6 |
0 |
|
|
Female |
2 |
0 |
2 |
|
Product B |
|
10 |
0 |
10 |
|
|
Male |
5 |
0 |
5 |
|
|
Female |
5 |
0 |
5 |
|
Product C |
|
12 |
0 |
12 |
|
|
Male |
6 |
0 |
6 |
|
|
Female |
6 |
0 |
6 |
For males, the 'To do' results are (0,5,6) and the result is {3;2}, for females, the results are (2,5,6) and the result is {3;2;1}. And if the gender is known, Product.AvailableQuota() or Product.OpenQuota() will give you the right response.
And if the gender is not yet known, AskiaScript lets you explore a hypothesis:
You can call Product.AvailableQuota(Gender:1) (returning {3;2}) or Product.AvailableQuota(Gender:2) (returning {3;2;1}). You can also call Product.OpenQuota(Gender:1) (returning {3;2}) or Product.OpenQuota(Gender:2) (returning {3;2;1}).
So if the gender is not known, Product.AvailableQuota() will look into Product A, will realise that one more male respondent would make you go over quota and will therefore declare that it cannot take the risk to leave Product A open. And the result will be {3;2}.
And Product.OpenQuota() will look into Product A, will realise that the female quota is still open and the result will be {3;2;1}.
Accept categories as string for the AskiaScript quota methods of the question object
We added the possibility to define the category as string for all the quota methods of the question object:
- OpenQuota()
- OpenBalancedQuota()
- AvailableQuota()
- AvailableBalancedQuota()
- QuotaList()
- BalancedQuotaList()
In that case, use the single quote for 'string' and 'array of string' inside the category string instead of the double quote.
TargetQuestion.Method(shortcut2:3,shortcut1:"5")
and using the category as string:
TargetQuestion.Method("shortcut2:3,shortcut1:'5'") Persistence of the quotas definition in AskiaDesign
The definition of quotas in AskiaDesign is now saved in the QEX file even if you close and reopen AskiaDesign.
We have also added the option to use 'Single target' or 'Min / max target' in the right-click on the quota window:
Added the Quota property and .ToString() method in the Interview object to return in JSON format the entire quota tree
We have added the Quota property to the Interview object and .ToString() in order to return in JSON format the entire quota tree definition.
With a definition like this:
The Interview.Quota.ToString() will return a JSON like this:
And if you want to retrieve the value of the QuestionShortcut for instance you can use this syntax:
So, now the entire definition of the quotas tree is accessible through AskiaScript.
Added .Skip() and .SkipAndKeepData() methods on the questions collections type
We have added two new methods .Skip() and .SkipAndKeepData() on the questions collections.
Example:
Open interview .dat files when testing a survey
In the IE test mode dialog (the classic HTML test screens), we had an open icon to open XML interview files.
You can now select an interview file (.dat) and the system will attempt to import it.
Added a new tab in the Internet settings for v6 screens - screen generation for the default controls
We have added a new tab in the Internet settings for the survey using v6 screens named Screen generation. You can specify/select which ADC to use for each type of question and customise their parameters.
Note: for the controls when in a loop (second column), it's used for the question inside the loop when only one question is in the loop. If two or more questions are present in the loop, the 'not in loop' column is used, assuming you would like one iteration at a time.
These new settings are also saved in your library so that you can create templates with already pre-defined ADCs selected here.
Rotation of questions on merged screens now works when using chapter rotation options or Change order routing using v6 screens
If you use v6 screens for your surveys, the rotations options present on the chapter or the routing Change order (for the questions) now work on merged screens.
The collection of responses now support the Tags property.
So you can write something like this:
Brands.Answers.Tags Has {"Luxury"}
The Tags property is only available for the response object but not the collection of responses.
Added a new check box 'Live caption'
We added a new check box 'Live caption' on the caption element of the chapter and questions/loops for v6 screens.
This provides full support for the live captions in v6 screens. The HTML generation has been updated to contain the Askia-livecaption class and the DoLiveRouting recognising the captions that can be updated.
Added a new file type for the ADX parameter
We have added a new file type parameter for ADCs and ADPs. In AskiaDesign, it will list all the resources available.
Added the possibility to use CultureInfo for the SetLanguage() method
We added the possibility to use CultureInfo for the SetLanguage() method so for instance:
Interview.SetLanguage("es-ES")for Spanish - Spain
Added new AskiaScript keywords
Question object:
- .ImportClosed
- .ImportInvisibleWhenImported
- .ImportType
- .IsFirstIteration
- .IsUpperCase
- .LinkSourceQuestion
- .LinkTopLevel
- .LinkType
- .RotationSeed
- .RotationType
- .Scenarios
- .Visibility
Response object:
Language object:
Interview object:
Survey object:
Unary function:
Fraud Detection
The new survey objects above .Speeder & .Straightliner are part of a full initiative by Askia to help clients combat the growing prevalence of survey fraud. This initiative is summarised in detail in a dedicated article: Fraud Detection.
Changed the naming of the semi-open
We have changed the naming of the semi-open question to Shortcut_EntryCode instead of Shortcut_ResponseCaption when an entry code is defined
Added UserData for responses
We have added a new column UserData for the responses and also the possibility to Paste only in the UserData column.
Added FilterByTag for responses object
We have added a new method .FilterByTag() for the responses object in AskiaScript.
Added 'Publish to live survey'
We have added a new button in the quota view, "Publish to live survey", so we can send the updated quotas structure to the CCA.
Added a new setting 'Allow multiple debug window'
We have added a new setting 'Allow multiple debug window'.
When set to No (default), the routings inside a loop in debug will be shown only once at the end of the last iteration.
When set to Yes, the routings inside a loop in debug will be shown for each iteration at the end of the last iteration.
Instructions and Comments fields
On question (GUI)
We have added two new fields - both Instructions and Comments fields are available on questions:
We have also added two new options/check boxes in the Internet Settings, to control the visibility of the Instructions and Comments on the page, globally for the survey:
We have also made sure that AskiaScript cannot override the settings - i.e. to show or hide the instructions or the comments.
For that we added .ShowInstructions and .ShowComments properties on the Interview object.
In order to do that you can use the following commands when running an AskiaScript routing:
Interview.ShowInstructions = (ShowCI Has 1)
Interview.ShowComments = (ShowCI Has 2)On question object (AskiaScript)
We have added two new properties on the Question object:
- Comments - Returns the comments of the question.
-
Instructions - Returns the instructions of the question.
In translator
We have added two new rows for each question, Instructions and Comments on the data grid of Translator:
We have also added two new options in the export string - Exclude instructions and Exclude comments:
Added an 'Exclude from speed detection' option on questions
We added a new option 'Exclude from speed detection' on each variable:
Added a 'Collected in field' option on questions
We have added a new option "Collected in field" on each question. We sometimes need to add data to the survey after field. This data could be very big and would hamper collection. So it’s useful to indicate that a number of questions are collected outside of WebProd. All sub-questions are also considered as stored outside.
Added new AskiaScript keyword QuotaTreeToDo()
We have added a new AskiaScript keyword QuotaTreeToDo(). Sometimes you might want to query a response in the quota tree. Rather than using the algorithm which will find the matching responses and pick the max, you might want to pinpoint the exact value in the tree.
QuotaTreeToDo(“question1:response1;question2:response2”)
- If the hierarchy of questions and responses does not exist, the return value is DK.
- If you do not specify the response QuotaTreeToDo(“question1”), the current response for that question is used.
- If you do not specify the response QuotaTreeToDo(“question3”), and there is no current response for that question, then it returns DK.
- For multiple closed question, you should always target a specific row.
- This also works with numeric questions.
- For numeric questions we don’t target the range, but the value, so if a range is between 1 (included) and 10 (not included) we can write QuotaTreeToDo(“question:1“) or QuotaTreeToDo(“question:1.55“) or QuotaTreeToDo(“question:9.99“) to retrieve the number to do for that range.
- For single or multiple closed questions, we use the index value for the response and not the entrycodes in the string of the QuotaTreeToDo().
Create a survey to provide the wizard for interactive surveys
Interactive surveys are one of the most powerful features of Askia, but it’s not easy to show the power of them because we do not have a web-based way of entering the responses.
This means demonstrating interactive surveys (usually by copy and pasting a portion of a survey in Design desktop) is a slightly underwhelming experience.
So we have added a way that you could customise the way you define a wizard by making it an Askia survey.
- Open an interactive survey (one which has definitions for {{text}} or [[Responses]]) and click “Create wizard survey”.
- You can then edit the survey, merge questions on the same screen, add validation messages with routings.
- The survey will now appear in your resources.
You can re-edit it by right clicking open.
- If your survey had a wizard, you can now run that wizard from the command line:
Design.exe "C:\MyTemplates\ProductTestWizard.qex" /runwizard /saveas:"C:\Qes\NewSurvey.qex"
If the survey does not have a wizard, a default one is created. If the wizard has no activity for two minutes, AskiaDesign offers to abandon the process.
Once you have filled all the questions of the wizard, a new survey (in our case called NewSurvey.qex) is created and the system informs you that you can close your browser.
Trim entry codes by default
We now can trim the entrycodes by default in AskiaDesign. We trim them when we paste entry codes. We perform verification when saving a survey so that there is no space before or after any entry codes. During this verification, we put the focus on the question and response that contains the space.
Added search for EntryCodes and UserData in the Find dialog
We have added search for EntryCodes and UserData in the Find dialog.
Added 'Collected in field' and 'Exclude from speed detection' on right-click>Set questions in the treeview
We have added a new functionality in the right click in the tree view with two new options that can be added to several questions.
Added a new setting to freeze entrycodes automatically when saving the survey
We have added a new setting in AskiaDesign to freeze the entrycodes automatically when saving the survey:
Full details of the Change Logs can be found in this section of the Askia Helpdesk.