Factory Output Overview

While processing a factory configuration script, Workbench creates intermediary files in the temp/factory-intermediate project folder. When the factory processing completes, it renames the temp/factory-intermediate folder to factory-output. If there is an existing factory-output folder, the contents are deleted and replaced with the output of the current run.

NOTE: Starting with version 7.1(13), intermediate build files are no longer copied into /factory-output. Instead, the files are saved in /temp/factory-build. This makes it easier to copy factory-output from site to site and easier to clean up temporary files.

On a Windows server where factory-output files are in use (locked), the factory process moves the contents of factory-output to another temporary folder (temp/factory-in-use). It then removes factory-output and renames temp/factory-intermediate to factory-output. When the factory process completes, the files in temp/factory-in-use, except any open files, are deleted.

If there is a failure, the build process copies the files in temp/factory-in-use back to the factory-output folder to restore the previous factory and reports the errors.

If the process experiences errors, the temp folder remains in place with the content that did process. You can then troubleshoot an incomplete factory run by examining the files that remain in the temp folder.

NOTES:

  • Do not store any additional files within the factory-output folder because the files are deleted by the next run of the factory configuration script.
  • Hourly builds should not impact daily builds as concerns cache entries. Measure Factory processing preserves timestamps for cBases whose contents have not changed. This means that if you rebuild the factory and no data has changed, all of the cache entries should still be valid. If some data does change, only cBases affected by that change have new timestamps, minimizing the number of cache entries that go stale. However, if there is any transfer of data from an hourly data set to a daily data set (either by a link rule or a plugin rule), then the new hourly data causes the timestamps to change on the daily data set.
  • The factory build generates current-date.txt and places it in the factory-output/__internal folder. The stored value is based on the default-current-date or current-date setting in the factory configuration script.

  • The factory-output directory is the primary data source for DivePort Measure Factory dashboards and other pages.
  • If you need to use the contents of the factory-output as input to another factory, use separate projects for the factories and use an alias to refer to the output in the other project rather than trying to relocate files.
  • After a Measure Factory build, you can safely remove all of the cBases in the /factory-output/__internal folder, but NOT the ones in the views/ or data-sets/ subfolders. You can also safely remove the plugin step folders. These are temporary intermediate files.

    NOTE: There is one downside to this type of cleanup. The --data-set option to spectre measures, used to do partial builds where only a subset of the data sets are rebuilt, is no longer faster than a full build. The --data-set option uses those intermediate files, and if they are not present, the process falls back to a full build.