FreeFlow class library

Welcome to the FreeFlow class library. This library exposes workflow functionality for .NET client and server applications.

FreeFlow.Client namespace
This namespace can be used to create custom clients or to interact with the engine. The Connection class provides the base functionality for connecting to the engine and sending and receiving XML messages. It supports user authentication and raising flags. The AlertsList class provides access to a user's alerts. The BlankFormsList class provides access to a user's blank forms list. The ActionPage class allows programmatic initiation of blank forms. The FolderPage class allows programmatic access to folders.

FreeFlow.Administration namespace
This namespace can be used to programmatically interact with the engine's database without writing a single line of SQL. The Server class provides the main entry point to the class hierarchy. A valid connection string is all that is required to access the database. Only SQL Server is currently supported.

FreeFlow.Rss namespace
This namespace can be used to generate RSS feeds for user alerts, the event log and the Designer log table

Further information can be found at the FreeFlow website.

Change Log

Build 124
FreeFlow.Administration namespace
The Role class now supports the IRefreshable interface.
Scripts stored in the database can be accessed from maps and procedures
Table column details are now available
 
Build 123
FreeFlow.Administration namespace
The Map class has a CurrentFolderSuffix property.
The Map class has a ResetFolderSuffix method.

Build 122
FreeFlow.Administration namespace
The Folder class has an IsArchived property.
More registry settings are available from the RegistrySettings class.

Build 119
FreeFlow.Administration namespace
The User class now has a public constructor for quick and more efficent access to a user.
The User class now provides access to user attributes.

Build 118
FreeFlow.Administration namespace
Attachments can be written to the database using Server.SetAttachment (folder attachments are not currently supported).
Attachments can be deleted from the database using Server.DeleteAttachment.
Authentication scripts can be added, inserted and deleted from the AuthenticationScriptCollection class, which also now provides access to the guest user script.
Users have DeliverAlertsByEmail and DirectoryTree properties.

Build 117
FreeFlow.Administration namespace
Tables in the database can now be accessed via the Server.Tables collection.

Build 116
FreeFlow.Administration namespace
The Version class has a Size property that returns the size of the procedure/library.
The DesignerLogEntry class has Property, DetectedByClass and DetectedByMethod properties.
The Folder class has a DeletionList property which returns the deletion alerts for the folder.
Access to authentication scripts is available via the Server.AuthenticationScripts property, although full control such as re-ordering of scripts is not yet supported.

FreeFlow.Client namespace
Client scripts whose language has been specified using unusual casing are now handled correctly.
Breaking change - The constructors for the Field class and derived classes are no longer public as it doesn't make sense to create instances of these classes.


Build 115
FreeFlow.Administration namespace
There is a new RegistrySettings class that provides access to the engine registry settings.
The DesignerLogEntry class now overrides ToString method and will return the details of the designer log entry.
Version 7.5 databases are now recognised.
The Server class now has a property to access the event handler function call for external delegation of events to .NET assemblies.
The Map class now has properties for external delegation of events to .NET assemblies.

FreeFlow.Client namespace
The Connection.SAP property can be used to specify which SAP should be used when logging in.
The FolderPage class has MapName and StageName properties.
The deprecated Connection.Login and Connection.LoginForm methods have been removed.


Build 114
FreeFlow.Administration namespace
The AlertCollection class now has methods for adding and removing alerts.
Rules stages are now handled correctly.

Build 113
FreeFlow.Administration namespace
The Server class now has a SaveAttachmentToFile method.

FreeFlow.Client namespace
The Connection class now has a SaveAttachmentToFile method.
The AttachmentField class now has a SaveToFile method.

Build 112
FreeFlow.Client namespace
International characters may not be handled correctly if connecting by HTTP. Connecting via DCOM is suggested if this a problem.

Build 111
FreeFlow.Client namespace
The ActionPage.Submit method now does nothing if it is called from a non-confirm action, since starting the action will also submit it.
Connection.LoginForm is now deprecated. Use the new Connection.LogOnForm method instead.


FreeFlow.Administration namespace
The collection retruned via the Server.DesignerLog property now does not include authentication failures, which are returned via the Server.AuthenticationFailures property. The full designer log can still be retrieved by creating an instance of the DesignerLog class. A new constructor for the class takes a parameter to filter the returned list. 
Performance of the FolderCollection class has been improved.


Build 110
FreeFlow.Administration namespace
This build fixes a bug with Version 5 procedures causing an exception when version information was read.

Build 109
FreeFlow.Administration namespace
Most collection classes now implement the IBindingList interface, meaning the columns can be sorted when bound to a DataGrid control.
Attachments can now be deleted.
Maps can now bew renamed. Rename a map in the database before republishing the procedure.

Build 108
FreeFlow.Administration namespace
Partial support for Oracle.
Breaking change - Server.DatabaseType is now an enumerated type.
The AlertCollection class has a ContainsUser method.
The FolderCollection class has a contructor for passing a SQL where clause that will be used to build the collection
Forms defined in a map segment are now included in the FormCollection for a map using the map segment


