釘釘開發(fā)之根據(jù)流程碼processCode獲取流程表單schema
一、環(huán)境:
1、釘釘oa審批流程中,已有“出差審批”流程,流程碼為:PROC-48E207E5-EB8B-457C-BC3D-86CD5E5A50B3
2、開發(fā)環(huán)境:IDEA
二、代碼
1、獲取token
package sfccl.api; import com.aliyun.dingtalkoauth2_1_0.models.GetAccessTokenResponse; import com.aliyun.tea.TeaException; public class Mytoken { // public static String accessToken; String AppKey = "ding**********kkq5"; String AppSecret = "ZM1iVltcUHlS_***********************_plbobp"; String accessToken = ""; public static com.aliyun.dingtalkoauth2_1_0.Client createClient() throws Exception { com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config(); config.protocol = "https"; config.regionId = "central"; return new com.aliyun.dingtalkoauth2_1_0.Client(config); } public String accessToken() throws Exception { //java.util.List<String> args = java.util.Arrays.asList(args_); com.aliyun.dingtalkoauth2_1_0.Client client = Mytoken.createClient(); com.aliyun.dingtalkoauth2_1_0.models.GetAccessTokenRequest getAccessTokenRequest = new com.aliyun.dingtalkoauth2_1_0.models.GetAccessTokenRequest() .setAppKey(AppKey) .setAppSecret(AppSecret); try { GetAccessTokenResponse tokenResponse = client.getAccessToken(getAccessTokenRequest); // System.out.println(tokenResponse.body); // System.out.println(tokenResponse.getHeaders()); // System.out.println(tokenResponse.getBody()); System.out.println(tokenResponse.getBody().accessToken); System.out.println(tokenResponse.getBody().expireIn); accessToken = tokenResponse.getBody().accessToken; } catch (TeaException err) { if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) { // err 中含有 code 和 message 屬性,可幫助開發(fā)定位問題 System.out.println("TeaException:"+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 屬性,可幫助開發(fā)定位問題 System.out.println("TeaException:" + err.message); } } return accessToken; } }
2、獲取表單schema
package sfccl.api; import com.aliyun.tea.*; import com.aliyun.teautil.*; import com.aliyun.teautil.models.*; import com.aliyun.dingtalkworkflow_1_0.*; import com.aliyun.dingtalkworkflow_1_0.models.*; import com.aliyun.teaopenapi.*; import com.aliyun.teaopenapi.models.*; import java.util.List; public class GetSchema { /** * 使用 Token 初始化賬號Client * @return Client * @throws Exception */ public static com.aliyun.dingtalkworkflow_1_0.Client createClient() throws Exception { Config config = new Config(); config.protocol = "https"; config.regionId = "central"; return new com.aliyun.dingtalkworkflow_1_0.Client(config); } public static void main(String[] args_) throws Exception{ java.util.List<String> args = java.util.Arrays.asList(args_); Mytoken mytoken = new Mytoken(); String token = mytoken.accessToken(); com.aliyun.dingtalkworkflow_1_0.Client client = GetSchema.createClient(); QuerySchemaByProcessCodeHeaders querySchemaByProcessCodeHeaders = new QuerySchemaByProcessCodeHeaders(); querySchemaByProcessCodeHeaders.xAcsDingtalkAccessToken = token; QuerySchemaByProcessCodeRequest querySchemaByProcessCodeRequest = new QuerySchemaByProcessCodeRequest() .setProcessCode("PROC-48E207E5-EB8B-457C-BC3D-86CD5E5A50B3"); try { QuerySchemaByProcessCodeResponse userResponse = client.querySchemaByProcessCodeWithOptions(querySchemaByProcessCodeRequest, querySchemaByProcessCodeHeaders, new RuntimeOptions()); System.out.println(userResponse.getBody().toMap()); //注意:這里使用toMap()才能看到具體表單模板,若使用toString()只能看到類地址 } catch (TeaException err) { if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) { // err 中含有 code 和 message 屬性,可幫助開發(fā)定位問題 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 屬性,可幫助開發(fā)定位問題 System.out.println(err.message); } } } }
三、結果
1f997da77f873b49b2c3fa2653656762 7200 {result={creatorUserId=081944650937626047, gmtModified=2022-11-22T11:04Z, bizType=, formUuid=FORM-E4579C3A-30FA-41F4-9953-321259F1F23B, ownerIdType=orgId, formCode=PROC-48E207E5-EB8B-457C-BC3D-86CD5E5A50B3, icon=null, engineType=0, memo=測試001——api流程表單開發(fā)測試, gmtCreate=2022-11-22T10:44Z, schemaContent={icon=common, title=出差申請, items=[{children=[{componentName=TextField, props={bizAlias=, id=TextField-K2AD4O5B, label=出差地點(單行輸入框, required=null}}, {componentName=DDPhotoField, props={bizAlias=null, id=DDPhotoField_1AWJR59S5BTS0, label=圖片, required=false}}, {componentName=DDDateRangeField, props={bizAlias=null, id=DDDateRangeField_19TP9POJBE800, label=["開始時間","結束時間"], required=false}}, {componentName=NumberField, props={bizAlias=, id=NumberField_1WOIL8PMYE5C0, label=出差人數(shù), required=false}}, {componentName=MoneyField, props={bizAlias=, id=MoneyField_KUPX9HK115O0, label=出差金額(元), required=false}}, {componentName=DDSelectField, props={bizAlias=, id=DDSelectField_21GQV9G2U9Z40, label=出差同伴(單選框), required=false}}, {componentName=TextField, props={bizAlias=, id=TextField_9RF2CYB4B380, label=出差工具, required=false}}, {componentName=TextareaField, props={bizAlias=, id=TextareaField_1WFOQXQCVGLC0, label=出差事由, required=false}}], componentName=TableField, props={staffStatusEnabled=false, bizType=null, hidden=null, payEnable=null, statField=null, link=null, align=null, durationLabel=null, pushToCalendar=null, required=null, duration=null, holidayOptions=[], appId=null, options=null, hiddenInApprovalDetail=null, useCalendar=null, disabled=null, id=TableField_16SENC2STKG00, placeholder=null, asyncCondition=null, behaviorLinkage=null, hideLabel=null, showAttendOptions=null, objOptions=null, notUpper=null, format=null, bizAlias=, label=行程明細, labelEditableFreeze=null, pushToAttendance=null, commonBizType=null, push={attendanceRule=null, pushSwitch=null, pushTag=null}, fieldsInfo=null, requiredEditableFreeze=null, unit=null, extract=null, verticalPrint=null, eSign=null, mainTitle=null, formula=null, notPrint=null, choice=null, childFieldVisible=null, actionName=添加, attendTypeLabel=null}}]}, appUuid=dingc2e467f9e6ed39aaf5bf40eda33b7ba0, appType=0, visibleRange=PRIVATE, listOrder=51, name=出差申請, customSetting=null, procType=, status=PUBLISHED}} Process finished with exit code 0

浙公網安備 33010602011771號