FORMWORK is a suite of tools created by Iconsulting based upon the experience acquired in many Business Intelligence projects. It was conceived with the purpose of meeting some widespread and common needs of many application fields, such as enriching the dimensional attributes, consolidating non-financial data, managing hirearchical data, as well as centralizing business logics, kick-offs, monitoring of tasks and data access control.


FORMWORK is composed of client tools, both desktop and web, that allow for visualization and editing of data directly from the administration console. In this way, Admin users can thoroughly customize the system. 


FORMWORK is based on open-source technologies and inter-communication standards that are widespread. It is composed of a middleware released with a public API,that can be easily called up from your application, and matches with client tools.



Constituting elements of a FORMWORK application

Thanks to FORMWORK, it is possible to create complex applications by combining the three basic elements: Form, POV and Task.


A form is a data track to read or write. It is similar to the notion of a table in a relational database, and is therefore made up of a series of fields with data types. Each one of them can have a domain of acceptable values and licences to read or write.

Starting from this common field, a form can extend the features of a relational table, in which it is possibile to insert different fields from other tables (that are logically linked to it through logical constraints of foreign-key), in order to be associated to different actions when an user-driven event occurs, such as writing, reading or deleting records. Moreover, it is possible to edit the representation format by applying pivot transformation and allowing the writing of data to occur in that mode, while enabling the adding of look-up features in the more detailed forms (that we will call Drill-down from now on).

A form relates to one or more tables in a target database. The supported DBMS so far are Oracle and SQL Server, buti t is alsapo possible to connect through an ODCB so it is possibile to use a larger set of available databases.


POV is the acronym for 'Point of View', and is the main tool with which you can filter data on a FORMWORK application. The POV allows the split of a set of data in an arbitrary way, and is easily configurable by the system admin. Imagine, for example, the need to divide the sales data according to the product category, or to thave the aim of hiding certain data: e.g., the sales data of a subsidiary company must not be seen by another company. A further application of the "slicing" is the possibility to carry out simulations or filing of data.

The administrator can decide on which column the POV is going to work on, what happens when the filter value changes, what the range of values will be that are acceptable as filters and whether or not the POV is modificable by the end-user. 


A task is an action that can be explicitly carried out by the user. Each task is linked to a series of actions (called 'Procedures'), that can be used to make calculations, show messages to the user, ask for confirmation, carry out operations on databases, filesystems and send out e-mails. A task represents any application logic that has been saved and completed on the server, that users might need: 'check if the company's users have loaded the balance data, if not send them a reminder', or , 'visualize a prompt in which you ask for a budget increase and, if the user confirms, increase the budget by the inserted amount', or , 'if the start date is prior to the end date, advise the user that the report cannot be produced', and so forth...

Other than being associated with a Task, a Procedure can also be carried out by the System, at the occurrance of an event or POV, or during a user login or logout phase.


Custom help

It is possible to associate to each saved object a 'help' that will guide the final user. This help is an html page (or a reference to it) and javascript, that can be set up by the admin user.

Security and authorizations

In a FORMWORK application, each Form, POV and Task are saved on a catalog (FORMWORK Catalog), and are accessible only through a system authentication. The authentication providers, supported until now and that can also be set up in a cascading layout: 


a) Native Authentication

The access credentials are kept by FORMWORK


b) Domain Authentication through Active Directory

FORMWORK uses existing users in the Active Directory of the company


c) LiveID

FORMWORK uses account Microsoft LiveID 


d) Hyperion Membership Provider

FORMWORK uses users and groups defined in Hyperion Shared Services 



Every user or group mapped in FORMWORK is shared on every client system and it can be allocated different visibility licences on the catalog objects, according to the authorization levels that you want to set.

System Architecture

Here is an overview of the suite.



FORMWORK Web Services

A FORMWORK server, or instance, is a web application published on an IIS. It has a range of SOAP e REST web services via http/https, that constitute a middleware used by all clients to interact/on the system. The communication with the middleware is bidirectional for Excel and Mobile clients through the paradigm Reverse Ajax implemented with long-polling. Essentially, the system allows for the creation of a communication channel similar to a socket, using only the http(s) protocol. This infrastructure allows the server to drive the clients, that are usually always awaiting instructions and without any application logic or intelligence, can release the application in one single point (the FORMWORK Catalog) without having to carry out a release on the users' machines. 

Each operation opened by the middleware needs a token for authentication, to be released during the login phase on the system.


The FORMWORK Catalog has different functions: on the one hand, it is a sort of virtual file system that can be divided into further folders, whereby the same FORMWORK objects can be saved. It is possible to apply to each object or file user authorizations so as to customize their visibility. 

Moreover, it is the container for the users and group mapped on the system, of the metadata relating to FORMWORK and the application logs.

The whole FORMWORK Catalog is saved in the FORMWORK Metadata Repository.


FORMWORK Metadata Repository

It is a SQL Server[1] database in which all information configured by system admins is stored..

Client tools

The tools used to interact with the system can be divided into two macro-categories: Administration console and End-Users' tools (Excel, Web and Mobile clients).

Through the administration console, it is possible to customize the system by creating Form, POV and Tasks. Once you save these items in the FORMWORK Catalog, they can be used by the other three clients.

Administration Console

