Get Flow Instance

Get the information of a specified workflow instance.

Prerequisites

The user must be an EnOS user.

Request Format

GET https://{apigw-address}/dataflow-batch-service/v2.0/flowInstances?action=get&flowInstId={}&userId={}&orgId={}

Request Parameters (URI)

Name Location (Path/Query) Required or Not Data Type Description
flowInstId Query true String ID of the workflow instance
userId Query true String User ID. How to get userId>>
orgId Query true String Organization ID which the user belongs to. How to get orgId>>

Response Parameters

Name Data Type Description
data FlowInstance Struct Detailed information of the workflow instance. See FlowInstance Struct

FlowInstance Struct

Sample

{
    "instanceId": "2438-201907261239",
    "flowId": 2438,
    "flowName": "rew",
    "freq": "0 1/1 * * * ? *",
    "cycle": "mi",
    "parameters": "[]",
    "doAs": "db_xxxx",
    "graph": "{"creator":"xxxxxx","freq":"0 1/1 * * * ? *","alert_mode":3,"owners":";xxxxxx;","cycle":"mi","do_as":"db_xxxx","flows":[],"alert_to":"","name":"rew","inst_id":"2438-201907261239","id":2438,"relations":[],"parameters":"[]","app_id":"","tasks":[{"task_name":"fr","task_inst_id":"104452-201907261239","x":0.0198,"y":0.0045,"task_id":104452,"node_id":"t_104452","status":"SUCCESS"}]}",
    "status": 0,
    "statusDesc": "INIT",
    "triggerTime": "2019-07-26 20:39:00",
    "startTime": "2019-07-26 12:39:37",
    "endTime": "2019-07-26 12:39:42",
    "timestamp": "2019-07-26 12:38:30.0",
    "virtual": false,
    "owner": "xxxxx",
    "alertMode": 3,
    "calDt": "2019-07-25",
    "hasEditPri": false,
    "hasReadPri": true
}

Parameters

Name Data Type Description
instanceId String ID of the workflow instance
flowId Integer Workflow ID
flowName Integer Name of the workflow
freq String If CronTab syntax is used when specifying the time to start the workflow in a scheduling cycle, a 7-character CronTab expression is used. For more information about CronTab, see http://cron.qqe2.com/
cycle String Scheduling cycle (M: Month; W: Week; D: Day; H: Hour; mi: Minute)
parameters List<Map<key,value>> Global parameters that are configured for the workflow to dynamically adapt to the environment changes (in the format of key=value).
doAs String OU account which the workflow belongs to
graph InstanceGraph Struct Task dependency of the workflow instance. See InstanceGraph Struct
status Integer Task running status
statusDesc String Description of task running status
triggerTime String Planned triggering time of the task
startTime String Start time of the task
endTime String End time of the task
timestamp String Timestamp
virtual Boolean Whether the workflow instance is a virtual instance
owner String Owner of the workflow instance
alertMode Integer Alert mode (0: Not enabled; 1: Email; 2: SMS; 3: Email and SMS)
calDt String Business date (date from which the data starts to be processed by the workflow)
hasEditPri Boolean Whether the user has editing permission to the workflow
hasReadPri Boolean Whether the user has reading permission to the workflow

InstanceGraph Struct

Sample

{
  "creator":"xxxxxx",
  "freq":"0 0 0 * * ? *",
  "alert_mode":3,
  "owners":"xxxxxx",
  "cycle":"D",
  "do_as":"data_oxxxxxx",
  "flows":[],
  "alert_to":"",
  "name":"21",
  "inst_id":"2809-20190812080700",
  "id":2809,
  "relations":[],
  "parameters":"[]",
  "app_id":"",
  "tasks":
      [{
      "task_name":"tass",
      "task_inst_id":"104890-20190812080700",
      "x":0.002,
      "y":0.002,
      "task_id":104890,
      "node_id":"t_104890",
      "status":"CANCEL"}]
}

Parameters

Name Data Type Description
creator String User who created the workflow instance
freq String If CronTab syntax is used when specifying the time to start the workflow in a scheduling cycle, a 7-character CronTab expression is used. For more information about CronTab, see http://cron.qqe2.com/
alertMode Integer Alert mode (0: Not enabled; 1: Email; 2: SMS; 3: Email and SMS)
owners String Owner of the workflow instance
cycle String Scheduling cycle (M: Month; W: Week; D: Day; H: Hour; mi: Minute)
do_as String OU account which the workflow belongs to
flows List<FlowInstanceGraph> Workflow dependency of the workflow instance. See FlowInstanceGraph Struct
alertTo String Receiver of alerts
name String Name of workflow
inst_id Integer ID of the workflow instance
id Integer Workflow ID
relations List<Relation> Collection of task relations, with each element representing the upstream and downstream dependency between tasks in the workflow. See Relation Struct
parameters List<Map<key,value>> Parameters that are configured for the task to dynamically adapt to the environment changes (by the format of key=value)
appId String Null string
tasks List<TaskInstanceGraph> Collection of all task instances in the workflow instance. See TaskInstanceGraph Struct