Build 107
FreeFlow.Administration namespace
Designer log entries over a specified age can now be deleted.
Most collections now implement the IList interface so they can be bound to data-aware controls.
The group can now be set for user creation actions.
You can purge stages from a map or for the whole database.
The Session class now gives access to the caller ID.
The Server class has a property to indicate the number of raised flags that are pending.
You can now change users' passwords. You can also set a random password. The User class now also has a property to indicate if the user has a blank password. It also has a method to revoke all roles.
It is now possible to delete variables from the database.
Libraries now have a LastPublished property.
It is now possible to delete old deletion alerts.
You can connect to a server using an ODBC DSN, username and password.

Build 106
FreeFlow.Administration namespace
Events without an associated folder can now be deleted.
The Server class has a new method for setting the groups for blank forms to a sensible default.
The Server class now recognises Version 7 databases.
The Server class has a new NotificationFormula property for Version 7 databases.
The Server class has new EnableDeletionAlerts and EnableAlertGeneration properties for Version 7.01 databases.
For version 7 databases, library version information is now available.
SessionCollection now has the ability to delete expired sessions.
Folders now have a Notes property that provides access to the notes added to the folder. This is a subset of the History property.
Procedures now have a LastPublished property.
Actions now have properties indicating whether they are loopback or creation actions and also group and description information for creation actions.


Build 105
FreeFlow.Administration namespace
Performance of the FolderCollection class has been improved.
The Server class now has an ExecuteScalar method.
More reports are available.
DesignerLogEntry now has Form and Field properties.
Individual designer log entries can now be deleted.
Procedure versions can now be deleted.
Libraries can now be deleted.
It is now possible to find out which procedures roles have been defined in.

Build 104
Breaking change - The Usage enumerated type has been renamed FieldUsage and has been moved to the FreeFlow namespace.
Breaking change - The ActionType enumerated type has been renamed UserActionType and has been moved to the FreeFlow namespace.
FreeFlow.Administration namespace
The Action class now provides access to the field usage and user action type(form, confirm etc).
You can now access a folder's alert message.
You can now unlock a folder.
You can now access a field's dataset.
You can update a Folder's Name, Priority, Subject and Category.


Build 103
Many of the classes in the FreeFlow.Administration namespace can now access their members by name as well as by index. It is possible to access a user's To Do and Watch list through the AlertCollection class.

Build 102
The FreeFlow.Administration namespace has been introduced. This provides programmatic access to the engine's database. Only SQL Server is currently supported. The GridColumn class has more properties. The AlertType and AttachmentType enumerated types have been moved to the FreeFlow namespace. The AlertHelper class has been added.

Build 101
The List class now has Order, Page, PageSize and RecordCount properties.

Build 100
Breaking change - The FreeFlow assemblies are now strong-named. This means the assemblies can be added to the GAC if required, but will require rebuilding of any applications using them.

Build 98
Connection.RaiseFlag now accepts an array of objects for flag data.

Build 93
Alert lists now allow retrieval of deletion alerts. This is useful when alerts are being cached on a client machine and an application needs to know when alerts have been removed from a To Do or Watch list.

Build 91
Fields now expose client extensions. Label fields have a Url property.

Build 89
Flags can now be raised using the engine's DCOM interface as well as via its XML interface. The Connection.RaiseFlagBy property controls this.

Build 88
The Connection class has two new LogOn methods, which should be used in preference to Login (now deprecated) as these new methods use exceptions like the rest of FreeFlow.

Build 83
The Connection class has a new UserName property. A bug has been fixed that occurred when fields were referred to using different cases by the engine.

Build 82
The Connection class has a new constructor that allows an existing session ID to be passed in.

Build 81
The FreeFlow.Rss assembly has been added to the library. This can be used to generate RSS feeds for users and administrators.

Build 77
The two assemblies FreeFlow and FreeFlow.Client have been merged into one assembly, FreeFlow.Client.

Build 71
SSO now works with HTTP. Configure SSO for Win32 clients as described in the documentation then ensure the escripts folder is configured for Windows Authentication and SSO should work as expected. If an ASP.Net application is being used to connect to the engine, ensure <identity impersonate= "true"/> is set in web.config

Build 64
You can now connect to the engine via DCOM with the Connection.ConnectionType property. SSO can also be used if the class library is being used in a client-side application when connecting via DCOM.

Build 54
The Connection.Engine property was being ignored. It is now used correctly.

Build 47
Added some Visual Basic sample code.

Build 25
Fixed a bug with actions containing XML characters such as < and >

Build 24
Breaking change - StatusField.Url has changed from System.String to System.Uri. Use Uri.ToString() to get the URL as a string.
Improved client script support, almost complete.

Build 23
Added the introduction to the documentation.

Build 22
Improved client script support, although not complete yet.

Build 21
Added VB.NET syntax to documentation.
Added this file to the documentation.