cloudcc-cli 2.3.2 → 2.3.3
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.
- package/.claude/settings.json +12 -2
- package/.cursor/skills/cloudcc-cli-usage/SKILL.md +2 -1
- package/README.md +11 -0
- package/package.json +2 -1
- package/src/classes/docs/devguide.md +90 -0
- package/src/globalSelectList/docs/devguide.md +0 -59
- package/src/menu/docs/devguide.md +57 -131
- package/src/pagelayout/create.js +2 -2
- package/src/pagelayout/delete.js +57 -0
- package/src/pagelayout/docs/devguide.md +17 -229
- package/src/pagelayout/get.js +9 -9
- package/src/pagelayout/index.js +1 -0
- package/src/plugin/docs/devguide.md +90 -17
- package/src/profile/docs/devguide.md +3 -258
- package/src/role/docs/devguide.md +5 -311
- package/src/timer/docs/devguide.md +83 -1
- package/src/triggers/docs/devguide.md +108 -0
- package/src/user/docs/devguide.md +22 -534
- package/tmp_customsetting_detail.json +0 -1
|
@@ -4,6 +4,82 @@
|
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
## CLI 与本地文件(必读)
|
|
8
|
+
|
|
9
|
+
本仓库中的**定时类**(与定时作业绑定的 Java 类)通过 **cloudcc-cli** 与平台同步,本地目录为 **`schedule/<类名>/`**(内含 `*.java` 与 `config.json`),源码中的 `// @SOURCE_CONTENT_START` … `// @SOURCE_CONTENT_END` 与发布、拉取逻辑一致。**必须通过下列命令** 完成新建目录、发布、拉取与删除;不要手工新建 `schedule/` 子目录、不要整包复制其他项目的定时类、不要私自篡改 `config.json` 中的 `id` 或版本字段。
|
|
10
|
+
|
|
11
|
+
**允许的做法**:在 CLI 已生成的主类中,仅在上述 SOURCE 标记之间编写业务逻辑;与云端列表、详情、拉取、删除、发布相关的操作一律走命令。
|
|
12
|
+
|
|
13
|
+
执行命令前请确认:已完成 `cc doc project devguide` 中的环境初始化,项目根目录配置可用且包含 `accessToken`。
|
|
14
|
+
|
|
15
|
+
### 命令总览(以代码实现为准)
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
cc create timer <name>
|
|
19
|
+
cc publish timer <name>
|
|
20
|
+
cc pull timer <name>
|
|
21
|
+
cc get timer [listQueryJson] [projectPath]
|
|
22
|
+
cc detail timer <name>
|
|
23
|
+
cc detail timer "" <id>
|
|
24
|
+
cc pullList timer <id> <projectPath>
|
|
25
|
+
cc delete timer <nameOrId> [projectPath]
|
|
26
|
+
cc doc timer <introduction|devguide>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
参数约定:
|
|
30
|
+
|
|
31
|
+
- `name`:定时类名,与 `schedule/<name>/` 目录名一致。
|
|
32
|
+
- `listQueryJson`:可选;列表查询 JSON 经 `encodeURI(JSON.stringify(...))` 编码后传入;不传则使用默认分页参数。
|
|
33
|
+
- `projectPath`:项目根路径,可选。
|
|
34
|
+
- `id`:线上定时类 ID。`detail` 仅查服务器时:`cc detail timer "" <id>`。`pullList` 必填。
|
|
35
|
+
- `nameOrId`:本地目录名或类 ID;若本地 `config.json` 含 `id`,删除时优先使用该 ID。
|
|
36
|
+
|
|
37
|
+
### 命令作用摘要
|
|
38
|
+
|
|
39
|
+
| 命令 | 作用 |
|
|
40
|
+
|------|------|
|
|
41
|
+
| `create` | 在 `schedule/<name>/` 生成继承 `CCSchedule` 的 Java 模板与 `config.json` |
|
|
42
|
+
| `publish` | 将 SOURCE 区域提交到服务器;首次成功后可写回 `config.json` 的 `id` |
|
|
43
|
+
| `pull` | 按本地 `id` 拉取远端源码,覆盖主类中 SOURCE 区域(需已发布) |
|
|
44
|
+
| `get` | 查询线上定时类列表(JSON 输出) |
|
|
45
|
+
| `detail` | 按类名优先读本地;或仅按 `id` 读服务器 |
|
|
46
|
+
| `pullList` | 按类 `id` 将线上定时类落到指定项目的 `schedule/<类名>/` |
|
|
47
|
+
| `delete` | 删除服务器上的定时类 |
|
|
48
|
+
| `doc` | 输出模块文档;`devguide` 含附录后端 Java SDK 速查 |
|
|
49
|
+
|
|
50
|
+
### 推荐操作顺序
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# 1) 查看线上已有定时类(可选)
|
|
54
|
+
cc get timer
|
|
55
|
+
|
|
56
|
+
# 2) 新建定时类(仅通过 create 生成目录与模板)
|
|
57
|
+
cc create timer MySchedule
|
|
58
|
+
|
|
59
|
+
# 3) 编辑 schedule/MySchedule/MySchedule.java 中 SOURCE 区域后发布
|
|
60
|
+
cc publish timer MySchedule
|
|
61
|
+
|
|
62
|
+
# 4) 与服务器对齐时拉取
|
|
63
|
+
cc pull timer MySchedule
|
|
64
|
+
|
|
65
|
+
# 5) 按已知线上 ID 拉到指定项目
|
|
66
|
+
cc pullList timer <线上类ID> <projectPath>
|
|
67
|
+
|
|
68
|
+
# 6) 删除
|
|
69
|
+
cc delete timer MySchedule
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### 文档子命令
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
cc doc timer introduction
|
|
76
|
+
cc doc timer devguide
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
仅支持 `introduction` 与 `devguide`。
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
7
83
|
## 📌 什么是定时作业?
|
|
8
84
|
|
|
9
85
|
定时作业是一种**自动化任务调度系统**,允许你:
|
|
@@ -416,7 +492,13 @@ function main($CCDK, obj) {
|
|
|
416
492
|
|
|
417
493
|
## 📋 管理操作
|
|
418
494
|
|
|
419
|
-
###
|
|
495
|
+
### 定时类:使用 CLI 管理本地 `schedule/`(推荐)
|
|
496
|
+
|
|
497
|
+
与**定时类源码**的创建、同步、删除,请优先使用上文「CLI 与本地文件(必读)」中的命令,避免绕过 CLI 直接改目录或 `config.json`。
|
|
498
|
+
|
|
499
|
+
以下接口面向**定时作业配置**(调度时间、启用状态等在设置中的作业),与 `schedule/` 下定时类源码管理是不同层面;具体以你环境的管理后台与 OpenAPI 为准。
|
|
500
|
+
|
|
501
|
+
### 查询定时作业(平台接口示例)
|
|
420
502
|
|
|
421
503
|
```bash
|
|
422
504
|
# 获取列表
|
|
@@ -6,6 +6,113 @@
|
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
+
## CLI 与本地文件(必读)
|
|
10
|
+
|
|
11
|
+
本仓库中的触发器源码通过 **cloudcc-cli** 与平台同步,本地目录为 **`triggers/<对象 API 名小写>/<触发器名>/`**(内含 `*.java`、`config.json`),源码中的 `// @SOURCE_CONTENT_START` … `// @SOURCE_CONTENT_END` 与发布、拉取逻辑一致。**必须通过下列命令** 完成新建、发布、拉取与删除;不要手工拼目录、不要整包复制其他项目的触发器、不要私自篡改 `config.json` 中的 `id`、`apiname` 等字段。
|
|
12
|
+
|
|
13
|
+
**允许的做法**:在 CLI 已生成的主类中,仅在上述 SOURCE 标记之间编写业务逻辑;与云端列表、详情、拉取、删除、发布相关的操作一律走命令。
|
|
14
|
+
|
|
15
|
+
执行命令前请确认:已完成 `cc doc project devguide` 中的环境初始化,项目根目录配置可用且包含 `accessToken`。创建触发器前通常需要先通过 `cc get object ...` 等拿到目标对象的 `schemetableName`、`targetObjectId`(见下文物「创建」示例)。
|
|
16
|
+
|
|
17
|
+
### 命令总览(以代码实现为准)
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
cc create triggers <encodedCreateJson>
|
|
21
|
+
cc publish triggers <namePath>
|
|
22
|
+
cc pull triggers <namePath>
|
|
23
|
+
cc get triggers <listQueryJson> [projectPath]
|
|
24
|
+
cc detail triggers <namePath>
|
|
25
|
+
cc detail triggers "" <id>
|
|
26
|
+
cc pullList triggers <id> <projectPath>
|
|
27
|
+
cc delete triggers <namePathOrId> [projectPath]
|
|
28
|
+
cc doc triggers <introduction|devguide>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
参数约定:
|
|
32
|
+
|
|
33
|
+
- `encodedCreateJson`:`encodeURI(JSON.stringify({ ... }))`,其中至少包含:
|
|
34
|
+
- `schemetableName`:目标对象 API 名(如 `Account`)
|
|
35
|
+
- `targetObjectId`:目标对象 ID
|
|
36
|
+
- `triggerTime`:触发时机(如 `beforeInsert`、`beforeUpsert` 等,以平台为准)
|
|
37
|
+
- `name`:触发器类名(目录名)
|
|
38
|
+
- `apiname`:触发器 API 名(全局唯一)
|
|
39
|
+
- `namePath`:**对象目录/触发器名**,与本地路径一致,例如 `account/MyTrigger`(`schemetableName` 小写 + `/` + `name`)。`publish`、`pull`、`delete`(按路径删除时)均使用该形式。
|
|
40
|
+
- `listQueryJson`:列表查询 JSON,经 `encodeURI(JSON.stringify(...))` 编码后传入(**必填**,实现上无默认空查询)。
|
|
41
|
+
- `projectPath`:项目根路径,可选。
|
|
42
|
+
- `id`:线上触发器 ID。`detail` 仅查服务器:`cc detail triggers "" <id>`。
|
|
43
|
+
- `namePathOrId`:可为 `对象小写/触发器名` 形式的路径;若本地 `config.json` 含 `id`,删除时优先用该 ID。
|
|
44
|
+
|
|
45
|
+
### 命令作用摘要
|
|
46
|
+
|
|
47
|
+
| 命令 | 作用 |
|
|
48
|
+
|------|------|
|
|
49
|
+
| `create` | 在 `triggers/<对象小写>/<name>/` 生成继承 `CCTrigger` 的 Java 与 `config.json` |
|
|
50
|
+
| `publish` | 提交 SOURCE 区域等到服务器;首次成功后可写回 `config.json` 的 `id`、`apiname` 等 |
|
|
51
|
+
| `pull` | 按本地已发布 `id` 拉取远端源码,覆盖 SOURCE 区域 |
|
|
52
|
+
| `get` | 按条件查询线上触发器列表(JSON 输出) |
|
|
53
|
+
| `detail` | 按 `namePath` 优先读本地;或仅按 `id` 读服务器 |
|
|
54
|
+
| `pullList` | 按触发器 `id` 还原到指定项目的 `triggers/...` |
|
|
55
|
+
| `delete` | 删除服务器上的触发器 |
|
|
56
|
+
| `doc` | 输出模块文档;`devguide` 含附录后端 Java SDK 速查 |
|
|
57
|
+
|
|
58
|
+
### 创建示例(需先准备对象信息)
|
|
59
|
+
|
|
60
|
+
先构造对象(字段与平台约定一致),再整段做 `encodeURI(JSON.stringify(...))`,作为 `cc create triggers` 的**唯一参数**:
|
|
61
|
+
|
|
62
|
+
```json
|
|
63
|
+
{
|
|
64
|
+
"schemetableName": "Account",
|
|
65
|
+
"targetObjectId": "<目标对象 ID>",
|
|
66
|
+
"triggerTime": "beforeInsert",
|
|
67
|
+
"name": "MyTrigger",
|
|
68
|
+
"apiname": "NTrigger_unique_api_name"
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
在 Node 中生成编码后参数示例:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
node -p "encodeURI(JSON.stringify({schemetableName:'Account',targetObjectId:'<对象ID>',triggerTime:'beforeInsert',name:'MyTrigger',apiname:'NTrigger_xxx'}))"
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
将命令输出的**一整行**传给:`cc create triggers '<粘贴>'`。
|
|
79
|
+
|
|
80
|
+
### 推荐操作顺序
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
# 1) 查询自定义对象,取得 schemetableName、targetObjectId(示例)
|
|
84
|
+
cc get object . custom
|
|
85
|
+
|
|
86
|
+
# 2) 创建本地触发器目录与模板(encodedCreateJson 见上文)
|
|
87
|
+
cc create triggers '<encodedCreateJson>'
|
|
88
|
+
|
|
89
|
+
# 3) 编辑 triggers/<对象小写>/<name>/<name>.java 中 SOURCE 后发布
|
|
90
|
+
cc publish triggers account/MyTrigger
|
|
91
|
+
|
|
92
|
+
# 4) 与服务器对齐
|
|
93
|
+
cc pull triggers account/MyTrigger
|
|
94
|
+
|
|
95
|
+
# 5) 列表(查询 JSON 需 encodeURI)
|
|
96
|
+
cc get triggers '<listQueryJson>' .
|
|
97
|
+
|
|
98
|
+
# 6) 按线上 ID 拉到指定项目
|
|
99
|
+
cc pullList triggers <线上触发器ID> <projectPath>
|
|
100
|
+
|
|
101
|
+
# 7) 删除
|
|
102
|
+
cc delete triggers account/MyTrigger
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### 文档子命令
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
cc doc triggers introduction
|
|
109
|
+
cc doc triggers devguide
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
仅支持 `introduction` 与 `devguide`。
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
9
116
|
## 一、什么是触发器
|
|
10
117
|
|
|
11
118
|
CloudCC 触发器是完全符合 Java 语法规范的代码,在特定业务事件发生时自动执行,实现业务逻辑自动化处理。
|
|
@@ -292,6 +399,7 @@ System.out.println("记录 ID:" + record.get("id"));
|
|
|
292
399
|
|
|
293
400
|
### 8.3 触发器开发 Checklist
|
|
294
401
|
|
|
402
|
+
- [ ] 本地 `triggers/` 目录仅通过 `cc create` / `cc pull` / `cc pullList` / `cc publish` / `cc delete` 等命令维护,不手造路径、不手改 `config.json` 的 `id`
|
|
295
403
|
- [ ] 明确触发时机(before/after/approval)
|
|
296
404
|
- [ ] 评估并规避递归触发风险
|
|
297
405
|
- [ ] 添加异常处理与关键日志
|