FlowInstanceGraph Struct

Sample

{
  "flow_id":"2809",
  "flow_name":"21",
  "node_id":"f_2809",
  "is_virtual":false,
  "x":0.0125,
  "y":0.0015,
  "flow_inst_id":"2809-20190812101300",
  "status":"NONE"
}

Parameters

Name Data Type Description
flow_id String Workflow ID
flow_name String Name of workflow
node_id String ID of the node that is part of other workflows
is_virtual Boolean Whether the workflow is a virtual workflow
x Double X-axis of the node on the configuration panel of the workflow
y Double Y-axis of the node on the configuration panel of the workflow
flow_inst_id String ID of workflow instance

TaskInstanceGraph Struct

Sample

{
  "task_name":"tass",
  "task_inst_id":"105048-20190812101300",
    "x":0.0132,
    "y":0.008100000381469727,
    "task_id":"104575",
    "node_id":"t_104575",
  "status":"INIT"
}

Parameters

Name Data Type Description
task_name String Name of task
task_inst_id String ID of task instance
x Double X-axis of the task on the configuration panel
y Double X-axis of the task on the configuration panel
task_id String Task ID
node_id String Node ID (Note: Node ID is not the same with task ID, because there are task nodes and workflow nodes that have dependency relations in a workflow)
status String Status of the task instance

Error Code

See Common Error Codes.

Sample

Request Sample

url: https://{apigw-address}/dataflow-batch-service/v2.0/flowInstances?action=get&flowInstId=2809-20190808093200&userId={}&orgId={}

method: GET

Return Sample

{
  "status": 0,
  "msg": " Success",
  "data": {
    "instanceId": "2809-20190808093200",
    "flowId": 2809,
    "flowName": "21",
    "freq": "0 0 0 * * ? *",
    "cycle": "D",
    "parameters": "[]",
    "doAs": "data_oxxxxxxx",
    "graph": "{"creator":"xxxxx","freq":"0 0 0 * * ? *","alert_mode":3,"owners":"xxxxxxx","cycle":"D","do_as":"data_oxxxxxx","flows":[],"alert_to":"","name":"21","inst_id":"2809-20190808093200","id":2809,"relations":[],"parameters":"[]","app_id":"","tasks":[{"task_name":"tass","task_inst_id":"104890-20190808093200","x":0.002,"y":0.002,"task_id":104890,"node_id":"t_104890","status":"SUCCESS"}]}",
    "status": 1,
    "statusDesc": "SUCCESS",
    "triggerTime": "2019-08-08 09:32:12",
    "startTime": "2019-08-08 09:32:30",
    "endTime": "2019-08-08 09:32:32",
    "timestamp": "2019-08-08 09:34:36.0",
    "virtual": false,
    "owner": "xxxxxx",
    "alertMode": 3,
    "calDt": "2019-08-07",
    "hasEditPri": true,
    "hasReadPri": true
  }
}

Java SDK Sample

import com.alibaba.fastjson.JSONObject;
import com.envision.apim.poseidon.config.PConfig;
import com.envision.apim.poseidon.core.Poseidon;

public class Request extends PoseidonRequest {
    public void setQueryParam(String key, Object value){
        QueryParams().put(key, value);
    }
    public void setHeaderParam(String key, String value){
        headerParams().put(key, value);
    }
    public void setBodyParam(Map<String, Object> bodyPara){
        bodyParams().putAll(bodyPara);
    }
    public void setMethod(String method) {
        this.method = method;
    }
    private String method;
    public String baseUri() {
        return "";
    }
    public String method() {
        return method;
    }
}

public void flowInstanceTest(){
        //1. Select Application Registration from the left navigation bar of EnOS Console.
        //2. Open the App Detail page to get the AccessKey and SecretKey of the application.
        String accessKey = "**************";
        String secretKey = "**************";

        //Create a request and save the required parameters in the map of the Query.
        Request request = new Request();
        request.setQueryParam("flowInstId","2924-20190812013400");
        request.setQueryParam("userId","your_userId");
        request.setQueryParam("orgId","your_orgId");
        request.setMethod("GET");

        try {
            JSONObject response = Poseidon.config(PConfig.init().appKey(accessKey).appSecret(secretKey).debug())
                    .url("https://{apigw-address}/dataflow-batch-service/v2.0/flowInstances?action=get")
                    .getResponse(request, JSONObject.class);

            System.out.println(response);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }