weaver-e10-builder 1.1.6 → 1.1.8
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/skill.d.ts.map +1 -1
- package/dist/commands/skill.js +4 -2
- package/dist/commands/skill.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/dist/services/skill-provision.d.ts +9 -3
- package/dist/services/skill-provision.d.ts.map +1 -1
- package/dist/services/skill-provision.js +36 -7
- package/dist/services/skill-provision.js.map +1 -1
- package/package.json +3 -2
- package/skill-docs/SKILL.md +261 -252
- package/skill-docs/_catalog.md +66 -0
- package/skill-docs/actionflows/CONTEXT.md +71 -0
- package/skill-docs/actionflows/SKILL.md +159 -0
- 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
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
import { validateHttpInputParams } from './http_input_params.js';
|
|
2
|
+
import { getStepBranches } from './step_branches.js';
|
|
3
|
+
function base(client) {
|
|
4
|
+
return client.getBaseUrl();
|
|
5
|
+
}
|
|
6
|
+
function query(values) {
|
|
7
|
+
return new URLSearchParams(values).toString();
|
|
8
|
+
}
|
|
9
|
+
function rows(response) {
|
|
10
|
+
const data = response?.data ?? response;
|
|
11
|
+
if (Array.isArray(data))
|
|
12
|
+
return data;
|
|
13
|
+
if (!data || typeof data !== 'object')
|
|
14
|
+
return [];
|
|
15
|
+
for (const key of ['data', 'displayData', 'rows', 'records', 'list']) {
|
|
16
|
+
if (Array.isArray(data[key]))
|
|
17
|
+
return data[key];
|
|
18
|
+
}
|
|
19
|
+
return [];
|
|
20
|
+
}
|
|
21
|
+
function detailData(response) {
|
|
22
|
+
const data = response?.data ?? response;
|
|
23
|
+
return data && typeof data === 'object' && !Array.isArray(data) ? data : {};
|
|
24
|
+
}
|
|
25
|
+
function idOf(item, ...keys) {
|
|
26
|
+
for (const key of keys) {
|
|
27
|
+
const value = item?.[key];
|
|
28
|
+
if (value !== undefined && value !== null && String(value).trim())
|
|
29
|
+
return String(value);
|
|
30
|
+
}
|
|
31
|
+
return '';
|
|
32
|
+
}
|
|
33
|
+
function nameOf(item) {
|
|
34
|
+
return String(item?.name ?? item?.content ?? item?.showName ?? item?.title ?? '').trim();
|
|
35
|
+
}
|
|
36
|
+
function httpResponseField(response, paramKey) {
|
|
37
|
+
const wanted = String(paramKey || '').trim();
|
|
38
|
+
if (!wanted)
|
|
39
|
+
return null;
|
|
40
|
+
for (const table of response?.tables || []) {
|
|
41
|
+
const tableName = String(table?.name || '').toLowerCase();
|
|
42
|
+
const group = tableName === 'body' ? 'responseBody' : tableName === 'header' ? 'responseHeader' : tableName === 'cookie' ? 'responseCookie' : String(table?.name || 'responseBody');
|
|
43
|
+
for (const field of table?.tableData || []) {
|
|
44
|
+
const key = String(field?.paramKey || '');
|
|
45
|
+
if (wanted === key || wanted === `${group}.${key}`)
|
|
46
|
+
return { field, group };
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
/** 校验并用接口详情中的真实名称回填 HTTP 上下文引用。 */
|
|
52
|
+
export function normalizeHttpContextReferences(actions) {
|
|
53
|
+
const responses = new Map();
|
|
54
|
+
const collect = (steps) => {
|
|
55
|
+
for (const step of steps || []) {
|
|
56
|
+
if (!step || typeof step !== 'object')
|
|
57
|
+
continue;
|
|
58
|
+
if (step.type === 'Http') {
|
|
59
|
+
const response = step.params?.response;
|
|
60
|
+
for (const key of [step.ref, step.id]) {
|
|
61
|
+
if (key !== undefined && key !== null && String(key))
|
|
62
|
+
responses.set(String(key), response);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
collect(Array.isArray(step.actions) ? step.actions : []);
|
|
66
|
+
for (const branch of getStepBranches(step))
|
|
67
|
+
collect(Array.isArray(branch?.actions) ? branch.actions : []);
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
collect(actions);
|
|
71
|
+
const validate = (steps, path) => {
|
|
72
|
+
for (const [index, step] of (steps || []).entries()) {
|
|
73
|
+
if (!step || typeof step !== 'object')
|
|
74
|
+
continue;
|
|
75
|
+
const stepPath = `${path}[${index}]`;
|
|
76
|
+
if (step.type === 'Http') {
|
|
77
|
+
for (const [paramIndex, item] of (step.params?.inputParams || []).entries()) {
|
|
78
|
+
const value = item?.value;
|
|
79
|
+
if (!value || value.kind !== 'context')
|
|
80
|
+
continue;
|
|
81
|
+
const source = String(value.source || '').trim();
|
|
82
|
+
const field = httpResponseField(responses.get(source), String(value.paramKey || ''));
|
|
83
|
+
if (!field) {
|
|
84
|
+
throw new Error(`${stepPath}.params.inputParams[${paramIndex}] 引用了 ${source || '上游 HTTP 节点'} 的不存在响应字段 '${String(value.paramKey || '')}';不能自行编造登录Token等字段,请以 interface-detail.response 为准`);
|
|
85
|
+
}
|
|
86
|
+
const live = field.field;
|
|
87
|
+
value.label = String(live.showName || live.paramName || live.paramKey);
|
|
88
|
+
value.responseFieldId = live.id !== undefined ? String(live.id) : undefined;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
validate(Array.isArray(step.actions) ? step.actions : [], `${stepPath}.actions`);
|
|
92
|
+
for (const [branchIndex, branch] of getStepBranches(step).entries()) {
|
|
93
|
+
validate(Array.isArray(branch?.actions) ? branch.actions : [], `${stepPath}.branches[${branchIndex}].actions`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
validate(actions, 'actions');
|
|
98
|
+
}
|
|
99
|
+
/** 设计器 connector.icon 有时是 JSON 字符串,有时直接是对象/图标名。 */
|
|
100
|
+
export function resolveHttpConnectorIcon(value) {
|
|
101
|
+
let icon = value;
|
|
102
|
+
if (typeof icon === 'string') {
|
|
103
|
+
const raw = icon.trim();
|
|
104
|
+
if (!raw)
|
|
105
|
+
return '';
|
|
106
|
+
try {
|
|
107
|
+
icon = JSON.parse(raw);
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
return raw;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
if (icon && typeof icon === 'object') {
|
|
114
|
+
return String(icon.path ?? icon.icon ?? icon.name ?? '').trim();
|
|
115
|
+
}
|
|
116
|
+
return String(icon ?? '').trim();
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* 按当前租户解析完整 HTTP 绑定。名称/图标只来自当前 connector 列表,
|
|
120
|
+
* request/response/address/method 只来自当前 interface detail;不根据“E9”等名称猜 ID。
|
|
121
|
+
*/
|
|
122
|
+
export async function resolveHttpBinding(client, params) {
|
|
123
|
+
const systemId = String(params?.systemId ?? '').trim();
|
|
124
|
+
const resourceId = String(params?.resourceId ?? '').trim();
|
|
125
|
+
const interfaceId = String(params?.interfaceId ?? '').trim();
|
|
126
|
+
if (!systemId || !resourceId || !interfaceId) {
|
|
127
|
+
throw new Error('Http 必须同时提供当前租户的 systemId、resourceId、interfaceId,不能只填连接器/资源名称');
|
|
128
|
+
}
|
|
129
|
+
const connectorResponse = await httpConnectors(client);
|
|
130
|
+
const connectorRaw = rows(connectorResponse).find((item) => idOf(item, 'id', 'systemId', 'systemPk') === systemId);
|
|
131
|
+
if (!connectorRaw)
|
|
132
|
+
throw new Error(`当前租户 HTTP 连接器不存在: systemId=${systemId};请重新读取 http-connectors,不能复用其他环境的连接器 ID`);
|
|
133
|
+
const resourceResponse = await httpResources(client, systemId);
|
|
134
|
+
const resourceRaw = rows(resourceResponse).find((item) => {
|
|
135
|
+
const rowId = idOf(item, 'id', 'resourceId', 'linkInfoId');
|
|
136
|
+
const owner = idOf(item, 'systemPk', 'systemId', 'system');
|
|
137
|
+
return rowId === resourceId && (!owner || owner === systemId);
|
|
138
|
+
});
|
|
139
|
+
if (!resourceRaw)
|
|
140
|
+
throw new Error(`连接器 '${nameOf(connectorRaw) || systemId}' 下不存在资源: resourceId=${resourceId};当前环境可能没有这条连接信息`);
|
|
141
|
+
const interfaceResponse = await httpInterfaces(client, systemId, resourceId, interfaceId);
|
|
142
|
+
const interfaceRaw = rows(interfaceResponse).find((item) => idOf(item, 'id', 'interfaceId') === interfaceId);
|
|
143
|
+
if (!interfaceRaw)
|
|
144
|
+
throw new Error(`资源 '${nameOf(resourceRaw) || resourceId}' 下不存在接口: interfaceId=${interfaceId};请重新读取 http-interfaces`);
|
|
145
|
+
const detailResponse = await httpInterfaceDetail(client, interfaceId);
|
|
146
|
+
const detail = detailData(detailResponse);
|
|
147
|
+
const detailSystemId = idOf(detail, 'systemId', 'systemPk');
|
|
148
|
+
const detailInterfaceId = idOf(detail, 'interfaceId', 'id');
|
|
149
|
+
if (detailSystemId && detailSystemId !== systemId)
|
|
150
|
+
throw new Error(`HTTP 接口详情归属异常: interfaceId=${interfaceId} 不属于 systemId=${systemId}`);
|
|
151
|
+
if (detailInterfaceId && detailInterfaceId !== interfaceId)
|
|
152
|
+
throw new Error(`HTTP 接口详情 ID 不一致: 请求=${interfaceId},返回=${detailInterfaceId}`);
|
|
153
|
+
if (!detail.request || typeof detail.request !== 'object' || Array.isArray(detail.request)) {
|
|
154
|
+
throw new Error(`HTTP 接口 '${nameOf(interfaceRaw) || interfaceId}' 缺少原生 request 参数映射,已停止生成`);
|
|
155
|
+
}
|
|
156
|
+
return {
|
|
157
|
+
connector: { id: systemId, name: nameOf(connectorRaw), icon: resolveHttpConnectorIcon(connectorRaw.icon), raw: connectorRaw },
|
|
158
|
+
resource: { id: resourceId, name: nameOf(resourceRaw), raw: resourceRaw },
|
|
159
|
+
endpoint: { id: interfaceId, name: nameOf(interfaceRaw), raw: interfaceRaw },
|
|
160
|
+
detail,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
/** 遍历动作分支并把当前租户 HTTP 目录信息写回计划,供预检与画布节点后处理使用。 */
|
|
164
|
+
export async function resolveHttpBindings(plan, client) {
|
|
165
|
+
const records = [];
|
|
166
|
+
const walk = async (steps, path) => {
|
|
167
|
+
for (const [index, step] of (steps || []).entries()) {
|
|
168
|
+
if (!step || typeof step !== 'object')
|
|
169
|
+
continue;
|
|
170
|
+
const stepPath = `${path}[${index}]`;
|
|
171
|
+
if (String(step.type || '') === 'Http') {
|
|
172
|
+
const params = step.params && typeof step.params === 'object' ? step.params : (step.params = {});
|
|
173
|
+
const live = await resolveHttpBinding(client, params);
|
|
174
|
+
const detail = live.detail;
|
|
175
|
+
const sameNativeObject = (field) => {
|
|
176
|
+
const supplied = params[field];
|
|
177
|
+
const liveValue = detail[field];
|
|
178
|
+
if (supplied === undefined || supplied === null || supplied === '')
|
|
179
|
+
return true;
|
|
180
|
+
if (!supplied || typeof supplied !== 'object' || Array.isArray(supplied)) {
|
|
181
|
+
throw new Error(`${stepPath}.params.${field} 必须是当前接口详情返回的平台原生对象`);
|
|
182
|
+
}
|
|
183
|
+
const suppliedId = idOf(supplied, 'id', 'mappingId');
|
|
184
|
+
const liveId = idOf(liveValue, 'id', 'mappingId');
|
|
185
|
+
if (liveId && suppliedId !== liveId) {
|
|
186
|
+
throw new Error(`${stepPath}.params.${field} 不属于当前接口详情;请重新读取 interface-detail,禁止混用其他环境的原生映射`);
|
|
187
|
+
}
|
|
188
|
+
return true;
|
|
189
|
+
};
|
|
190
|
+
sameNativeObject('request');
|
|
191
|
+
sameNativeObject('response');
|
|
192
|
+
// 这些字段是接口详情的回显值,不能信任计划里残留的旧环境地址/方法。
|
|
193
|
+
params.address = detail.address;
|
|
194
|
+
params.requestMethod = detail.requestMethod;
|
|
195
|
+
params.type = detail.type || live.endpoint.raw.interfaceType || 'http';
|
|
196
|
+
if (detail.selectMethod !== undefined)
|
|
197
|
+
params.selectMethod = detail.selectMethod;
|
|
198
|
+
if (detail.soapVersion !== undefined)
|
|
199
|
+
params.soapVersion = detail.soapVersion;
|
|
200
|
+
params.request ??= detail.request;
|
|
201
|
+
params.response ??= detail.response;
|
|
202
|
+
validateHttpInputParams(params.request, params.inputParams, `${stepPath}.params.inputParams`);
|
|
203
|
+
params._httpLive = {
|
|
204
|
+
connectorName: live.connector.name,
|
|
205
|
+
connectorIcon: live.connector.icon,
|
|
206
|
+
resourceName: live.resource.name,
|
|
207
|
+
interfaceName: live.endpoint.name,
|
|
208
|
+
interfaceType: detail.type || live.endpoint.raw.type || '',
|
|
209
|
+
};
|
|
210
|
+
records.push({
|
|
211
|
+
path: `${stepPath}.params`, resourceType: 'http_binding',
|
|
212
|
+
value: { systemId: live.connector.id, systemName: live.connector.name, resourceId: live.resource.id, resourceName: live.resource.name, interfaceId: live.endpoint.id, interfaceName: live.endpoint.name },
|
|
213
|
+
reason: 'HTTP 连接器、资源、接口及接口详情均从当前租户实时读取;标题和图标使用当前连接器目录',
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
if (String(step.type || '') === 'Condition') {
|
|
217
|
+
const branches = getStepBranches(step);
|
|
218
|
+
for (const [branchIndex, branch] of branches.entries()) {
|
|
219
|
+
await walk(branch?.actions || [], `${stepPath}.branches[${branchIndex}].actions`);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
if (Array.isArray(step.actions))
|
|
223
|
+
await walk(step.actions, `${stepPath}.actions`);
|
|
224
|
+
}
|
|
225
|
+
};
|
|
226
|
+
await walk(plan.actions || [], 'actions');
|
|
227
|
+
// 上下文引用必须落到上游接口详情真实存在的 response 字段;同时丢弃计划里
|
|
228
|
+
// 可能写入的臆造显示名,避免画布显示一个平台不存在的“登录Token”。
|
|
229
|
+
normalizeHttpContextReferences(plan.actions || []);
|
|
230
|
+
if (records.length)
|
|
231
|
+
(plan._autoResources ??= []).push(...records);
|
|
232
|
+
return records;
|
|
233
|
+
}
|
|
234
|
+
/** 当前租户的 HTTP 连接器,前端路径 connector/getConnetorNoPage?target=http。 */
|
|
235
|
+
export async function httpConnectors(client) {
|
|
236
|
+
return client.get(`${base(client)}/api/bs/esb/setting/connector/getConnetorNoPage?target=http`);
|
|
237
|
+
}
|
|
238
|
+
/** 连接器下的连接信息/资源,原样返回平台分页 DTO。 */
|
|
239
|
+
export async function httpResources(client, systemId) {
|
|
240
|
+
if (!String(systemId || '').trim())
|
|
241
|
+
throw new Error('http-resources 缺少 systemId');
|
|
242
|
+
return client.get(`${base(client)}/api/bs/esb/setting/resource/getResourceListPage?${query({
|
|
243
|
+
systemPk: String(systemId), status: '0', showDefalt: 'true', interfaceId: '', current: '1', pageSize: '100',
|
|
244
|
+
})}`);
|
|
245
|
+
}
|
|
246
|
+
/** 连接器/资源下的接口列表,原样返回平台分页 DTO。 */
|
|
247
|
+
export async function httpInterfaces(client, systemId, resourceId = '', interfaceId = '') {
|
|
248
|
+
if (!String(systemId || '').trim())
|
|
249
|
+
throw new Error('http-interfaces 缺少 systemId');
|
|
250
|
+
return client.get(`${base(client)}/api/bs/esb/setting/interface/list?${query({
|
|
251
|
+
systemId: String(systemId), status: '0', showDefalt: 'true', current: '1', pageSize: '200',
|
|
252
|
+
linkInfoId: String(resourceId || ''), interfaceId: String(interfaceId || ''),
|
|
253
|
+
})}`);
|
|
254
|
+
}
|
|
255
|
+
/** 接口详情,包含 address/requestMethod/request/response/type 等 HTTP 组件原生字段。 */
|
|
256
|
+
export async function httpInterfaceDetail(client, interfaceId) {
|
|
257
|
+
if (!String(interfaceId || '').trim())
|
|
258
|
+
throw new Error('http-interface-detail 缺少 interfaceId');
|
|
259
|
+
return client.get(`${base(client)}/api/bs/esb/setting/interface/getInterfaceInfo/${encodeURIComponent(String(interfaceId))}`);
|
|
260
|
+
}
|
|
261
|
+
//# sourceMappingURL=http_source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http_source.js","sourceRoot":"","sources":["../../../src/services/actionflow/http_source.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan_constraints.d.ts","sourceRoot":"","sources":["../../../src/services/actionflow/plan_constraints.ts"],"names":[],"mappings":"AAAA,kBAAkB;
|
|
1
|
+
{"version":3,"file":"plan_constraints.d.ts","sourceRoot":"","sources":["../../../src/services/actionflow/plan_constraints.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAoClB,wBAAgB,+BAA+B,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAM9F;AAED,kCAAkC;AAClC,wBAAgB,sCAAsC,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAMhG"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/** 动作流级别的组合约束。 */
|
|
2
|
+
import { getStepBranches } from './step_branches.js';
|
|
2
3
|
const INNER_MQ_LISTENER = 'InnerMQListener';
|
|
3
4
|
const INNER_MQ_SEND = 'InnerMQSend';
|
|
4
5
|
function visitNode(node, types) {
|
|
@@ -10,8 +11,9 @@ function visitNode(node, types) {
|
|
|
10
11
|
types.add(node.comType);
|
|
11
12
|
if (Array.isArray(node.actions))
|
|
12
13
|
node.actions.forEach((child) => visitNode(child, types));
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
const branches = getStepBranches(node);
|
|
15
|
+
if (branches.length) {
|
|
16
|
+
branches.forEach((branch) => {
|
|
15
17
|
if (branch && typeof branch === 'object') {
|
|
16
18
|
if (Array.isArray(branch.actions))
|
|
17
19
|
branch.actions.forEach((child) => visitNode(child, types));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan_constraints.js","sourceRoot":"","sources":["../../../src/services/actionflow/plan_constraints.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAElB,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AAC5C,MAAM,aAAa,GAAG,aAAa,CAAC;AAEpC,SAAS,SAAS,CAAC,IAAS,EAAE,KAAkB;IAC9C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO;IACrE,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;QAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE9D,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAC/F,
|
|
1
|
+
{"version":3,"file":"plan_constraints.js","sourceRoot":"","sources":["../../../src/services/actionflow/plan_constraints.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,14 @@ export declare function syncFormReferencesToDraft(draft: Record<string, any>, pl
|
|
|
32
32
|
/** 将预检阶段补齐的“查询字段默认全选”同步到已归一化的 Draft。
|
|
33
33
|
* 查询节点的 dataSource 会在编译器中改成服务 DTO,不能再依赖编译期缓存二次推导字段。 */
|
|
34
34
|
export declare function syncQueryFieldsToDraft(draft: Record<string, any>, plan: Record<string, any>): void;
|
|
35
|
+
/**
|
|
36
|
+
* 归一化 showDataSourceFields 的返回值。
|
|
37
|
+
*
|
|
38
|
+
* 设计器前端直接把该接口返回值当作数组使用;部分网关/旧版本则会包成
|
|
39
|
+
* { data: [...] }。生成器之前只读取 response.data,导致真实业务字段被
|
|
40
|
+
* 误判为不存在,查询节点最终只保存系统字段,后续动态赋值便显示“已删除”。
|
|
41
|
+
*/
|
|
42
|
+
export declare function normalizeShowDataSourceFields(response: any, formId: string): any[];
|
|
35
43
|
export declare function syncEventResourcesToDraft(draft: Record<string, any>, plan: Record<string, any>): void;
|
|
36
44
|
export declare function syncFixedPeopleToDraft(draft: Record<string, any>, plan: Record<string, any>): void;
|
|
37
45
|
export declare function syncBizFieldsToDraft(draft: Record<string, any>, plan: Record<string, any>): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preflight_service.d.ts","sourceRoot":"","sources":["../../../src/services/actionflow/preflight_service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"preflight_service.d.ts","sourceRoot":"","sources":["../../../src/services/actionflow/preflight_service.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,22 +3,15 @@ import * as workflowSource from './workflow_source.js';
|
|
|
3
3
|
import * as personSource from './person_source.js';
|
|
4
4
|
import * as contextSource from './context_source.js';
|
|
5
5
|
import * as hrmSource from './hrm_source.js';
|
|
6
|
+
import { resolveHttpBindings } from './http_source.js';
|
|
6
7
|
import { registerTargetFormFields, registerTargetDetailFields, registerWorkflowFieldIds, registerWorkflowContextFields, getWorkflowFieldIds, getWorkflowDetailFields, getWorkflowDetailNames, getTargetFormFields, } from './runtime_metadata.js';
|
|
7
8
|
// workflow_id → 目标表单 id(进程缓存)
|
|
8
9
|
const FORM_ID_CACHE = {};
|
|
9
10
|
import { ContextStore, PlatformContextProvider } from './context_provider.js';
|
|
10
|
-
import { queryNodeContext } from './context_preflight.js';
|
|
11
|
+
import { hydrateQueryResultReferences, queryNodeContext } from './context_preflight.js';
|
|
11
12
|
import { get as getComponent } from './components/index.js';
|
|
12
13
|
import { defaultQueryFieldsAll } from './query_field_defaults.js';
|
|
13
|
-
|
|
14
|
-
* 编译器已认 params.branches,预检此前只读顶层导致漏检/误拒(D04)。 */
|
|
15
|
-
function getStepBranches(step) {
|
|
16
|
-
const top = step && getStepBranches(step);
|
|
17
|
-
if (Array.isArray(top))
|
|
18
|
-
return top;
|
|
19
|
-
const inner = step && step.params && step.params.branches;
|
|
20
|
-
return Array.isArray(inner) ? inner : [];
|
|
21
|
-
}
|
|
14
|
+
import { getStepBranches } from './step_branches.js';
|
|
22
15
|
// 表单字段进程缓存
|
|
23
16
|
const FORM_FIELDS_CACHE = {};
|
|
24
17
|
const FORM_LIST_CACHE = {};
|
|
@@ -678,7 +671,22 @@ export function checkSourceReferences(plan, eventContextFields, errors) {
|
|
|
678
671
|
const path = `${prefix}[${idx}]`;
|
|
679
672
|
if (['ActionEbAdd', 'ActionEbUpdate', 'ActionEbDelete', 'ActionEbRecover', 'ActionEbSaveVersion', 'EbGetDataById'].includes(step.type)) {
|
|
680
673
|
if (params && typeof params === 'object') {
|
|
681
|
-
|
|
674
|
+
const mapping = params.mapping;
|
|
675
|
+
if (mapping && typeof mapping === 'object' && !Array.isArray(mapping)) {
|
|
676
|
+
// 循环体字段来自 MultipleExecution 的 CycleParams,不属于最外层
|
|
677
|
+
// 触发器流程上下文;它由循环节点查询后的 hydrateCurrentLoopReferences
|
|
678
|
+
// 单独校验和补全,不能再按 workflowId 源字段检查。
|
|
679
|
+
const topLevelMapping = Object.fromEntries(Object.entries(mapping).filter(([, value]) => {
|
|
680
|
+
if (!value || typeof value !== 'object' || Array.isArray(value))
|
|
681
|
+
return true;
|
|
682
|
+
return String(value.scope ?? value.contextScope ?? '') !== 'current_loop'
|
|
683
|
+
&& String(value.assignment?.scope ?? value.assignment?.contextScope ?? '') !== 'current_loop';
|
|
684
|
+
}));
|
|
685
|
+
checkMapping(topLevelMapping, `${path}.mapping`);
|
|
686
|
+
}
|
|
687
|
+
else {
|
|
688
|
+
checkMapping(mapping, `${path}.mapping`);
|
|
689
|
+
}
|
|
682
690
|
const bv = params.basisValue;
|
|
683
691
|
if (bv && typeof bv === 'object') {
|
|
684
692
|
if (String(bv.kind || bv.assignmentKind || '') !== 'query_result') {
|
|
@@ -958,7 +966,7 @@ export function syncFormReferencesToDraft(draft, plan) {
|
|
|
958
966
|
dp[key] = { ...ref };
|
|
959
967
|
}
|
|
960
968
|
}
|
|
961
|
-
const pb = planStep
|
|
969
|
+
const pb = getStepBranches(planStep), db = getStepBranches(draftStep);
|
|
962
970
|
if (Array.isArray(pb) && Array.isArray(db)) {
|
|
963
971
|
for (let i = 0; i < pb.length && i < db.length; i++) {
|
|
964
972
|
const pa2 = pb[i]?.actions || [], da2 = db[i]?.actions || [];
|
|
@@ -983,7 +991,7 @@ export function syncQueryFieldsToDraft(draft, plan) {
|
|
|
983
991
|
if (Array.isArray(queryFields) && queryFields.length && draftStep.params && typeof draftStep.params === 'object') {
|
|
984
992
|
draftStep.params.queryFields = queryFields.map((field) => ({ ...field }));
|
|
985
993
|
}
|
|
986
|
-
const pb = planStep
|
|
994
|
+
const pb = getStepBranches(planStep), db = getStepBranches(draftStep);
|
|
987
995
|
for (let i = 0; i < pb.length && i < db.length; i++) {
|
|
988
996
|
const pa = pb[i]?.actions || [], da = db[i]?.actions || [];
|
|
989
997
|
for (let j = 0; j < pa.length && j < da.length; j++)
|
|
@@ -995,6 +1003,51 @@ export function syncQueryFieldsToDraft(draft, plan) {
|
|
|
995
1003
|
for (let i = 0; i < pa.length && i < da.length; i++)
|
|
996
1004
|
syncStep(pa[i], da[i]);
|
|
997
1005
|
}
|
|
1006
|
+
/**
|
|
1007
|
+
* 归一化 showDataSourceFields 的返回值。
|
|
1008
|
+
*
|
|
1009
|
+
* 设计器前端直接把该接口返回值当作数组使用;部分网关/旧版本则会包成
|
|
1010
|
+
* { data: [...] }。生成器之前只读取 response.data,导致真实业务字段被
|
|
1011
|
+
* 误判为不存在,查询节点最终只保存系统字段,后续动态赋值便显示“已删除”。
|
|
1012
|
+
*/
|
|
1013
|
+
export function normalizeShowDataSourceFields(response, formId) {
|
|
1014
|
+
const root = Array.isArray(response)
|
|
1015
|
+
? response
|
|
1016
|
+
: Array.isArray(response?.data)
|
|
1017
|
+
? response.data
|
|
1018
|
+
: Array.isArray(response?.result)
|
|
1019
|
+
? response.result
|
|
1020
|
+
: [];
|
|
1021
|
+
const fields = [];
|
|
1022
|
+
const visit = (items, inheritedFormId = String(formId), inheritedGroup = undefined) => {
|
|
1023
|
+
for (const item of items || []) {
|
|
1024
|
+
if (!item || typeof item !== 'object')
|
|
1025
|
+
continue;
|
|
1026
|
+
const itemFormId = String(item.formId || inheritedFormId || formId);
|
|
1027
|
+
const group = item.fieldGroup || inheritedGroup || {
|
|
1028
|
+
name: String(item.text || item.formName || item.name || ''),
|
|
1029
|
+
id: itemFormId,
|
|
1030
|
+
};
|
|
1031
|
+
if (Array.isArray(item.fields)) {
|
|
1032
|
+
for (const field of item.fields) {
|
|
1033
|
+
if (!field || typeof field !== 'object' || !field.id)
|
|
1034
|
+
continue;
|
|
1035
|
+
fields.push({
|
|
1036
|
+
...field,
|
|
1037
|
+
formId: String(field.formId || itemFormId),
|
|
1038
|
+
// 接口返回的 fieldGroup 常只有 id;设计器保存业务字段还需要分组名称。
|
|
1039
|
+
// 合并而不是直接透传,避免平台把业务字段静默过滤成仅剩系统字段。
|
|
1040
|
+
fieldGroup: { ...(group || {}), ...(field.fieldGroup || {}) },
|
|
1041
|
+
});
|
|
1042
|
+
}
|
|
1043
|
+
}
|
|
1044
|
+
if (Array.isArray(item.groups))
|
|
1045
|
+
visit(item.groups, itemFormId, group);
|
|
1046
|
+
}
|
|
1047
|
+
};
|
|
1048
|
+
visit(root);
|
|
1049
|
+
return fields;
|
|
1050
|
+
}
|
|
998
1051
|
export function syncEventResourcesToDraft(draft, plan) {
|
|
999
1052
|
const pe = plan.event, de = draft.event;
|
|
1000
1053
|
if (!pe || !de || typeof pe !== 'object' || typeof de !== 'object')
|
|
@@ -1034,8 +1087,8 @@ export function syncFixedPeopleToDraft(draft, plan) {
|
|
|
1034
1087
|
}
|
|
1035
1088
|
}
|
|
1036
1089
|
}
|
|
1037
|
-
const planBranches = planStep
|
|
1038
|
-
const draftBranches = draftStep
|
|
1090
|
+
const planBranches = getStepBranches(planStep);
|
|
1091
|
+
const draftBranches = getStepBranches(draftStep);
|
|
1039
1092
|
for (let i = 0; i < planBranches.length && i < draftBranches.length; i++) {
|
|
1040
1093
|
const planActions = planBranches[i]?.actions || [];
|
|
1041
1094
|
const draftActions = draftBranches[i]?.actions || [];
|
|
@@ -1076,8 +1129,8 @@ export function syncEntrustFieldsToDraft(draft, plan) {
|
|
|
1076
1129
|
if (planStep.type === 'ApproveEntrust' && planStep.params?._entrustFields && draftStep.params) {
|
|
1077
1130
|
draftStep.params._entrustFields = planStep.params._entrustFields;
|
|
1078
1131
|
}
|
|
1079
|
-
const planBranches = planStep
|
|
1080
|
-
const draftBranches = draftStep
|
|
1132
|
+
const planBranches = getStepBranches(planStep);
|
|
1133
|
+
const draftBranches = getStepBranches(draftStep);
|
|
1081
1134
|
for (let i = 0; i < planBranches.length && i < draftBranches.length; i++) {
|
|
1082
1135
|
const pa = planBranches[i]?.actions || [], da = draftBranches[i]?.actions || [];
|
|
1083
1136
|
for (let j = 0; j < pa.length && j < da.length; j++)
|
|
@@ -1095,7 +1148,7 @@ export function syncHrmFieldSchemasToDraft(draft, plan) {
|
|
|
1095
1148
|
if (['PersonnelOnboarding', 'HrmEmployeeUpdate'].includes(String(planStep.type)) && planStep.params?._hrmFieldSchema && draftStep.params) {
|
|
1096
1149
|
draftStep.params._hrmFieldSchema = planStep.params._hrmFieldSchema;
|
|
1097
1150
|
}
|
|
1098
|
-
const planBranches = planStep
|
|
1151
|
+
const planBranches = getStepBranches(planStep), draftBranches = getStepBranches(draftStep);
|
|
1099
1152
|
for (let i = 0; i < planBranches.length && i < draftBranches.length; i++)
|
|
1100
1153
|
syncSteps(planBranches[i]?.actions || [], draftBranches[i]?.actions || []);
|
|
1101
1154
|
if (Array.isArray(planStep.actions) && Array.isArray(draftStep.actions))
|
|
@@ -1187,6 +1240,14 @@ export async function preflightContext(plan, appId, client) {
|
|
|
1187
1240
|
await resolveFixedPeople(plan, client);
|
|
1188
1241
|
await resolveEntrustFields(plan, client, errors);
|
|
1189
1242
|
await resolveHrmFieldAssignments(plan, client, errors);
|
|
1243
|
+
try {
|
|
1244
|
+
await resolveHttpBindings(plan, client);
|
|
1245
|
+
}
|
|
1246
|
+
catch (e) {
|
|
1247
|
+
errors.push(`HTTP 连接器实时校验失败: ${String(e?.message || e)}`);
|
|
1248
|
+
}
|
|
1249
|
+
if (errors.length)
|
|
1250
|
+
return { valid: false, errors, warnings, contextStore: store.asDict() };
|
|
1190
1251
|
// 回填 targetForm 缺失的 groupId/name
|
|
1191
1252
|
try {
|
|
1192
1253
|
const unresolvedForms = await resolveTargetForms(plan, client);
|
|
@@ -1212,23 +1273,35 @@ export async function preflightContext(plan, appId, client) {
|
|
|
1212
1273
|
// 查询组件偶尔会只保留系统字段,筛选编辑器因此把业务字段标成“已删除”。
|
|
1213
1274
|
const params = step.params && typeof step.params === 'object' ? step.params : (step.params = {});
|
|
1214
1275
|
if (['EnquiryForm', 'TimeBatchTrigger', 'DateTrigger'].includes(step.type)) {
|
|
1215
|
-
// getEbField 用于类型/筛选校验;queryFields
|
|
1216
|
-
// showDataSourceFields
|
|
1276
|
+
// getEbField 用于类型/筛选校验;queryFields 必须采用设计器字段选择器
|
|
1277
|
+
// showDataSourceFields 返回的对象和字段 ID(业务字段通常是 field_<真实ID>),
|
|
1278
|
+
// 否则后端会静默丢弃业务字段。
|
|
1217
1279
|
let selectable = [];
|
|
1218
1280
|
try {
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
: []);
|
|
1281
|
+
// EnquiryForm 编译后数据源的服务组固定为 weaver-ebuilder-form-service;
|
|
1282
|
+
// tf.groupId 是业务应用 ID,传它会得到空字段列表,进而把 queryFields 留成不完整的 plan 对象。
|
|
1283
|
+
const resp = await formSource.showDataSourceFields(client, formId, 'weaver-ebuilder-form-service', 'LOGIC');
|
|
1284
|
+
selectable = normalizeShowDataSourceFields(resp, formId);
|
|
1224
1285
|
}
|
|
1225
1286
|
catch {
|
|
1226
1287
|
// 接口异常时保留下方基于 getEbField 的降级;最终保存仍由平台严格校验。
|
|
1227
1288
|
}
|
|
1228
|
-
const byId = new Map(
|
|
1289
|
+
const byId = new Map();
|
|
1290
|
+
for (const field of selectable) {
|
|
1291
|
+
const id = String(field?.id || '');
|
|
1292
|
+
if (!id)
|
|
1293
|
+
continue;
|
|
1294
|
+
byId.set(id, field);
|
|
1295
|
+
// 兼容旧 plan/API 返回不带 field_ 前缀的裸字段 ID,
|
|
1296
|
+
// 但最终一定替换成当前租户字段选择器的真实 ID。
|
|
1297
|
+
byId.set(id.startsWith('field_') ? id.slice('field_'.length) : `field_${id}`, field);
|
|
1298
|
+
}
|
|
1229
1299
|
const requested = Array.isArray(params.queryFields) && params.queryFields.length ? params.queryFields : null;
|
|
1230
1300
|
if (requested) {
|
|
1231
|
-
params.queryFields = requested.map((field) =>
|
|
1301
|
+
params.queryFields = requested.map((field) => {
|
|
1302
|
+
const live = byId.get(String(field?.id || ''));
|
|
1303
|
+
return live ? { ...live, ...field, id: String(live.id) } : { ...field };
|
|
1304
|
+
});
|
|
1232
1305
|
}
|
|
1233
1306
|
else if (selectable.length) {
|
|
1234
1307
|
params.queryFields = selectable;
|
|
@@ -1447,6 +1520,11 @@ export async function preflightContext(plan, appId, client) {
|
|
|
1447
1520
|
errors.push(...result.errors);
|
|
1448
1521
|
if (result.errors.length)
|
|
1449
1522
|
return;
|
|
1523
|
+
if (step.type === 'EnquiryForm') {
|
|
1524
|
+
// 预检拿到的上下文包含平台生成的字段实例 id;回填到后续
|
|
1525
|
+
// query_result,编译 HTTP FormulaBean 时复用手工配置协议。
|
|
1526
|
+
hydrateQueryResultReferences(steps.slice(index + 1), result.context, String(step.ref || step.name || step.id || ''));
|
|
1527
|
+
}
|
|
1450
1528
|
if (step.type === 'Condition') {
|
|
1451
1529
|
for (const [bi, branch] of (getStepBranches(step) || []).entries()) {
|
|
1452
1530
|
if (branch && typeof branch === 'object') {
|