宜搭流程审批单操作流程
预期效果
发起审批

完成审批
撤销审批

同意审批

流程简介
1.
2.
1.
2.
3.
1.
2.
3.
步骤一:创建企业内部应用
步骤二:获取AppKey和AppSecret

步骤三:添加接口权限

步骤四:获取应用访问凭证accessToken
public void getAccessToken() throws Exception {
Config config = new Config();
config.protocol = "https";
config.regionId = "central";
com.aliyun.dingtalkoauth2_1_0.Client client = new com.aliyun.dingtalkoauth2_1_0.Client(config);
GetAccessTokenRequest accessTokenRequest = new GetAccessTokenRequest()
.setAppKey("din*********hgn")
.setAppSecret("9G_O************mBkhgGIO");
GetAccessTokenResponse accessToken = client.getAccessToken(accessTokenRequest);
System.out.println(JSON.toJSONString(accessToken.getBody()));
}
步骤五:调用服务端宜搭相关API
1.
public void processesInstancesStart() throws Exception {
Config config = new Config();
config.protocol = "https";
config.regionId = "central";
com.aliyun.dingtalkyida_1_0.Client client = new com.aliyun.dingtalkyida_1_0.Client(config);
StartInstanceHeaders startInstanceHeaders = new StartInstanceHeaders();
startInstanceHeaders.xAcsDingtalkAccessToken = "accessToken";
StartInstanceRequest startInstanceRequest = new StartInstanceRequest()
.setAppType("APP_IE*****SY47KISEL8RXQ")
.setSystemToken("TD666Z91R3A5******JY150439DO3T0A2OAALWS")
.setUserId("manager7675")
.setLanguage("zh_CN")
.setFormUuid("FORM-4W8667*******C7UFKA0Q5TH83BZJ2OAALQ")
.setFormDataJson("{\"textField_laao2rcb\": \"测试单行输入框\",\"textareaField_laao2rcc\": \"测试多行输入框\",\"numberField_laao2rcd\": 50,\"radioField_laao2rce\": \"选项一\",\"checkboxField_laao2rcf\": [\"选项一\",\"选项二\"],\"cascadeDateField_laao2rcl\": [\"1668063209000\",\"1668066809000\"],\"attachmentField_laao2rcm\": [{\"downloadUrl\":\"/ossFileHandle?appType=APP_IE*****SY47KISEL8RXQ&fileName=APP_IE*****SY47KISEL8RXQ_bWFuYWdlcjc2NzVfNU85NjZHRDFQQkM1NjI0SjdJTUZQNFUwU0E4STM1SkVYT0FBTFVX.png&instId=&type=download&originalFileName=mylike.png\",\"name\":\"mylike.png\",\"previewUrl\":\"/ossFileHandle?appType=APP_IE*****SY47KISEL8RXQ&fileName=APP_IE*****SY47KISEL8RXQ_bWFuYWdlcjc2NzVfNU85NjZHRDFQQkM1NjI0SjdJTUZQNFUwU0E4STM1SkVYT0FBTFVX.png&instId=&type=open\",\"size\":5909,\"url\":\"/ossFileHandle?appType=APP_IE*****SY47KISEL8RXQ&fileName=APP_IE*****SY47KISEL8RXQ_bWFuYWdlcjc2NzVfNU85NjZHRDFQQkM1NjI0SjdJTUZQNFUwU0E4STM1SkVYT0FBTFVX.png&instId=&type=download\"}],\"employeeField_laao2rcn\":[\"manager7675\"]}")
.setProcessCode("TPROC--4W8667D1*******UFKA0Q5TH83CZJ2OAALR");
try {
StartInstanceResponse startInstanceResponse = client.startInstanceWithOptions(startInstanceRequest, startInstanceHeaders, new RuntimeOptions());
System.out.println(JSON.toJSONString(startInstanceResponse.getBody()));
} catch (TeaException err) {
if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
// err 中含有 code 和 message 属性,可帮助开发定位问题
System.out.println(err.code);
System.out.println(err.message);
}
} catch (Exception _err) {
TeaException err = new TeaException(_err.getMessage(), _err);
if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
// err 中含有 code 和 message 属性,可帮助开发定位问题
System.out.println(err.code);
System.out.println(err.message);
}
}
}
2.
1.
public void instancesTerminate() throws Exception {
Config config = new Config();
config.protocol = "https";
config.regionId = "central";
com.aliyun.dingtalkyida_1_0.Client client = new com.aliyun.dingtalkyida_1_0.Client(config);
TerminateInstanceHeaders terminateInstanceHeaders = new TerminateInstanceHeaders();
terminateInstanceHeaders.xAcsDingtalkAccessToken = "accessToken";
TerminateInstanceRequest terminateInstanceRequest = new TerminateInstanceRequest()
.setAppType("APP_IE*****SY47KISEL8RXQ")
.setSystemToken("TD666Z91R3A5******JY150439DO3T0A2OAALWS")
.setUserId("manager7675")
.setLanguage("zh_CN")
.setProcessInstanceId("9a198552-306c-49f3-88b2-52d90843018b");
try {
client.terminateInstanceWithOptions(terminateInstanceRequest, terminateInstanceHeaders, new RuntimeOptions());
} catch (TeaException err) {
if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
// err 中含有 code 和 message 属性,可帮助开发定位问题
System.out.println(err.code);
System.out.println(err.message);
}
} catch (Exception _err) {
TeaException err = new TeaException(_err.getMessage(), _err);
if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
// err 中含有 code 和 message 属性,可帮助开发定位问题
System.out.println(err.code);
System.out.println(err.message);
}
}
}
2.
public void instancesDelete() throws Exception {
Config config = new Config();
config.protocol = "https";
config.regionId = "central";
com.aliyun.dingtalkyida_1_0.Client client = new com.aliyun.dingtalkyida_1_0.Client(config);
DeleteInstanceHeaders deleteInstanceHeaders = new DeleteInstanceHeaders();
deleteInstanceHeaders.xAcsDingtalkAccessToken = "accessToken";
DeleteInstanceRequest deleteInstanceRequest = new DeleteInstanceRequest()
.setAppType("APP_IE*****SY47KISEL8RXQ")
.setSystemToken("TD666Z91R3A5******JY150439DO3T0A2OAALWS")
.setUserId("manager7675")
.setLanguage("zh_CN")
.setProcessInstanceId("9a198552-306c-49f3-88b2-52d90843018b");
try {
client.deleteInstanceWithOptions(deleteInstanceRequest, deleteInstanceHeaders, new RuntimeOptions());
} catch (TeaException err) {
if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
// err 中含有 code 和 message 属性,可帮助开发定位问题
System.out.println(err.code);
System.out.println(err.message);
}
} catch (Exception _err) {
TeaException err = new TeaException(_err.getMessage(), _err);
if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
// err 中含有 code 和 message 属性,可帮助开发定位问题
System.out.println(err.code);
System.out.println(err.message);
}
}
}
3.
1.
public void instancesInfos() throws Exception {
Config config = new Config();
config.protocol = "https";
config.regionId = "central";
com.aliyun.dingtalkyida_1_0.Client client = new com.aliyun.dingtalkyida_1_0.Client(config);
GetInstanceByIdHeaders getInstanceByIdHeaders = new GetInstanceByIdHeaders();
getInstanceByIdHeaders.xAcsDingtalkAccessToken = "accessToken";
GetInstanceByIdRequest getInstanceByIdRequest = new GetInstanceByIdRequest()
.setAppType("APP_IE*****SY47KISEL8RXQ")
.setSystemToken("TD666Z91R3A5******JY150439DO3T0A2OAALWS")
.setUserId("manager7675")
.setLanguage("zh_CN");
try {
GetInstanceByIdResponse instanceByIdWithOptions = client.getInstanceByIdWithOptions("9a3f8aa3-2bf4-49a9-9789-a4b78aaf64a6", getInstanceByIdRequest, getInstanceByIdHeaders, new RuntimeOptions());
System.out.println(JSON.toJSONString(instanceByIdWithOptions.getBody()));
} catch (TeaException err) {
if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
// err 中含有 code 和 message 属性,可帮助开发定位问题
System.out.println(err.code);
System.out.println(err.message);
}
} catch (Exception _err) {
TeaException err = new TeaException(_err.getMessage(), _err);
if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
// err 中含有 code 和 message 属性,可帮助开发定位问题
System.out.println(err.code);
System.out.println(err.message);
}
}
}
2.
public void RunningTasks() throws Exception {
Config config = new Config();
config.protocol = "https";
config.regionId = "central";
com.aliyun.dingtalkyida_1_0.Client client = new com.aliyun.dingtalkyida_1_0.Client(config);
GetRunningTasksHeaders getRunningTasksHeaders = new GetRunningTasksHeaders();
getRunningTasksHeaders.xAcsDingtalkAccessToken = "accessToken";
GetRunningTasksRequest getRunningTasksRequest = new GetRunningTasksRequest()
.setProcessInstanceId("9a3f8aa3-2bf4-49a9-9789-a4b78aaf64a6")
.setAppType("APP_IE*****SY47KISEL8RXQ")
.setSystemToken("TD666Z91R3A5******JY150439DO3T0A2OAALWS")
.setLanguage("zh_CN")
.setUserId("manager7675");
try {
GetRunningTasksResponse runningTasksWithOptions = client.getRunningTasksWithOptions(getRunningTasksRequest, getRunningTasksHeaders, new RuntimeOptions());
System.out.println(JSON.toJSONString(runningTasksWithOptions.getBody()));
} catch (TeaException err) {
if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
// err 中含有 code 和 message 属性,可帮助开发定位问题
System.out.println(err.code);
System.out.println(err.message);
}
} catch (Exception _err) {
TeaException err = new TeaException(_err.getMessage(), _err);
if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
// err 中含有 code 和 message 属性,可帮助开发定位问题
System.out.println(err.code);
System.out.println(err.message);
}
}
}
3.
public void tasksExecute() throws Exception {
Config config = new Config();
config.protocol = "https";
config.regionId = "central";
com.aliyun.dingtalkyida_1_0.Client client = new com.aliyun.dingtalkyida_1_0.Client(config);
ExecuteTaskHeaders executeTaskHeaders = new ExecuteTaskHeaders();
executeTaskHeaders.xAcsDingtalkAccessToken = "accessToken";
ExecuteTaskRequest executeTaskRequest = new ExecuteTaskRequest()
.setOutResult("AGREE")
.setAppType("APP_IE*****SY47KISEL8RXQ")
.setSystemToken("TD666Z91R3A5******JY150439DO3T0A2OAALWS")
.setLanguage("zh_CN")
.setRemark("确认同意")
.setProcessInstanceId("9a3f8aa3-2bf4-49a9-9789-a4b78aaf64a6")
.setUserId("manager7675")
.setTaskId(5578876505L);
try {
client.executeTaskWithOptions(executeTaskRequest, executeTaskHeaders, new RuntimeOptions());
} catch (TeaException err) {
if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
// err 中含有 code 和 message 属性,可帮助开发定位问题
System.out.println(err.code);
System.out.println(err.message);
}
} catch (Exception _err) {
TeaException err = new TeaException(_err.getMessage(), _err);
if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
// err 中含有 code 和 message 属性,可帮助开发定位问题
System.out.println(err.code);
System.out.println(err.message);
}
}
}
修改于 2024-01-17 08:49:17