# Jump
> Obtaining the nodes that can be jumped to,  then jump to the selected  node among them.

![Process Operation](../../assets/img/rest/flowaction/goto.png)
## Jump Node List
Interface Request Invoking Description<br>
HTTP Request Method: POST <br>
Request Address: http://127.0.0.1:8080/demo/horizon/workflow/rest/flow/support/action${suffix} <br>
**Post data description:**
```
{
	"accessToken":"",
    "trackId": "HZ28858f8103505e01810a555ed301f3",
    "workId": "HZ28858f8103505e01810a555ed301f2",
    "actionData": {
		"operate":"goto", 
		"operateClazz":"com.horizon.wf.action.ActionGoto"
	}
}
```
Request Parameter Description:

| Parameter   | Required                                          | Description   |
|-------------|---------------------------------------------------|---------------|
| accessToken | Yes    Call interface credentials, unique user ID |
| workId      | Yes                                               | Instance ID   |
| trackId     | Yes                                               | Flow track ID |
actionData Parameter:

| Parameter    | Required | Description                                                |
|--------------|----------|------------------------------------------------------------|
| operate      | Yes      | Operation identification, fixed value 'Goto'               |
| operateClazz | Yes      | Jump operation class path:com.horizon.wf.action.ActionGoto |
**Example of returned results：**
```
{
  "nextNodeId": "",
  "nextNodes": [
    {
      "authors": {},
      "isDone": "false",
      "isSelect": "false",
      "memo": "",
      "nodeGroup": "Node0",
      "nodeId": "Node2",
      "nodeKey": "Node2",
      "nodeName": "Task2",
      "nodeStatus": "0",
      "selectId": "Node2",
      "selectName": "Task2",
      "timeLimit": "0",
      "timeLimitType": "1"
    },
    {
      "authors": {},
      "isDone": "false",
      "isSelect": "false",
      "memo": "",
      "nodeGroup": "Node0",
      "nodeId": "Node3",
      "nodeKey": "Node3",
      "nodeName": "Task3",
      "nodeStatus": "0",
      "selectId": "Node3",
      "selectName": "Task3",
      "timeLimit": "0",
      "timeLimitType": "1"
    }
  ],
  "operate": "goto",
  "operateClazz": "com.horizon.wf.action.ActionGoto",
  "operateFlag": "1",
  "operateMsg": "Please select the node to jump to",
  "status": 2,
  "workId": "HZ28858f8103505e01810a555ed301f2"
}
```
**Result parameter description:**

| Parameter    | Type   | Description                                                                        |
|--------------|--------|------------------------------------------------------------------------------------|
| nextNodeId   | String | Next node ID (used when the next node ID is known and there is only one next node) |
| nextNodes    | List   | List of next nodes to be selected                                                  |
| operate      | String | Jump operation identification                                                      |
| operateClazz | String | Jump operation implementation class                                                |
| operateFlag  | String | Action flag, 1: closed, 0, 1: normal submission                                    |
| operateMsg   | String | Return operation information                                                       |
| status       | int    | Process operation status code                                                      |
| workId       | String | Instance ID                                                                        |
*nextNodes  parameter description：*

| Parameter     | Type   | Description                                                                                                                                    |
|---------------|--------|------------------------------------------------------------------------------------------------------------------------------------------------|
| authors       | Map    | The key in the next node operator map is Primary/Secondary/Reader/. If there is no value, it indicates that value of key has not been set yet. |
| isDone        | String | Has it already passed by?                                                                                                                      |
| isSelect      | String | Has it been selected?                                                                                                                          |
| memo          | String | memo                                                                                                                                           |
| nodeGroup     | String | Node grouping, with no value for a single node. When the current node has branch nodes, the value is the previous node ID                      |
| nodeId        | String | Node ID                                                                                                                                        |
| nodeKey       | String | Node primary key                                                                                                                               |
| nodeName      | String | Node name                                                                                                                                      |
| nodeStatus    | String | Node status, limited value;0. Success;1. Select operator;2. Select node;3. Operator not found;4. Next node not found                           |
| selectId      | String | Node ID to be selected                                                                                                                         |
| selectName    | String | Node name to be selected                                                                                                                       |
| timeLimit     | String | Node processing deadline                                                                                                                       |
| timeLimitType | String | Processing time limit type, limit value; 0: Calendar day;1: working day.                                                                       |

