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();
        }
    }