Ultra-fast build option

A new option called Cursory (ultra-fast) is added to speed up the build process for large PowerServer projects. This option can regenerate and redeploy only objects that have changed. Unlike Incremental, this option will not generate objects that have inheritances or references with the changed object. Therefore, this option should be used 1) after the project has been full built, 2) only independent objects have been changed or the change has no impact on the other objects.

How Cursory (ultra-fast) option works

For the Cursory (ultra-fast) build option to take effect, you will need to enable the option "At every save, create temp files required for cursory (ultra-fast) rebuild" (it is not selected by default) in the Application Properties | PowerServer tab. After you enable the option, please perform a Build & Deploy on the PowerServer project using the Full build option before using Cursory (ultra-fast).

After the user selects the option "At every save, create temp files required for cursory (ultra-fast) rebuild", the IDE will generate two types of temporary files whenever the object is added/imported/copied/changed and then saved in the IDE:

  1. runtime files of the current saved object(s), which are stored in the "[pbtname]_pbobjects" folder under the current application target;

  2. handles of the ESQLs in the current saved object(s), which are stored in the user's temporary directory.

And then during the build and deployment process of Cursory (ultra-fast), the IDE will perform the following actions:

  1. Directly upload the runtime files from the "[pbtname]_pbobjects" folder and the index file of the object PBD to the corresponding directory in the client app;

  2. Generate models from the DataWindows in the "[pbtname]_pbobjects" folder and upload them to PoweServer Web APIs;

  3. Upload the handles of the ESQLs from the user's temporary directory to PowerServer Web APIs.

IMPORTANT: The "[pbtname]_pbobjects" folder and the associated temporary files are used specifically for the purpose of Cursory (ultra-fast) rebuild in the current project, and they will be removed immediately after the rebuild process is completed for the current project. That is to say the temporary files are not retained or used for subsequent rebuilds or for other PowerServer projects.

What to do if a global change is needed

Now that we understand the cursory rebuild is specific to only the changes in the current object. If there are changes that should be applied globally (such as global variables or global external functions), and if they are modified and saved in a non-application object, then only the current object will be updated during a cursory rebuild (the application object will not be updated). This means the application object will not reflect the changes. As a result, when running the application, an exception may occur due to missing definitions. To work around this issue, when adding or modifying global variables or global external functions, it is recommended to perform an incremental or full build (to update all objects, including the application object, with the necessary changes). Alternatively, you can open the application object, make a small change (e.g., adding a comment), and save it (this will create temporary files of the application object and the cursory rebuild will be able to update the application object with the necessary changes).

What Cursory (ultra-fast) option does not support

Cursory (ultra-fast) does not support 1) deploying to External > IIS or Folder (Incremental or Full build will be used automatically), 2) new PBD files, 3) object moving and removing, 4) directory changes, 5) object(s) obtained from source control. If the object is obtained from the source control server, the object will not be exported and stored in the "[pbtname]_pbobjects" folder.