Form Process Launch Plug-in

The Form Process Launch plug-in enables you to launch a separate child form from within a parent form. In addition, it enables the initiation of a separate process for individual people on a list, and for data to be copied from the parent form to the child form.

Note:

If you deploy a solution and the app, library, processname, appgroup, userapp, and/or userlibrary parameter is not found, you will receive an error message.

Properties

Name

Description

Mandatory

Group Name

Modes

app

The name of the app that contains the form and the process you want to launch.

Example:

Direct Value: AppName

Value from solution field: [field1]

Yes

Form Processs

All

library

The library that contains the process or solution you want to launch.

Example:

Direct Value: LibraryName

Value from solution field: [field1]

Yes

Form Process

All

processname

The name of the process or solution you want to launch. This process/solution must be published prior to using the Form Process Launch plug-in, and must have a corresponding form associated with it.

Example:

Direct Value: SolutionName

Value from solution field: [field1]

Yes

Form Process

All

appgroup

A group you associate with the swim lane which is designated in the swim lane property. If appgroup is used, only a single swim lane index can be used. Multiple swim lanes can be assigned if they are assigned through reference data lists.

Example:

Direct Value: CollectionOwner

Value from solution field: [field1]

No

Swimlane Resolver

Appgroup

swimlane[index]

The name of the swim lane in the workflow of the process/solution you want to launch. For App Group Mechanism: The swim lane of the child process to which users returned by the appgroup parameter are assigned while launching the process. Use non-indexedFor Reference Data Mechanism: The swim lane of the child process to which users returned by the usercolumn parameter (at the position specified by the index) are assigned while launching the process.

Example:

Direct Value: swimlaneName

Value from solution field: [field1]

Note that the index value starts from zero (blank), and then continues from 0.

Yes

Swimlane Resolver

All

userapp

The name of the app that contains the reference data solution from which users need to be extracted.

Example:

Direct Value: AppName

Value from solution field: [field1]

No

Swim Lane Resolver

Reference Data, Repeating Group

userlibrary

The library that contains the reference data solution from which users need to be extracted.

Example:

Direct Value: LibraryName

Value from solution field: [field1]

No

Swim Lane Resolver

Reference Data, Repeating Group

usersolution

The reference data solution name from which users need to be extracted.

Example:

Direct Value: SolutionName

Value from solution field: [field1]

No

Swim Lane Resolver

Reference Data, Repeating Group

usercolumn[index]

The name of the reference data solution column featuring users who are assigned to a swim lane at the position specified in the index. This is used only with the Reference Data mechanism.

Example:

Direct Value: SolutionName

Value from solution field: [field1]

If the index value is blank, it can take the direct value, the form field value, or the solution field value. If it is not blank, it can take only the direct value.

The index value starts from zero/blank, and then continues from 0.

No

Swim Lane Resolver

Reference Data, Repeating Group

query

The query to use when retrieving reference data rows.

Example:

Direct Value: [Plant]=@[/my:myFields/my:group1/my:group2/my:field5]

No

Swim Lane Resolver

Reference Data, Repeating Group

groupcolumn

The name of the reference data solution column that contains the App/User Group names.

Example:

Direct Value: testGroupColumn

If both parameters -- usercolumn and groupcolumn -- are defined, the system will look for these two columns in the reference data. This will create a process for all users in each designated group.

Example:

Values in User Column --/-- Values in Group Column

user 1 group 1
user 2 group 1
user 3 group 1
user 1 group 2
user 4 group 2
user 5 group 2
user 6 group 2
user 7 group 3
user 8 group 3

Then, the system will start 3 child processes, one for each group as follows:

First process for users - user1, user2, user3

Second process for users - user1, user4, user5, user6

Third process for users - user7, user8

No

Swim Lane Resolver

Reference Data, Repeating Group

sourcefield[index]

The name of a field in a parent form the value of which is copied into a field in the child form.

The user needs to provide the Xpath of the child form field in the destination field parameter at the same index. The index value starts at 0.

No

Copy Form Fields

All

destinationfield[index]

The XPath of a field in the child form to which the value from a field in the parent form will be copied. Values with a given index will be copied from the sourcefield parameter to the destination field with the same index. The index value starts at 0.

Example:

Direct Value : /my:myFields/my:field2

No

Copy Form Fields

All

singleprocess

