Whats new in FinalBuilder 4


Parallel Actions

FinalBuilder 4 now allows you to run multiple actions simultaneously to reduce your overall build time.  By using the "Async Action Group" action all the immediate child actions will start running at the same time, and when the last child action completes then the build will continue onto the next action (implicit sync point).  The build time can be significantly reduced if actions which are IO bound are run in parallel with actions that are CPU bound.  If your build machine has more than one CPU or a Dual Core CPU, then FinalBuilder 4 can take advantage of the extra processors to dramatically decrease the build time.

Build Summary Screen

The build summary screen displays an overview of the build process while the build is running.  It displays statistics on how many actions have executed, details for the currently running action list, details for currently running actions, a list of recent actions, and an overall progress of the running build process.  This view is very useful after you have designed and debugged your build process - it provides an at-a-glance view of the progress and result of the build.  By default this view will display when a build starts, but the display options can be customised.

Logging to a Database

FinalBuilder 4 now uses an embedded database engine to store the log files.  Logging data is no longer stored in memory during the build process and is written immediately to the database.  As well as improving the performance of logging during a build, it also reduces the memory overhead of FinalBuilder especially for long running builds.

Project Global Script

FinalBuilder 4 allows projects to store common VBScript and JScript which can be called from any action script event.  This means less copied script code and the ability to store the script methods in the project file instead of loading an external script file.

Persistent Variables

FinalBuilder 4 can now automatically load and store the value of a variable.  In the past this had to be done manually by reading from a text file at the beginning of a build, and then writing the value at the end of a build.  To enable a variable to be automatically persistent simply flag the variable as persistent in the Edit Variables dialog. Persistent variables are stored in the .fbv file.

Build Engine

The FinalBuilder build engine has been tuned which has resulted in as much as a 50% performance increase.  Improvements have also been made in the area of syncronising the UI and build engine so that the UI no longer needs to "catch up" at the end of some build processes.

FinalBuilder console

The FinalBuilder console (FBCMD) is now available in both Standard and Professional edtions of FinalBuilder 4.  The logging output has been improved for readability including colorised output.  The build result and build time are now displayed when the build completes.

Tip of the Day

FinalBuilder 4 now includes a tip-of-the-day which is discretely displayed in the QuickHelp tab when FinalBuilder loads.

Action Information

FinalBuilder 4 adds an action information tab which is updated with the common properties of actions.  Action Information is a quick way to view the properties of the action without opening the properties dialog.

Live Logging Options

FinalBuilder 4 now allows the user to specify when live logging should be turned on or off when the IDE opens.  It also allows the user to specify that the live logging status should be remembered.

Automatic Action Retry

FinalBuilder 4 now includes the option to allow actions to retry automatically if they fail.  A maximum retry limit can be set as well as the wait time between retries.  This can be useful if a particular action has a tendency to fail but will succeed if it is re-run.  The TRY action has the added ability that if any child action fail, then the TRY action will retry all of it's child actions.

Continue Build if build failed

FinalBuilder 4 allows the user to continue a build without resetting the log file if the build failed.  When the build restarts, the log file of the previous build is appended to, rather than a new build history item being created.

Project Edit Password

FinalBuilder 4 now allows the owner of the project to set an Edit Password.  This password is required for the project to be viewed in design mode and before any changes can be made to the project.  The project can be run without the Password.

Improved Edit Field Dialog

Now evaluates expression and allows font selection

Build Log opens at last error

When live logging is turned off (the default), and there was an error, the build log in FinalBuilder 4 loads the last error that occurred in the build.

Show errors in Build Log

The FinalBuilder 4 Build Log can now display only the actions that were in error, or alternatively only actions which were in error but ignored.

Schedule Wizard allows selection of IDE or FBCMD

The Schedule Wizard in FinalBuilder 4 now allows scheduled tasks to run either the FinalBuilder IDE or the FBCMD.

CLR Version Selection

FinalBuilder 4 now supports version 2.0 of the Microsoft .NET CLR.  A new option has been added which lists the installed versions of the .NET CLR and allows the user to choose which version of the CLR which FinalBuilder hosts in order to run .NET based actions.

Project Tab

FinalBuilder 4 introduces a new way to view the various elements of your project files.  The project tab uses a tree control to display the various action lists, scripts and variables in the current project.  It also allows reordering of actions lists, quick select of action lists, and a quick way to get to the variables and global script editor dialogs and a lot more.


Now allows sorting of watches (asc and desc)

Search in Log

FinalBuilder 4 introduces a find function for searching the log.  This searches the entire log for any action which contains the specified text string in the description field of an action, and only those actions are loaded in the build log.



Global Scripts

FinalBuilder 4 ActionStudio now allows common VBScript and JScript code to be shared between actions in an action package.  The common script methods can be referenced from the action implementation scripts, property page read/write methods, and property page control events.

Script Editor options

It is now possible to modify the Script Editor options in FinalBuilder 4 ActionStudio.  The script editor options are common between the FinalBuilder IDE and ActionStudio.

Pretty XML output in Action Package files

