If someone is editing a jBPM form, all of the jBPM fields you have bound to throughout the process should be available in a panel for inserting back into that given form.
For example, take a process with 2 human tasks:
If task 1 has input fields bound to the employee ID, task 2 should offer this field for “quick insert” to the user. This should cut down on form creating time and help avoid erroneous entry of field names for tasks.
Other Thoughts on Forms:
Web Form Builder:
Saves form information to BPM Server with Rest.
TinyMCE for Rich Text Editing in Form Editor on Browser.
Use HTML5 Data attributes to store field information:
* Mapping of Field to BPM Data
* Field Validation Criteria
* Field Meta Information: Integer, Date, etc.
* Saving the Form Editor will produce several things on the server side:
1) Velocity Template for later Mapping BPM data into the Web Form
2) Data Mapper / Validator Class. This is the class that will take the Rest Form Post later, and map that data back into the BPM Process.
Flow of Web Form Builder:
Browser Form Editor:
Pulls BPM form from server with Rest and Javascript. This can thus be integrated into any web application without Binary bits.
Posting back to the Rest Service of form information from Browser will cause Rest Service to validate content based on validations provided on the Form Editor.
Also, Meta information will be used to automatically cast to known datatypes: Integer, Date, etc.
The forms will also have Javascript side validation.
Browser pulls the form into the HTML DOM using Rest API.
User completes form.
Post sends Rest call to server with form field data.
Field Mapper / Validator Executed. Any errors sent back to the browser. Otherwise, data mapped back to BPM Task.


