全部产品
云市场

审批流

更新时间:2019-02-22 11:33:27

一、接入步骤

  1. 工程中添加审批流 SDK 的 Maven 坐标
  2. 配置 AccessKey/AccessSecret
  3. 调用 openapi

二、引入依赖

  1. <dependency>
  2. <groupId>com.alibaba.emas</groupId>
  3. <artifactId>bpm-sdk</artifactId>
  4. <version>1.0.0</version>
  5. </dependency>

三、Maven仓库设置

setting.xml文件中设置

  1. <servers>
  2. <server>
  3. <id>emasRelease</id>
  4. <username>username</username><!-- 请向Emas管理员索取用户名和密码 -->
  5. <password><![CDATA[password]]></password>
  6. </server>
  7. <server>
  8. <id>emasSnapshot</id>
  9. <username>username</username> <!-- 请向Emas管理员索取用户名和密码 -->
  10. <password><![CDATA[password]]></password>
  11. </server>
  12. </servers>

工程的pom.xml文件中设置

  1. <repositories>
  2. <repository>
  3. <name>emas_release</name>
  4. <id>emasRelease</id>
  5. <releases>
  6. <enabled>true</enabled>
  7. </releases>
  8. <url>http://nexus-ce.emas-poc.com/repository/maven-releases/</url>
  9. </repository>
  10. <repository>
  11. <name>emas_snapshot</name>
  12. <id>emasSnapshot</id>
  13. <releases>
  14. <enabled>true</enabled>
  15. </releases>
  16. <url>http://nexus-ce.emas-poc.com/repository/maven-snapshots/</url>
  17. </repository>
  18. </repositories>

四、配置 AccessKey, AccessSecret

调用 SDK 之前需要配置 AccessKey 和 AccessSecret

  1. // Access key 和 Access secret 联系 Emas 管理员索要
  2. BpmApi bpmApi = new BpmApi("Your access key.", "Your access secret.");

五、审批流接口

1. 数据结构

  1. // 审批流查询类型
  2. QueryType {
  3. // 按创建人查询
  4. CREATOR,
  5. // 按审批人查询
  6. ASSIGNEES
  7. }
  8. // 审批流状态
  9. ProcessStatus {
  10. // 审批中
  11. PENDING,
  12. // 已取消
  13. CANCELED,
  14. // 已驳回
  15. REJECTED,
  16. // 审批通过
  17. APPROVED;
  18. }
  19. // 审批流分类
  20. public enum Category {
  21. // 发布审批
  22. PUBLISH_AUDIT,
  23. // 其他审批事件
  24. OTHER_AUDIT;
  25. }
  26. // 归属产品
  27. public enum ProductCode {
  28. // 高可用
  29. HA("HA"),
  30. // DevOps :Weex
  31. WEEX("WEEX"),
  32. // DevOps:Native
  33. NATIVE("NATIVE");
  34. }
  35. // 查询审批流列表接口返回数据类型
  36. BpmListResult {
  37. // 调用是否成功
  38. Boolean success;
  39. // 如过调用失败,返回错误码
  40. Integer errorCode;
  41. // 如过调用失败,返回错误信息
  42. String message;
  43. // 根据条件查询出的审批流列表
  44. BpmList model;
  45. }
  46. // 包含分页信息的审批流列表
  47. BpmList {
  48. // 审批流列表
  49. List<BpmInfo> items;
  50. // 页码
  51. Integer pageNum;
  52. // 页面大小
  53. Integer pageSize;
  54. // 总页数
  55. Integer total;
  56. }
  57. // 审批流详情
  58. BpmInfo {
  59. // 审批流 id
  60. Long id;
  61. // 归属产品
  62. String bizCode;
  63. // 流程状态
  64. ProcessStatus status;
  65. // 创建人
  66. UserInfo creator;
  67. // 审批人
  68. List<UserInfo> assignees;
  69. // 创建时间
  70. String createdAt;
  71. // 结束时间
  72. String finishedAt;
  73. // 流程描述
  74. String description;
  75. // 流程标题
  76. String title;
  77. // 实际审批人
  78. String modifier
  79. // 审批意见
  80. String modifierComment;
  81. }
  82. // 审批流程的返回数据结构
  83. ApproveResult {
  84. // 调用是否成功
  85. Boolean success;
  86. // 如过调用失败,返回错误码
  87. Integer errorCode;
  88. // 如过调用失败,返回错误信息
  89. String message;
  90. // 根据条件查询出的审批流列表
  91. BpmInfo model;
  92. }

2.1 查询审批流列表

  1. // 查询类型
  2. QueryType type = QueryType.ASSIGNEES;
  3. // 页码
  4. Integer pageNum = 1;
  5. // 页面大小
  6. Integer pageSize = 10;
  7. // 流程状态
  8. ProcessStatus status = ProcessStatus.PENDING;
  9. // 分类
  10. Category category = Category.PUBLISH_AUDIT;
  11. // 归属产品
  12. ProductCode productCode = ProductCode.NATIVE;
  13. BpmListResult response = api.getBpmList(type, pageNum, pageSize, status, category, bizCode);

2.2 对流程进行审批

  1. // 流程 id
  2. Long id = 11223344;
  3. ApproveParams param = new ApproveParams();
  4. // 审批意见
  5. param.setModifierComment("管理员同意该流程!");
  6. // 审批结果,可以是 同意(APPROVED), 可以是 驳回(REJECTED)
  7. param.setStatus(ProcessStatus.APPROVED);
  8. ApproveResult response = api.approve(id, param);