## Jump Node Settings
Interface Request Invoking Description <br>
HTTP Request Method: POST <br>
Request Address: http://127.0.0.1:8080/demo/horizon/workflow/rest/flow/support/action${suffix} <br>
**Post data description:**
```
{
  "accessToken": "",
  "workId": "HZ28858f8103505e01810a6c7afe022b",
  "trackId": "HZ28858f8103505e01810a6c7afe022c",
  "actionData": {
    "operate": "goto",
    "operateClazz": "com.horizon.wf.action.ActionGoto",
    "operateFlag": 0,
    "nextNodes": [
      {
        "authors": {
          "SecondAuthor": {
            "authorFlowVar": "",
            "authorId": "SecondAuthor",
            "authorName": "Secondary Operator",
            "freeArea": "",
            "isDefUser": "false",
            "isFree": "true",
            "isSelect": "true",
            "isUser": "false",
            "selectType": "checkbox",
            "selectAuthor": "U_HZ28821856ef63420156ef6342a20002/D_HZ28821856ef63420156ef6342a20001",
            "selectAuthorName": "User01(Test Department0)"
          },
          "Reader": {
            "authorFlowVar": "",
            "authorId": "Reader",
            "authorName": "Reader",
            "freeArea": "",
            "isDefUser": "false",
            "isFree": "true",
            "isSelect": "true",
            "isUser": "false",
            "selectType": "checkbox",
            "selectAuthor": "U_HZ28821856ef63420156ef6342a20004/D_HZ28821856ef63420156ef6342a20001",
            "selectAuthorName": "User03(Test Department0)"
          },
          "Author": {
            "authorFlowVar": "",
            "authorId": "Author",
            "authorName": "Primary",
            "freeArea": "",
            "isDefUser": "false",
            "isFree": "true",
            "isSelect": "true",
            "isUser": "false",
            "selectType": "radio",
            "selectAuthor": "U_admin/D_HZ28821856ef63420156ef63429c0000",
            "selectAuthorName": "Admin(Huizheng Software)"
          }
        },
        "isDone": "false",
        "isSelect": "true",
        "nodeId": "Node3",
        "nodeKey": "Node3",
        "nodeName": "Task3",
        "nodeStatus": "4",
        "selectId": "Node3",
        "selectName": "Task3",
        "timeLimit": "0",
        "timeLimitType": "1"
      }
    ]
  }
}
```
Request Parameter Description:

| Parameter   | Required | Description                                    |
|-------------|----------|------------------------------------------------|
| accessToken | Yes      | Invoking interface credentials, unique user ID |
| workId      | Yes      | Instance ID                                    |
| trackId     | Yes      | Flow track ID                                  |
| actionData  | Yes      | Process operation JSON data                    |
actionData Parameter:

| Parameter    | Required | Description                                                                                      |
|--------------|----------|--------------------------------------------------------------------------------------------------|
| operate      | Yes      | Operation identification, fixed value 'goto"                                                     |
| operateClazz | Yes      | Specific implementation class for jump operations, limit values:com.horizon.wf.action.ActionGoto |
| operateFlag  | Yes      | Operation identifier, fixed value '0'                                                            |
| nextNodes    | Yes      | List of nodes to be selected                                                                     |
nextNodes  parameter description：

| Parameter     | Required | Description                                                                                                                                              |
|---------------|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------|
| authors       | Yes      | The 'key' in the operator map of the next node is Primary/Secondary/Reader/, and the value of 'key' is the object parameter of Primary/Secondary/Reader/ |
| isDone        | No       | Has it already passed by?                                                                                                                                |
| isSelect      | Yes      | Has it been selected?                                                                                                                                    |
| nodeId        | Yes      | Node ID                                                                                                                                                  |
| nodeKey       | Yes      | Node primary key                                                                                                                                         |
| nodeName      | No       | Node name                                                                                                                                                |
| nodeStatus    | No       | Node status, can be ignored during RESTful submission                                                                                                    |
| selectId      | Yes      | Node ID to be selected                                                                                                                                   |
| selectName    | No       | Node name to be selected                                                                                                                                 |
| timeLimit     | No       | Node processing deadline                                                                                                                                 |
| timeLimitType | No       | Processing time limit type, limit value; 0: Calendar day;1: working day.                                                                                 |
Author/SecondAuthor/Reader/object  parameter description in ‘Authors’：

