hap-cli 0.5.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. hap_cli/README.md +194 -0
  2. hap_cli/README_CN.md +601 -0
  3. hap_cli/__init__.py +3 -0
  4. hap_cli/commands/__init__.py +1 -0
  5. hap_cli/commands/ai_cmd.py +224 -0
  6. hap_cli/commands/app_cmd.py +308 -0
  7. hap_cli/commands/calendar_cmd.py +138 -0
  8. hap_cli/commands/chat_cmd.py +101 -0
  9. hap_cli/commands/config_cmd.py +169 -0
  10. hap_cli/commands/contact_cmd.py +125 -0
  11. hap_cli/commands/department_cmd.py +168 -0
  12. hap_cli/commands/group_cmd.py +128 -0
  13. hap_cli/commands/instance_cmd.py +310 -0
  14. hap_cli/commands/node_cmd.py +538 -0
  15. hap_cli/commands/optionset_cmd.py +99 -0
  16. hap_cli/commands/page_cmd.py +102 -0
  17. hap_cli/commands/plugin_cmd.py +133 -0
  18. hap_cli/commands/post_cmd.py +155 -0
  19. hap_cli/commands/record_cmd.py +228 -0
  20. hap_cli/commands/role_cmd.py +221 -0
  21. hap_cli/commands/workflow_cmd.py +284 -0
  22. hap_cli/commands/worksheet_cmd.py +342 -0
  23. hap_cli/context.py +43 -0
  24. hap_cli/core/__init__.py +1 -0
  25. hap_cli/core/ai.py +133 -0
  26. hap_cli/core/app.py +307 -0
  27. hap_cli/core/auth.py +219 -0
  28. hap_cli/core/calendar_mod.py +114 -0
  29. hap_cli/core/chat.py +73 -0
  30. hap_cli/core/contact.py +85 -0
  31. hap_cli/core/department.py +131 -0
  32. hap_cli/core/flow_node.py +1001 -0
  33. hap_cli/core/group.py +99 -0
  34. hap_cli/core/instance.py +572 -0
  35. hap_cli/core/optionset.py +112 -0
  36. hap_cli/core/page.py +138 -0
  37. hap_cli/core/plugin.py +87 -0
  38. hap_cli/core/post.py +118 -0
  39. hap_cli/core/record.py +268 -0
  40. hap_cli/core/role.py +227 -0
  41. hap_cli/core/session.py +348 -0
  42. hap_cli/core/workflow.py +556 -0
  43. hap_cli/core/worksheet.py +403 -0
  44. hap_cli/hap_cli.py +105 -0
  45. hap_cli/skills/SKILL.md +383 -0
  46. hap_cli/skills/__init__.py +0 -0
  47. hap_cli/tests/__init__.py +1 -0
  48. hap_cli/tests/test_core.py +1824 -0
  49. hap_cli/tests/test_full_e2e.py +136 -0
  50. hap_cli/tests/test_integration.py +805 -0
  51. hap_cli/utils/__init__.py +1 -0
  52. hap_cli/utils/formatting.py +111 -0
  53. hap_cli/utils/options.py +10 -0
  54. hap_cli-0.5.0.dist-info/METADATA +223 -0
  55. hap_cli-0.5.0.dist-info/RECORD +58 -0
  56. hap_cli-0.5.0.dist-info/WHEEL +5 -0
  57. hap_cli-0.5.0.dist-info/entry_points.txt +2 -0
  58. hap_cli-0.5.0.dist-info/top_level.txt +1 -0
