進入釘釘 “釘釘開放平台” 下載SDK https://ding-doc.dingtalk.com/doc#/faquestions/vzbp02
1 public ActionResult Dingding(string sheetno, long dept, string plant, string Class) { 2 //需填寫的主表數據 3 var bill = tApp.GetList().Where(t => t.F_SHEETNO == sheetno).FirstOrDefault(); 4 //需填寫的詳表數據 5 var details = tDetailApp.GetList(bill.F_Id); 6 7 string accessToken = dingApp.getAccessToken();//AccessToken碼 8 9 //獲取釘釘用戶id:發起人 10 string code = "zhangsan"; 11 var userEntry = userApp.GetList().Where(t => t.F_Account == code).FirstOrDefault(); 12 13 DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/processinstance/create"); 14 OapiProcessinstanceCreateRequest request = new OapiProcessinstanceCreateRequest(); 15 16 request.AgentId = 312711454;//創建的H5微應用的AgentId 17 request.ProcessCode = "PROC-13AFD98D-97F7-4793-8C5D-E612B750BBBC";//在設置審批模板的url中 18 19 List<OapiProcessinstanceCreateRequest.FormComponentValueVoDomain> formComponentValues = new List<OapiProcessinstanceCreateRequest.FormComponentValueVoDomain>(); 20 //單行輸入框 21 OapiProcessinstanceCreateRequest.FormComponentValueVoDomain obj1 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); 22 obj1.Name = "調撥單號"; 23 obj1.Value = bill.F_SHEETNO; 24 OapiProcessinstanceCreateRequest.FormComponentValueVoDomain obj2 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); 25 obj2.Name = "調出部門"; 26 obj2.Value = bill.F_USEDEPTNAME; 27 28 OapiProcessinstanceCreateRequest.FormComponentValueVoDomain obj3 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); 29 obj3.Name = "調入部門"; 30 obj3.Value = bill.F_TOUSEDEPTNAME; 31 32 OapiProcessinstanceCreateRequest.FormComponentValueVoDomain obj4 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); 33 obj4.Name = ("工廠"); 34 obj4.Value = (plant); 35 36 OapiProcessinstanceCreateRequest.FormComponentValueVoDomain obj5 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); 37 obj5.Name = ("資產類別"); 38 obj5.Value = (Class); 39 40 OapiProcessinstanceCreateRequest.FormComponentValueVoDomain vo = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); 41 42 var a = ""; 43 foreach (var item in details) 44 { 45 //明細-單行輸入框 46 OapiProcessinstanceCreateRequest.FormComponentValueVoDomain ItemName1 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); 47 ItemName1.Name = "資產編碼"; 48 ItemName1.Value = item.F_BARCODE; 49 50 OapiProcessinstanceCreateRequest.FormComponentValueVoDomain ItemName2 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); 51 ItemName2.Name = "資產名稱"; 52 ItemName2.Value = item.F_FANAME; 53 54 OapiProcessinstanceCreateRequest.FormComponentValueVoDomain ItemName3 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); 55 ItemName3.Name = "資產規格"; 56 ItemName3.Value = item.F_SPEC; 57 58 OapiProcessinstanceCreateRequest.FormComponentValueVoDomain ItemName4 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); 59 ItemName4.Name = "資產數量"; 60 ItemName4.Value = item.F_QTY.ToString(); 61 62 a += ",[" + ItemName1.ToJson() + "," + ItemName2.ToJson() + "," + ItemName3.ToJson() + "," + ItemName4.ToJson() + "]"; 63 64 } 65 66 a = "[" + a.Substring(1, a.Length - 1) + "]"; 67 68 69 70 vo.Name = "明細"; 71 vo.Value = a; 72 73 74 formComponentValues.Add(obj1); 75 formComponentValues.Add(obj2); 76 formComponentValues.Add(obj3); 77 formComponentValues.Add(obj4); 78 formComponentValues.Add(obj5); 79 formComponentValues.Add(vo); 80 request.FormComponentValues_ = formComponentValues; 81 request.OriginatorUserId = userEntry.F_DINGID;//發起人 82 request.DeptId = dept;//發起人部門 83 // OapiProcessinstanceCreateResponse response = client.Execute(request, accessToken); 84 85 return Success("提交成功!!"); 86 }
//獲取AccessToken碼 public string getAccessToken() { string result = string.Empty; IDingTalkClient clientaccess = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken"); OapiGettokenRequest request = new OapiGettokenRequest(); request.Appkey =Appkey;//在創建H5微應用 應用信息 --》 查看詳情 --》Appkey request.Appsecret = Appsecret;//在創建H5微應用 應用信息 --》 查看詳情 --》Appsecret;
request.SetHttpMethod("GET");
OapiGettokenResponse response = clientaccess.Execute(request);
result = response.AccessToken;
return result;
}