# STARTPROCESS

## Overview

The **STARTPROCESS** workflow application lets you launch a new request with the corresponding parameters. It provides a simple solution for inter-process communications.

There are three ways to use STARTPROCESS to launch a new request:

* Process ID
* Process name with process version
* Process name with test

## Parameters

### Process

| **Parameter**     | **Type** | **Direction** | **Description**                                                                                                           |
| ----------------- | -------- | ------------- | ------------------------------------------------------------------------------------------------------------------------- |
| `PROCESS_ID`      | Numeric  | IN            | Process ID of the request to launch (to be used independently, without the other parameters)                              |
| `PROCESS_NAME`    | Text     | IN            | Process name of the request to launch                                                                                     |
| `PROCESS_VERSION` | Numeric  | IN            | Version of the process to launch                                                                                          |
| `TEST`            | Text     | IN            | <p>Test mode</p><ul><li><code>Y</code>: Launch a test version</li><li><code>N</code>: Launch the active version</li></ul> |

### Optional parameters

| **Parameter**          | **Type** | **Direction** | **Description**                    |
| ---------------------- | -------- | ------------- | ---------------------------------- |
| `REQUEST_ID`           | Numeric  | OUT           | Returns the ID of the new request  |
| `IMPERSONATE_USERNAME` | Text     | IN            | Username of the impersonating user |

You can define other parameters as needed in the workflow process to launch; for example `COMPANY` (text type IN parameter), e.g. `ACME_COMPANY`.

## Examples

### Process ID

| **Parameter** | **Type** | **Direction** | **Description**                                                                                               |
| ------------- | -------- | ------------- | ------------------------------------------------------------------------------------------------------------- |
| `PROCESS_ID`  | Numeric  | IN            | Send value of `MY_PROCESS_ID` (a numeric process data containing the ID of the process to start, e.g. `1320`) |

### Process name with process version

| **Parameter**     | **Type** | **Direction** | **Description**                                                                                                             |
| ----------------- | -------- | ------------- | --------------------------------------------------------------------------------------------------------------------------- |
| `PROCESS_NAME`    | Text     | IN            | Send value of `MY_PROCESS_NAME` (a text process data containing the name of the process to start, e.g. `LEAVE_APPLICATION`) |
| `PROCESS_VERSION` | Numeric  | IN            | Send value of `MY_PROCESS_VERSION` (a numeric process data containing the version number of the process to start, e.g. `2`) |

### Process name with test

| **Parameter**  | **Type** | **Direction** | **Description**                                                                                                             |
| -------------- | -------- | ------------- | --------------------------------------------------------------------------------------------------------------------------- |
| `PROCESS_NAME` | Text     | IN            | Send value of `MY_PROCESS_NAME` (a text process data containing the name of the process to start, e.g. `LEAVE_APPLICATION`) |
| `TEST`         | Text     | IN            | Send value of `MY_TEST` (e.g. `Y`)                                                                                          |
