cloudcc-cli 2.4.0 → 2.4.2
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/README.md +60 -0
- package/bin/index.js +5 -0
- package/cloudcc-dev-skill/SKILL.md +6 -12
- package/cloudcc-dev-skill/config.json +2 -2
- package/mcp/index.js +9 -4
- package/mcp/tools/Trigger List Retriever/handler.js +24 -8
- package/package.json +2 -2
- package/src/classes/create.js +1 -1
- package/src/classes/docs/devguide.md +138 -25
- package/src/config/use.js +20 -5
- package/src/dupeCatcher/create.js +76 -0
- package/src/dupeCatcher/delete.js +69 -0
- package/src/dupeCatcher/detail.js +57 -0
- package/src/dupeCatcher/doc.js +11 -0
- package/src/dupeCatcher/docs/devguide.md +125 -0
- package/src/dupeCatcher/docs/introduction.md +21 -0
- package/src/dupeCatcher/get.js +88 -0
- package/src/dupeCatcher/index.js +14 -0
- package/src/html/doc.js +35 -0
- package/src/html/docs/devguide.md +67 -0
- package/src/html/docs/introduction.md +4 -0
- package/src/html/index.js +11 -0
- package/src/openapi/cloudcc-openapi-sdk.js +1085 -0
- package/src/openapi/doc.js +30 -0
- package/src/openapi/docs/devguide.md +65 -0
- package/src/openapi/docs/introduction.md +43 -0
- package/src/openapi/get.js +45 -0
- package/src/openapi/index.js +12 -0
- package/src/plugin/publish1.js +1 -1
- package/src/plugin/pull.js +2 -2
- package/src/script/docs/devguide.md +22 -2
- package/src/sharingRule/doc.js +46 -0
- package/src/sharingRule/docs/devguide.md +28 -0
- package/src/sharingRule/docs/introduction.md +7 -0
- package/src/sharingRule/get.js +48 -0
- package/src/sharingRule/index.js +9 -0
- package/src/site/doc.js +35 -0
- package/src/site/docs/devguide.md +209 -0
- package/src/site/docs/introduction.md +4 -0
- package/src/site/index.js +11 -0
- package/src/timer/docs/devguide.md +218 -29
- package/src/triggers/docs/devguide.md +247 -127
- package/src/triggers/get.js +7 -0
- package/src/version/doctor.js +11 -4
- package/src/version/listModuleCommands.js +20 -0
- package/template/index.js +2 -2
- package/utils/config.js +129 -21
- package/cloudcc-dev-skill/cloudcc-dev-html.md +0 -42
- package/template/cloudcc-cli.configjs +0 -7
|
@@ -25,50 +25,167 @@
|
|
|
25
25
|
|
|
26
26
|
## 2. 编写依据
|
|
27
27
|
|
|
28
|
-
- 官方 SDK 文档负责定义
|
|
29
|
-
|
|
28
|
+
- 官方 SDK 文档负责定义
|
|
29
|
+
`CCObject`、`UserInfo`、`CCService`、`SendEmail`、`DevLogger`、`TimeUtil`、自定义设置、共享对象相关能力
|
|
30
|
+
- `triggers devguide` 负责定义
|
|
31
|
+
CLI、目录结构、创建发布拉取删除方式和触发器模块约束
|
|
30
32
|
- 当前项目触发器样例负责补充“本项目常见写法”和“本项目容易踩坑的地方”
|
|
31
33
|
|
|
32
|
-
## 3.
|
|
34
|
+
## 3. 与 introduction 的分工(避免重复)
|
|
33
35
|
|
|
34
|
-
|
|
36
|
+
为避免与 `triggers introduction` 内容重复,本 `devguide` 只保留“开发落地规范”:
|
|
35
37
|
|
|
36
|
-
|
|
38
|
+
- 命令与入参(可直接执行)
|
|
39
|
+
- 目录与文件约束(可直接检查)
|
|
40
|
+
- SDK 用法与边界(可直接编码)
|
|
41
|
+
- 代码结构、性能/递归/幂等与交付要求(可直接评审)
|
|
37
42
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
- 控制触发器体量,不把复杂逻辑全部堆在入口里
|
|
41
|
-
- 正确调用 SDK 完成查、增、改、删、通知、日志、时间处理
|
|
42
|
-
- 主动规避递归触发、重复生成、全表扫描、时区错误、共享误删等风险
|
|
43
|
+
“触发器是什么、适用/不适用场景、能力边界、与其他实现方式差异”等概念说明,统一以
|
|
44
|
+
`cloudcc doc triggers introduction` 为准。
|
|
43
45
|
|
|
44
|
-
## 4.
|
|
46
|
+
## 4. triggers 模块支持的 CLI 命令总览(重点:入参)
|
|
45
47
|
|
|
46
|
-
|
|
48
|
+
说明:
|
|
47
49
|
|
|
48
|
-
|
|
50
|
+
- 下文命令中的资源名使用 `triggers`。
|
|
51
|
+
- `projectPath` 未传时,默认使用当前工作目录。
|
|
49
52
|
|
|
50
|
-
|
|
51
|
-
- 某条记录修改时必须立即校验或联动
|
|
52
|
-
- 某条记录删除前必须阻止或删除后必须补偿
|
|
53
|
-
- 提交审批、审批通过、审批撤回时必须执行规则
|
|
54
|
-
- 当前规则必须平台层统一执行,不能依赖前端页面
|
|
55
|
-
- 当前动作如果不在这一刻做,会造成数据错误、状态错误或流程错误
|
|
53
|
+
#### 1) 创建触发器
|
|
56
54
|
|
|
57
|
-
|
|
55
|
+
命令:
|
|
58
56
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
57
|
+
```bash
|
|
58
|
+
cloudcc create triggers <encodedCreateJson>
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
`encodedCreateJson`(先 JSON.stringify,再 encodeURI)推荐字段:
|
|
62
|
+
|
|
63
|
+
| 字段 | 必填 | 类型 | 说明 |
|
|
64
|
+
| ----------------- | ---- | -------- | ------------------------------------------------------ |
|
|
65
|
+
| `schemetableName` | 是 | `string` | 目标对象 API 名(目录中会转小写) |
|
|
66
|
+
| `targetObjectId` | 是 | `string` | 目标对象 ID |
|
|
67
|
+
| `triggerTime` | 是 | `string` | 触发时机,如 `beforeInsert`、`afterUpdate`、`approval` |
|
|
68
|
+
| `name` | 是 | `string` | 触发器名称 |
|
|
69
|
+
| `apiname` | 建议 | `string` | 触发器 API 名 |
|
|
70
|
+
|
|
71
|
+
#### 2) 发布触发器
|
|
72
|
+
|
|
73
|
+
命令:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
cloudcc publish triggers <namePath>
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
参数:
|
|
80
|
+
|
|
81
|
+
| 参数 | 必填 | 类型 | 说明 |
|
|
82
|
+
| ---------- | ---- | -------- | --------------------------------------- |
|
|
83
|
+
| `namePath` | 是 | `string` | 触发器路径,格式:`对象小写名/触发器名` |
|
|
84
|
+
|
|
85
|
+
#### 3) 拉取触发器(按本地路径)
|
|
86
|
+
|
|
87
|
+
命令:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
cloudcc pull triggers <namePath>
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
参数:
|
|
94
|
+
|
|
95
|
+
| 参数 | 必填 | 类型 | 说明 |
|
|
96
|
+
| ---------- | ---- | -------- | -------------------------------------------------------------------------------- |
|
|
97
|
+
| `namePath` | 是 | `string` | 触发器路径,格式:`对象小写名/触发器名`;会读取该目录 `config.json` 的 `id` 拉取 |
|
|
98
|
+
|
|
99
|
+
#### 4) 查询触发器列表(支持条件查询)
|
|
100
|
+
|
|
101
|
+
命令:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
cloudcc get triggers <listQueryJson> [projectPath]
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
`listQueryJson` 推荐结构:
|
|
108
|
+
|
|
109
|
+
```json
|
|
110
|
+
{
|
|
111
|
+
"shownum": 2000,
|
|
112
|
+
"showpage": 1,
|
|
113
|
+
"sname": "",
|
|
114
|
+
"rptcond": "",
|
|
115
|
+
"rptorder": "",
|
|
116
|
+
"objId": ""
|
|
117
|
+
}
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
字段语义:
|
|
121
|
+
|
|
122
|
+
| 字段 | 含义 | 类型 | 是否推荐 | 说明 |
|
|
123
|
+
| ---------- | ----------------- | -------- | -------- | ------------------------ |
|
|
124
|
+
| `shownum` | 每页条数 | `number | string` | 推荐 |
|
|
125
|
+
| `showpage` | 页码 | `number | string` | 推荐 |
|
|
126
|
+
| `sname` | 触发器名字 | `string` | 可选 | 按名称模糊筛选,模糊查询 |
|
|
127
|
+
| `objId` | 触发器作用对象 ID | `string` | 可选 | 对象id(对象筛选优先用该字段) |
|
|
128
|
+
|
|
129
|
+
#### 5) 查看触发器详情
|
|
130
|
+
|
|
131
|
+
命令:
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
cloudcc detail triggers <namePath> <id>
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
参数规则(实现口径):
|
|
138
|
+
|
|
139
|
+
| 参数 | 必填 | 类型 | 说明 |
|
|
140
|
+
| ---------- | -------- | -------- | ------------------------------------------------ |
|
|
141
|
+
| `namePath` | 条件必填 | `string` | 传 `namePath` 时优先查本地;本地不完整时再走线上 |
|
|
142
|
+
| `id` | 条件必填 | `string` | 当 `namePath` 为空时,必须传 `id` 走线上查询 |
|
|
143
|
+
|
|
144
|
+
等价理解:`namePath` 与 `id` 至少传一个,优先使用 `namePath` 路径。
|
|
145
|
+
|
|
146
|
+
#### 6) 按 ID 拉取并落地到本地目录
|
|
147
|
+
|
|
148
|
+
命令:
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
cloudcc pullList triggers <id> <projectPath>
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
参数:
|
|
155
|
+
|
|
156
|
+
| 参数 | 必填 | 类型 | 说明 |
|
|
157
|
+
| ------------- | ---- | -------- | ----------------------------------------------------------- |
|
|
158
|
+
| `id` | 是 | `string` | 线上触发器 ID |
|
|
159
|
+
| `projectPath` | 是 | `string` | 项目根目录;会写入到 `<projectPath>/triggers/<obj>/<name>/` |
|
|
160
|
+
|
|
161
|
+
#### 7) 删除触发器
|
|
162
|
+
|
|
163
|
+
命令:
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
cloudcc delete triggers <namePathOrId> [projectPath]
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
参数规则:
|
|
170
|
+
|
|
171
|
+
| 参数 | 必填 | 类型 | 说明 |
|
|
172
|
+
| -------------- | ---- | -------- | ------------------------------------------------------------------------------------- |
|
|
173
|
+
| `namePathOrId` | 是 | `string` | 可传触发器路径或线上 ID;若本地路径存在且 `config.json` 含 `id`,优先使用该 `id` 删除 |
|
|
174
|
+
| `projectPath` | 否 | `string` | 项目根目录,默认当前目录 |
|
|
175
|
+
|
|
176
|
+
#### 8) 文档命令
|
|
177
|
+
|
|
178
|
+
命令:
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
cloudcc doc triggers <introduction|devguide>
|
|
182
|
+
```
|
|
65
183
|
|
|
66
|
-
|
|
184
|
+
参数:
|
|
67
185
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
- 页面交互,用页面脚本或组件
|
|
186
|
+
| 参数 | 必填 | 类型 | 说明 |
|
|
187
|
+
| ------------- | --------- | ---- | -------- |
|
|
188
|
+
| `introduction | devguide` | 是 | `string` |
|
|
72
189
|
|
|
73
190
|
## 5. 当前项目中触发器的真实约束
|
|
74
191
|
|
|
@@ -230,7 +347,8 @@ AI 不能默认“更新一下没事”。
|
|
|
230
347
|
|
|
231
348
|
## 8. SDK 使用规范
|
|
232
349
|
|
|
233
|
-
本节是本文的核心。以下 API 说明基于官方 SDK 页面整理,并专门补成“AI
|
|
350
|
+
本节是本文的核心。以下 API 说明基于官方 SDK 页面整理,并专门补成“AI
|
|
351
|
+
可直接使用”的格式。
|
|
234
352
|
|
|
235
353
|
写法原则:
|
|
236
354
|
|
|
@@ -258,18 +376,18 @@ public CCObject(String ccobj, String isShared)
|
|
|
258
376
|
|
|
259
377
|
参数说明:
|
|
260
378
|
|
|
261
|
-
| 方法
|
|
262
|
-
|
|
|
263
|
-
| `CCObject(String ccobj)`
|
|
264
|
-
| `CCObject(String ccobj, String isShared)` | `ccobj`
|
|
265
|
-
| `CCObject(String ccobj, String isShared)` | `isShared` | `String` | 是
|
|
379
|
+
| 方法 | 参数 | 类型 | 是否必填 | 官方说明 | AI 使用说明 |
|
|
380
|
+
| ----------------------------------------- | ---------- | -------- | -------- | --------------------------------------- | ------------------------------------------ |
|
|
381
|
+
| `CCObject(String ccobj)` | `ccobj` | `String` | 是 | 对象 API | 传对象 API 名,如 `Account`、`Opportunity` |
|
|
382
|
+
| `CCObject(String ccobj, String isShared)` | `ccobj` | `String` | 是 | 对象 API | 用于共享对象 |
|
|
383
|
+
| `CCObject(String ccobj, String isShared)` | `isShared` | `String` | 是 | 共享标识,建议使用 `CCObject.IS_SHARED` | 不要手写魔法值,优先常量 |
|
|
266
384
|
|
|
267
385
|
常量字段:
|
|
268
386
|
|
|
269
|
-
| 字段
|
|
270
|
-
|
|
|
387
|
+
| 字段 | 类型 | 默认值 | 说明 |
|
|
388
|
+
| ------------ | -------- | ------------- | ------------- |
|
|
271
389
|
| `OBJECT_API` | `String` | `CCObjectAPI` | 对象 API 常量 |
|
|
272
|
-
| `IS_SHARED`
|
|
390
|
+
| `IS_SHARED` | `String` | `isShared` | 共享对象常量 |
|
|
273
391
|
|
|
274
392
|
#### 8.1.2 常用方法
|
|
275
393
|
|
|
@@ -282,17 +400,17 @@ public String put(String apiName, String value)
|
|
|
282
400
|
|
|
283
401
|
参数说明:
|
|
284
402
|
|
|
285
|
-
| 方法
|
|
286
|
-
|
|
|
287
|
-
| `put` | `apiName` | `String` | 是
|
|
288
|
-
| `put` | `value`
|
|
403
|
+
| 方法 | 参数 | 类型 | 是否必填 | 官方说明 | AI 使用说明 |
|
|
404
|
+
| ----- | --------- | -------- | -------- | ------------ | ---------------------------------------------------------------- |
|
|
405
|
+
| `put` | `apiName` | `String` | 是 | 字段 APIName | 必须传字段 API 名,不要传字段显示名 |
|
|
406
|
+
| `put` | `value` | `String` | 是 | 字段值 | 官方示例按字符串传;AI 应按当前项目已有写法与 SDK 能力处理值类型 |
|
|
289
407
|
|
|
290
408
|
返回值说明:
|
|
291
409
|
|
|
292
|
-
| 方法
|
|
293
|
-
|
|
|
294
|
-
| `getObjectApiName` | `String` | 当前对象 API 名
|
|
295
|
-
| `put`
|
|
410
|
+
| 方法 | 返回类型 | 含义 |
|
|
411
|
+
| ------------------ | -------- | -------------------------------------------------- |
|
|
412
|
+
| `getObjectApiName` | `String` | 当前对象 API 名 |
|
|
413
|
+
| `put` | `String` | `HashMap` 风格返回值;在触发器里通常不依赖其返回值 |
|
|
296
414
|
|
|
297
415
|
AI 使用规则:
|
|
298
416
|
|
|
@@ -324,15 +442,16 @@ public String getRoleId()
|
|
|
324
442
|
|
|
325
443
|
返回值说明:
|
|
326
444
|
|
|
327
|
-
| 方法
|
|
328
|
-
|
|
|
445
|
+
| 方法 | 返回类型 | 官方说明 | AI 使用说明 |
|
|
446
|
+
| ----------- | -------- | ------------------------------ | -------------------- |
|
|
329
447
|
| `getUserId` | `String` | 当前用户 ID,未设置返回 `null` | 适合做当前操作人识别 |
|
|
330
|
-
| `getOrgId`
|
|
331
|
-
| `getRoleId` | `String` | 当前角色 ID,未设置返回 `null` | 适合做角色权限判断
|
|
448
|
+
| `getOrgId` | `String` | 当前组织 ID,未设置返回 `null` | 适合做组织级逻辑判断 |
|
|
449
|
+
| `getRoleId` | `String` | 当前角色 ID,未设置返回 `null` | 适合做角色权限判断 |
|
|
332
450
|
|
|
333
451
|
AI 使用规则:
|
|
334
452
|
|
|
335
|
-
- `CCService`、`SendEmail`、`DevLogger`、`TimeUtil` 都应围绕 `userInfo`
|
|
453
|
+
- `CCService`、`SendEmail`、`DevLogger`、`TimeUtil` 都应围绕 `userInfo`
|
|
454
|
+
构造或调用
|
|
336
455
|
- 不要硬编码用户、组织、角色信息替代 `userInfo`
|
|
337
456
|
|
|
338
457
|
### 8.3 `CCService` 详细说明
|
|
@@ -352,9 +471,9 @@ public CCService(UserInfo userInfo)
|
|
|
352
471
|
|
|
353
472
|
参数说明:
|
|
354
473
|
|
|
355
|
-
| 参数
|
|
356
|
-
|
|
|
357
|
-
| `userInfo` | `UserInfo` | 是
|
|
474
|
+
| 参数 | 类型 | 是否必填 | 官方说明 | AI 使用说明 |
|
|
475
|
+
| ---------- | ---------- | -------- | -------- | -------------------- |
|
|
476
|
+
| `userInfo` | `UserInfo` | 是 | 用户对象 | 必须传当前上下文用户 |
|
|
358
477
|
|
|
359
478
|
#### 8.3.2 `insert`
|
|
360
479
|
|
|
@@ -366,9 +485,9 @@ public ServiceResult insert(CCObject ccobj) throws BusiException
|
|
|
366
485
|
|
|
367
486
|
参数说明:
|
|
368
487
|
|
|
369
|
-
| 参数
|
|
370
|
-
|
|
|
371
|
-
| `ccobj` | `CCObject` | 是
|
|
488
|
+
| 参数 | 类型 | 是否必填 | 官方说明 | AI 使用说明 |
|
|
489
|
+
| ------- | ---------- | -------- | -------- | ---------------- |
|
|
490
|
+
| `ccobj` | `CCObject` | 是 | CC 对象 | 用于新增单条记录 |
|
|
372
491
|
|
|
373
492
|
返回值:
|
|
374
493
|
|
|
@@ -397,14 +516,14 @@ public List<CCObject> cquery(String apiName, String condtion, boolean isDataObje
|
|
|
397
516
|
|
|
398
517
|
参数说明:
|
|
399
518
|
|
|
400
|
-
| 方法
|
|
401
|
-
|
|
|
402
|
-
| `cquery(apiName, condtion, order)`
|
|
403
|
-
| `cquery(apiName, condtion, order)`
|
|
404
|
-
| `cquery(apiName, condtion, order)`
|
|
405
|
-
| `cquery(apiName, condtion, isDataObject)` | `apiName`
|
|
406
|
-
| `cquery(apiName, condtion, isDataObject)` | `condtion`
|
|
407
|
-
| `cquery(apiName, condtion, isDataObject)` | `isDataObject` | `Boolean` | 否
|
|
519
|
+
| 方法 | 参数 | 类型 | 是否必填 | 官方说明 | AI 使用说明 |
|
|
520
|
+
| ----------------------------------------- | -------------- | --------- | -------- | --------------------------------------------------------------- | ------------------------------ |
|
|
521
|
+
| `cquery(apiName, condtion, order)` | `apiName` | `String` | 是 | 对象 APIName | 必传对象 API |
|
|
522
|
+
| `cquery(apiName, condtion, order)` | `condition` | `String` | 否 | 使用字段 APIName 查询,自定义字段一定要加 `__c`;无条件则查全部 | 必须收窄条件,避免全表查 |
|
|
523
|
+
| `cquery(apiName, condtion, order)` | `order` | `String` | 否 | 使用字段 APIName 排序,自定义字段一定要加 `__c` | 只在确实需要排序时传 |
|
|
524
|
+
| `cquery(apiName, condtion, isDataObject)` | `apiName` | `String` | 是 | 对象 APIName | 必传对象 API |
|
|
525
|
+
| `cquery(apiName, condtion, isDataObject)` | `condtion` | `String` | 否 | 同上 | 自定义字段记得 `__c` |
|
|
526
|
+
| `cquery(apiName, condtion, isDataObject)` | `isDataObject` | `Boolean` | 否 | `true` 查普通数据,`false` 查共享数据 | 不要混淆普通对象和共享对象口径 |
|
|
408
527
|
|
|
409
528
|
返回值:
|
|
410
529
|
|
|
@@ -432,10 +551,10 @@ public List<CCObject> cqlQuery(String apiName, String cql) throws Exception
|
|
|
432
551
|
|
|
433
552
|
参数说明:
|
|
434
553
|
|
|
435
|
-
| 参数
|
|
436
|
-
|
|
|
437
|
-
| `apiName` | `String` | 是
|
|
438
|
-
| `cql`
|
|
554
|
+
| 参数 | 类型 | 是否必填 | 官方说明 | AI 使用说明 |
|
|
555
|
+
| --------- | -------- | -------- | ------------------------------- | ------------------------------------------- |
|
|
556
|
+
| `apiName` | `String` | 是 | 对象 APIName | 必传主对象 API |
|
|
557
|
+
| `cql` | `String` | 否 | SQL 语句,支持常用 `where` 条件 | 适用于聚合、复杂过滤;避免无边界 `select *` |
|
|
439
558
|
|
|
440
559
|
返回值:
|
|
441
560
|
|
|
@@ -463,9 +582,9 @@ public ServiceResult update(CCObject ccobj) throws Exception
|
|
|
463
582
|
|
|
464
583
|
参数说明:
|
|
465
584
|
|
|
466
|
-
| 参数
|
|
467
|
-
|
|
|
468
|
-
| `ccobj` | `CCObject` | 是
|
|
585
|
+
| 参数 | 类型 | 是否必填 | 官方说明 | AI 使用说明 |
|
|
586
|
+
| ------- | ---------- | -------- | -------- | --------------------- |
|
|
587
|
+
| `ccobj` | `CCObject` | 是 | CC 对象 | 修改记录时必须带 `id` |
|
|
469
588
|
|
|
470
589
|
返回值:
|
|
471
590
|
|
|
@@ -493,9 +612,9 @@ public ServiceResult delete(CCObject ccobj) throws Exception
|
|
|
493
612
|
|
|
494
613
|
参数说明:
|
|
495
614
|
|
|
496
|
-
| 参数
|
|
497
|
-
|
|
|
498
|
-
| `ccobj` | `CCObject` | 是
|
|
615
|
+
| 参数 | 类型 | 是否必填 | 官方说明 | AI 使用说明 |
|
|
616
|
+
| ------- | ---------- | -------- | -------- | ------------------------- |
|
|
617
|
+
| `ccobj` | `CCObject` | 是 | CC 对象 | 删除记录时通常必须带 `id` |
|
|
499
618
|
|
|
500
619
|
返回值:
|
|
501
620
|
|
|
@@ -523,10 +642,10 @@ public void deleteShareObjectBySql(String objectApiName, String expression) thro
|
|
|
523
642
|
|
|
524
643
|
参数说明:
|
|
525
644
|
|
|
526
|
-
| 参数
|
|
527
|
-
|
|
|
528
|
-
| `objectApiName` | `String` | 是
|
|
529
|
-
| `expression`
|
|
645
|
+
| 参数 | 类型 | 是否必填 | 官方说明 | AI 使用说明 |
|
|
646
|
+
| --------------- | -------- | -------- | ------------------------------ | ------------------------ |
|
|
647
|
+
| `objectApiName` | `String` | 是 | 对象 APIName | 共享对象 API |
|
|
648
|
+
| `expression` | `String` | 是 | SQL 表达式,字段不需要加 `__c` | 这是共享删除的关键差异点 |
|
|
530
649
|
|
|
531
650
|
返回值:
|
|
532
651
|
|
|
@@ -555,13 +674,13 @@ public Map getCustomSetting(String objectApiName, String id)
|
|
|
555
674
|
|
|
556
675
|
参数说明:
|
|
557
676
|
|
|
558
|
-
| 方法
|
|
559
|
-
|
|
|
560
|
-
| `getListCustomSetting(String objectApiName)`
|
|
561
|
-
| `getListCustomSetting(String apiName, String name)` | `apiName`
|
|
562
|
-
| `getListCustomSetting(String apiName, String name)` | `name`
|
|
563
|
-
| `getCustomSetting(String objectApiName, String id)` | `objectApiName` | `String` | 是
|
|
564
|
-
| `getCustomSetting(String objectApiName, String id)` | `id`
|
|
677
|
+
| 方法 | 参数 | 类型 | 是否必填 | 官方说明 | AI 使用说明 |
|
|
678
|
+
| --------------------------------------------------- | --------------- | -------- | -------- | ------------------ | ---------------------------------- |
|
|
679
|
+
| `getListCustomSetting(String objectApiName)` | `objectApiName` | `String` | 是 | 对象 APIName | 返回某个列表型自定义设置的全部数据 |
|
|
680
|
+
| `getListCustomSetting(String apiName, String name)` | `apiName` | `String` | 是 | 对象 APIName | 取列表型自定义设置中的单条 |
|
|
681
|
+
| `getListCustomSetting(String apiName, String name)` | `name` | `String` | 是 | 自定义设置属性名称 | 通过名称定位单条配置 |
|
|
682
|
+
| `getCustomSetting(String objectApiName, String id)` | `objectApiName` | `String` | 是 | 对象 APIName | 用于层次结构型自定义设置 |
|
|
683
|
+
| `getCustomSetting(String objectApiName, String id)` | `id` | `String` | 是 | 简档 id 或用户 id | 按权限上下文取配置 |
|
|
565
684
|
|
|
566
685
|
返回值:
|
|
567
686
|
|
|
@@ -597,9 +716,9 @@ public SendEmail(UserInfo userInfo)
|
|
|
597
716
|
|
|
598
717
|
参数说明:
|
|
599
718
|
|
|
600
|
-
| 参数
|
|
601
|
-
|
|
|
602
|
-
| `userInfo` | `UserInfo` | 是
|
|
719
|
+
| 参数 | 类型 | 是否必填 | 官方说明 | AI 使用说明 |
|
|
720
|
+
| ---------- | ---------- | -------- | -------- | -------------------- |
|
|
721
|
+
| `userInfo` | `UserInfo` | 是 | 用户对象 | 用当前上下文发送邮件 |
|
|
603
722
|
|
|
604
723
|
#### 8.4.2 `sendMailFromSystem`
|
|
605
724
|
|
|
@@ -617,14 +736,14 @@ public boolean sendMailFromSystem(
|
|
|
617
736
|
|
|
618
737
|
参数说明:
|
|
619
738
|
|
|
620
|
-
| 参数
|
|
621
|
-
|
|
|
622
|
-
| `toAddress`
|
|
623
|
-
| `ccAddress`
|
|
624
|
-
| `bccAddress` | `String[]` | 是
|
|
625
|
-
| `subject`
|
|
626
|
-
| `content`
|
|
627
|
-
| `isText`
|
|
739
|
+
| 参数 | 类型 | 是否必填 | 官方说明 | AI 使用说明 |
|
|
740
|
+
| ------------ | ---------- | -------- | -------------------------------------- | --------------------- |
|
|
741
|
+
| `toAddress` | `String[]` | 是 | 收件箱 | 没有收件人不要发送 |
|
|
742
|
+
| `ccAddress` | `String[]` | 是 | 抄送人 | 没有可传空数组 |
|
|
743
|
+
| `bccAddress` | `String[]` | 是 | 密送人 | 没有可传空数组 |
|
|
744
|
+
| `subject` | `String` | 是 | 邮件标题 | 标题要能表达业务动作 |
|
|
745
|
+
| `content` | `String` | 是 | 邮件内容 | HTML 内容要控制复杂度 |
|
|
746
|
+
| `isText` | `boolean` | 是 | 是否采用 TXT 方式发送;`false` 为 HTML | HTML 邮件常用 `false` |
|
|
628
747
|
|
|
629
748
|
返回值:
|
|
630
749
|
|
|
@@ -651,13 +770,13 @@ public ServiceResult sendEmailNew(
|
|
|
651
770
|
|
|
652
771
|
参数说明:
|
|
653
772
|
|
|
654
|
-
| 参数
|
|
655
|
-
|
|
|
656
|
-
| `emailtemplateid` | `String`
|
|
657
|
-
| `toaddress`
|
|
658
|
-
| `ccaddress`
|
|
659
|
-
| `bcaddress`
|
|
660
|
-
| `id`
|
|
773
|
+
| 参数 | 类型 | 是否必填 | 官方说明 | AI 使用说明 |
|
|
774
|
+
| ----------------- | ---------- | -------- | ------------------- | -------------------------------------------------------------------------------- |
|
|
775
|
+
| `emailtemplateid` | `String` | 是 | 邮件模版 id | 优先模板化发送 |
|
|
776
|
+
| `toaddress` | `String[]` | 是 | 收件箱 | 传收件人数组 |
|
|
777
|
+
| `ccaddress` | `String[]` | 是 | 抄送人 | 没有可传空数组 |
|
|
778
|
+
| `bcaddress` | `String[]` | 是 | 密送人 | 官方签名为 `bcaddress`,按签名使用 |
|
|
779
|
+
| `id` | `String` | 是 | 官方文档仅给出 `id` | 结合方法语义,AI 应将其视为模板填充关联记录 ID;此处为基于官方方法名与示例的推断 |
|
|
661
780
|
|
|
662
781
|
返回值:
|
|
663
782
|
|
|
@@ -684,9 +803,9 @@ public DevLogger(UserInfo userInfo)
|
|
|
684
803
|
|
|
685
804
|
参数说明:
|
|
686
805
|
|
|
687
|
-
| 参数
|
|
688
|
-
|
|
|
689
|
-
| `userInfo` | `UserInfo` | 是
|
|
806
|
+
| 参数 | 类型 | 是否必填 | 官方说明 | AI 使用说明 |
|
|
807
|
+
| ---------- | ---------- | -------- | -------- | -------------------- |
|
|
808
|
+
| `userInfo` | `UserInfo` | 是 | 用户对象 | 用当前上下文记录日志 |
|
|
690
809
|
|
|
691
810
|
#### 8.5.2 `devLogInfo`
|
|
692
811
|
|
|
@@ -698,9 +817,9 @@ public void devLogInfo(String info)
|
|
|
698
817
|
|
|
699
818
|
参数说明:
|
|
700
819
|
|
|
701
|
-
| 参数
|
|
702
|
-
|
|
|
703
|
-
| `info` | `String` | 是
|
|
820
|
+
| 参数 | 类型 | 是否必填 | 官方说明 | AI 使用说明 |
|
|
821
|
+
| ------ | -------- | -------- | -------- | -------------------------------- |
|
|
822
|
+
| `info` | `String` | 是 | 日志信息 | 记录关键主键、关键分支、关键动作 |
|
|
704
823
|
|
|
705
824
|
返回值:
|
|
706
825
|
|
|
@@ -716,10 +835,10 @@ public void devLogError(String error, Throwable throwable)
|
|
|
716
835
|
|
|
717
836
|
参数说明:
|
|
718
837
|
|
|
719
|
-
| 参数
|
|
720
|
-
|
|
|
721
|
-
| `error`
|
|
722
|
-
| `throwable` | `Throwable` | 否
|
|
838
|
+
| 参数 | 类型 | 是否必填 | 官方说明 | AI 使用说明 |
|
|
839
|
+
| ----------- | ----------- | -------- | -------- | -------------------------- |
|
|
840
|
+
| `error` | `String` | 是 | 日志信息 | 错误信息必须包含业务上下文 |
|
|
841
|
+
| `throwable` | `Throwable` | 否 | 异常对象 | 有异常时尽量带上 |
|
|
723
842
|
|
|
724
843
|
返回值:
|
|
725
844
|
|
|
@@ -737,7 +856,8 @@ AI 使用规则:
|
|
|
737
856
|
类说明:
|
|
738
857
|
|
|
739
858
|
- 官方说明:`Date` 和 `Calendar` 默认基于本地时区,跨时区处理容易出错
|
|
740
|
-
- 作用:所有和当前时间、用户时区、格式化、Calendar 相关的逻辑,都应优先走
|
|
859
|
+
- 作用:所有和当前时间、用户时区、格式化、Calendar 相关的逻辑,都应优先走
|
|
860
|
+
`TimeUtil`
|
|
741
861
|
|
|
742
862
|
#### 8.6.1 `getNowDate`
|
|
743
863
|
|
|
@@ -750,9 +870,9 @@ task.setBeginTime(TimeUtil.getNowDate(userInfo));
|
|
|
750
870
|
|
|
751
871
|
参数说明:
|
|
752
872
|
|
|
753
|
-
| 参数
|
|
754
|
-
|
|
|
755
|
-
| `userInfo` | `UserInfo` | 是
|
|
873
|
+
| 参数 | 类型 | 是否必填 | 官方说明 |
|
|
874
|
+
| ---------- | ---------- | -------- | -------- |
|
|
875
|
+
| `userInfo` | `UserInfo` | 是 | 用户对象 |
|
|
756
876
|
|
|
757
877
|
AI 使用规则:
|
|
758
878
|
|
|
@@ -768,9 +888,9 @@ TimeUtil.getUserTimeZone(userInfo)
|
|
|
768
888
|
|
|
769
889
|
参数说明:
|
|
770
890
|
|
|
771
|
-
| 参数
|
|
772
|
-
|
|
|
773
|
-
| `userInfo` | `UserInfo` | 是
|
|
891
|
+
| 参数 | 类型 | 是否必填 | 官方说明 |
|
|
892
|
+
| ---------- | ---------- | -------- | -------- |
|
|
893
|
+
| `userInfo` | `UserInfo` | 是 | 用户对象 |
|
|
774
894
|
|
|
775
895
|
AI 使用规则:
|
|
776
896
|
|
|
@@ -786,10 +906,10 @@ SimpleDateFormat myDateFormat = TimeUtil.getSimpleDateFormat(format, userInfo);
|
|
|
786
906
|
|
|
787
907
|
参数说明:
|
|
788
908
|
|
|
789
|
-
| 参数
|
|
790
|
-
|
|
|
791
|
-
| `format`
|
|
792
|
-
| `userInfo` | `UserInfo` | 是
|
|
909
|
+
| 参数 | 类型 | 是否必填 | 默认值 | 官方说明 | AI 使用说明 |
|
|
910
|
+
| ---------- | ---------- | -------- | -------------- | -------- | ---------------------- |
|
|
911
|
+
| `format` | `String` | 是 | `"yyyy-MM-dd"` | 格式化 | 显式传格式串 |
|
|
912
|
+
| `userInfo` | `UserInfo` | 是 | - | 用户对象 | 用用户时区创建格式化器 |
|
|
793
913
|
|
|
794
914
|
#### 8.6.4 `getCalendar`
|
|
795
915
|
|
package/src/triggers/get.js
CHANGED
|
@@ -3,6 +3,13 @@ const { postClass } = require("../../utils/http")
|
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* cloudcc get triggers <listQueryJson> [projectPath]
|
|
6
|
+
* listQueryJson 字段说明:
|
|
7
|
+
* - shownum: 每页条数
|
|
8
|
+
* - showpage: 页码
|
|
9
|
+
* - sname: 触发器名字
|
|
10
|
+
* - objId: 触发器作用对象 ID(对象筛选请优先使用此字段)
|
|
11
|
+
* - rptcond: 额外筛选条件
|
|
12
|
+
* - rptorder: 排序条件
|
|
6
13
|
* @param {string[]} argvs
|
|
7
14
|
*/
|
|
8
15
|
async function get(argvs, isMcp = false) {
|
package/src/version/doctor.js
CHANGED
|
@@ -11,12 +11,19 @@ function doctor() {
|
|
|
11
11
|
console.error(chalk.green("✓") + " cloudcc-cli v" + pkg.version)
|
|
12
12
|
|
|
13
13
|
const cwd = process.cwd()
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
const jsonPath = path.join(cwd, "cloudcc-cli.config.json")
|
|
15
|
+
const jsPath = path.join(cwd, "cloudcc-cli.config.js")
|
|
16
|
+
const hasJson = fs.existsSync(jsonPath)
|
|
17
|
+
const hasJs = fs.existsSync(jsPath)
|
|
18
|
+
if (hasJson || hasJs) {
|
|
19
|
+
const parts = []
|
|
20
|
+
if (hasJson) parts.push("cloudcc-cli.config.json")
|
|
21
|
+
if (hasJs) parts.push("cloudcc-cli.config.js")
|
|
22
|
+
console.error(chalk.green("✓") + " 当前目录存在 " + parts.join("、"))
|
|
17
23
|
} else {
|
|
18
24
|
console.error(
|
|
19
|
-
chalk.yellow("○") +
|
|
25
|
+
chalk.yellow("○") +
|
|
26
|
+
" 当前目录未找到 cloudcc-cli.config.json / cloudcc-cli.config.js(若在本目录开发 CloudCC 项目,请先初始化或放入配置)"
|
|
20
27
|
)
|
|
21
28
|
}
|
|
22
29
|
console.error()
|