Form Process Launch Plug-in Properties

The Form Process Launch plug-in enables you to launch a separate child form (or forms) from within a parent form. In addition, this plug-in can take a list of people and starts a separate process for each person, and data can be copied from the parent form to the child form using the Form Data Exchange element.

On this page

Usage example

A user launches a from and uses the form to search a list of records. If the record already exists, then the user will launch a Change Record form (from within the parent form) that will be assigned to one or more users based upon alist of assignees to edit the record. If the list contains ten people, then a new process and form is launched for each member of the group. This would equate to ten forms and processes, one for each member of the group.

There are three mechanisms by which a form launched by this plug-in can be read:

  • The Group mechanism starts a form and process for each person in the group.
  • The List mechanism starts a form and process for each row of a given list, and assigns specified users in the list to specified swimlanes.
  • The Repeating Group mechanism is where a query based on the fields in a repeating group may or may not return a user. The results of the query will be used to resolve swimlane(s).

In the Repeating Group mechanism, you can map the repeating section fields in the child form. The parameters used for this are:

  • repeatinggroup - XPath of the repeating group in the parent form.
  • fielddestinationxpath - XPath of the field in the child form.
  • repeatinggroupfieldxpath - XPath of the repeating section field in the parent form.

To map the repeating group fields, specify repeatinggroup, fielddestinationxpath and repeatinggroupfieldxpath parameters. The latter two parameters are indexed, so multiple fields can be mapped from repeating section in the parent form to the fields in child form also.

Form Process Launch Plug-in Properties

Value Pair

Description

Mandatory
app Name of the app that contains the form. Yes

library

Name of the library that contains the form.

Yes

processname

Name of the form that you want to launch.

Note: This process must be published prior to using the Form Process Launch plug-in and must have a corresponding form associated with it.

Yes

form

The name of the form that you want to launch.

Note: This form must be published prior to using the Form Process Launch plug-in. The template name associated with this property is the name of the corresponding list that is created when a form is published.

Yes
appgroup Group that you want to associate with the swimlane that is designated in the swimlane property. No
groupcolumn Name of the column that contains the group name in the list. No

query

The query to retrieve from the user column.

No

repeatinggroupfieldxpath

Xpath of the repeating group field in the parent form.

No
fielddestinationxpath Xpath of the mapped field in the child form. No

repeatinggroup

Xpath of the repeating group in the parent form.

No

resolveswimlanes

Whether to run swimlane participant resolver of the child process.

No

singleprocess

 

Specifies if the single process should be launched or not.

No
autosyncfields Automatically copies all the field names those are common between the parent and the child form. No

sourcefield0

Xpath of the field in the source form.

No
destinationfield0 Xpath of the field in the destination form. No

usercolumn

The column from which to retrieve the users.

Note: This must be in the format of DOMAIN/USERNAME. For example: WS/JohnD

No

usersolution

The solution to retrieve the users from.

No
userapp The app to retrieve the users from. No
userlibrary The library to retrieve the users from. No
swimlane The name of the swimane in the form that you want to launch. No

Form Process Launch Solution Example

A user launches a Create record form and performs a search to check if a record already exists. In this scenario the record exists, so the user checks a box to confirm this and then submits the form. The workflow then opens a Change record form, and transfers all the data that the user has already entered on the original/previous form (as applicable). The Create process ends, the user receives a task for the new Change form, and then the user continues with the new process.

The elements to make this scenario work are described below.

Change Launch Workflow

Change Launch Form

Note: If fields are going to be updated from the

Change Launch Form then they must have exactly

the same name in both forms.

  1. Ensure there is a Swim Lane called Requester and add a Task. The other Swim Lanes can be configured as you wish.

    Note: this will match a field to be created in the Create form.

  2. Add some fields, including some which you will add to the create form process as well.
  3. The workflow can be designed to your own specifications/requirements. In this example, we’ve added the ‘Form Process Launch’ plug-in followed by a Task, so that we can be sure the correct route in the workflow is followed. (This task can be removed after testing.)

  4. Create the Launch Form. Note that if fields are going to be updated in the Change Launch Form then they must have exactly the same name in both forms.

  5. This drop down on the form decides whether the new form should be launched or not. Option 1, in this example, launches the new form.

  6. The Requester field is populated by the Current User Control. Note: This field can be removed from the view once testing is complete if it’s no longer required

  7. The Form Name field is populated by the Form Name Control. Note: This field can be removed from the view once testing is complete if it’s no longer required

  8. In the Properties Pane, set both the Requester and Form Name fields to be Promoted to a SharePoint field.

  9. Save and Deploy both forms. Deploy the Change form first.
  10. You will need to define the following parameters (see table, below) in the Plug-in Arguments Editor for the Form Process Launch plug-in.

    Note: You must always define a user for the launched form in the plug-in.

 
Site The URL of your form site , i.e. where the form to be launched by the plug in resides
ProcessName The name of the process to be launched from the initial process. For example, Change Launch Form.
Form The name of the form to be launched from the initial solution. This is usually the same as ProcessName (Change Launch Form, as in the example above).
Swim Lane The name of the Swim Lane in the Change form that has the first task to be activated. In this example, the Swim Lane name is Requester
UserSite