| Parameter        | Required | Description                                                                                                |
|------------------|----------|------------------------------------------------------------------------------------------------------------|
| authorFlowVar    | No       | Process variables                                                                                          |
| authorId         | No       | Operator type ID, limit value: Author: Primary operator; SecondAuthor: Secondary operator；Reader: Reader   |
| authorName       | No       | Operator name, limit value:Primary,Secondary,Reader                                                        |
| freeArea         | No       | Scope of free choice                                                                                       |
| isDefUser        | No       | Select from the process definition list                                                                    |
| isFree           | No       | Whether to choose freely?                                                                                  |
| isSelect         | No       | Is it allowed to select the operator?                                                                      |
| isUser           | No       | Is it allowed to only select personnel?                                                                    |
| selectType       | No       | Personnel selection type, limited value: Radio: Single selection; Checkbox: Multiple selection.            |
| selectAuthor     | Yes      | The selected operator ID of the node; When there are no secondary/readers, parameters can be left blank.   |
| selectAuthorName | Yes      | The selected operator name of the node; When there are no secondary/readers, parameters can be left blank. |
**Example of returned results：**
```
{
  "nextNodeId": "Node3",
  "nextNodes": [
    {
      "authors": {
        "SecondAuthor": {
          "authorFlowVar": "",
          "authorId": "SecondAuthor",
          "authorName": "Secondary operator",
          "freeArea": "",
          "isDefUser": "false",
          "isFree": "true",
          "isSelect": "false",
          "isUser": "false",
          "selectAuthor": "U_HZ28821856ef63420156ef6342a20002/D_HZ28821856ef63420156ef6342a20001",
          "selectAuthorName": "User01(Test Department0)",
          "selectType": "checkbox"
        },
        "Reader": {
          "authorFlowVar": "",
          "authorId": "Reader",
          "authorName": "Reader",
          "freeArea": "",
          "isDefUser": "false",
          "isFree": "true",
          "isSelect": "false",
          "isUser": "false",
          "selectAuthor": "U_HZ28821856ef63420156ef6342a20004",
          "selectAuthorName": "User03",
          "selectType": "checkbox"
        },
        "Author": {
          "authorFlowVar": "",
          "authorId": "Author",
          "authorName": "Primary operator",
          "freeArea": "",
          "isDefUser": "false",
          "isFree": "true",
          "isSelect": "false",
          "isUser": "false",
          "selectAuthor": "U_admin/D_HZ28821856ef63420156ef63429c0000",
          "selectAuthorName": "Admin(Huizheng Software)",
          "selectType": "radio"
        }
      },
      "isDone": "false",
      "isSelect": "true",
      "memo": "",
      "nodeGroup": "Node0",
      "nodeId": "Node3",
      "nodeKey": "Node3",
      "nodeName": "Task3",
      "nodeStatus": "0",
      "selectId": "Node3",
      "selectName": "Task3",
      "timeLimit": "0",
      "timeLimitType": "1"
    }
  ],
  "operate": "goto",
  "operateClazz": "com.horizon.wf.action.ActionGoto",
  "operateFlag": "0",
  "operateMsg": "jumped successful",
  "operateStatus": "success",
  "reOpen": "true",
  "status": 0,
  "trackId": "HZ28858f8103505e01810a6c7afe022c",
  "workId": "HZ28858f8103505e01810a6c7afe022b"
}
```
**Result parameter description:**

| Parameter     | Type   | Description                                                                        |
|---------------|--------|------------------------------------------------------------------------------------|
| nextNodeId    | String | Next node ID (used when the next node ID is known and there is only one next node) |
| nextNodes     | List   | List of next nodes to be selected                                                  |
| operate       | String | Jump operation identification                                                      |
| operateClazz  | String | Jump operation class path                                                          |
| operateFlag   | String | Operation flag -1: Closed, 0, 1: Normal submission                                 |
| operateMsg    | String | Return operation information                                                       |
| operateStatus | String | Process operation results                                                          |
| reOpen        | String | Whether to reopen, can be ignored                                                  |
| status        | int    | Process operation status code                                                      |
| trackId       | String | Flow track ID                                                                      |
| workId        | String | Instance ID                                                                        |
*nextNodes  parameter description：*

| Parameter     | Type   | Description                                                                                                                                              |
|---------------|--------|----------------------------------------------------------------------------------------------------------------------------------------------------------|
| authors       | Map    | The 'key' in the operator map of the next node is Primary/Secondary/Reader/, and the value of 'key' is the object parameter of Primary/Secondary/Reader/ |
| isDone        | String | Has it already passed by?                                                                                                                                |
| isSelect      | String | Has it been selected?                                                                                                                                    |
| memo          | String | memo                                                                                                                                                     |
| nodeGroup     | String | Node grouping, with no value for a single node. When the current node has branch nodes, the value is the previous node ID                                |
| nodeId        | String | Node ID                                                                                                                                                  |
| nodeKey       | String | Node primary key                                                                                                                                         |
| nodeName      | String | Node name                                                                                                                                                |
| nodeStatus    | String | Node status, limited value: 0. Success;1. Select operator; 2. Select node; 3. Operator not found; 4. Next node not found                                 |
| selectId      | String | Node ID to be selected                                                                                                                                   |
| selectName    | String | Node name to be selected                                                                                                                                 |
| timeLimit     | String | Node processing deadline                                                                                                                                 |
| timeLimitType | String | Processing time limit type, limit value; 0: Calendar day;1: working day.                                                                                 |
*authors中Author/SecondAuthor/Reader  parameter description：*

| Parameter        | Type   | Description                                                                                |
|------------------|--------|--------------------------------------------------------------------------------------------|
| authorFlowVar    | String | Process variables                                                                          |
| authorId         | String | Operator ID, fixed value:Primary/Secondary/Reader                                          |
| authorName       | String | Operator:Primary operator,Secondary operator,Reader                                        |
| freeArea         | String | Scope of free choice                                                                       |
| isDefUser        | String | Select from the process definition list                                                    |
| isFree           | String | Whether to choose freely?                                                                  |
| isSelect         | String | Is it allowed to select the operator ?                                                     |
| isUser           | String | Is it allowed to only select personnel?                                                    |
| selectAuthor     | String | The selected operator ID of the node                                                       |
| selectAuthorName | String | The selected operator name of the node                                                     |
| selectType       | String | Personnel selection type, limited values; Radio: single choice; Checkbox: Multiple choices |