The ActionStudio action package files (.fbap) now pretty print the XML so it is easier to read.  This also makes it easier to see the differences between two versions of an action package.

StdImage control

FinalBuilder 4 ActionStudio adds a new control which can be used on property pages and option pages.  StdImage is similar to the normal Image control, but it contains a list of standard images.  This enables faster creation of property pages, gives a common look-and-feel for property pages, and also saves space in the action package files as the image does not need to be stored.

Common property pages

FinalBuilder 4 ActionStudio now lets action designers define common property pages which can be added to multiple actions within the action package.  This saves duplicated property pages in the situations where the same property page was required in more than one action.

Welcome to ActionStudio Wizard

Similar to the FinalBuilder Getting Started Wizard, this quick tutorial shows the first time ActionStudio runs and gives the user a quick overview of ActionStudio and how to create FinalBuilder actions.

Easier re-ordering of property pages

FinalBuilder 4 ActionStudio now includes an easier way to re-order, add, and remove property pages and shared property pages of an action.



New FTP actions

FinalBuilder 4 adds a new set of FTP actions to replace the FTP Client action.  The new FTP actions are:
 - FTP Connect,
 - FTP Disconnect,
 - FTP Create Directory,
 - FTP Delete Directory,
 - FTP Change Directory,
 - FTP Change Up Directory,
 - FTP Upload File (including recursive),
 - FTP Download File,
 - FTP Get Remote Directory,
 - FTP List Directory,
 - FTP Get File Size,
 - FTP Delete File,
 - FTP Rename File,
 - FTP No-op
The new FTP actions allow exception handling and flow control around individual FTP operations, as well as the ability to run other actions in-between FTP operations.  The FTP Upload now has the option to recurse subdirectories.

Async Action Group

The Async Action Group action in FinalBuilder 4 enables the build process to run multiple actions in parallel.  All immediate child actions of the Async Action Group are started simultaneously and are allowed to run in their own thread.  The next action after the Async Action Group (eg. next sibling) only runs after all children of the Async Action Group completes.

For Loop

FinalBuilder 4 adds a For Loop action to the set of flow control actions.  The For Loop action allows the build process to run a set of actions a certain amount of times depending on the start number, target number and step increment.

Microsoft TeamSystem

FinalBuilder 4 adds support for the new Microsoft TeamFoundation version control system.
 - Team Foundation Check Out
 - Team Foundation Check In Pending Changes
 - Team Foundation Undo Pending Changes
 - Team Foundation Get
 - Team Foundation Add
 - Team Foundation Lock
 - Team Foundation Unlock
 - Team Foundation Rename/Move
 - Team Foundation Map Working Folder
 - Team Foundation Unmap Working Folder
 - Team Foundation Apply Label
 - Team Foundation Remove Label
 - Team Foundation Delete
 - Team Foundation Undelete
 - Team Foundation Branch
 - Team Foundation Merge
 - Team Foundation Shelve Pending Changes
 - Team Foundation Unshelve Pending Changes
 - Team Foundation Delete Shelveset

Property Set Actions

FinalBuilder 4 adds eleven new actions which make it easy to save, load, and manipulate version information during the build process.
 - PropertySet define
 - PropertySet load from INI file
 - PropertySet load from Registry
 - PropertySet load from FBD
 - PropertySet save to INI file
 - PropertySet save to Registry
 - PropertySet save to FBD
 - PropertySet increment value
 - PropertySet log current values
 - PropertySet assign properties
 - PropertySet to Variable
PropertySets make it easy to store version info in an external file, and apply the version information to various components of your application (eg. DLLs, EXEs, etc) without using script or FinalBuilder Variables.  The compiler actions which allow setting of version info (eg. VS.Net Compiler, Delphi Compiler, etc) can now also read their verison info from a PropertySet.  The available PropertySets are: Win32 Version Numbers, Win32 Version Info, .Net Version Numbers, .Net Version Info, VB Version Numbers, VB Version Info.

Map Network Drive

FinalBuilder 4 adds two actions to map and unmap network drives:
 - Map Network Drive
 - Unmap Network Drive
Using these actions a network share can be mapped as a drive letter on the local computer.

WMI Actions

FinalBuilder 4 adds an extra three WMI actions:
 - Remote Reboot (WMI)
 - Remote Shutdown (WMI)
 - WMI Process Iterator
Remote Reboot and Shutdown use WMI (Windows Management Instrumentation) to initiate a shutdown or reboot of a remote networked computer.  A valid username/password is required or the actions can use the current login for authentication.  WMI Process Iterator allows the build process to perform the same set of actions for the list of processes found on the selected computer.

WiX Actions

FinalBuilder 4 adds two actions to support the WiX Windows Install Toolkit compiler:
 WiX Compiler ("candle")
 WiX Linker ("light")

VMWare Actions

FinalBuilder 4 adds five actions for the build process to interact with VMWare Virtual Machines:
  - Start Virtual Machine
  - Stop Virtual Machine
  - Suspend Virtual Machine
  - Reset Virtual Machine
  - Check Virtual Machine