The URL of the site where the username for the first task in the Change Form will be retrieved from. In this example, we used the name of the user who launched the create process from the ‘Requester’ field (the field we promoted to a SharePoint field in step 8, above) in the create form to the forms list.

UserList

The list name where the username for the Change process is going to be retrieved from the Create Launch Form.

UserColumn

The SharePoint column name where the username is going to be retrieved from. In this example, Requester.

Query

[Title]==FormName.

This is the query used to select the correct username from the list.

[Title] is the first column of the Create Launch Form SharePoint list.

@[FormName] is the name of the promoted column in the SharePoint list.

AutoSyncFields Set to Yes. This copies the content of all the fields that share a common name across the two forms.

Additional Examples

Back to top

Waiting for Child Processes

The workflow can be set to wait for child processes to complete before continuing down the parent workflow. For example, if creating a New Hire form, a child form could be IT Tasks. Using a Wait for Child plug-in, the New Hire form can be paused while the IT Tasks child form fully completes.

When using Wait for Child plug-ins immediately after the Form Process Launch plug-in, add a Wait node to provide sufficient time for the child plug-in to launch. Otherwise, the Wait for Child plug-in may complete prematurely. The wait time is determined by the speed with which your svservice job can process the formprocesslaunch svservice job type.

The following are quick 'short form' examples of parameters and settings you can use to achieve a variety of functions.

Example 1

  • form – Comment Form
  • newthread – Yes
  • processname – Comment Form Process
  • site – http://acme.com/sv/FormEx
  • sitegroup – Commentator
  • Swim Lane – Comments

This example starts a new process called Comment Form Process running against a new Comment Form form for each person in the Commentator SharePoint group.

It will assign the person to the Comments swim lane in each process.

Example 2

  • form – Comment Form
  • newthread – Yes
  • processname – Comment Form Process
  • site – http://acme.com/sv/FormEx
  • usersite – http://acme.com/admin
  • userlist – Comment Assignees
  • Swim Lane0 – Comments
  • userdomain0 – Commenter
  • Swim Lane1 – Managers
  • userdomain1 – UserManager

This example start a new process called Comment Form Process running against a new Comment Form for each row in the list Comment Assignees in the site http://acme.com/admin.

The person in the Commenter field will be assigned to the Comments Swim Lane, and the person in the UserManager field will be assigned to the Managers Swim Lane.

Example 3

  • fielddestinationxpath0 - /my:myFields/my:field1
  • repeatinggroupfieldxpath0 /my:myFields/my:group1/my:group2/my:field1
  • fielddestinationxpath1 - /my:myFields/my:field2
  • repeatinggroupfieldxpath1 /my:myFields/my:group1/my:group2/my:field2
  • form – Comment Form
  • processname – Comment Form Process
  • site – http://acme.com/sv/FormEx
  • usersite – http://acme.com/admin
  • userlist – Comment Assignees
  • Swim Lane0 – Comments
  • usercolumn0 – Commenter
  • query - [Plant]==@[//my:myFields/my:group1/my:group2/my:field3]
  • repeatinggroup - //my:myFields/my:group1/my:group2

This example queries the userlist Comment Assignees in the site http://acme.com/admin for each row of the repeating group.

If a user is found, it then starts a new process called Comment Form Process running against a new Comment Form in which field1 and field2 in the repeating group in the parent form are mapped to field1 and field2 in the child form respectively, for that row in the site http://acme.com/sv/FormEx.

The person in the Commenter field returned by the query will be assigned to the Comments Swim Lane.

Example 4

  • fielddestinationxpath0 - /my:myFields/my:field1
  • repeatinggroupfieldxpath0 - /my:myFields/my:group1/my:group2/my:field1
  • fielddestinationxpath1 - /my:myFields/my:field2
  • repeatinggroupfieldxpath1 - /my:myFields/my:group1/my:group2/my:field2
  • form – Comment Form
  • processname – Comment Form Process
  • site – http://acme.com/sv/FormEx
  • usersite – http://acme.com/admin
  • userlist – Comment Assignees
  • Swim Lane0 – Comments
  • usercolumn0 – Commenter
  • query - [Plant]==@[//my:myFields/my:group1/my:group2/my:field3]
  • repeatinggroup - //my:myFields/my:group1/my:group2
  • resolveSwim Lanes - true

This example queries the userlist Comment Assignees in the site http://acme.com/admin for each row of the repeating group.

If a user is returned a new process called Comment Form Process starts.

The Comment Form Process runs against a new Comment Form, in which field1 and field2 in the parent form's repeating groups are mapped to field1 and field2 in the child form for that row in the site http://acme.com/sv/FormEx.

The person in the Commenter field returned by the query will be assigned to the Comments Swim Lane.

Swim Lane participant resolvers of the child process will also run because ResolveSwim Lanes is set to true.