
Problem
Appway 6 is a major release and brings several important architectural changes. When upgrading, how do I prevent backwards compatibility issues in my solution? How do I make sure that an app developed with a previous version of Appway works correctly?

Solution

For more details, see the comprehensive upgrade guide "System Upgrade: 5.3.x to 6.x".
Process instance locking
In Appway 6, functions to get a process instance acquire a distributed "write" lock. New read-only alternatives are available. To search for occurrences of the functions mentioned below, go to Administration > System > Global Search.
- Avoid unnecessary locks. Replace the functions below with their read-only equivalent if the process instance does not need to be modified.
- Replace ".getWorkflowInstance()" with ".getWorkflowInstanceRO()"
- Replace ".getWorkflowInstanceByTokenId()" with ".getWorkflowInstanceByTokenIdRO()"
- Replace ".getWorkflowInstances()" with ".getWorkflowInstancesRO()" - Verify that write locks are released on process instances when no longer needed, especially for loops over many process instances.
- ".getWorkflowInstances()"
- ".getWorkflowInstancesRO()"
- ".getWorkflowInstanceIds()"
- ".getLocalWorkflowInstanceIds()"
- ".getLocalWorkflowInstanceIds()"
- ".getLockedWorkflowInstanceIds()" - Verify that calls to "com.nm.cluster.utils.ClusterUtils.commit()" always have a String argument to avoid releasing all write locks.
For more information, see "3.2 Process Instance Locking" in the System Upgrade documentation.
Deprecated code
- Go to Administration > Repository > Validation and run a validation for all object types.
- Filter the results for error types containing "Deprecated".
- Filter the results for error messages containing "Deprecated". Deprecation warnings related to the Workflow Instance Service are particularly critical (METHODCALL: Deprecated method "com.nm.sdk.services.WorkflowInstanceService").
- Go to Administration > System > Global Search, and search for "UseValuestore()". The "UseValueStore" function is deprecated: replace it with "UseValuestoreRO" for read-only uses, or rely on Workflow Messages instead if the Value Store needs to be modified.
- For information on how to replace deprecated functions, see "3.1 Deprecated Functions" in the System Upgrade documentation.
Deprecated Screen components
Components deprecated from Appway 6.0 are still functional in the 6 release branch, but will be removed from future Appway versions. To find out whether your app relies on deprecated Screen components:
- Go to Administration > Repository > Validation and run a validation for all Screens
- Filter the results for error types containing "Deprecated"
- For information on how to replace deprecated components, see "4.1 Deprecated Screen Components" in in the System Upgrade documentation.

Comments (0)