Suspending Process Instances

You can programmatically suspend a running process instance by using the Java API and web services. When suspended, a process instance is placed in a suspending state and then a suspended state. Suspending a process instance is typically performed to reduce load on LiveCycle. That is, if a long-lived process is running and requires input from an employee who is unavailable for a week, the process can be suspended for that time period. When the employee is available, the process can be put back into a running state.

Summary of steps

To suspend a process instance, perform the following tasks:

  1. Include project files.

  2. Create a ProcessManager Client API object.

  3. Suspend the process instance.

  4. Verify that the process instance is in a suspended state.

Include project files

Include necessary files into your development project. If you are creating a client application by using Java, include the necessary JAR files. If you are using web services, make sure that you include the proxy files.

Create a ProcessManager Client API object

Before you can programmatically search for process instances, you must create a TaskManagerQueryService object.

Suspend the process instance

To suspend a process, ensure that it is a running state. If you attempt to suspend a process that is not in a running state, you will create an exception. To successfully suspend a process instance, you require the process invocation identifier that can be obtained when invoking a long-lived process by using the Invocation API. (See Invoking Human-Centric Long-Lived Processes.)

Suspend process instances using the Java API

Suspend a process instance by using the ProcessManager API (Java):

  1. Include project files

    Include client JAR files, such as adobe-workflow-client-sdk.jar, in your Java project’s class path.

  2. Create a ProcessManager Client API object

    • Create a ServiceClientFactory object that contains connection properties.

    • Create a ProcessManager object by using its constructor and passing a ServiceClientFactory object.

  3. Suspend the process instance

    Suspend the process instance by invoking the ProcessManager object’s suspendProcess method and passing a string value that specifies the process invocation identifier value. This value can be obtained when invoking a process by using the Invocation API.

Suspend process instances using the web service API

Suspend a process instance by using the ProcessManager API (web service):

  1. Include project files

    • Create a Microsoft .NET client assembly that consumes the ProcessManager service WSDL. To create a proxy object that lets you invoke its operations by using Base64 encoding, specify this WSDL definition:

      http://localhost:8080/soap/services/ProcessManager?WSDL
    • Reference the Microsoft .NET client assembly.

  2. Create a ProcessManager Client API object

    • Using the Microsoft .NET client assembly, create a ProcessManagerService object by invoking its default constructor.

    • Set the ProcessManagerService object’s Credentials data member with a System.Net.NetworkCredential value.

  3. Suspend the process instance

    Suspend the process instance by invoking the ProcessManagerService object’s suspendProcess method and passing a string value that specifies the process invocation identifier value. This value can be obtained when invoking a process by using the Invocation API.