User guide
Quick Start Guide
Dashboard
Overviews
Case detail (Caseoverview)
Case - event
Tasks
Case notes
Documents
User settings
Favorites
Table component
FAQ
News/Announcements in Team assistant
Mobile app settings
Administrator Guide
Platform guide
Administration
Crons
Authentication and Synchronization
Mobile App Setup for Your Environment
Scheme
Dynamic tables
Archiving
Scripts
Service console
Scheduled Tasks
HR Agenda
Sequences
CSP Headers
Logs
Access Token Settings & Session Expiration
Template
Roles
Planning
Users
Organizational structure
Events
Translations
NFC Integration
AXIOS API
Calculations & Functions
Integrations
TAS Forms
TAS Forms
Activating the module on the environment
TAS Forms - secret creation guide for Docker Swarm
Advanced Features & Tips
Product
Technical Changelog
Business Changelog
Version Upgrade Guide
Upgrading to 5.7
Lodash upgrade v4.17.x (>v5.5)
Main changes and deprecated features (v5.3 > v5.7)
Highlighting variables in Read-only status (>v5.7.58)
Using validation functions
Upgrading to 5.3
Dynamic conditions migration
PDF printing adjustment
Editing Task Description vs Task Instructions
Transpiling forEach to a for loop
Rendering HTML on Caseoverview
Differences between TAS4 and TAS5 - a complete overview
Best Practices for Upgrading from v4 to v5
Technical details
News / Important information
Getting Started
- All Categories /
- Product
- Version Upgrade Guide
- Upgrading to 5.3 /
- Dynamic conditions migration
Dynamic conditions migration
Dynamic conditions migration when upgrading to TAS 5.3
In TAS 5.3, dynamic conditions were changed mainly for better performance, but also for better maintenance in the future and for security reasons.
Adjusting dynamic conditions
Essentially, you just need to add const currentTask = getCurrentTask(); to the beginning of the dynamic conditions, and then use ctr+f to search for "this" and then "self" and replace according to the following points.
- Remove var self = this;
There is no need to use it, as self is no longer referenced anywhere. - currentTask needs to be redefined at the beginning of the task as:
//Na začátek podmínek přidat
const currentTask = getCurrentTask();
- Within this.references, I can either use the new getReferences() function or use references within currentTask.
//Starý zápis
this.references
//Nový zápis
const references = getReferences();
//Nebo
currentTask.references
Likewise, for self.references I will use currentTask:
//Starý zápis
self.references['additionalInfo'].setValue("");
//Nový zápis
currentTask.references['additionalInfo'].setValue("");
- Within this.language, I can either use the new getLanguage() function or use references within currentTask.
//Starý zápis
this.language
//nebo
self.language
//Nový zápis
const language = getLanguage();
//Nebo
currentTask.language
- Within this.state.items I can use either:
//Starý zápis
this.state.items
//Nový zápis
currentTask.items
//Nebo
currentTask.state.items
- Removing this. from the getDynTable() function
//Varianta 1
//Starý zápis//
this.getDynTable(39, 1)
//Nový zápis - odstranění this//
getDynTable(39, 1)
//Varianta 2
//Starý zápis//
this.dynTable[39]
//Nový zápis - odstranění this//
dynTable[39]
Alternatively, if I have self.dyntable :
//Starý zápis//
self.dynTable[_nazevDynTable1]
//Nový zápis - odstranění self//
dynTable[_nazevDynTable1]
- Replacing this.props.parent.state with currentTask
//Starý zápis
create_pdf_preview(true, this.props.parent.state.iprocId);
//Nový zápis
create_pdf_preview(true, currentTask.iprocId);
- Changing ivar_lov using varDefOn
//Starý zápis
const lovsVar = _.find(this.state.items, 'tvar_name', 'lovs');
//Nový zápis - Nově je potřeba brát z immutableItems
const lovsVar = _.find(currentTask.immutableItems, 'tvar_name', 'lovs');
- Replacing self. when using items
//Starý zápis
self['items']
//Nový zápis
currentTask['items']
- For dynamic rows, you need to modify the call like this
//Starý zápis
this.currentTask.taskInfo.headerCode
//Nový zápis
this.currentTask.state.taskInfo.headerCode
- Getting an array of names of selected values in a dynamic multichoice table variable
//Starý zápis
const multiDTTitles = self.references['multiDT'].state.rightValues;
//Nový zápis
const multiDTArray = currentTask.references['multiDT'].getValueObjArray();
const multiDTTitles = multiDTArray.map(multiDTArray => multiDTArray.title);
Shortened version of migration
A shortened version without explanation suitable for easy copying is here:
this.getDynTable(39, 1) -> getDynTable(39, 1)
this.dynTable[39] -> dynTable[39]
self.dynTable[_nazevDynTable1] -> dynTable[_nazevDynTable1]
currentTask -> const currentTask = getCurrentTask();
this.references -> getReferences() nebo currentTask.references
this.language -> getLanguage() nebo currentTask.language
this.state.items -> currentTask.items nebo currentTask.state.items
self['items'] -> currentTask['items']
self.references['additionalInfo'].setValue("") -> currentTask.references['additionalInfo'].setValue("")
create_pdf_preview(true, this.props.parent.state.iprocId) -> create_pdf_preview(true, currentTask.iprocId)
this.props.parent.state.iprocId -> currentTask.iprocId
//Změna ivar_lov pomocí varDefOn
//Původně
const lovsVar = _.find(this.state.items, 'tvar_name', 'lovs');
const lovsClone = _.clone(lovsVar, true);
const filtered = _.filter(lovsClone.ivar_lov …
//Nově je potřeba brát z immutableItems
const lovsVar = _.find(currentTask.state.items, 'tvar_name', 'lovs');
const filtered = _.filter(lovsVar.ivar_lov …
function getCurrentTask();
All values that can be obtained in dynamic conditions using getCurrentTask()
getCurrentTask
return {
id,
iprocId,
language,
refs,
references,
items,
processVars,
immutableItems,
taskHeading,
taskHeadingTranslated,
state: {
buttonsStatus,
taskInfo,
items,
processVars,
immutableItems,
},
};