You can create a ProcessInstance for a ProcessTemplate which is already activated. After the ProcessInstance is created, it is not available until it is activated.You must create and activate a ProcessTemplate before creating a ProcessInstance.
A ProcessInstance serves as the working copy of the ProcessTemplate, and can be created by:
BLServer
ProcessTemplate
BP Server provides a single API to create and activate the ProcessInstance. However, you need not activate the ProcessInstance when you create it. You can activate it later when required.
The state of the ProcessInstance is governed by the parameter activate (type Boolean). If you want to create and activate the ProcessInstance, you must set the parameter to true. If you want to create but not activate the ProcessInstance, you must set the parameter to false.
At the time of creation, you can avoid activating the ProcessInstance by setting the Boolean parameter activate to "false". Later, when required, the ProcessInstance can be activated by invoking the activate() API.
Note: The characters *, !, #, @, \, ', ", /, ?, :, %, $, < and > are restricted characters that cannot be specified in the process instance name. However, underscores can be used.