process_code
。process_code
,调用服务端API-创建实例接口,实现创建自有审批实例,获取审批实例process_instance_id
。process_instance_id
,调用服务端API-更新实例状态接口,实现审批实例状态的更新。process_code
,可以调用服务端API-删除模板接口,实现删除自有审批模板。public void getAccessToken() throws ApiException {
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken");
OapiGettokenRequest req = new OapiGettokenRequest();
req.setAppkey("dingxxxxxxxxxhgn");
req.setAppsecret("9G_xxxxxxxxxxxxxxx1JDf0Qq3nexxxxxxxxGIO");
req.setHttpMethod("GET");
OapiGettokenResponse rsp = client.execute(req);
System.out.println(rsp.getBody());
}
process_code
。 public void processSave() throws ApiException {
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/process/save");
OapiProcessSaveRequest request = new OapiProcessSaveRequest();
OapiProcessSaveRequest.SaveProcessRequest saveProcessRequest = new OapiProcessSaveRequest.SaveProcessRequest();
saveProcessRequest.setName("自有审批模板");
//有参数processCode时为更新模板,无参数processCode时,为创建模板,该示例为创建模板
//saveProcessRequest.setProcessCode("PROC-D5BECC2D-C623-4CC2-A3D7-852CB391861A");
saveProcessRequest.setAgentid(11*******75L);
saveProcessRequest.setFakeMode(true);
// 注意,每种表单组件,对应的componentName是固定的,参照以下示例代码
List<OapiProcessSaveRequest.FormComponentVo> formComponentList = Lists.newArrayList();
// 单行文本框
OapiProcessSaveRequest.FormComponentVo singleInput = new OapiProcessSaveRequest.FormComponentVo();
singleInput.setComponentName("TextField");
OapiProcessSaveRequest.FormComponentPropVo singleInputProp = new OapiProcessSaveRequest.FormComponentPropVo();
singleInputProp.setRequired(true);
singleInputProp.setLabel("单行输入框");
singleInputProp.setPlaceholder("请输入");
singleInputProp.setId("TextField-J78F056R");
singleInput.setProps(singleInputProp);
formComponentList.add(singleInput);
// 多行文本框
OapiProcessSaveRequest.FormComponentVo multipleInput = new OapiProcessSaveRequest.FormComponentVo();
multipleInput.setComponentName("TextareaField");
OapiProcessSaveRequest.FormComponentPropVo multipleInputProp = new OapiProcessSaveRequest.FormComponentPropVo();
multipleInputProp.setRequired(true);
multipleInputProp.setLabel("多行输入框");
multipleInputProp.setPlaceholder("请输入");
multipleInputProp.setId("TextareaField-J78F056S");
multipleInput.setProps(multipleInputProp);
formComponentList.add(multipleInput);
saveProcessRequest.setFormComponentList(formComponentList);
request.setSaveProcessRequest(saveProcessRequest);
OapiProcessSaveResponse response = client.execute(request, "access_token");
System.out.println(JSON.toJSONString(response));
}
public void workRecordCreate() throws ApiException {
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/process/workrecord/create");
OapiProcessWorkrecordCreateRequest req = new OapiProcessWorkrecordCreateRequest();
OapiProcessWorkrecordCreateRequest.SaveFakeProcessInstanceRequest obj1 = new OapiProcessWorkrecordCreateRequest.SaveFakeProcessInstanceRequest();
obj1.setAgentid(11*******75L);
obj1.setProcessCode("PROC-4339B3B3-****-****-****-74E76A20DB70");
obj1.setOriginatorUserId("manager7675");
List<OapiProcessWorkrecordCreateRequest.FormComponentValueVo> list3 = new ArrayList<OapiProcessWorkrecordCreateRequest.FormComponentValueVo>();
OapiProcessWorkrecordCreateRequest.FormComponentValueVo obj4 = new OapiProcessWorkrecordCreateRequest.FormComponentValueVo();
list3.add(obj4);
obj4.setName("单行输入框");
obj4.setValue("自有单行");
OapiProcessWorkrecordCreateRequest.FormComponentValueVo obj5 = new OapiProcessWorkrecordCreateRequest.FormComponentValueVo();
list3.add(obj5);
obj5.setName("多行输入框");
obj5.setValue("自有多行");
obj1.setFormComponentValues(list3);
obj1.setUrl("https://www.dingtalk.com");
obj1.setTitle("自有审批");
req.setRequest(obj1);
OapiProcessWorkrecordCreateResponse rsp = client.execute(req, "access_token");
System.out.println(rsp.getBody());
}
process_instance_id
,调用服务端API-更新实例状态接口,实现审批实例状态的更新。public void workRecordUpdate() throws ApiException {
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/process/workrecord/update");
OapiProcessWorkrecordUpdateRequest req = new OapiProcessWorkrecordUpdateRequest();
OapiProcessWorkrecordUpdateRequest.UpdateProcessInstanceRequest obj1 = new OapiProcessWorkrecordUpdateRequest.UpdateProcessInstanceRequest();
obj1.setAgentid(11*******75L);
obj1.setProcessInstanceId("tze3Zy2gTHy-********0881******482");
obj1.setStatus("COMPLETED");
obj1.setResult("agree");
obj1.setCancelRunningTask(true);
req.setRequest(obj1);
OapiProcessWorkrecordUpdateResponse rsp = client.execute(req, "access_token");
System.out.println(rsp.getBody());
}
process_code
,可以调用服务端API-删除模板接口,实现删除自有审批模板。 public void processDelete() throws ApiException {
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/process/delete");
OapiProcessDeleteRequest req = new OapiProcessDeleteRequest();
OapiProcessDeleteRequest.DeleteProcessRequest obj1 = new OapiProcessDeleteRequest.DeleteProcessRequest();
obj1.setAgentid(11*******75L);
obj1.setProcessCode("PROC-4339B3B3-****-****-****-74E76A20DB70");
obj1.setCleanRunningTask(true);
req.setRequest(obj1);
OapiProcessDeleteResponse rsp = client.execute(req, "access_token");
System.out.println(rsp.getBody());
}