Dot Net Actions

FinalBuilder 4 adds more Microsoft .Net support:
 - .Net2 ASP.Net Compiler
 - .Net2 NGen

XML Actions

FinalBuilder 4 adds another two actions for manipulating and accessing XML documents:
 - Read XML value to variable
 - XML Node Iterator
The XML Node Iterator action allows the build process to run a set of actions for each node found using an XPath statement.

Schedule Actions

FinalBuilder 4 adds support for creating, deleting, and listing scheduled tasks using the Windows "at" command.
 - Schedule Add
 - Schedule Delete
 - Schedule List
The Schedule Add action allows you to specify either a FinalBuilder project file or any executable.  The scheduling options include the ability to schedule the task on a specific date/time or a time relative to the current date/time.

Text Find Action

FinalBuilder 4 adds a new action which makes it easier to find text in either a file or a FinalBuilder variable. Some build processes need to search for error strings in files, or maybe certain text from the output of a version control system action.  In the past this would be achieved by either using a file iterator with some script, or completely in VBScript/JScript.  The Text Find Action can automatically search for a text string or a regular expression and cause the action to fail if the occurrences is less or more than a predefined amount.

IIS 5 Actions

FinalBuilder 4 adds a complete set of actions to inteface directly with Microsoft IIS version 5.  The new actions are:
 - Start WWW Service (IIS 5)
 - Stop WWW Service (IIS 5)
 - Restart WWW Service (IIS 5)
 - Start Website (IIS 5)
 - Stop Website (IIS 5)
 - Pause Website (IIS 5)
 - Unload IIS Application (IIS 5)
 - Create Virtual Directory (IIS 5)
 - Delete Virtual Directory (IIS 5)
 - Create Website (IIS 5)
 - Delete Website (IIS 5)
 - Backup IIS Metabase (IIS 5)
 - Restore IIS Metabase (IIS 5)

IIS 6 Actions

FinalBuilder 4 adds a complete set of actions to interface directly with Microsoft IIS version 6.  The new actions are:
 - Start WWW Service (IIS 6)
 - Stop WWW Service (IIS 6)
 - Restart WWW Service (IIS 6)
 - Start Website (IIS 6)
 - Stop Website (IIS 6)
 - Pause Website (IIS 6)
 - Unload IIS Application (IIS 6)
 - Create Virtual Directory (IIS 6)
 - Delete Virtual Directory (IIS 6)
 - Create Website (IIS 6)
 - Delete Website (IIS 6)
 - Backup IIS Metabase (IIS 6)
 - Restore IIS Metabase (IIS 6)

File Dependency Action

The File Dependency Action allows the build to dynamically choose to run certain actions or fail depending on the date/time stamp of the specified files.  The action supports specifying files by wildcards and also supports recursion.  The comparison date/time can be a specific date, the last run date of the action, or by checking the date/time of files in a certain location.  This action is useful if the version control system being used doesn't support reporting if files are out of date, or if the Get command doesn't return a list or count of files retrieved.

Wait for Actions

A new set of actions enable the build process to wait for certain conditions before the build continues.  If you build process needs to wait for remote computers, certain files to exist, or you need to sycronise multiple threads running under ASync action groups then these wait for actions can help you acheive this.

The new actions are:
 - Wait for File
 - Wait for Script Result
 - Wait for Process
 - Wait for Variable
 - Wait for Remote Computer
Wait for File - specify a file to wait on, the options are: file to exist, file to not exist, file to change, file to become writeable, file to have archive bit set.
Wait for Script Result - this action uses an event which allows the developer to code any JScript or VBScript to test for a condition.
Wait for Process - specify a process id or process name to wait on, the options are: process exists, process no longer exists, window found, window not found.
Wait for Variable - specify a FB Variable to wait on, the options include: variable to change, variable to contain text or matches regular expression. This action must only be called under an ASync action group.
Wait for Remote Computer - specify a remote computer address. The action can use the following methods to test if the remote computer is available: ping, wmi, network share.

All the "Wait for" actions have the following options:
 - Polling interval; this can be anything from every seconds to hours
 - Timeout; if the wait for condition hasn't happened within the specified time, then the action can either fail or skip child actions

Other New Actions

  • If COM Class registered - queries the current system for the specified COM class using ClassID or ProgrammaticID
  • SQL Best Practices Analyser
  • Export FinalBuilder ActionPackage as Encrypted .fbapx
  • If Variable Defined
  • Send MSN Message
  • UPX and ASPack
  • Reset Variable to Default
  • Define Variable
  • Append to Variable (separate with CRLF or Tab)
  • Save Project
  • Subversion Revert Action



The following Compiler actions now support Version Number and Version Info property sets to automatically apply version info and version numbers.
 - Compile VisualBasic Project
 - Compile Delphi Win32 Project
 - Compile C++ BUilder Project
 - Build VC6/Embedded Project(s)
 - Build VS.Net Solution

FinalBuilder 5 was released on October 24, see what's new in FinalBuilder 5.