FORMWORK Administration Console is a desktop application, to be installed on the users machines, that allows to create Form, POV and Tasks. It is designed with Windows WPF technology and requires .Net Framework 4.0 or later.

In order to use the console, it is necessary to have an administrator's login. The console is available for download on the Home --> Resources section. The console has an auto-upgrade mechanism that notifies the user when a new version is available and allows installation.

Via this console, it is possibile to define the logical layer of the metadata that links the forms to the tables of a database:


The console automatically identifies the relations (Primary – Foreign Key) that exist between tables, and allows the easy creation and publishing of Data-entry forms on the FORMWORK instance, thus making it available for users. The form generated will take into account any foreign-keys in the table from which it has been generated and will automatically show it as a look-up. Moreover, the tool allows to graphically organise the layout of your database, to save it and print it.

Through the administration console, it is possible to develop your Procedures in declarative means or with a visual editor. These Procedures are created with the composition of single features or activities available on a palette of predefined operations. These activities can have multiple functions: operations of filesystem, query on databases, notifications/alert to client, prompt, mail, web services request, sub-task request, flow-control instructions, conditional and iterative instructions:




The single 'bricks' that compose a Procedure are in the toolbox on the left, and each one of these functions (more than 70) can be dragged and attached to others as you wish. The tool is able to check for possible errors in the Procedure that you are creating and to open and save Procedures locally or in a shared library for all FORMWORK instances. Once you save a Procedure in a library, it is ready to be associated to Tasks or events.


Web Console

The Web client is based on a open source Content Management System, called DotNetNuke (currently updated to version 5.6.4). Each object in FORMWORK is implemented in the Web client as an extra Module of DotNetNuke. Therefore it is possible to publish the objects created with the console in the FORMWORK Catalog and to see them in a web browser that supports Silverlight3.

Through the Web clients you have a portal which can be used by system administrators to set the security and set up the FORMWORK settings. Moreover, in the Home--> Resources sectionyou will also find the Excel client and Administration console installation packet.

Other modules of the portal show a series of logs: system logs, application logs, procedure- executive logs and the data set in motion by the users' operations.

Excel Client

The Excel Client consists of a Plugin for Microsoft Office Excel 2007 or newer versions and is the main tool to access the system.




It has to be installed on the user's terminal and can be downloaded from the FORMWORK site. The plugin has an auto-upgrade machanism that notifies the user when a new version is available and leads to the installation. In the patching phase to a newer version, it is necessary to run Excel as admin4 user.

Once logged to the system, the Excel client shows the Forms and Tasks available to the user. The ribbon shows the POV associated with the object currently in use. Each form is put into an Excel sheet as a table with an embedded XSD validation. It is possibile to open several Forms at the same time. While guaranteeing the flexibility of Excel, (copy & paste, drag & drop, formulas, etc., etc.), the user editing complies with the restrictions as per the XSD (primary and foreign keys, types of data, maximum length of the value domains, read-only fields) and the user gets immediate feedback on potential validation errors.

Thanks to the Excel tables, data is not referenced in a positional way, thus making it possible to move, order, filter the table and to add customized fields (that will remain local) or formulas or to use it as data area for graphics: everything that is out of this data area remains an Excel sheet.

Each modification to the data in a FORMWORK form stay local until you run the Write on the system. Furthermore, the Write feature carries out the record Delete, if you had previously marked records for deletion.

You can also operate while offline: you just need to download a Form, save the Excel file on the disk and then disconnect. You can then make modifications as it was a regualar Excel file. At a given moment, or when you go back online, you can connect to the system and confirm the modification with the Write function.

If you have set up the Drill-down functionality, you can structure the forms as Master-Detail, that is to say that from a form showing aggregated records it is possible to obtain detailed record based uopn the current selection.

The Excel Add-In allows multiple users and multiple instances: the same user on the same computer can open more than one instance of the Excel Add-Inn.


Web Client

The Web Client represents a second access to Forms and Tasks used bu the End Users with the Excel Client. Every browser supports this client. The correct visualization is certified for all last versions and the previous ones. 

The Web Client has been built to guarantee to End Users an interface the most similar to the Excel Client, but there are some restrictions due to the usage of a Web Page, such as the need to be connected to the network, static tables, one form displayes at a time or the template.

Once connected to the Web Page, users have to input the same credentials used to connect to the Excel Client and then on the left there are all Forms and Task available to user. It is also possibile make a search on available Forms and Tasks.




If the Form exposes some POVs, they are displayed and can be selected in the upper band, under the breadcrumb (in the upper image, the POV would be displayed below the breadcrumb Master Data à Product à Categories). To go back and select other Forms it is possibile to use the menu on the left: the chosen form will be shown in the middle section of the page.

Through the Web Client, you can open only one form at a time.

Above the table there are some buttons to insert a new record, delete, or save changes to the Form and update the data. Next to each record there is a button for deleting the single record from Form.

In the footer of the form you can navigate the form data according to display per page, having reference to how many items are being displayed and have a summary of the records added, modified or deleted.

Mobile Client 

The FormWork Mobile Client is currently developing and it is a cross-platform application for smartphone. It will be available on IOS, Android and Windows Phone. It shows the same features as Excel client, but the records of a Form are shown one at a time and not as a table.