C# 实现钉钉审批接口:创建审批实例
"该资源提供了一段C#代码示例,用于通过钉钉的TopSdk发起审批流程。代码中展示了如何设置发起人、审批人、抄送人等关键信息,并填充表单组件值。不过,据描述指出,当前代码可能存在的问题是没有处理钉钉审批单据中的字段权限设置,这可能需要进一步研究和调试。" 在C#编程中,与钉钉API集成是常见的任务之一,特别是对于构建自动化工作流程或者企业内部应用。在这个例子中,我们看到的是如何使用钉钉SDK来创建一个审批实例。以下是一些关键知识点: 1. **DingTalk Client**: `IDingTalkClient` 是钉钉SDK的核心接口,用于与钉钉服务器进行通信。在这里,我们使用了 `DefaultDingTalkClient` 的实例,它实现了这个接口,用于发送请求。 2. **URL**: `https://eco.taobao.com/router/rest` 是钉钉API的基础URL,所有的API请求都是基于这个基础URL构建的。 3. **SmartworkBpmsProcessinstanceCreateRequest**: 这是一个对象,表示创建审批实例的请求。它包含了发起审批所需的全部参数,如`AgentId`, `ProcessCode`, `OriginatorUserId`, `DeptId`, `Approvers`, `CcList`, `CcPosition` 等。 4. **参数详解**: - `AgentId`: 企业应用标识,ISV(独立软件开发商)调用时必须设置。 - `ProcessCode`: 审批流的唯一码,可以从审批流编辑页面的URL中获取。 - `OriginatorUserId`: 发起审批的用户ID。 - `DeptId`: 发起人所在的部门ID,根部门则传-1。 - `Approvers`: 审批人的用户ID列表,多个审批人用逗号分隔。 - `CcList`: 抄送人的用户ID列表,多个抄送人同样用逗号分隔。 - `CcPosition`: 抄送时间,可以是“START”, “FINISH” 或 “START_FINISH”。 5. **FormComponentValues**: 这个列表用于填充审批单据中的表单组件值,每个`FormComponentValueVoDomain`代表一个表单字段及其对应的值。 6. **字段权限问题**: 描述中提到的字段权限没有生效,可能是由于在SDK使用过程中未正确处理权限设置,或者与钉钉后端服务的交互存在问题。解决这个问题可能需要查看钉钉的API文档,检查是否有特殊的设置或授权步骤。 7. **调试与优化**: 要解决上述问题,开发者需要调试代码,查看API响应,确认请求参数是否正确,同时查阅钉钉API的官方文档以获取更详细的指导。 这个资源提供了一个C#与钉钉API交互的基础示例,可以帮助开发者理解如何在自己的应用中发起审批流程。然而,实际开发中还需要考虑错误处理、权限管理等复杂因素,确保代码的完整性和安全性。
/// 第三方应用发起审批
/// </summary>
/// <returns></returns>
public static void GetBillList()
{
IDingTalkClient client = new DefaultDingTalkClient("https://eco.taobao.com/router/rest");
SmartworkBpmsProcessinstanceCreateRequest req = new SmartworkBpmsProcessinstanceCreateRequest();
req.AgentId = 41605932L;//企业应用标识(ISV调用必须设置)
req.ProcessCode = "PROC-UICK1E8W-RPVU0XSPTHABXAH1MQUT1-PSF5DRGJ-2";//审批流的唯一码,process_code就在审批流编辑的页面URL中
req.OriginatorUserId ="dd_test" ;// 发起人
req.DeptId = 8219549;//发起人所在的部门,如果发起人属于根部门,传-1
req.Approvers = "dd_test,04053165015318";//审批人userid列表/最大列表长度:20。多个审批人用逗号分隔,dd_test,04053165015318
req.CcList = "dd_test";//抄送人userid列表,最大列表长度:20。多个抄送人用逗号分隔dd_test
req.CcPosition = "START";//抄送时间,分为(START, FINISH, START_FINISH)
List<SmartworkBpmsProcessinstanceCreateRequest.FormComponentValueVoDomain> formComponentValues=new List<SmartworkBpmsProcessinstanceCreateRequest.FormComponentValueVoDomain>();
SmartworkBpmsProcessinstanceCreateRequest.FormComponentValueVoDomain vo1 = new SmartworkBpmsProcessinstanceCreateRequest.FormComponentValueVoDomain();
formComponentValues.Add(vo1);
vo1.Name="订单编号";
vo1.Value = "ES1904G001";
SmartworkBpmsProcessinstanceCreateRequest.FormComponentValueVoDomain vo2 = new SmartworkBpmsProcessinstanceCreateRequest.FormComponentValueVoDomain();
formComponentValues.Add(vo2);
vo2.Name = "业务员";
vo2.Value = "张三";
SmartworkBpmsProcessinstanceCreateRequest.FormComponentValueVoDomain vo3 = new SmartworkBpmsProcessinstanceCreateRequest.FormComponentValueVoDomain();
formComponentValues.Add(vo3);
vo3.Name = "客户编号";
下载后可阅读完整内容,剩余4页未读,立即下载
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++多态实现机制详解:虚函数与早期绑定
- Java多线程与异常处理详解
- 校园导游系统:无向图实现最短路径探索
- SQL2005彻底删除指南:避免重装失败
- GTD时间管理法:提升效率与组织生活的关键
- Python进制转换全攻略:从10进制到16进制
- 商丘物流业区位优势探究:发展战略与机遇
- C语言实训:简单计算器程序设计
- Oracle SQL命令大全:用户管理、权限操作与查询
- Struts2配置详解与示例
- C#编程规范与最佳实践
- C语言面试常见问题解析
- 超声波测距技术详解:电路与程序设计
- 反激开关电源设计:UC3844与TL431优化稳压
- Cisco路由器配置全攻略
- SQLServer 2005 CTE递归教程:创建员工层级结构