Specifies that only a single or multiple process should be launched. If set to Yes, a single process is launched and all users are treated as a team in a team assignment. If set to No, multiple processes are launched - one for each user.

No

Form Solution

All

autosyncfields

Automatically copies the values of all fields named the same thing in the parent and child forms.

If this parameter is set to Yes, there is no need to map the fields (in the sourcefield and destinationfield parameters) with the same name in the child and parent forms.

If autosyncfields is specified, this operation happens before any explicit setting of field values, specified through the sourcefield[index], etc.

No

Copy Form Fields

All

repeatinggroupfieldxpath[index]

The name of the repeating group field in the parent form the value of which is copied into a field in child form. The user needs to provide the Xpath of the child form repeating group field in the fielddestinationxpath parameter at the same index.

The index value starts at 0.

No

Copy Form Fields

All

fielddestinationxpath[index]

The XPath of a field in the child form to which the value from a repeating group field in the parent form is copied. Values with a given index will be copied from repeatinggroupfieldxpath parameter to the fielddestinationxpath field with the same index.

The index value starts at 0. SingleProcess must be set to False for this setting to work. Multiple repeating groups are not supported.

Example:

Direct Value : /my:myFields/my:field2

No

Copy Form Fields

Repeating Group

repeatinggroup

The name of the repeating group in the parent form. SingleProcess must be set to False for this setting to work. 

No

Swimlane Resolver

Repeating Group

resolveswimlanes

A boolean field which indicates whether to run swim lane participant resolvers from the child process. The default value is No. If set to Yes, the child process swim lanes will always be resolved.

If users are resolved by the swim lane parameter as well, users from PR and the swim lane parameter will be merged. If set to No, the swim lane parameter resolves all child process swim lanes and then the PR resolution is not completed.

If all child process swim lanes are not resolved by the swim lane parameter, it behaves as though Yes has been selected.

No

Swimlane Resolver

All

Examples

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

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

  • The Appgroup mechanism starts a form and process for each person in the app/user group.
  • The Reference Data mechanism starts a form and process for each row of a given Reference Data column, and assigns specified users in the list to specified Swim Lanes.
  • 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 Swim Lane(s).

In the Repeating Group mechanism, you can map the repeating section fields in the child form. The parameters used for this are repeatinggroup, fielddestinationxpath[index] and repeatinggroupfieldxpath[index]. 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.

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 plugins 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 background job can process the formprocesslaunch job type.

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

App group example

  • newthread – Yes
  • processname – Comment Form Process
  • app – App1
  • appgroup – Commentator
  • swim lane – Comments

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

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

Reference data example

  • newthread – Yes
  • processname – Comment Form Process
  • app – App1
  • userapp – App2
  • userlibrary – ReferenceDataLibrary1
  • usersolution -- Comment Assignees
  • usercolumn0 -- Commenter
  • swimlane0 – Comments
  • usercolumn1 – UserManager
  • swim lane1 – Managers

This example starts a new process called theComment Form Process running against a new Comment Form for each row of the Reference Data Solution Comment Assignees present in the ReferenceDataLibrary1 library of the App2 app.

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.

Repeating group example 1

  • 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
  • processname – Comment Form Process
  • app – App1
  • userapp – App2
  • userlibrary – ReferenceDataLibrary1
  • usersolution -- Comment Assignees
  • swimlane0 – Comments
  • usercolumn0 – Commenter
  • query -- [Plant]=@[//my:myFields/my:group1/my:group2/my:field3]
  • repeatinggroup -- my:Repeating_Group_2

This example queries the Reference Data Solution Comment Assignees in the app App2 for each row of the repeating group my:Repeating_Group_2.

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 app App1.

The person in the Commenter field returned by the query will be assigned to the Comments swim lane.

Repeating group example 2

  • 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
  • processname – Comment Form Process
  • app – App1
  • userapp – App2
  • userlibrary – ReferenceDataLibrary1
  • usersolution -- Comment Assignees
  • swimlane0 – Comments
  • usercolumn0 – Commenter
  • query -- [Plant]=@[//my:myFields/my:group1/my:group2/my:field3]
  • repeatinggroup -- my:Repeating_Group_2
  • resolveswim lanes - true

This example queries the Reference Data Solution Comment Assignees in the app App2 for each row of the repeating group my:Repeating_Group_2.

If a user is found, it starts a new process called the 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 app (App1).

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.