Update And Trigger Flow¶
Trigger workflow scheduling with updated parameters (the information of the original workflow is not changed; the updated parameters are only used to generate a workflow instance).
Prerequisites¶
The user must be the owner of the workflow.
Both the user and the workflow are not locked.
Request Format¶
POST https://{apigw-address}/batch-processing-service/v2.1/flows
Request Parameters (URI)¶
Name  | 
Location (Path/Query)  | 
Mandatory/Optional  | 
Data Type  | 
Description  | 
|---|---|---|---|---|
userId  | 
Query  | 
Mandatory  | 
String  | 
The user ID. How to get userId>>  | 
orgId  | 
Query  | 
Mandatory  | 
String  | 
The organization ID which the user belongs to. How to get orgId>>  | 
action  | 
Query  | 
Mandatory  | 
String  | 
Fixed value: updateAndTrigger  | 
Request Parameters (Body)¶
Name  | 
Mandatory/Optional  | 
Data Type  | 
Description  | 
|---|---|---|---|
flowId  | 
Mandatory  | 
Integer  | 
The workflow ID.  | 
triggerTime  | 
Mandatory  | 
Long  | 
Specify the trigger time of the workflow, keeping in mind the following rules: 
  | 
parameters  | 
Mandatory  | 
Map  | 
The global parameters that are configured for the workflow to dynamically adapt to the environment changes (in the format of key=value). For more information, see Setting Parameters for a Workflow or SHELL-type of Task>>  | 
Response Parameters¶
Name  | 
Data Type  | 
Description  | 
|---|---|---|
data  | 
FlowInstanceId Struct  | 
The details of a workflow instance. For more information, see FlowInstanceId Struct  | 
Error Code¶
Code  | 
Message  | 
Description  | 
|---|---|---|
62104  | 
This workflow has no task. You cannot trigger it.  | 
The workflow does not have any task for you to trigger.  | 
62109  | 
Internal server exception  | 
Internal server exception.  | 
For other error codes, see Common Error Codes.
Samples¶
Request Sample¶
url: https://{apigw-address}/batch-processing-service/v2.1/ flows?action=updateAndTrigger&userId=yourUserId&orgId=yourOrgId
method: POST
{
    "flowId":3377,
    "triggerTime":1574385824000,
  "parameters":[{"key":"REPLACE","value":"ddee"}]
}
Return Sample¶
{
  "code": 0,
  "msg": "OK",
  "data": {
    "flowInstanceId": "2791-19700101000000"
  }
}
Java SDK Sample¶
import com.alibaba.fastjson.JSONObject;
import com.envision.apim.poseidon.config.PConfig;
import com.envision.apim.poseidon.core.Poseidon;
import com.envision.apim.poseidon.request.PoseidonRequest;
import org.junit.Test;
import java.util.HashMap;
import java.util.Map;
public class SampleCode{
    public static 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;
        }
    }
    @Test
    public void updateAndtriggerTest(){
        //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 = "AccessKey of your APP";
        String secretKey = "SecretKey of your APP";
        //Create a request and save the required parameters in the map of the Query.
        Request request = new Request();
        HashMap<String,Object> hashMap = new HashMap<String, Object>(2);
        hashMap.put("flowId", 3377);
        hashMap.put("triggerTime", System.currentTimeMillis()+60*1000);
        hashMap.put("parameters", "[{\"key\":\"REPLACE\",\"value\":\"ddee\"}]");
        request.setBodyParam(hashMap );
        request.setMethod("POST");
        try {
            JSONObject response = Poseidon.config(PConfig.init().appKey(accessKey).appSecret(secretKey).debug())
                    .url("https://{apigw-address}/batch-processing-service/v2.1/flows")
                    .queryParam("orgId", "yourOrgId")
                    .queryParam("userId", "yourUserId")
                    .queryParam("action", "updateAndTrigger")
                    .getResponse(request, JSONObject.class);
            System.out.println(response);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}