hap_cli/README_CN.md ADDED
@@ -0,0 +1,601 @@
1
+ # hap-cli
2
+
3
+ **明道云 HAP** 命令行工具 —— 企业级无代码平台 (hap) 的 CLI 操控接口。
4
+
5
+ 通过命令行管理应用、工作表、数据记录、工作流、审批流程和角色权限,支持 JSON 输出以便自动化集成。
6
+
7
+ ## 安装
8
+
9
+ ```bash
10
+ pip install -e .
11
+ ```
12
+
13
+ ## 快速开始
14
+
15
+ ### 1. 登录认证
16
+
17
+ **方式一:浏览器登录(推荐)**
18
+
19
+ ```bash
20
+ # 明道云 SaaS(默认)
21
+ hap config login
22
+
23
+ # 指定服务器
24
+ hap config login mingdao # 明道云
25
+ hap config login nocoly # nocoly
26
+ hap config login https://hap.example.com # 私有部署
27
+ ```
28
+
29
+ 执行后会自动打开浏览器,在明道云页面完成登录后,token 会自动保存到本地配置。
30
+
31
+ **方式二:手动配置 Token**
32
+
33
+ ```bash
34
+ hap config set \
35
+ --server https://你的明道云服务器地址 \
36
+ --token 你的_MD_PSS_ID_令牌 \
37
+ --app-id 默认应用ID \
38
+ --project-id 组织ID
39
+ ```
40
+
41
+ > `md_pss_id` 令牌可从浏览器登录明道云后的 Cookie 中获取。
42
+
43
+ **查看当前用户**
44
+
45
+ ```bash
46
+ hap config whoami
47
+ ```
48
+
49
+ **退出登录**
50
+
51
+ ```bash
52
+ hap config logout
53
+ ```
54
+
55
+ ### 2. 查看工作表列表
56
+
57
+ ```bash
58
+ hap app worksheets
59
+ ```
60
+
61
+ ### 3. 查询数据记录
62
+
63
+ ```bash
64
+ hap record list 工作表ID --page-size 10
65
+ ```
66
+
67
+ ### 4. JSON 输出(用于自动化)
68
+
69
+ ```bash
70
+ hap --json record list 工作表ID
71
+ ```
72
+
73
+ ## 命令总览
74
+
75
+ | 命令组 | 功能说明 |
76
+ |--------|---------|
77
+ | `config` | 服务器连接与认证配置 |
78
+ | `app` | 应用管理(列表、详情、工作表) |
79
+ | `worksheet` | 工作表操作(信息、字段、视图) |
80
+ | `record` | 数据记录增删改查 |
81
+ | `workflow` | 工作流生命周期(创建、编辑、发布、触发、回滚、配置) |
82
+ | `node` | 流程节点管理(添加、删除、数据处理、查询记录、批量操作、测试代码/WebHook/AI) |
83
+ | `instance` | 审批与待办(通过、否决、转审、加签、批量操作、执行历史) |
84
+ | `role` | 角色与权限管理 |
85
+ | `repl` | 交互式命令行模式 |
86
+
87
+ ## 工作流管理
88
+
89
+ ### 创建与编辑流程
90
+
91
+ ```bash
92
+ # 创建工作流
93
+ hap workflow create --company-id 组织ID --name "请假审批" --app-id 应用ID
94
+
95
+ # 查看流程详情
96
+ hap workflow get 流程ID
97
+
98
+ # 修改流程信息
99
+ hap workflow update 流程ID --name "新名称" --desc "流程说明"
100
+
101
+ # 复制工作流
102
+ hap workflow copy 流程ID --name "请假审批-副本"
103
+
104
+ # 移动到其他应用
105
+ hap workflow move 流程ID 目标应用ID
106
+
107
+ # 删除工作流
108
+ hap workflow delete 流程ID --yes
109
+ ```
110
+
111
+ ### 节点操作
112
+
113
+ ```bash
114
+ # 查看所有节点类型和 Action ID
115
+ hap node types
116
+
117
+ # 查看所有节点
118
+ hap node list 流程ID
119
+
120
+ # 添加审批节点(type 4=审批)
121
+ hap node add 流程ID --type 4 --name "主管审批" --after 起始节点ID
122
+
123
+ # 添加填写节点(type 3=填写)
124
+ hap node add 流程ID --type 3 --name "补充信息"
125
+
126
+ # 添加数据处理节点(type 6=ACTION,action-id 指定操作类型)
127
+ hap node add 流程ID --type 6 --name "新增记录" --action-id 1
128
+ hap node add 流程ID --type 6 --name "更新记录" --action-id 2
129
+ hap node add 流程ID --type 6 --name "删除记录" --action-id 3
130
+
131
+ # 添加查询单条记录节点(type 7=SEARCH)
132
+ hap node add 流程ID --type 7 --name "查询记录" --action-id 406
133
+
134
+ # 添加获取多条记录节点(type 13=GET_MORE_RECORD)
135
+ hap node add 流程ID --type 13 --name "获取多条" --action-id 400
136
+
137
+ # 添加代码块节点(type 14=代码)
138
+ hap node add 流程ID --type 14 --name "计算逻辑"
139
+
140
+ # 添加 WebHook 节点(type 8=WebHook)
141
+ hap node add 流程ID --type 8 --name "调用外部接口"
142
+
143
+ # 添加 AI 节点(type 31=AIGC)
144
+ hap node add 流程ID --type 31 --name "AI 摘要"
145
+
146
+ # 添加延迟节点(type 12)
147
+ hap node add 流程ID --type 12 --name "延迟1小时"
148
+
149
+ # 添加子流程节点(type 16)
150
+ hap node add 流程ID --type 16 --name "调用子流程"
151
+
152
+ # 添加循环节点(type 29)
153
+ hap node add 流程ID --type 29 --name "循环处理"
154
+
155
+ # 查看节点详细配置
156
+ hap node get 流程ID 节点ID
157
+
158
+ # 获取工作表字段(用于配置数据处理节点)
159
+ hap node controls 流程ID 节点ID --app-id 工作表ID
160
+
161
+ # 重命名节点
162
+ hap node rename 流程ID 节点ID --name "新节点名"
163
+
164
+ # 修改节点描述
165
+ hap node desc 流程ID 节点ID --desc "节点说明" --alias "别名"
166
+
167
+ # 保存节点完整配置(通用 JSON 方式)
168
+ hap node save 流程ID 节点ID --type 4 --config '{"accounts":[{"accountId":"用户ID"}]}'
169
+
170
+ # 删除节点
171
+ hap node delete 流程ID 节点ID --yes
172
+ ```
173
+
174
+ ### 数据处理节点
175
+
176
+ #### 新增/编辑/删除记录(ACTION 节点,type=6)
177
+
178
+ ```bash
179
+ # 新增记录(action-id=1)
180
+ hap node save-action 流程ID 节点ID -a 1 --app-id 工作表ID \
181
+ -f '[{"fieldId":"字段ID","type":2,"fieldValue":"值"}]'
182
+
183
+ # 编辑记录(action-id=2,需指定数据来源节点)
184
+ hap node save-action 流程ID 节点ID -a 2 --app-id 工作表ID \
185
+ -s 来源节点ID \
186
+ -f '[{"fieldId":"字段ID","type":2,"fieldValue":"新值"}]'
187
+
188
+ # 删除记录(action-id=3)
189
+ hap node save-action 流程ID 节点ID -a 3 --app-id 工作表ID \
190
+ -s 来源节点ID
191
+
192
+ # 获取关联记录(action-id=20)
193
+ hap node save-action 流程ID 节点ID -a 20 --app-id 工作表ID \
194
+ -s 来源节点ID
195
+
196
+ # 刷新单条数据(action-id=6)
197
+ hap node save-action 流程ID 节点ID -a 6 --app-id 工作表ID \
198
+ -s 来源节点ID
199
+ ```
200
+
201
+ #### 查询单条记录(SEARCH 节点,type=7)
202
+
203
+ ```bash
204
+ # 从工作表查询一条记录(action-id=406)
205
+ hap node save-search 流程ID 节点ID -a 406 --app-id 工作表ID \
206
+ --condition '[{"fieldId":"字段ID","conditionId":"1","value":["条件值"]}]'
207
+
208
+ # 从多条数据中取一条(action-id=407)
209
+ hap node save-search 流程ID 节点ID -a 407 -s 多条数据节点ID
210
+
211
+ # 查询并更新(action-id=421)
212
+ hap node save-search 流程ID 节点ID -a 421 --app-id 工作表ID \
213
+ --condition '[{"fieldId":"c001","conditionId":"1","value":["test"]}]' \
214
+ -f '[{"fieldId":"c002","type":2,"fieldValue":"更新值"}]'
215
+
216
+ # 查询并删除(action-id=422)
217
+ hap node save-search 流程ID 节点ID -a 422 --app-id 工作表ID \
218
+ --condition '[{"fieldId":"c001","conditionId":"1","value":["test"]}]'
219
+
220
+ # 未找到时的处理方式
221
+ hap node save-search 流程ID 节点ID -a 406 --app-id 工作表ID \
222
+ --not-found 2 # 0=中止流程, 1=新增记录, 2=继续执行
223
+
224
+ # 随机取一条
225
+ hap node save-search 流程ID 节点ID -a 406 --app-id 工作表ID --random
226
+ ```
227
+
228
+ #### 获取多条记录 / 批量操作(GET_MORE_RECORD 节点,type=13)
229
+
230
+ ```bash
231
+ # 从工作表获取多条记录(action-id=400)
232
+ hap node save-get-more 流程ID 节点ID -a 400 --app-id 工作表ID \
233
+ --condition '[{"fieldId":"c001","conditionId":"12","value":["100"]}]' \
234
+ --sorts '[{"fieldId":"c002","isAsc":true}]' \
235
+ --limit '{"fieldValue":1000}'
236
+
237
+ # 从记录的关联字段获取多条(action-id=401)
238
+ hap node save-get-more 流程ID 节点ID -a 401 -s 来源节点ID
239
+
240
+ # 批量更新多条记录(action-id=412)
241
+ hap node save-get-more 流程ID 节点ID -a 412 --app-id 工作表ID \
242
+ -f '[{"fieldId":"c001","type":2,"fieldValue":"批量值"}]'
243
+
244
+ # 批量删除多条记录(action-id=413)
245
+ hap node save-get-more 流程ID 节点ID -a 413 --app-id 工作表ID
246
+
247
+ # 刷新多条数据(action-id=415)
248
+ hap node save-get-more 流程ID 节点ID -a 415 --app-id 工作表ID
249
+ ```
250
+
251
+ ### 测试节点
252
+
253
+ ```bash
254
+ # 测试代码块
255
+ hap node test-code 流程ID 节点ID --code "return 1 + 1"
256
+
257
+ # 测试代码块(带输入参数)
258
+ hap node test-code 流程ID 节点ID \
259
+ --code "return input.x * 2" \
260
+ --input '[{"name":"x","value":"5","type":"number"}]'
261
+
262
+ # 测试 WebHook
263
+ hap node test-webhook 流程ID 节点ID \
264
+ --url https://api.example.com/data \
265
+ --method GET
266
+
267
+ # 测试 WebHook(带请求体)
268
+ hap node test-webhook 流程ID 节点ID \
269
+ --url https://api.example.com/submit \
270
+ --method POST \
271
+ --body '{"key":"value"}' \
272
+ --headers '[{"name":"Authorization","value":"Bearer token"}]'
273
+
274
+ # 测试 AI 文本生成
275
+ hap node test-ai 流程ID 节点ID \
276
+ --prompt "请总结以下内容" \
277
+ --model gpt-4 \
278
+ --temperature 0.5
279
+ ```
280
+
281
+ ### 发布与版本
282
+
283
+ ```bash
284
+ # 发布工作流(启用)
285
+ hap workflow publish 流程ID
286
+
287
+ # 停用工作流
288
+ hap workflow publish 流程ID --disable
289
+
290
+ # 查看版本历史
291
+ hap workflow history 流程ID
292
+
293
+ # 回滚到上一版本
294
+ hap workflow rollback 流程ID --yes
295
+ ```
296
+
297
+ ### 流程配置
298
+
299
+ ```bash
300
+ # 获取全局配置
301
+ hap workflow config-get 流程ID
302
+
303
+ # 修改全局配置
304
+ hap workflow config-set 流程ID \
305
+ --config '{"allowRevoke":true,"allowUrge":true,"errorInterval":5}'
306
+ ```
307
+
308
+ ### 触发流程
309
+
310
+ ```bash
311
+ # 按流程 ID 手动触发
312
+ hap workflow trigger 流程ID --source-id 记录ID
313
+
314
+ # 触发 PBP 流程
315
+ hap workflow trigger-pbp 流程ID --app-id 应用ID
316
+
317
+ # 查看流程分组
318
+ hap workflow groups 应用ID
319
+
320
+ # 查看使用统计
321
+ hap workflow stats --company-id 组织ID
322
+ ```
323
+
324
+ ## 审批与待办
325
+
326
+ ```bash
327
+ # 查看待处理数量
328
+ hap instance todo-count
329
+
330
+ # 查看待审批列表
331
+ hap instance todo --type 4
332
+
333
+ # 查看待填写列表
334
+ hap instance todo --type 3
335
+
336
+ # 查看我发起的
337
+ hap instance todo --type 0
338
+
339
+ # 查看实例详情
340
+ hap instance get 实例ID
341
+
342
+ # 查看可用操作
343
+ hap instance operations 实例ID
344
+
345
+ # 通过审批
346
+ hap instance approve 实例ID --opinion "同意"
347
+
348
+ # 否决审批
349
+ hap instance reject 实例ID --opinion "信息不完整,请补充"
350
+
351
+ # 否决并退回到指定节点
352
+ hap instance reject 实例ID --opinion "请修改" --back-to 节点ID
353
+
354
+ # 转审给其他人
355
+ hap instance forward 实例ID --to 用户ID --opinion "请协助审批"
356
+
357
+ # 加签(在当前审批人之前)
358
+ hap instance sign 实例ID --to 用户ID --before
359
+
360
+ # 加签(在当前审批人之后)
361
+ hap instance sign 实例ID --to 用户ID --after
362
+
363
+ # 提交填写任务
364
+ hap instance submit 实例ID
365
+
366
+ # 撤回(发起人撤回)
367
+ hap instance revoke 实例ID
368
+
369
+ # 催办
370
+ hap instance urge 实例ID
371
+
372
+ # 批量通过
373
+ hap instance batch --action 4 -s 实例ID1 -s 实例ID2
374
+
375
+ # 批量否决
376
+ hap instance batch --action 5 -s 实例ID1 -s 实例ID2
377
+
378
+ # 终止运行中的实例
379
+ hap instance terminate 实例ID --yes
380
+
381
+ # 重试失败的实例
382
+ hap instance retry 实例ID
383
+
384
+ # 重新发起
385
+ hap instance restart 实例ID
386
+
387
+ # 查看执行历史
388
+ hap instance history --process-id 流程ID
389
+
390
+ # 按状态筛选(1=运行中 2=完成 3=否决 4=失败)
391
+ hap instance history --status 2
392
+
393
+ # 查看执行历史详情
394
+ hap instance history-detail 实例ID
395
+
396
+ # 查看操作记录
397
+ hap instance op-history 实例ID
398
+ ```
399
+
400
+ ## 数据记录操作
401
+
402
+ ```bash
403
+ # 查询记录(支持分页、搜索、排序)
404
+ hap record list 工作表ID --page-size 50 --keywords "关键词"
405
+
406
+ # 获取单条记录
407
+ hap record get 工作表ID 记录ID
408
+
409
+ # 新建记录
410
+ hap record create 工作表ID \
411
+ -f "字段ID1=值1" \
412
+ -f "字段ID2=值2"
413
+
414
+ # 更新记录
415
+ hap record update 工作表ID 记录ID \
416
+ -f "字段ID=新值"
417
+
418
+ # 删除记录
419
+ hap record delete 工作表ID 记录ID1 记录ID2 --yes
420
+ ```
421
+
422
+ ## 应用与工作表
423
+
424
+ ```bash
425
+ # 列出组织下的应用
426
+ hap app list --project-id 组织ID
427
+
428
+ # 搜索应用
429
+ hap app list --project-id 组织ID --keyword "人事"
430
+
431
+ # 查看应用详情
432
+ hap app info 应用ID
433
+
434
+ # 列出工作表
435
+ hap app worksheets 应用ID
436
+
437
+ # 查看工作表信息
438
+ hap worksheet info 工作表ID
439
+
440
+ # 查看字段列表(获取字段ID用于记录操作)
441
+ hap worksheet fields 工作表ID
442
+
443
+ # 查看视图列表
444
+ hap worksheet views 工作表ID
445
+ ```
446
+
447
+ ## 角色管理
448
+
449
+ ```bash
450
+ # 列出应用角色
451
+ hap role list 应用ID
452
+
453
+ # 创建角色(权限: 0=自定义 10=只读 50=成员 100=管理员)
454
+ hap role create 应用ID --name "审核员" --permission 10
455
+
456
+ # 添加成员
457
+ hap role add-member 应用ID 角色ID -u 用户ID1 -u 用户ID2
458
+
459
+ # 添加部门
460
+ hap role add-member 应用ID 角色ID -d 部门ID
461
+
462
+ # 移除成员
463
+ hap role remove-member 应用ID 角色ID -u 用户ID
464
+
465
+ # 删除角色(并将成员移至其他角色)
466
+ hap role delete 应用ID 角色ID --move-to 目标角色ID --yes
467
+ ```
468
+
469
+ ## 交互模式 (REPL)
470
+
471
+ ```bash
472
+ hap repl
473
+ hap> record list 工作表ID
474
+ hap> --json workflow list 应用ID
475
+ hap> instance todo-count
476
+ hap> node list 流程ID
477
+ hap> quit
478
+ ```
479
+
480
+ ## 节点类型参考
481
+
482
+ > 运行 `hap node types` 可查看完整列表
483
+
484
+ | 类型值 | 名称 | 说明 |
485
+ |--------|------|------|
486
+ | 0 | 开始 (START) | 流程起始节点 |
487
+ | 1 | 分支 (BRANCH) | 条件分支/网关 |
488
+ | 2 | 分支项 (BRANCH_ITEM) | 分支条件项 |
489
+ | 3 | 填写 (FILL) | 表单填写任务 |
490
+ | 4 | 审批 (APPROVAL) | 审批任务 |
491
+ | 5 | 抄送 (CC) | 抄送通知 |
492
+ | **6** | **数据处理 (ACTION)** | **新增/编辑/删除记录** |
493
+ | **7** | **查询单条 (SEARCH)** | **获取单条记录** |
494
+ | 8 | WebHook | HTTP 请求 |
495
+ | 9 | 公式 (FORMULA) | 运算/公式计算 |
496
+ | 10 | 短信 (MESSAGE) | 短信通知 |
497
+ | 11 | 邮件 (EMAIL) | 邮件通知 |
498
+ | 12 | 延迟 (DELAY) | 定时延迟 |
499
+ | **13** | **获取多条 (GET_MORE_RECORD)** | **获取多条记录/批量操作** |
500
+ | 14 | 代码块 (CODE) | JavaScript/Python 执行 |
501
+ | 15 | 获取链接 (LINK) | 获取记录链接 |
502
+ | 16 | 子流程 (SUB_PROCESS) | 调用子流程 |
503
+ | 17 | 界面推送 (PUSH) | 界面推送通知 |
504
+ | 18 | 文件 (FILE) | 打印/PDF 生成 |
505
+ | 19 | 模板 (TEMPLATE) | 模板消息 |
506
+ | 20 | 业务流程 (PBP) | 封装业务流程 |
507
+ | 21 | JSON 解析 (JSON_PARSE) | JSON 数据解析 |
508
+ | 22 | 认证 (AUTHENTICATION) | API 认证 |
509
+ | 25 | API 调用 (API) | 已集成 API 调用 |
510
+ | 26 | 发起审批 (APPROVAL_PROCESS) | 发起审批流程 |
511
+ | 27 | 通知 (NOTICE) | 站内通知 |
512
+ | 28 | 快照 (SNAPSHOT) | 数据快照 |
513
+ | 29 | 循环 (LOOP) | 循环处理 |
514
+ | 31 | AI (AIGC) | AI 文本/对象生成 |
515
+ | 32 | 插件 (PLUGIN) | 插件调用 |
516
+ | 33 | Agent | AI Agent |
517
+
518
+ ## Action ID 参考(数据处理节点)
519
+
520
+ | Action ID | 节点类型 | 操作 | 说明 |
521
+ |-----------|---------|------|------|
522
+ | 1 | 6 (ACTION) | 新增记录 | 在指定工作表中新增一条记录 |
523
+ | 2 | 6 (ACTION) | 编辑记录 | 更新工作表中的记录字段 |
524
+ | 3 | 6 (ACTION) | 删除记录 | 删除指定记录 |
525
+ | 5 | 6 (ACTION) | 创建记录 | 创建记录 |
526
+ | 6 | 6 (ACTION) | 校准单条 | 刷新/更新单条记录字段 |
527
+ | 20 | 6 (ACTION) | 关联记录 | 获取关联他表字段 |
528
+ | 406 | 7 (SEARCH) | 从工作表查询 | 查询一条符合条件的记录 |
529
+ | 407 | 7 (SEARCH) | 从多条中取一条 | 从多条数据节点中取一条 |
530
+ | 420 | 7 (SEARCH) | 记录链接查询 | 通过记录链接查询 |
531
+ | 421 | 7 (SEARCH) | 查询并更新 | 查询到记录后进行更新 |
532
+ | 422 | 7 (SEARCH) | 查询并删除 | 查询到记录后进行删除 |
533
+ | 400 | 13 (GET_MORE) | 从工作表获取 | 查询多条符合条件的记录 |
534
+ | 401 | 13 (GET_MORE) | 从关联获取 | 从记录关联字段获取多条 |
535
+ | 402 | 13 (GET_MORE) | 从新增节点获取 | 从新增记录节点获取多条 |
536
+ | 412 | 13 (GET_MORE) | 批量更新 | 批量修改多条记录 |
537
+ | 413 | 13 (GET_MORE) | 批量删除 | 批量删除多条记录 |
538
+ | 415 | 13 (GET_MORE) | 校准多条 | 刷新/更新多条记录字段 |
539
+
540
+ ## 实例状态参考
541
+
542
+ | 状态值 | 含义 |
543
+ |--------|------|
544
+ | 1 | 运行中 |
545
+ | 2 | 已完成 |
546
+ | 3 | 已否决 |
547
+ | 4 | 已失败/已终止 |
548
+
549
+ ## 待办类型参考
550
+
551
+ | 类型值 | 含义 |
552
+ |--------|------|
553
+ | -1 | 全部待处理 |
554
+ | 0 | 我发起的 |
555
+ | 3 | 待填写 |
556
+ | 4 | 待审批 |
557
+ | 5 | 待查看 |
558
+
559
+ ## 完整工作流示例:从创建到审批
560
+
561
+ ```bash
562
+ # 第一步:创建工作流
563
+ hap --json workflow create \
564
+ --company-id 组织ID --name "报销审批" --app-id 应用ID
565
+ # 返回 processId
566
+
567
+ # 第二步:查看初始节点
568
+ hap --json node list 流程ID
569
+
570
+ # 第三步:添加审批节点
571
+ hap --json node add 流程ID --type 4 --name "部门主管审批" --after 起始节点ID
572
+ # 返回 nodeId
573
+
574
+ # 第四步:配置审批节点(指定审批人)
575
+ hap node save 流程ID 节点ID --type 4 \
576
+ --config '{"accounts":[{"accountId":"主管用户ID"}]}'
577
+
578
+ # 第五步:发布工作流
579
+ hap workflow publish 流程ID
580
+
581
+ # 第六步:触发工作流
582
+ hap --json workflow trigger 流程ID --source-id 记录ID
583
+
584
+ # 第七步:查看待审批
585
+ hap --json instance todo --type 4
586
+
587
+ # 第八步:审批通过
588
+ hap instance approve 实例ID --opinion "费用合理,同意报销"
589
+
590
+ # 查看执行结果
591
+ hap --json instance history-detail 实例ID
592
+ ```
593
+
594
+ ## 认证说明
595
+
596
+ 本工具使用明道云的 `md_pss_id` 会话令牌进行认证。获取方式:
597
+
598
+ 1. 在浏览器中登录明道云
599
+ 2. 打开开发者工具 (F12)
600
+ 3. 在 Application > Cookies 中找到 `md_pss_id`
601
+ 4. 复制其值作为 `--token` 参数
hap_cli/__init__.py ADDED
@@ -0,0 +1,3 @@
1
+ """CLI harness for MingDAO HAP (hap-cli)."""
2
+
3
+ __version__ = "0.3.0"
@@ -0,0 +1 @@
1
+ """CLI command modules for hap-cli."""