# EFORMASPX Workflow Application

## Overview

The **EFORMASPX** workflow application lets you display and fill out the different fields of your electronic forms through a web form. A web form is the ASP.NET equivalent of an MS Windows form and has similar programming characteristics.

## Required parameters

| Parameter   | Type | Direction | Description                                                                                                                                                                                                                                                                                                                                                       |
| ----------- | ---- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `FORM_DATA` | FILE | INOUT     | <p>Contains the form data: the dataset in .NET to store the data to/from the WorkflowGen XML file (see below for an example of this file)<br><br>WorkflowGen generates this file at every form submit and no default value needs to be defined. WorkflowGen will create and update this file automatically.</p>                                                   |
| `FORM_URL`  | TEXT | IN        | <p>Used to display the ASP.NET form that users complete during process execution or whose fields are populated with default values defined during process design</p><p></p><p>It should contain the path/location of the blank form that can be stored in the process data or associated directly to this parameter, and can be an absolute or relative path.</p> |

#### 📌 Example of an empty `FORM_DATA` file

An XML file `formData.xml` containing:

```markup
<?xml version="1.0" encoding="UTF-8" ?>  
<NewDataSet>  
    <Table1 />  
</NewDataSet>
```

#### 📌 Example of a `FORM_URL`

`/wfgen/WfApps/WebForms/MyFirstWebForm/v1/Form.aspx`

## Using additional parameters

### Field initialization

You can pre-populate web form fields by specifying which values are to populate which form fields. This is done by providing the field name to an action parameter as an IN or INOUT parameter and then sending the value of a freeform text, a WorkflowGen macro, or a process data.

#### 📌 Example

* **Rule:** Display the requester’s name in the web form field called `REQ_NAME` when the form loads.
  * **Method:** Associate the form field name with the `Requester.Name` macro.

### Retrieving field values

You can store the various web form field values in the process data by specifying which field values are to be stored to which process data. This is done by providing a field name to an action parameter as an OUT (or INOUT) parameter and by retrieving that field value to a specified process data.

{% hint style="info" %}

* Process data can only be used to store one and only one field value per action.<br>
* As of WorkflowGen version 7.15.0, TEXT process data no longer have a 4000-character limit for MS SQL Server database.
  {% endhint %}

#### 📌 Example

* **Rule:** Retrieve the Manager's answer/decision in process data called `MGR_DECISION`&#x20;
  * **Method:** Associate the form field name with pre-defined process data

## Additional parameters to change form field properties

### Overview

You can control the required, read-only, and hidden ASPX form field properties through the action parameters without developing any .NET code. The value of the parameter has to be set to a list of fields to set (or not) separated by a comma or a semicolon. This list supports the generic wildcard character `*` (asterisk) and the exclusion character `^` (caret). A standardized field naming convention makes it easy to set the various field properties per action.

### List of available parameters

| Parameter              | Type | Direction | Description              |
| ---------------------- | ---- | --------- | ------------------------ |
| `FORM_FIELDS_READONLY` | TEXT | IN        | List of read-only fields |
| `FORM_FIELDS_REQUIRED` | TEXT | IN        | List of required fields  |
| `FORM_FIELDS_HIDDEN`   | TEXT | IN        | List of hidden fields    |

### Examples of use

* **Rule:** The fields `EMP_NAME` and `EMP_DATE` are required
  * **Method:** `FORM_FIELDS_REQUIRED = EMP_NAME, EMP_DATE` <br>
* **Rule:** All the fields are set to read-only except the fields with a name that begins with `EMP_`
  * **Method:** `FORM_FIELDS_READONLY = *, ^EMP_*` <br>
* **Rule:** All the fields are set to visible except the `DATE` field and the fields with a name that begins with `SUP_` and ends with `_APP`
  * **Method:** `FORM_FIELDS_HIDDEN = ^*, DATE, SUP_*_APP`

## The `FORM_ARCHIVE` additional parameter <a href="#form-archive" id="form-archive"></a>

### Overview

This is a way to have a static copy of the form, so that the copy can be viewed, printed, or sent by email without having to create any additional web form code.

### Parameter

`FORM_ARCHIVE`: HTML static copy of the ASP.NET form (OUT)

The value of the filename has to be set in the initial XML file:

`<FORM_ARCHIVE>form_archive.htm</FORM_ARCHIVE>`

As well, the dataset must have a field named `FORM_ARCHIVE`.

WorkflowGen handles this, so no extra work by the process or form designers is needed.

### How it works

When the web form is submitted by the end-user, the EFORMASPX application will create a static copy of the form and store it within the WorkflowGen directory. WorkflowGen will then be able to link this static copy to the `FORM_ARCHIVE` parameter.

The only things that the process designer needs to do are:

1. Create a process data to store the static form (generated by WorkflowGen).<br>
2. Associate it to the `FORM_ARCHIVE` action parameter.
