Designer uses a stream-based workflow for developing applications. In this type of model, an application consists of multiple work streams, each of which represents a different stage in the life cycle of the application (such as the development or quality assurance stage).
At various times, you can "freeze" the current state of the application code as a build, which you can then assign to the appropriate stream. The builds are promoted through the various streams until a build is approved for use in the live production environment.
One of the primary benefits to this type of workflow is that each stream runs a build of the application that is completely independent of the others. For example, the development team can be working on a build without impacting the build being tested by the quality assurance team or the build that is actively running in production.
This page provides more details about builds and streams. You can also watch this video to see an example of a workflow in action:
You can view and manage the streams of an application from the application properties:
There are four application streams:
- DEV (Development) — This stream is the only one that can run the latest published version of the application code. As such, it is also the only stream impacted by Designer upgrades.
- QA (Quality Assurance) — This stream is for builds that require quality assurance testing.
- UAT (User Acceptance Testing) — This stream is for builds that require beta-testing or some other variation of user-based trials.
- LIVE — This stream is for builds that are actively running in the production environment.
All streams are enabled by default. You can use the Status sliders to enable or disable them, as needed.
When you want to "freeze" a version of your application code, you can create a build. A build is basically a self-contained package of the application code. It has all of the resources it needs to run, so you can assign a build to a stream without worrying about impacts to the original resources or to the other builds.
You can create a build by clicking Build when the application is open in editing mode. Designer automatically increases the version number of the build, but you can add your own label and note:
You can manage the builds for an application by clicking Manage Builds from the application properties.
- Once generated, a build cannot be changed. If you want to make changes, you must generate a new build. You can also choose to perform a rollback by selecting a previous build.
- There is a limit of 20 builds for each application. Therefore, it's recommended that you generate a build only when required. If you exceed 20 builds, the Build button becomes disabled. You can re-enable the button by deleting builds that are no longer needed.
Parallel Test Environment (PTE)
The Parallel Test Environment is an option you can enable on the Misc tab in the application settings. When enabled, you can create copies of certain resources and add a special test_ prefix to the resource name.
Streams that are running non-production builds (DEV, QA, and UAT) will reference the PTE versions of the resources ("test_<resource name="">") instead of the ones being used in production. The LIVE build continues to reference the original production resources.
PTE is supported for Business Controls resources (Business Hours, Emergency Flags, Special Days, and Data Tables) and certain configuration resources (Virtual Queues, Agent Groups, and Skills).
Using PTE and production resources in the same application
You can also mix and match PTE resources with production resources.
For example, if you wanted to use different business controls resources in the non-production streams, enable the PTE option and then specify the business control resource by name rather than a variable, as shown in this Data Table block:
In this case, the DEV, QA, and UAT streams will automatically select test_Joules Coulomb Data Table and the LIVE stream will use the original Joules Coulomb Data Table.
If you wanted all streams to use the same business controls resource, you can specify the business controls resource using a variable containing the resource ID: