weaver-e10-builder 1.1.6 → 1.1.7
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/dist/commands/actionflow.d.ts.map +1 -1
- package/dist/commands/actionflow.js +93 -10
- package/dist/commands/actionflow.js.map +1 -1
- package/dist/commands/designer-common.d.ts +12 -2
- package/dist/commands/designer-common.d.ts.map +1 -1
- package/dist/commands/designer-common.js +89 -22
- package/dist/commands/designer-common.js.map +1 -1
- package/dist/commands/designer.d.ts.map +1 -1
- package/dist/commands/designer.js +7 -2
- package/dist/commands/designer.js.map +1 -1
- package/dist/commands/form-association-manage.js +1 -1
- package/dist/commands/form-association-manage.js.map +1 -1
- package/dist/commands/form-association.d.ts.map +1 -1
- package/dist/commands/form-association.js +1 -6
- package/dist/commands/form-association.js.map +1 -1
- package/dist/commands/form-field-lang.d.ts +3 -0
- package/dist/commands/form-field-lang.d.ts.map +1 -0
- package/dist/commands/form-field-lang.js +148 -0
- package/dist/commands/form-field-lang.js.map +1 -0
- package/dist/commands/form-table-view.d.ts.map +1 -1
- package/dist/commands/form-table-view.js +28 -9
- package/dist/commands/form-table-view.js.map +1 -1
- package/dist/commands/form.d.ts.map +1 -1
- package/dist/commands/form.js +10 -4
- package/dist/commands/form.js.map +1 -1
- package/dist/commands/interface.d.ts.map +1 -1
- package/dist/commands/interface.js +7 -3
- package/dist/commands/interface.js.map +1 -1
- package/dist/commands/matrix.d.ts.map +1 -1
- package/dist/commands/matrix.js +78 -16
- package/dist/commands/matrix.js.map +1 -1
- package/dist/commands/workflow-create-workflow.d.ts.map +1 -1
- package/dist/commands/workflow-create-workflow.js +20 -5
- package/dist/commands/workflow-create-workflow.js.map +1 -1
- package/dist/commands/workflow-odoc.d.ts +3 -0
- package/dist/commands/workflow-odoc.d.ts.map +1 -0
- package/dist/commands/workflow-odoc.js +288 -0
- package/dist/commands/workflow-odoc.js.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/services/actionflow/build_workflow_draft.d.ts.map +1 -1
- package/dist/services/actionflow/build_workflow_draft.js +17 -7
- package/dist/services/actionflow/build_workflow_draft.js.map +1 -1
- package/dist/services/actionflow/command_output.d.ts +4 -0
- package/dist/services/actionflow/command_output.d.ts.map +1 -1
- package/dist/services/actionflow/command_output.js +92 -1
- package/dist/services/actionflow/command_output.js.map +1 -1
- package/dist/services/actionflow/component_registry.d.ts.map +1 -1
- package/dist/services/actionflow/component_registry.js +11 -2
- package/dist/services/actionflow/component_registry.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_add.js +1 -1
- package/dist/services/actionflow/components/action_eb_add.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_update.js +1 -1
- package/dist/services/actionflow/components/action_eb_update.js.map +1 -1
- package/dist/services/actionflow/components/dml_execute.d.ts +11 -0
- package/dist/services/actionflow/components/dml_execute.d.ts.map +1 -0
- package/dist/services/actionflow/components/dml_execute.js +172 -0
- package/dist/services/actionflow/components/dml_execute.js.map +1 -0
- package/dist/services/actionflow/components/enquiry_form.d.ts +7 -0
- package/dist/services/actionflow/components/enquiry_form.d.ts.map +1 -1
- package/dist/services/actionflow/components/enquiry_form.js +57 -7
- package/dist/services/actionflow/components/enquiry_form.js.map +1 -1
- package/dist/services/actionflow/components/http.d.ts +12 -0
- package/dist/services/actionflow/components/http.d.ts.map +1 -0
- package/dist/services/actionflow/components/http.js +216 -0
- package/dist/services/actionflow/components/http.js.map +1 -0
- package/dist/services/actionflow/components/index.d.ts.map +1 -1
- package/dist/services/actionflow/components/index.js +7 -0
- package/dist/services/actionflow/components/index.js.map +1 -1
- package/dist/services/actionflow/components/send_message.d.ts.map +1 -1
- package/dist/services/actionflow/components/send_message.js +9 -1
- package/dist/services/actionflow/components/send_message.js.map +1 -1
- package/dist/services/actionflow/context_preflight.d.ts +2 -0
- package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
- package/dist/services/actionflow/context_preflight.js +127 -16
- package/dist/services/actionflow/context_preflight.js.map +1 -1
- package/dist/services/actionflow/datasource_source.d.ts +18 -0
- package/dist/services/actionflow/datasource_source.d.ts.map +1 -0
- package/dist/services/actionflow/datasource_source.js +19 -0
- package/dist/services/actionflow/datasource_source.js.map +1 -0
- package/dist/services/actionflow/design_client.d.ts +0 -2
- package/dist/services/actionflow/design_client.d.ts.map +1 -1
- package/dist/services/actionflow/design_client.js +0 -19
- package/dist/services/actionflow/design_client.js.map +1 -1
- package/dist/services/actionflow/dynamic_resources.d.ts +69 -0
- package/dist/services/actionflow/dynamic_resources.d.ts.map +1 -0
- package/dist/services/actionflow/dynamic_resources.js +259 -0
- package/dist/services/actionflow/dynamic_resources.js.map +1 -0
- package/dist/services/actionflow/form_source.d.ts +6 -0
- package/dist/services/actionflow/form_source.d.ts.map +1 -1
- package/dist/services/actionflow/form_source.js +16 -0
- package/dist/services/actionflow/form_source.js.map +1 -1
- package/dist/services/actionflow/formula_service.d.ts +2 -0
- package/dist/services/actionflow/formula_service.d.ts.map +1 -1
- package/dist/services/actionflow/formula_service.js +126 -6
- package/dist/services/actionflow/formula_service.js.map +1 -1
- package/dist/services/actionflow/generation_service.d.ts +17 -1
- package/dist/services/actionflow/generation_service.d.ts.map +1 -1
- package/dist/services/actionflow/generation_service.js +105 -8
- package/dist/services/actionflow/generation_service.js.map +1 -1
- package/dist/services/actionflow/http_input_params.d.ts +17 -0
- package/dist/services/actionflow/http_input_params.d.ts.map +1 -0
- package/dist/services/actionflow/http_input_params.js +98 -0
- package/dist/services/actionflow/http_input_params.js.map +1 -0
- package/dist/services/actionflow/http_source.d.ts +41 -0
- package/dist/services/actionflow/http_source.d.ts.map +1 -0
- package/dist/services/actionflow/http_source.js +261 -0
- package/dist/services/actionflow/http_source.js.map +1 -0
- package/dist/services/actionflow/plan_constraints.d.ts.map +1 -1
- package/dist/services/actionflow/plan_constraints.js +4 -2
- package/dist/services/actionflow/plan_constraints.js.map +1 -1
- package/dist/services/actionflow/preflight_service.d.ts +8 -0
- package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
- package/dist/services/actionflow/preflight_service.js +105 -27
- package/dist/services/actionflow/preflight_service.js.map +1 -1
- package/dist/services/actionflow/readback_verifier.d.ts.map +1 -1
- package/dist/services/actionflow/readback_verifier.js +34 -1
- package/dist/services/actionflow/readback_verifier.js.map +1 -1
- package/dist/services/actionflow/save_workflow_draft.d.ts +1 -0
- package/dist/services/actionflow/save_workflow_draft.d.ts.map +1 -1
- package/dist/services/actionflow/save_workflow_draft.js +61 -16
- package/dist/services/actionflow/save_workflow_draft.js.map +1 -1
- package/dist/services/actionflow/step_branches.d.ts +18 -0
- package/dist/services/actionflow/step_branches.d.ts.map +1 -0
- package/dist/services/actionflow/step_branches.js +26 -0
- package/dist/services/actionflow/step_branches.js.map +1 -0
- package/dist/services/actionflow/update_service.d.ts.map +1 -1
- package/dist/services/actionflow/update_service.js +24 -53
- package/dist/services/actionflow/update_service.js.map +1 -1
- package/dist/services/actionflow/workflow_compiler.d.ts +1 -1
- package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
- package/dist/services/actionflow/workflow_compiler.js +47 -11
- package/dist/services/actionflow/workflow_compiler.js.map +1 -1
- package/dist/services/esb-interface/document-parser.d.ts.map +1 -1
- package/dist/services/esb-interface/document-parser.js +17 -1
- package/dist/services/esb-interface/document-parser.js.map +1 -1
- package/dist/services/esb-interface/importer.d.ts +4 -1
- package/dist/services/esb-interface/importer.d.ts.map +1 -1
- package/dist/services/esb-interface/importer.js +10 -4
- package/dist/services/esb-interface/importer.js.map +1 -1
- package/dist/services/esb-interface/postman-collection.d.ts +6 -0
- package/dist/services/esb-interface/postman-collection.d.ts.map +1 -1
- package/dist/services/esb-interface/postman-collection.js +12 -1
- package/dist/services/esb-interface/postman-collection.js.map +1 -1
- package/dist/services/esb-interface/types.d.ts +1 -0
- package/dist/services/esb-interface/types.d.ts.map +1 -1
- package/dist/services/form-association.d.ts +1 -0
- package/dist/services/form-association.d.ts.map +1 -1
- package/dist/services/form-association.js +28 -4
- package/dist/services/form-association.js.map +1 -1
- package/dist/services/form-table-view.d.ts +24 -4
- package/dist/services/form-table-view.d.ts.map +1 -1
- package/dist/services/form-table-view.js +144 -133
- package/dist/services/form-table-view.js.map +1 -1
- package/dist/services/rich-types.d.ts.map +1 -1
- package/dist/services/rich-types.js +149 -9
- package/dist/services/rich-types.js.map +1 -1
- package/package.json +3 -2
- package/skill-docs/SKILL.md +261 -252
- package/skill-docs/actionflows/references/components/database/DMLExecute.md +38 -0
- package/skill-docs/actionflows/references/components/ebuilder/ActionEbAdd.md +2 -0
- package/skill-docs/actionflows/references/components/ebuilder/ActionEbUpdate.md +2 -0
- package/skill-docs/actionflows/references/components/ebuilder/EnquiryForm.md +2 -2
- package/skill-docs/actionflows/references/components/http/Http.md +77 -0
- package/skill-docs/actionflows/references/components/message/SendMessage.md +14 -1
- package/skill-docs/actionflows/references/condition_rules.md +1 -0
- package/skill-docs/actionflows/references/dynamic_resources.md +41 -0
- package/skill-docs/actionflows/references/function_rules.md +15 -13
- package/skill-docs/references/common/guide-plan-template.md +21 -7
- package/skill-docs/references/common/ref-cli-commands.md +13 -6
- package/skill-docs/references/esb-interface/guide-import.md +31 -0
- package/skill-docs/references/form/guide-create-form.md +126 -376
- package/skill-docs/references/form/guide-form-association.md +6 -3
- package/skill-docs/references/form/guide-form-layout-planning.md +68 -0
- package/skill-docs/references/form/guide-form-serial-mark.md +47 -0
- package/skill-docs/references/form/guide-form-view.md +22 -3
- package/skill-docs/references/form/ref-form-fields.md +147 -0
- package/skill-docs/references/hrm/guide-matrix.md +54 -3
- package/skill-docs/references/workflow/guide-workflow-action.md +2 -0
- package/skill-docs/references/workflow/guide-workflow-condition.md +48 -6
- package/skill-docs/references/workflow/guide-workflow-odoc.md +76 -0
- package/skill-docs/references/workflow/guide-workflow.md +467 -461
- package/skill-docs/references/workflow/operator-matrix.md +2 -0
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
|
|
13
13
|
`id`、`updateData`、`fieldUpdate` 三种定位方式互不替代。`basisValue` 只用于真实上游明细依据值。
|
|
14
14
|
|
|
15
|
+
更新赋值可以使用固定值、上下文、动作流变量、租户常量或函数/公式;变量必须属于当前动作流场景,常量必须是当前租户真实常量 ID。新建资源和名称引用见 `references/dynamic_resources.md`。
|
|
16
|
+
|
|
15
17
|
## 最小计划
|
|
16
18
|
|
|
17
19
|
`targetForm`、`person`、更新赋值,以及与 `opType` 对应的定位参数。
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
## 最小计划
|
|
16
16
|
|
|
17
|
-
`dataSource`、`person`;按 `opType` 补充查询字段和筛选条件。未明确限制 `queryFields` 时不要传它(或传空数组),CLI 会默认全选主表和系统字段,包含“数据ID
|
|
17
|
+
`dataSource`、`person`;按 `opType` 补充查询字段和筛选条件。未明确限制 `queryFields` 时不要传它(或传空数组),CLI 会默认全选主表和系统字段,包含“数据ID”。未指定 `filter` 时,CLI 会生成平台必填的中性条件“数据ID不为空”,不改变业务筛选范围;只有明确指定 `filter` 时才使用业务条件。
|
|
18
18
|
|
|
19
19
|
## 分组/汇总查询
|
|
20
20
|
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
- assign:`type=3`,`value = "FormData.{查询表id}[{positionId}].id"`(**数组下标用 positionId 而非 `[]`**)
|
|
59
59
|
- `config.comType = "EnquiryForm"`、`config.comId = EnquiryForm 节点 id`、`config.paramKey = "{查询表id}[].id"`(paramKey 保持 `[]` 数组标记)
|
|
60
60
|
- **childs 必须带固定值取下标**:`[{ type: "1", value: "0", position: "{positionId}" }]`(value=0 取第一条)
|
|
61
|
-
- `frontId` =
|
|
61
|
+
- `frontId` = 查询结果字段的真实 `fieldId`(不能使用公式对象临时 id);前端用它定位查询节点输出字段,否则会回显为“数据源查询(已删除)”并标红。
|
|
62
62
|
|
|
63
63
|
3. 其余明细字段仍用依据值下级 type=10 直连(paramKey `{wfId}.{明细表id}[].{子字段id}`,source=event 节点 id)。
|
|
64
64
|
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# 执行 HTTP(`Http`)
|
|
2
|
+
|
|
3
|
+
执行已经在当前租户连接器中配置好的 HTTP/HTTPS 接口。平台前端组件类型是 `Http`;HTTPS 不是另一个组件类型,而是资源接口地址的协议。
|
|
4
|
+
|
|
5
|
+
先运行:
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
e10-cli actionflow component-describe Http
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
按以下顺序发现真实对象,并把接口详情完整保存下来,避免终端摘要或截断输出造成误判:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
e10-cli actionflow http-connectors --out http-connectors.json
|
|
15
|
+
e10-cli actionflow http-resources '{"systemId":"<连接器ID>"}' --out http-resources.json
|
|
16
|
+
e10-cli actionflow http-interfaces '{"systemId":"<连接器ID>","resourceId":"<资源ID>"}' --out http-interfaces.json
|
|
17
|
+
e10-cli actionflow http-interface-detail '{"interfaceId":"<接口ID>"}' --out http-interface-detail.json
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
`http-interface-detail` 的 `request`、`response`、`address`、`requestMethod` 和 `type` 是生成计划的真实来源。正式 `generate` 还会在保存前再次按三个 ID 实时读取并校验这条链路:连接器名称/图标来自当前租户的 connector 列表,资源名称来自当前连接信息列表,接口名称和原生映射来自当前接口详情;找不到或归属不一致就停止,不会用旧环境的名称、图标或 DTO 继续生成。计划可以省略 `request`/`response`,但必须提供当前租户的三个 ID,CLI 会从接口详情补齐;如果显式传入原生映射,其 mapping ID 必须与当前接口详情一致。`type=http` 时地址可以是 `http://` 或 `https://`;`type=webservice` 时才考虑 `selectMethod`/`soapVersion`。
|
|
21
|
+
|
|
22
|
+
## 必填对象
|
|
23
|
+
|
|
24
|
+
- `systemId`:HTTP 连接器 ID。
|
|
25
|
+
- `resourceId`:连接信息/资源 ID,必须属于 `systemId`。
|
|
26
|
+
- `interfaceId`:执行接口 ID,必须属于 `resourceId`。
|
|
27
|
+
- `request`:当前租户接口详情返回的原生 `ParamGroupMappingBean`。它是保存 HTTP 动作时的请求参数映射,不能用空数组或自行猜测的 `tables`/`tableData` 代替。
|
|
28
|
+
|
|
29
|
+
这四项必须来自同一租户、同一条“连接器 → 资源 → 接口”链路。CLI 不根据名称猜 ID,也不把 HTTPS 地址改写成 HTTP。
|
|
30
|
+
|
|
31
|
+
## 可选对象
|
|
32
|
+
|
|
33
|
+
- `response`:接口详情返回的原生响应参数映射。传入后保留在节点数据中,供上下文字段和回读使用。
|
|
34
|
+
- `address`:接口详情的回显地址;如果是 `https://`,必须原样保留。它不是替代 `resourceId/interfaceId` 的连接配置。
|
|
35
|
+
- `requestMethod`:`GET`、`POST`、`PUT`、`PATCH` 或 `DELETE`。通常直接采用接口详情返回值。
|
|
36
|
+
- `selectMethod`、`soapVersion`:只用于 WebService 兼容回显,普通 HTTP/HTTPS 接口不要填写。
|
|
37
|
+
- `basisValue`:当请求 Body 是明细参数时传 `{ "paramKey": "<明细上下文paramKey>", "label": "<明细名>" }`,编译器写入平台 `basisValue` 和 `basisValueFormula`。
|
|
38
|
+
- `inputParams`:请求参数赋值列表。每项必须指定真实的参数分组、参数名和赋值表达式;CLI 会把它写入对应请求参数行的 `formulaData`,保留接口详情原有的 `request.tables` 及参数元数据。
|
|
39
|
+
|
|
40
|
+
输入参数格式是固定的:
|
|
41
|
+
|
|
42
|
+
```json
|
|
43
|
+
{
|
|
44
|
+
"inputParams": [
|
|
45
|
+
{ "table": "Header", "paramKey": "Authorization", "value": { "kind": "fixed", "value": "Bearer xxx" } },
|
|
46
|
+
{ "table": "Params", "paramKey": "requestId", "value": { "kind": "context", "paramKey": "requestId", "label": "流程ID" } },
|
|
47
|
+
{ "table": "Header", "paramKey": "userid", "value": { "kind": "system_variable", "key": "{userid}" } }
|
|
48
|
+
]
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
`table` 只能是接口详情实际返回的 `Params`、`Header`、`Body`、`Url` 或 `Cookie`;`paramKey` 必须精确匹配该分组的真实参数(包括 JSON/明细字段的完整路径)。`value` 使用统一赋值类型,除上例外还可使用已支持的 `function`、`formula`、`variable`、`constant`、`transform` 和 `query_result`;变量/常量必须先按 `references/dynamic_resources.md` 解析,函数参数仍按函数目录的真实参数名和数量填写。CLI 会在保存前校验分组和参数是否存在,不能猜参数或静默新增参数。
|
|
53
|
+
|
|
54
|
+
## 示例
|
|
55
|
+
|
|
56
|
+
以下只展示结构,ID 和 `request` 必须替换为当前租户真实接口详情回读值:
|
|
57
|
+
|
|
58
|
+
```json
|
|
59
|
+
{
|
|
60
|
+
"type": "Http",
|
|
61
|
+
"params": {
|
|
62
|
+
"systemId": "<当前租户HTTP连接器ID>",
|
|
63
|
+
"resourceId": "<该连接器的资源ID>",
|
|
64
|
+
"interfaceId": "<该资源的接口ID>",
|
|
65
|
+
"address": "https://api.example.com/project",
|
|
66
|
+
"requestMethod": "POST",
|
|
67
|
+
"request": {
|
|
68
|
+
"<接口详情返回的原生字段>": "<按平台参数设计器保存的原值>"
|
|
69
|
+
},
|
|
70
|
+
"response": {
|
|
71
|
+
"<接口详情返回的原生响应字段>": "<按平台参数设计器保存的原值>"
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
`response` 仍必须使用接口详情返回的原生对象。`request` 的结构和参数元数据不能用通用对象替换;但请求字段的赋值可以通过 `inputParams` 使用统一的固定值、上下文、系统变量或函数/公式语义,CLI 会转换成前端真实的 `formulaData` 协议。没有真实原生对象或参数不在接口详情中时,停止生成并先补齐接口上下文。
|
|
@@ -10,7 +10,20 @@
|
|
|
10
10
|
|
|
11
11
|
## 不可猜测
|
|
12
12
|
|
|
13
|
-
标题和内容按需求选固定文本或 `parts` 模板;纯字符串保持固定值,只有 `parts`
|
|
13
|
+
标题和内容按需求选固定文本或 `parts` 模板;纯字符串保持固定值,只有 `parts` 模板才进入设计器的消息专用编辑器。模板会编译成“正文文本 + `#{paramN}` 占位符 + 每个占位符的独立绑定”,对应手动配置时右侧的形式。**本 Skill 生成消息标题/内容时统一使用 `parts` 模板**,不要把通用函数/公式对象直接作为消息正文输入;这只是本 Skill 的生成约定,不代表平台其他场景不能使用函数。`parts` 的动态项支持 `context`、`system_variable`、`variable`、`constant`,后两者必须按 `references/dynamic_resources.md` 使用真实资源或计划定义。需要拼接上下文时,必须拆成 `parts`,例如:
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"parts": [
|
|
18
|
+
{"type":"text","value":"批次任务:"},
|
|
19
|
+
{"type":"context","paramKey":"<真实任务编号paramKey>","label":"任务编号"},
|
|
20
|
+
{"type":"text","value":",设备:"},
|
|
21
|
+
{"type":"context","paramKey":"<真实设备编号paramKey>","label":"设备编号"}
|
|
22
|
+
]
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
需要动态接收人时传 `receiver: {"type":"context","paramKey":"<真实人员字段paramKey>","label":"<字段名>"}`,不能把人员字段当固定人员 ID,也不能省略 `paramKey`。模板上下文只传 `paramKey` 和 `label`,由 CLI 按消息编辑器的动态片段结构编译,并绑定当前触发节点。对定时批量、按日期字段、表单数据等 e-builder 记录触发器,未显式提供链接时 CLI 自动生成 PC/移动端详情链接:`formId` 为触发表单 ID 固定值,`dataId` 为上游“数据ID”动态上下文。显式 `pcLink` / `mobileLink` 会覆盖该默认行为。
|
|
14
27
|
|
|
15
28
|
## 最小计划
|
|
16
29
|
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
|
|
25
25
|
分支条件和 `filterCondition` 共用 AND/OR 业务语义,但保存协议不同,不能互相复制 DTO。
|
|
26
26
|
|
|
27
|
+
- **分支位置**:`branches` 写在节点顶层或 `params.branches` 都会被受理(`component-describe Condition` 声明的就是 `params.branches`);归一化后草稿只保留顶层 `branches`。**同一节点不要两处各写一份**——读分支的实现统一走同一入口,两份写法只会让人误判哪份生效。
|
|
27
28
|
- 计划用 `condition: { relationship: "and|or", conditions: [...] }`;叶子为 `{left, operator, right}`。顶层 `relationship` 直接作为条件树根关系;编译器不会额外套同关系 AND/OR,只有条件中明确嵌套的规则组才保留子组。
|
|
28
29
|
- `left` 只能是当前上游组件的实时字段;`operator` 由字段类型限制,未知或不兼容时编译失败。
|
|
29
30
|
- `right` 只用 `fixed`、`system`、`context`,或 `formula` 完整回读对象。`context` 必须写真实 `paramKey`,由运行时生成 FormulaBean;禁止把字段名作为固定值。
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# 动态赋值资源:变量与常量
|
|
2
|
+
|
|
3
|
+
动态赋值中的变量、常量不是普通文本,也不能直接把名称写进 `value`。CLI 会在生成阶段读取当前租户资源,必要时先创建资源,再把真实 ID 编译为平台 FormulaBean:变量是 `type:"7"`,常量是 `type:"5"`。
|
|
4
|
+
|
|
5
|
+
## 使用已有资源
|
|
6
|
+
|
|
7
|
+
```json
|
|
8
|
+
{"kind":"variable","id":"<当前动作流已有变量ID>","name":"批次号"}
|
|
9
|
+
{"kind":"constant","id":"<当前租户常量ID>","name":"接口地址"}
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
变量必须属于当前动作流的 `applicationId + sceneId`;常量按租户范围读取,可跨动作流使用。不能只传名称冒充 ID。生成时找不到真实资源会在保存前失败。
|
|
13
|
+
|
|
14
|
+
## 按计划新建资源
|
|
15
|
+
|
|
16
|
+
```json
|
|
17
|
+
{
|
|
18
|
+
"variables": [{"ref":"批次变量","name":"批次变量","type":"string","value":""}],
|
|
19
|
+
"constantDefinitions": [{"ref":"服务地址","name":"服务地址","groupName":"接口配置","contentType":"string","content":"https://example.test"}],
|
|
20
|
+
"actions": [{"type":"ActionEbUpdate","params":{"constants":{"<目标字段>":{"kind":"variable","name":"批次变量"}}}}]
|
|
21
|
+
}
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
- `variables[]` 调用 `application/variable/addVariable`,变量绑定本次新建动作流场景;类型使用平台值 `string`、`int`、`double`、`boolean`、`date`、`time`、`datetime`。
|
|
25
|
+
- `constantDefinitions[]` 调用 `constant/save`;填写 `groupPk` 使用已有分组,填写 `groupName` 时按精确名称复用已有分组,不存在才调用 `constant/saveConstGroup` 新建分组。
|
|
26
|
+
- 新建定义用 `{kind:"variable",name:"..."}` 或 `{kind:"constant",name:"..."}` 引用;也可以直接传平台真实 `id`。
|
|
27
|
+
- `constants` 仍表示“目标字段 → 固定/动态赋值”的属性名,不与顶层 `constantDefinitions` 混用。固定值继续写 `{kind:"fixed",value:"..."}`。
|
|
28
|
+
- 同一个动作流只能用自身变量;更新已有动作流时使用当前版本的变量 ID,CLI 不会把另一个动作流的变量 ID 自动迁移。
|
|
29
|
+
|
|
30
|
+
## CLI 发现与创建
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
e10-cli actionflow variable-list '{"applicationId":"<应用ID>","sceneId":"<场景ID>"}'
|
|
34
|
+
e10-cli actionflow variable-create '{"applicationId":"<应用ID>","sceneId":"<场景ID>","name":"批次变量","type":"string","value":""}'
|
|
35
|
+
e10-cli actionflow constant-list
|
|
36
|
+
e10-cli actionflow constant-group-list
|
|
37
|
+
e10-cli actionflow constant-group-create '{"groupName":"接口配置"}'
|
|
38
|
+
e10-cli actionflow constant-create '{"groupPk":"<分组ID>","name":"服务地址","contentType":"string","content":"..."}'
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
完整平台响应可用 CLI 的 `--out` 保存,终端只看摘要;不要根据截断输出判断资源是否创建成功。凭据和敏感常量值不写入 Skill、计划或 Git。
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
# 标准函数规则
|
|
2
|
-
|
|
3
|
-
`custom`(自定义 JS)和 `code`(编码函数)不支持跨环境生成。其余标准函数内置名称、类别和参数约束。
|
|
4
|
-
|
|
5
|
-
需要计算、转换或拼接时,函数树可用于组件明确支持的公式属性:e-builder 的 `formula` 字段、流程/文档的 `formula_or_reference` 字段,以及 `ApproveCreate.requestName`。写法统一为:
|
|
6
|
-
|
|
7
|
-
```json
|
|
8
|
-
{"kind":"function","name":"CONCAT","args":[{"kind":"fixed","value":"项目-"},{"kind":"context","paramKey":"<真实字段paramKey>","label":"项目名称"}]}
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
函数参数可为 `fixed`、`context`、`system_variable` 或嵌套 `function
|
|
12
|
-
|
|
13
|
-
|
|
1
|
+
# 标准函数规则
|
|
2
|
+
|
|
3
|
+
`custom`(自定义 JS)和 `code`(编码函数)不支持跨环境生成。其余标准函数内置名称、类别和参数约束。
|
|
4
|
+
|
|
5
|
+
需要计算、转换或拼接时,函数树可用于组件明确支持的公式属性:e-builder 的 `formula` 字段、流程/文档的 `formula_or_reference` 字段,以及 `ApproveCreate.requestName`。写法统一为:
|
|
6
|
+
|
|
7
|
+
```json
|
|
8
|
+
{"kind":"function","name":"CONCAT","args":[{"kind":"fixed","value":"项目-"},{"kind":"context","paramKey":"<真实字段paramKey>","label":"项目名称"}]}
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
函数参数可为 `fixed`、`context`、`variable`、`constant`、`system_variable` 或嵌套 `function`。其中 `variable`/`constant` 必须先按 `references/dynamic_resources.md` 解析为当前租户的真实资源 ID;不能把名称或默认值当作引用。
|
|
12
|
+
|
|
13
|
+
生成时仅对实际使用的函数调用当前租户接口,校验可用性并获取当次函数 ID。
|
|
14
|
+
|
|
15
|
+
消息标题/内容、循环和条件各有专用 DTO;只有对应组件说明明确支持函数树时才使用,不能因为它们也显示“动态赋值”就套用通用函数结构。
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
|
|
38
38
|
#### ▼ 表单:<表单名A> | objId: 待创建
|
|
39
39
|
|
|
40
|
-
##### 3.1
|
|
40
|
+
##### 3.1 字段定义(按[新建 EBuilder 表单](../form/guide-create-form.md)整理,建表时通过 `form create --fields` 一次创建)
|
|
41
41
|
- [ ] <表单名> | ID: 待创建
|
|
42
42
|
布局: FLOW(流式)/ EXCEL(表格,缺省)
|
|
43
43
|
字段:
|
|
@@ -51,11 +51,13 @@
|
|
|
51
51
|
8. 关联流程(Flow, sformId=<流程绑定的表单objId>) ← sformId 指向哪个流程表单,浏览时就只选该表单绑定的流程数据,创建时自动绑定
|
|
52
52
|
- 选项/编号/默认值/精度/百分比/maxLen 建表时写全;单位无独立属性,**写进字段名**如 `工时单价(元)`
|
|
53
53
|
- **布局与显示属性**:方案文档明确要求的必填(`required`)、只读(`readOnly`)、隐藏(`hidden`)、独占一行(`singleRow`)、分组(`group`)、字段顺序——全部标在字段清单里,建表时 fields.json 一并带上,勿留建后补。方案未提到的用默认(EXCEL 两列、不分组、不必填)
|
|
54
|
+
- **日期区间**:字段本身包含起止含义时优先规划为 `DateRange`;明确分列或需独立参与公式、联动时再拆成两个日期字段
|
|
55
|
+
- **字段多语言**:需求写成 `中文/English` 时,字段清单保留两种名称并注明“多语言”;创建时字段名只用中文,建成取得 fieldId 后执行 `form field-lang set --zh <中文> --en <English>`,不可把斜杠名称原样落库
|
|
54
56
|
- 公式/值带出可 inline:`formula` / `relateFrom`
|
|
55
57
|
- **Flow 字段**:`sformId` 是流程表单 objId(不是 workflowId),建表时写进 fields.json 即自动绑定——关联到哪个流程表单就只能选该范围的流程数据,无需单独配数据范围
|
|
56
58
|
> 不要先建空表再 add-field——add-field/edit-field 只是**罕见补救手段**
|
|
57
59
|
|
|
58
|
-
##### 3.1.1
|
|
60
|
+
##### 3.1.1 表单布局蓝图(按[表单布局规划](../form/guide-form-layout-planning.md)识别;需求提供完整布局样表时必填,否则标“— 未提供,使用默认布局”)
|
|
59
61
|
- [ ] 布局类型:EXCEL / FLOW
|
|
60
62
|
- [ ] 来源:<需求文档章节或表格标题>
|
|
61
63
|
- [ ] 物理列结构:<如 4 列:标签|字段|标签|字段>
|
|
@@ -67,11 +69,12 @@
|
|
|
67
69
|
| 3 | 分组 | <分组名> | — | 跨全部列 | |
|
|
68
70
|
| 4 | 字段 | <标签> → [<字段名>] | <标签> → [<字段名>] | 双字段 | 必填;只读 |
|
|
69
71
|
|
|
70
|
-
>
|
|
71
|
-
>
|
|
72
|
-
>
|
|
72
|
+
> 逐行记录标题、分组、字段同排关系、字段先后、空白占位和可确认的跨列信息;合并范围暂时无法确认时标为“待确认”。
|
|
73
|
+
> 将蓝图中的必填、只读、公式、校验和联动同步写入字段定义或 3.2 表单级配置。
|
|
74
|
+
> 执行时根据蓝图组织 `fields.json`,使用 EXCEL 布局完成创建和初始化;创建后读取实际布局并按需求调整局部位置或显示属性。
|
|
73
75
|
|
|
74
76
|
##### 3.2 表单级配置(来源: 本表单 <表单名A>;建表后逐项配齐,缺一项这张表不算完成)
|
|
77
|
+
- [ ] 字段名称多语言 | `form field-lang set <objId> <appId> <fieldId> --zh <中文> --en <English>`(仅需求明确提供多语言名称时列出;先建中文字段再设置)
|
|
75
78
|
- [ ] 复杂编号 | `form serial-mark set <objId> <appId> <fieldId> --segments @json`(纯建模表:fixed/year/serial/field/system/date+代字;⚠ 绑流程表无效→走 `workflow numbering`)
|
|
76
79
|
- [ ] 值带出(关联表) | `form relate <appId> <objId> <目标字段> --from <Employee/Department源字段>`(换申请人→填邮箱/工号/部门;HRM属性带出,简单单源)
|
|
77
80
|
- [ ] 值带出(跨表/多跳) | `form field-linkage add <appId> <objId> --trigger <触发字段> --target <目标字段> --hops "<源表objId:带出字段,源表objId:带出字段,...>"`(跨表查询带出,支持多跳链式中转;Text 字段必须多跳到名称表取名称不能直接赋 ID)
|
|
@@ -116,8 +119,14 @@
|
|
|
116
119
|
|
|
117
120
|
#### ▼ 流程:<流程名A> | workflowId: 待创建
|
|
118
121
|
|
|
122
|
+
- 流程体系:EB / 原生工作流程
|
|
123
|
+
- 原生类型:普通 / 公文(EB 流程填“—”)
|
|
124
|
+
- 流转模式:固定 / 自由
|
|
125
|
+
- 表单来源:EB 表单 / 自建原生表单 / 已有原生 formId
|
|
126
|
+
|
|
119
127
|
##### 4.1 创建
|
|
120
128
|
- [ ] 创建 | `workflow create <appId> <formObjId> <名>`(默认不加菜单;确认需要发起入口时 `--menu` 加)
|
|
129
|
+
> 原生工作流程改用 `workflow create-workflow`;公文类型增加 `--odoc`。布局类型在表单来源后注明。
|
|
121
130
|
> ⚠️ **流程级必做**:① 流程编号(`workflow numbering`);② 出口名称(`workflow link-rename`,改业务人话);③ 出口条件清单(见 4.3,先列全表再逐条创建,勿凭印象跳步)
|
|
122
131
|
|
|
123
132
|
##### 4.2 节点与连线(来源: 本流程 <流程名A>;每节点一行)
|
|
@@ -154,6 +163,7 @@
|
|
|
154
163
|
- [ ] 字段权限 | `workflow node field-permission set <wf> <node> --hide <字段...>`
|
|
155
164
|
|
|
156
165
|
##### 4.5 流程级设置(来源: 本流程 <流程名A>)
|
|
166
|
+
- [ ] 公文设置 | 公文类型、正文、节点、附件、归档、签章、编号及 AI 等配置 | `workflow odoc setting set`(原生类型为公文时按实际需求填写)
|
|
157
167
|
- [ ] 流程编号 | `workflow numbering set <wf> --prefix LC --serial 4 --no-year`(REQUEST_NO,绑流程表必走)
|
|
158
168
|
- [ ] 流程标题 | `workflow setting title <wf> --rule "发起人|提交日期|客户名称"`(标题=流程名+系统字段则跳过)
|
|
159
169
|
- [ ] 提交确认 | `workflow setting submit <wf>`
|
|
@@ -190,7 +200,11 @@
|
|
|
190
200
|
- [ ] <矩阵名> | `matrix create` + `config-edit` + `enable` + `data`(来源: 被 <流程名> 的 `set-operator --type matrix` 引用)
|
|
191
201
|
|
|
192
202
|
## 执行分段(最多三段,每段完成停下来让用户确认,确认后才进下一段)
|
|
193
|
-
|
|
203
|
+
以确认后的 `plan.md` 为执行清单,按资源依赖顺序逐项读取相关指南并完成配置;完成并核验一项,就立即勾选对应项并回填实际 ID 或结果。每段结束前检查本段应完成项是否全部销号,依赖后续资源的项目保留 `[ ]` 并注明依赖,不得提前勾选。
|
|
204
|
+
|
|
205
|
+
- **段①:应用、角色、表单与视图。** 完成应用、角色、全部表单和表单布局,并配齐字段属性、关联、公式、联动、校验、权限、默认台账、新增视图、显示列、搜索排序、筛选统计、分组、上下级、按钮和关联页签等表单及视图相关配置。依赖流程 ID 的配置在 plan 中列明,待段②创建流程后回填。
|
|
206
|
+
- **段②:流程与自动化。** 完成流程创建、节点连线、操作者、出口条件、节点配置、流程级设置、矩阵和动作流,并回填段①中依赖流程 ID 的表单字段、表单按钮和视图按钮。完成后确认流程结构及关键条件。
|
|
207
|
+
- **段③:菜单与页面。** 完成台账、流程发起和自定义菜单,配置菜单权限,并按需求创建配置式页面或定制页面,绑定真实资源 ID 后完成保存、发布和整体收尾。
|
|
194
208
|
- 简单单步需求(改字段、查数据)不分段,直接执行
|
|
195
209
|
> **表单是流程的地基**:流程绑定表单、条件/动作流/操作者都引用字段,字段设计错了流程全返工——表单段必须确认后再进流程
|
|
196
210
|
|
|
@@ -200,7 +214,7 @@
|
|
|
200
214
|
- 应用数量:默认全需求只建 1 个应用,不按功能点拆;确需多应用先跟用户确认
|
|
201
215
|
- 流程按节点逐行,操作者含签署方式/条件/动作流挂节点;**「A 或 B 审批」= 一节点多人 + 竞签/非会签,不拆节点**
|
|
202
216
|
- 台账页面不用写,表单自带台账(搜索/筛选/导出/批量)
|
|
203
|
-
- 表单字段一次性建好(`form create --fields
|
|
217
|
+
- 表单字段一次性建好(`form create --fields`);需求明确的 singleRow/group 建表时写入,字段参数按 `references/form/ref-form-fields.md` 确定
|
|
204
218
|
- 需求提供完整布局样表时,字段清单和“表单布局蓝图”必须同时存在:前者定义字段,后者保留空间结构;字段覆盖数、同排关系、分组顺序和原文说明应逐项对应
|
|
205
219
|
```
|
|
206
220
|
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
| 命令 | 说明 |
|
|
10
10
|
|------|------|
|
|
11
11
|
| `e10-cli docx read <文件>` | 解析 Word 文档为 markdown + 提取图片到 `_images/`。**禁止自己写 python-docx 脚本** |
|
|
12
|
+
| `e10-cli interface import <文件> [--system-pool-name <名称>] [--apply] [--out <文件>]` | 解析 `.docx/.pdf/.md/.txt` 为 Postman Collection;默认预览,`--apply` 才调用 ESB 创建系统接口。未传系统池名称时从文档文件名推导;完整规则见 `references/esb-interface/guide-import.md` |
|
|
12
13
|
|
|
13
14
|
---
|
|
14
15
|
|
|
@@ -49,6 +50,8 @@
|
|
|
49
50
|
| `e10-cli form detail-table list/read <objId> <appId> [...]` | 列出明细表,或读取指定明细表的二级明细开关与配置 |
|
|
50
51
|
| `e10-cli form detail-table sub-detail set <objId> <appId> <父明细表> --target <子明细表> --target-field <子字段> [--default-expand]` | 开启并设置二级明细。表和字段可写名称或 ID;默认采用平台实测的 `rowId/inside/single`,保存后自动回读。另有 `enable`、`disable`(保留配置)、`clear`(清空配置) |
|
|
51
52
|
| `e10-cli form edit-field <objId> <appId> <fieldId>` | 编辑字段属性。`--title`/`--required`/`--no-required`/`--sform-id`(改EBuilder关联)/`--relate-from`(值带出)/**`--multiple`/`--no-multiple`**(人员/部门/EBuilder/Browser 多选切换) |
|
|
53
|
+
| `e10-cli form field-lang get <objId> <appId> <fieldId>` | 查看字段名称的中英文多语言配置;未配置时返回当前中文名称和 `configured:false` |
|
|
54
|
+
| `e10-cli form field-lang set <objId> <appId> <fieldId> --zh <中文> --en <English>` | 设置字段名称多语言。先保存多语言标签,再读取完整字段并回写 `labelObj.title`,不会覆盖字段其他属性 |
|
|
52
55
|
| `e10-cli form serial-mark set <objId> <appId> <fieldId> --segments @<json>` | **表单编号**(纯建模表):用 JSON 数组组合任意编号规则,数组顺序即拼接顺序。段类型 `fixed`/`year`/`serial`/`field`/`system`/`date`;field 段可 inline `shortName` 代字映射。子命令组:`set`(配置,--segments) / `add-segment`(增量追加段) / `short-name`(代字 list/set) / `read`(查看) / `fields`(查可绑定字段) / `clear`(解除)。被编码字段平台自动只读。**⚠ 仅对未绑流程的纯建模表有效——eb表单绑流程后表单编号字段在流程提交时不生效,编号改走流程编号(`workflow numbering`,落到 REQUEST_NO 系统字段)** |
|
|
53
56
|
| `e10-cli form field-options <objId> <appId> <fieldId> --options @<json> [--default <key>]` | 设选项/默认值。options.json: `[{"name":"选项名","valueKey":"可选"}]`;`--default` 用平台生成的长 valueKey(`form read --app-id` 获取),不是 name |
|
|
54
57
|
| `e10-cli form option-template <list\|read\|create\|copy\|delete>` | **Select 选项预设模板管理**(下拉选项复用:多个表单共享一套选项,模板改了各表单跟着变)。`list [--system]` 列模板(默认自定义模板,--system 看系统内置);`read <模板ID> [--flat]` 看选项树;`create <名称> --options @<json> [--level 1] [--describe 文本]` 建模板(options.json: `[{"name":"低","valueKey":"10","children":[]}]`,**valueKey 必须数字**,children 嵌套=多级);`copy <模板ID>` 复制(系统 default 模板不可复制);`delete <模板ID>` 删模板(被引用时平台拒绝)。**字段引用模板**:`form add-field --option-template <模板ID或名>` 或 fields.json 写 `"optionTemplate":"模板名"`(Select 专有,选项不内联) |
|
|
@@ -100,7 +103,7 @@
|
|
|
100
103
|
| `e10-cli form association views <objId> <appId> [--target-app <id>]` | 查询可绑定视图及所属表单 |
|
|
101
104
|
| `e10-cli form association fields <objId> <appId> --view <viewId> [--target-app <id>]` | 查询来源表单字段和目标视图字段 |
|
|
102
105
|
| `e10-cli form association create <objId> <appId> <name> --view <viewId> --permissions <json或@文件> [--layouts 显示 编辑] [--terminals PC MOBILE] [--mappings <json或@文件>]` | 创建关联页签;默认仅显示布局、PC+MOBILE、启用。权限必须显式提供,筛选映射为 [{targetField,sourceField}] |
|
|
103
|
-
| `e10-cli form association update <objId> <appId> <associationId> [--name <名>] [--view <viewId>] [--layouts 显示 编辑] [--terminals PC MOBILE] [--enabled true/false] [--mappings <json或@文件>]` | 保留未指定配置;布局和终端为集合替换;显示=0,编辑=2,none
|
|
106
|
+
| `e10-cli form association update <objId> <appId> <associationId> [--name <名>] [--view <viewId>] [--layouts 显示 新建 编辑] [--terminals PC MOBILE] [--enabled true/false] [--mappings <json或@文件>]` | 保留未指定配置;布局和终端为集合替换;显示=0,新建=1,编辑=2,none 关闭全部布局。仅启停走独立接口并回读;多动作时传 --action |
|
|
104
107
|
| `e10-cli form association set-filter <objId> <appId> <associationId> --mappings <json或@文件> [--action <id>]` | 替换目标视图动作的数据筛选字段映射,区别于权限条件 |
|
|
105
108
|
| `e10-cli form association clear-filter <objId> <appId> <associationId> [--action <id>]` | 清空指定视图动作的数据筛选映射 |
|
|
106
109
|
| `e10-cli form association set-condition <objId> <appId> <associationId> --perm <序号或类型> --rules <json或@文件> [--logic and/or]` | 设置页签权限条件,来源表单字段;与关联目标视图数据筛选独立 |
|
|
@@ -118,7 +121,7 @@
|
|
|
118
121
|
| `e10-cli form field-linkage add <appId> <objId> --trigger <字段名> --target <字段名> --hops "<objId:字段名,...>"` | 新增。`--hops` 多跳链式(单跳用 `--source-form/--query-field`)。**Text 字段必须多跳取名称**。详见 `form/guide-field-linkage.md` |
|
|
119
122
|
|
|
120
123
|
> **创建表单流程**:
|
|
121
|
-
> 1. 读取 `references/form/guide-create-form.md`
|
|
124
|
+
> 1. 读取 `references/form/guide-create-form.md` 了解标准创建流程;确定字段类型和参数时读取 `references/form/ref-form-fields.md`
|
|
122
125
|
> 2. 与用户确认所有字段名和字段类型
|
|
123
126
|
> 3. 将字段定义写入临时 JSON 文件(格式:`[{"componentKey":"Text","fieldName":"姓名"},...]`)
|
|
124
127
|
> 4. 执行 `e10-cli form create ... --fields @<临时文件路径>`
|
|
@@ -139,8 +142,10 @@
|
|
|
139
142
|
|
|
140
143
|
| 命令 | 说明 |
|
|
141
144
|
|------|------|
|
|
142
|
-
| `e10-cli workflow create <appId> <formObjId> <name> [desc]` |
|
|
143
|
-
| `e10-cli workflow create-workflow <name>` | **非默认路径**。仅当用户明确强调「用流程表单 / 工作流程 / 流程中心建流程、不在应用下」时才用;默认走上一条 `workflow create`(eb 应用内)。关联流程表单:不传 `--form-id` 自建(`relateForm=0`,服务端建表回吐 `data.formId`)/ `--form-id <已有>` 绑定(`relateForm=1`)。`--workflow-type`(默认 -1=其它)、`--sub-company
|
|
145
|
+
| `e10-cli workflow create <appId> <formObjId> <name> [desc]` | 创建 EB 流程,当前命令按固定模式创建并自动设置所有人可发起。**默认不加菜单**,要入口传 `--menu`(发起菜单 LAYOUT,指向表单新建页 `/sp/ebdfpage/card/1/<formObjId>/0`,点开即触发流程);漏加 `e10-cli menu add-start <appId> <formObjId>` 补 |
|
|
146
|
+
| `e10-cli workflow create-workflow <name>` | **非默认路径**。仅当用户明确强调「用流程表单 / 工作流程 / 流程中心建流程、不在应用下」时才用;默认走上一条 `workflow create`(eb 应用内)。关联流程表单:不传 `--form-id` 自建(`relateForm=0`,服务端建表回吐 `data.formId`)/ `--form-id <已有>` 绑定(`relateForm=1`)。`--odoc` 创建公文流程(两种表单方式均支持,增加 `bridgeService=odoc`);`--workflow-type`(默认 -1=其它)、`--sub-company <机构>`、`--belong-type <0个人/1团队>`(默认 1)、`--table-name`、`--desc`、`--is-free`、`--layout <FLOW流式(默认)/EXCEL表格式>`(自建模式下 EXCEL 走 formmanage/saveForm 建表后绑定;建表后不可切换)。不带 source/messageParams |
|
|
147
|
+
| `e10-cli workflow odoc <list\|read>` | 查询公文流程列表,或读取单个公文流程及公文设置摘要。`list` 支持 `--name`、`--sub-company`、`--belong-type`、分页参数 |
|
|
148
|
+
| `e10-cli workflow odoc setting <get\|set> <workflowId>` | 读取或修改公文设置。`set --config @json` 读取当前配置后合并保存并回读;常用参数含 `--official-type`、`--request-title-field`、`--upload-word/pdf/ofd`、`--text-in-form`、`--column-position`、`--attach-area`、`--archive-node` |
|
|
144
149
|
| `e10-cli wf-form read <formId>` | **流程表单管理(非默认路径)**。读流程表单字段(getConfig)。`<formId>` 由 `workflow create-workflow` 回吐。与 eb 表 `form read` 对齐,走 `/api/workflow/core/form/...`(module=workflow、customParam={}、无 apid) |
|
|
145
150
|
| `e10-cli wf-form add-field <formId> <字段名> <类型> [标题]` | 给流程表单加字段。类型:Text/TextArea/Number/Money/Date/DateTime/Select/Employee/Department/Browser。`--sub-form-id <明细subFormId>` 明细字段;`--multiple` 多选;`--precision`/`--percent`/`--default`(Number/Money);`--format`(日期精度)。formTableId 省略 |
|
|
146
151
|
| `e10-cli wf-form edit-field <formId> <fieldId> [--title <标题>] [--multiple|--single]` | 编辑已有字段(read-modify-write)。`--multiple`/`--single`:Employee/Department/Browser 切 isSingle,Select↔SelectMultiple。必填为布局级用 `wf-form layout init --required` |
|
|
@@ -198,14 +203,16 @@
|
|
|
198
203
|
| `e10-cli workflow delete-node <wf> <nodeId>` | 删除节点(自动清理关联出口)。`--bridge` 桥接上下游 |
|
|
199
204
|
| `e10-cli workflow save-layout <wf> @xmlfile` | 保存完整流程图 XML(浏览器 mxGraph 格式:数字 cell id + nodeId/linkId)。服务器只认浏览器格式,勿转 node_X。新增节点/连线会自动注入 flag="add" |
|
|
200
205
|
| `e10-cli workflow auto-layout <wf>` | **节点自动排版**(分层布局,全量重排坐标)。`--direction ltr/ttb`(默认ltr)、`--gap-x/--gap-y` 间距、`--dry-run` 只算不打回、`--out` 配合 dry-run 输出新 XML。忽略退回线分层,分支自然融入 |
|
|
201
|
-
| `e10-cli workflow condition add <wf> <sourceId> <nodeId> <name> --rule "..."` |
|
|
206
|
+
| `e10-cli workflow condition add <wf> <sourceId> <nodeId> <name> --rule "..."` | **简化语法**添加条件。`sourceId` 是连线 ID(linkId),`nodeId` 是该连线的来源节点 ID(srcNodeId),不是目标节点 ID;可从 `workflow nodes --json` / `link-list` 取得。`--rule "system:流程标题:包含:关键词"` 或 `--rule "form:字段ID|字段名|dataKey:大于:1000"`(fieldId/名/dataKey 均可匹配)。按 fieldType 自动判族校验算子,`--relation AND/OR`。**增强语法**:字段vs字段 `form:字段:大于:field:值字段`(range 用 `form:字段:范围:field:左:右`);明细量词 规则末尾 `:任一`/`:所有`;多值属于 `form:字段:包含:值1,值2`;人员/部门字段 `form:人员字段:包含:张三,李四` 自动解析成对象;系统字段 `system:紧急程度:等于:紧急`;嵌套 OR 用 `\|` 分隔 `form:关联项目:不为空\|form:关联客户:不为空`。详见 `workflow/guide-workflow-condition.md` |
|
|
202
207
|
| `e10-cli workflow save-condition @jsonfile --app-id <appId>` | 保存条件规则(原始 JSON)。CLI 自动生成 ID 并绑定到连线 |
|
|
203
208
|
| `e10-cli workflow condition list <wf>` | 列出工作流下所有连线绑定的条件(连线名 + 条件名 + 表达式 + mapId),支持 `--name` 过滤 |
|
|
204
209
|
| `e10-cli workflow condition get <wf> <id>` | 查看单个条件详情。`<id>` 可用 conditionKey / mapId / conditionId |
|
|
205
210
|
| `e10-cli workflow condition delete <wf> <id> [--link-id <linkId>] [--node-id <nodeId>]` | 删除条件(删定义 + 解绑连线)。`<id>` 同 get |
|
|
206
211
|
| `e10-cli workflow set-link-condition-key <wf> <link> <key> <node>` | 绑定条件 Key 到连线 |
|
|
207
212
|
| `e10-cli workflow save-action @jsonfile` | 加节点提交动作(常量赋值)。**只接 JSON 一个参数**,`workflowId`/`nodeId` 写在 JSON 内部(不是位置参数)。JSON 格式见 `workflow/guide-workflow-action.md` |
|
|
208
|
-
| `e10-cli actionflow generate '{"planFile":"@plan.json","appName":"AI-名称"}'` | **动作流生成**(语义 plan → 编译 → preflight → 保存并启用 → 正式回读,返回设计器链接)。`planFile` 必须以 `@` 引用文件(`@plan.json` 或 `@绝对路径`),CLI 强制要求 `@` 前缀。event 节点 `ApproveTrigger` 自带流程节点触发绑定(`workflowPath`+`triggerTiming`+`approveNode`/`approveLink`),不走 pathdef/addaction,无需单独绑节点。默认保存并启用;`{"mode":"stash",...}` 显式暂存。组件契约/参数/映射/条件的权威是 `e10-cli actionflow component-describe <type>`,详见 `actionflows/SKILL.md`。覆盖 ActionEb 全系列/Approve/Document/Hrm
|
|
213
|
+
| `e10-cli actionflow generate '{"planFile":"@plan.json","appName":"AI-名称"}'` | **动作流生成**(语义 plan → 编译 → preflight → 保存并启用 → 正式回读,返回设计器链接)。`planFile` 必须以 `@` 引用文件(`@plan.json` 或 `@绝对路径`),CLI 强制要求 `@` 前缀。event 节点 `ApproveTrigger` 自带流程节点触发绑定(`workflowPath`+`triggerTiming`+`approveNode`/`approveLink`),不走 pathdef/addaction,无需单独绑节点。默认保存并启用;`{"mode":"stash",...}` 显式暂存。组件契约/参数/映射/条件的权威是 `e10-cli actionflow component-describe <type>`,详见 `actionflows/SKILL.md`。覆盖 ActionEb 全系列/Approve/Document/Hrm/Http(含 HTTPS 地址和 `inputParams`)/DML 数仓/触发器(含 CustomTrigger、InnerMQListener)/消息(含 InnerMQSend)/会议日程/逻辑 20+ 组件;Http 生成前实时校验当前租户连接器→资源→接口→详情,并按当前连接器回填标题/图标;InnerMQListener 与 InnerMQSend 同流互斥 |
|
|
214
|
+
| `e10-cli actionflow datasource-list '{"query":"esb"}'` | 查询当前租户数仓数据源连接;`DMLExecute.params.dataSetConn.id` 必须使用这里返回的真实 ID |
|
|
215
|
+
| `e10-cli actionflow http-connectors --out http-connectors.json` | 查询当前租户 HTTP 连接器;后续按 `http-resources` → `http-interfaces` → `http-interface-detail` 继续读取,HTTP 请求参数用接口详情的真实 `inputParams` 配置 |
|
|
209
216
|
| `e10-cli actionflow update '@update-plan.json'` | **已有动作流保留式修改**(精确 appId → 读正式设计 → 备份 → 按原节点 ID 显式 operations → saveDesign(saveNewVersion=true) → 正式回读)。**不可改 event 触发器**(触发类型/表单/时机/参数变了就新建);未声明内容保留。触发类型含按钮触发、自定义触发、内置 MQ 监听/发送 |
|
|
210
217
|
| `e10-cli workflow action list-node <wf> <nodeId> [--trigger-type all\|link]` | 列出节点绑定的动作(getAddActionDataList)。显示每条的动作类型/appId/触发时机,type0 还带字段=值 |
|
|
211
218
|
| `e10-cli workflow action clear-node <wf> <nodeId> [--trigger-type all\|link]` | **清空节点所有动作绑定**(deleteAddAction + delList)。清理重复 add/已删实体残留的悬空绑定;动作流实体另用 `action delete` 清 |
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# 接口文档导入 ESB 系统接口
|
|
2
|
+
|
|
3
|
+
当用户要求“从接口文档创建系统接口”“接口文档转 Postman 并导入 ESB”时,使用 e10-cli 的原生命令:
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
e10-cli interface import "<文档路径>" --out collection.json
|
|
7
|
+
e10-cli interface import "<文档路径>" --system-pool-name "<连接器/系统池名称>" --apply --out collection.json
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
支持 `.docx`、`.pdf`、`.md`、`.txt`。默认只解析预览;只有用户明确要求创建时才加 `--apply`。PDF 解析依赖当前机器可用的 `pdftotext`(Poppler)。
|
|
11
|
+
|
|
12
|
+
## 处理规则
|
|
13
|
+
|
|
14
|
+
1. 一份文档中的全部接口合并为一个 Postman Collection v2.1,统一调用平台的 `createSystemInterfaceByAi`。
|
|
15
|
+
2. `--system-pool-name` 优先使用用户明确指定的连接器/系统池名称;未传时从本次文档文件名去扩展名、去尾部 `(1)`/`(1)` 推导。不能复用旧环境名称,也不能臆造名称。
|
|
16
|
+
3. Collection 的 `info.name` 与请求体中的 `systemPoolName` 保持一致且不能为空。
|
|
17
|
+
4. 每个接口必须有请求定义和至少一个 `response[]` 示例;平台输出参数来自响应示例的 `body`,不能只写到 description。
|
|
18
|
+
5. 文档中的密码、token、Authorization、secret、apiKey 等敏感示例值在本地生成 Collection 时脱敏;不要把 Eteamsid 写进文件。
|
|
19
|
+
6. 创建成功必须同时满足外层 `code=200` 和 `data.res=true`,并报告 `systemPk`、接口名称和接口 ID;不能只看 HTTP 200。
|
|
20
|
+
7. 创建接口是新增语义,不提供更新/去重;格式校验先在本地完成,避免重复调用在线接口留下重复系统。
|
|
21
|
+
|
|
22
|
+
## 文档提取重点
|
|
23
|
+
|
|
24
|
+
- 按“接口地址”切分接口区块,提取接口名称、请求方式、URL、请求 JSON 和返回 JSON。
|
|
25
|
+
- 请求字段取参数表、请求示例和示例代码中的请求体字段并集,避免漏掉只出现在示例代码中的字段。
|
|
26
|
+
- 返回字段取“返回结果/返回示例/响应结果”等示例,按原有嵌套结构写入 Postman `response[].body`,不得扁平化或额外编造字段。
|
|
27
|
+
- 解析结果有缺失时,在预览输出的 `warnings` 中明确列出;不要静默按猜测补字段。
|
|
28
|
+
|
|
29
|
+
## 与动作流 HTTP 组件的边界
|
|
30
|
+
|
|
31
|
+
这里的 `interface import` 是“从文档创建连接器下的系统接口”;动作流里的 `Http` 是“调用当前租户已经存在的连接器 → 连接信息 → 执行接口”。两者可以串联使用,但不能把接口导入命令当成 HTTP 动作节点配置命令。
|