@shundoo-ai/dsh-cosmic 1.0.21 → 1.0.22
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/package.json +1 -1
- package/skills/cosmic-build/LOCAL-PATCHES.md +43 -14
- package/skills/cosmic-build/SKILL.md +24 -9
- package/skills/cosmic-build/examples/java-rules/CosmicReportAggregation.java +26 -17
- package/skills/cosmic-build/examples/java-rules/CosmicReportFilters.java +96 -2
- package/skills/cosmic-build/knowledge/cosmic/arch/security/security_standard.md +4 -4
- package/skills/cosmic-build/knowledge/cosmic/platform/allimport.md +2 -1
- package/skills/cosmic-build/knowledge/cosmic/platform/core/dynamic-object-collection.md +6 -4
- package/skills/cosmic-build/knowledge/cosmic/platform/core/model.md +9 -9
- package/skills/cosmic-build/knowledge/cosmic/platform/core/view.md +5 -5
- package/skills/cosmic-build/knowledge/cosmic/platform/form-plugin.md +8 -4
- package/skills/cosmic-build/knowledge/cosmic/platform/list-plugin.md +5 -3
- package/skills/cosmic-build/knowledge/cosmic/platform/print-plugin-guide.md +1 -0
- package/skills/cosmic-build/knowledge/cosmic/platform/report-plugin.md +269 -57
- package/skills/cosmic-build/knowledge/cosmic/platform/reportlistdata-plugin.md +130 -23
- package/skills/cosmic-build/knowledge/cosmic/platform/reporttreedata-plugin.md +48 -28
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/_index.md +12 -3
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/common/attachment-name-process.md +17 -13
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/common/dynamic-update-field.md +4 -4
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/control/filter-grid/filter-grid-set-value.md +1 -1
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/control/list/filter-basedatafield.md +2 -3
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/control/list/filter-container-init.md +0 -1
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/control/list/filter-popup.md +0 -1
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/control/list/filter-value-parse.md +5 -6
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/control/list/list-show-form.md +1 -1
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/control/list/query-field-dynamic.md +0 -7
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/data-access/business-data/delete-service.md +24 -29
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/data-access/ksql/db-batch.md +4 -0
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/data-access/ksql/db-direct-access.md +4 -0
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/data-access/qfilter/entity-object-access.md +8 -3
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/data-access/qfilter/qfilter-compose.md +6 -5
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/event/after-bind-data-set-visible.md +5 -1
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/event/click-return-data.md +2 -2
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/event/closed-call-back-set-value.md +2 -2
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/event/register-listener.md +1 -1
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/event/set-filter-tab-org.md +3 -0
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/infra/dispatch-service/microservice-dev.md +18 -11
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/infra/dist-lock/dist-lock-basic.md +3 -6
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/infra/mq/mq-subscribe.md +5 -1
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/infra/thread-pool/async-operation.md +10 -6
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/infra/thread-pool/big-task-async.md +4 -2
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/infra/thread-pool/schedule-task.md +9 -7
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/operation/operation-interactive.md +33 -34
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/operation/operation-plugin-events.md +30 -22
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-async-query.md +133 -0
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-batch-query.md +26 -22
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-chart.md +112 -0
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-dataset-assembly.md +200 -0
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-head-filter.md +177 -0
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-hyperlink-drill.md +216 -0
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-list-data-query.md +12 -12
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-merge-column.md +44 -6
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-print-data.md +163 -0
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-row-data-toolbar.md +188 -0
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-subtotal-total.md +139 -0
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-tree-data-query.md +108 -12
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-tree-list.md +181 -0
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/system-service/report-plugin-interface.md +3 -0
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/tree/tree-basedata-cascade-confirm.md +14 -11
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/tree/tree-list-before-item-validate.md +1 -1
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/tree/tree-list-build-filter.md +1 -1
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/tree/tree-list-multi-level-filter.md +11 -11
- package/skills/cosmic-build/knowledge/cosmic/platform/scenes/tree/tree-list-refresh-node.md +22 -15
- package/skills/cosmic-build/knowledge/cosmic/platform/sdk/sdk-algo.md +2 -2
- package/skills/cosmic-build/knowledge/cosmic/platform/sdk/sdk-entity-model.md +3 -4
- package/skills/cosmic-build/knowledge/cosmic/platform/sdk/sdk-exception.md +9 -5
- package/skills/cosmic-build/knowledge/cosmic/platform/sdk/sdk-orm-access.md +4 -0
- package/skills/cosmic-build/knowledge/cosmic/platform/sdk/sdk-request-context.md +7 -3
- package/skills/cosmic-build/knowledge/cosmic/platform/standards.md +28 -3
- package/skills/cosmic-build/references/compile-guide.md +36 -1
- package/skills/cosmic-build/references/dcs-code-rules.md +180 -0
- package/skills/cosmic-build/references/delivery.md +16 -2
- package/skills/cosmic-build/references/execution-contract.md +15 -3
- package/skills/cosmic-build/references/java-plugin-delivery.md +21 -11
- package/skills/cosmic-build/references/plugin-handoff-input.md +82 -24
- package/skills/cosmic-build/references/plugin-runtime-routing.md +23 -6
- package/skills/cosmic-build/references/report-filter-contract.md +53 -15
- package/skills/cosmic-build/references/sdk-inspection.md +4 -1
- package/skills/cosmic-build/references/type-registry.json +26 -17
- package/skills/cosmic-build/schemas/data-model-authoring.schema.json +1 -1
- package/skills/cosmic-build/scripts/_http_client.py +3 -0
- package/skills/cosmic-build/scripts/compile_plugin_source.py +251 -42
- package/skills/cosmic-build/scripts/configure_list.py +112 -0
- package/skills/cosmic-build/scripts/dcs-rule-catalog.json +799 -0
- package/skills/cosmic-build/scripts/dcs_code_gate.py +1976 -0
- package/skills/cosmic-build/scripts/execution_binding.py +25 -0
- package/skills/cosmic-build/scripts/platform_api_contract.py +352 -7
- package/skills/cosmic-build/scripts/plugin_source_gate.py +9 -1
- package/skills/cosmic-build/scripts/plugin_target_sdk.py +12 -8
- package/skills/cosmic-build/scripts/prepare_plugin_handoff.py +488 -88
- package/skills/cosmic-build/scripts/query_plugin_handoff.py +207 -20
- package/skills/cosmic-build/scripts/register_plugins.py +27 -10
- package/skills/cosmic-build/scripts/render_output_cards.py +57 -20
- package/skills/cosmic-build/scripts/resolve_output_path.py +60 -26
- package/skills/cosmic-build/scripts/run_java_tests.py +162 -0
- package/skills/cosmic-build/scripts/sync_generated_locale_assets.py +28 -0
- package/skills/cosmic-build/scripts/test/fixtures/ReportSdkCheck.java +1 -22
- package/skills/cosmic-build/scripts/test/fixtures/list_column_property_declarations.json +887 -0
- package/skills/cosmic-build/scripts/test/fixtures/operation-entry-field-prepare.java +78 -0
- package/skills/cosmic-build/scripts/test/test_add_field_required_contract.py +12 -0
- package/skills/cosmic-build/scripts/test/test_batch5_drift_governance.py +23 -2
- package/skills/cosmic-build/scripts/test/test_compile_plugin_source.py +287 -4
- package/skills/cosmic-build/scripts/test/test_configure_list_delivery.py +132 -0
- package/skills/cosmic-build/scripts/test/test_cosmic_sdk_examples.py +58 -1
- package/skills/cosmic-build/scripts/test/test_data_model_contract.py +19 -0
- package/skills/cosmic-build/scripts/test/test_dcs_code_gate.py +901 -0
- package/skills/cosmic-build/scripts/test/test_delivery_stage_boundary.py +1 -1
- package/skills/cosmic-build/scripts/test/test_direct_cli_architecture.py +2 -0
- package/skills/cosmic-build/scripts/test/test_http_client.py +6 -0
- package/skills/cosmic-build/scripts/test/test_java_toolchain_feedback.py +206 -0
- package/skills/cosmic-build/scripts/test/test_kd_api.py +21 -0
- package/skills/cosmic-build/scripts/test/test_list_configuration_closure.py +184 -0
- package/skills/cosmic-build/scripts/test/test_mcp_cli.py +139 -2
- package/skills/cosmic-build/scripts/test/test_menu_creation_closure.py +16 -0
- package/skills/cosmic-build/scripts/test/test_modeling_input_recovery.py +55 -1
- package/skills/cosmic-build/scripts/test/test_open_world_cli_catalog.py +1 -1
- package/skills/cosmic-build/scripts/test/test_operation_field_preparation.py +84 -0
- package/skills/cosmic-build/scripts/test/test_platform_api_contract.py +322 -1
- package/skills/cosmic-build/scripts/test/test_plugin_handoff.py +951 -4
- package/skills/cosmic-build/scripts/test/test_plugin_source_gate.py +30 -2
- package/skills/cosmic-build/scripts/test/test_plugin_target_sdk.py +21 -0
- package/skills/cosmic-build/scripts/test/test_property_reroute.py +165 -0
- package/skills/cosmic-build/scripts/test/test_property_schema_first.py +35 -0
- package/skills/cosmic-build/scripts/test/test_query_plugin_handoff.py +221 -0
- package/skills/cosmic-build/scripts/test/test_register_plugins.py +76 -4
- package/skills/cosmic-build/scripts/test/test_render_output_cards.py +75 -3
- package/skills/cosmic-build/scripts/test/test_report_business_contract.py +27 -5
- package/skills/cosmic-build/scripts/test/test_report_doc_contract_sync.py +103 -11
- package/skills/cosmic-build/scripts/test/test_report_plugin_source_gate.py +46 -16
- package/skills/cosmic-build/scripts/test/test_report_properties.py +74 -15
- package/skills/cosmic-build/scripts/test/test_report_query_data_source.py +3 -1
- package/skills/cosmic-build/scripts/test/test_report_sdk_optimization.py +1 -2
- package/skills/cosmic-build/scripts/test/test_test_environment.py +76 -1
- package/skills/cosmic-build/scripts/test_environment.py +67 -1
- package/skills/cosmic-build/skills/cosmic-coding-impl/SKILL.md +52 -10
- package/skills/cosmic-build/skills/cosmic-meta-api/apis/ai_meta.md +16 -3
- package/skills/cosmic-build/skills/cosmic-meta-api/contracts/cli/report-write-contracts.json +59 -26
- package/skills/cosmic-build/skills/cosmic-meta-api/contracts/cli/rule-domain.json +1 -1
- package/skills/cosmic-build/skills/cosmic-meta-api/contracts/schema/report-write.schema.json +75 -18
- package/skills/cosmic-build/skills/cosmic-meta-api/modules/pdm/scripts/pdm_auto.py +39 -0
- package/skills/cosmic-build/skills/cosmic-meta-api/modules/pdm/scripts/pdm_client.py +97 -10
- package/skills/cosmic-build/skills/cosmic-meta-api/modules/verify/SKILL.md +10 -12
- package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/cmd_apps.py +3 -1
- package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/cmd_formactions.py +38 -29
- package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/cmd_listui.py +400 -233
- package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/cmd_metaops.py +87 -45
- package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/cmd_properties.py +42 -15
- package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/cmd_rules.py +135 -5
- package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/config.py +1 -1
- package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/execution_errors.py +1 -1
- package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/formatters.py +17 -11
- package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/property_reroute.py +15 -5
- package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/report_ops.py +1429 -238
- package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/validators.py +56 -28
- package/skills/cosmic-build/skills/cosmic-meta-api/scripts/cosmic_api.py +380 -134
- package/skills/cosmic-build/skills/cosmic-meta-api/scripts/field_decorator.py +1 -1
- package/skills/cosmic-build/skills/cosmic-meta-api/scripts/meta_export.py +12 -11
- package/skills/cosmic-build/skills/cosmic-meta-api/scripts/meta_verifier.py +42 -0
- package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_add_field_placement_closure.py +8 -8
- package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_build_configuration_readback.py +94 -0
- package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_build_receipt_resume.py +47 -1
- package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_metadata_unchanged_fail_closed.py +87 -0
- package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_report_dym_evidence.py +23 -23
- package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_report_entity_integrity.py +279 -4
- package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_report_field_guard.py +1 -1
- package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_report_plugin_contract.py +509 -32
- package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_report_readback_derivation.py +178 -1
- package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_report_recreate_plan.py +125 -10
- package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_report_serve_contract.py +208 -0
- package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_report_typed_filters.py +259 -50
- package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_rule_inventory_perf.py +29 -0
- package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_rule_write_closure.py +20 -0
- package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_run_batch_post_build_recovery.py +18 -0
- package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_run_batch_verification_evidence.py +35 -0
- package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_run_identity_guard.py +25 -0
- package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_time_range_rule.py +98 -0
- package/skills/cosmic-build/skills/cosmic-meta-knowledge/domain-model/report-model.md +20 -9
- package/skills/cosmic-build/skills/cosmic-meta-knowledge/generation/report-modeling-guide.md +55 -25
- package/skills/cosmic-build/skills/cosmic-meta-knowledge/property-guides/report-column-properties.md +15 -39
- package/skills/cosmic-build/skills/cosmic-meta-modeling/SKILL.md +19 -17
- package/skills/cosmic-build/skills/cosmic-meta-modeling/modules/report/SKILL.md +82 -38
- package/skills/cosmic-build/skills/cosmic-meta-modeling/modules/report/examples/golden-example-report-batch.md +64 -19
- package/skills/cosmic-build/skills/cosmic-meta-modeling/modules/report/examples/golden-example-report-plugin.md +32 -20
- package/skills/cosmic-build/skills/cosmic-meta-modeling/modules/report/examples/golden-example-report-tree.md +78 -31
- package/skills/cosmic-build/skills/cosmic-meta-modeling/modules/report/report-artifact-schema.json +2 -1
- package/skills/cosmic-build/skills/cosmic-meta-modeling/references/authoring-companion-fields.md +3 -0
- package/skills/cosmic-build/skills/cosmic-meta-modeling/references/authoring-list-configuration.md +2 -0
- package/skills/cosmic-build/skills/cosmic-meta-modeling/scripts/data_model_contract.py +3 -1
- package/skills/cosmic-build/skills/cosmic-meta-modeling/scripts/data_model_emit.py +27 -4
- package/skills/cosmic-build/skills/cosmic-meta-modeling/scripts/report_validator.py +99 -44
- package/skills/cosmic-build/skills/cosmic-meta-modeling/scripts/test_report_examples.py +31 -4
- package/skills/cosmic-build/skills/cosmic-meta-modeling/scripts/test_report_validator.py +129 -29
- package/skills/cosmic-build/skills/cosmic-meta-modifier/SKILL.md +6 -2
- package/skills/cosmic-build/skills/cosmic-meta-modifier/modules/operation/validation.md +2 -0
- package/skills/cosmic-build/skills/cosmic-meta-modifier/modules/property/SKILL.md +1 -1
- package/skills/cosmic-build/skills/cosmic-meta-modifier/modules/report-op/SKILL.md +104 -25
- package/skills/cosmic-build/skills/cosmic-meta-modifier/modules/rule/SKILL.md +9 -0
- package/skills/cosmic-build/skills/cosmic-meta-modifier/modules/verify/usage-guide.md +2 -2
- package/skills/cosmic-build/skills/cosmic-meta-modifier/references/list-filter-modification.md +39 -12
- package/skills/cosmic-build/skills/mcp-server/SKILL.md +39 -24
- package/skills/cosmic-build/skills/mcp-server/scripts/mcp_cli.py +20 -6
- package/skills/cosmic-dev-best-practices/SKILL.md +1 -1
- package/skills/cosmic-dev-best-practices/references/README.md +2 -2
- package/skills/cosmic-dev-best-practices/references/basedata-dev-convention.md +2 -2
- package/skills/cosmic-dev-best-practices/references/bill-dev-convention.md +4 -4
- package/skills/cosmic-dev-best-practices/references/design-document-convention.md +2 -2
- package/skills/cosmic-dev-best-practices/references/design-examples/basedata-design-example.md +4 -4
- package/skills/cosmic-dev-best-practices/references/design-examples/bill-design-example.md +13 -13
- package/skills/cosmic-dev-best-practices/references/elements/CustomerField.md +1 -1
- package/skills/cosmic-dev-best-practices/references/elements/README.md +1 -1
- package/skills/cosmic-dev-best-practices/references/elements/SupplierField.md +1 -1
- package/skills/cosmic-dev-best-practices/references/elements/common-field-property-conventions.md +109 -13
- package/skills/cosmic-dev-best-practices/references/layout-control-convention.md +1 -1
- package/skills/erp-analysis/references/delivery-contract.md +2 -1
- package/skills/erp-analysis/templates/AGENTS.template.md +3 -1
- package/skills/cosmic-build/assets/platform-report-filters/TypedReportFilterFields.java +0 -169
- package/skills/cosmic-build/assets/platform-report-filters/platform.patch +0 -98
- package/skills/cosmic-build/scripts/apply_report_filter_extension.py +0 -39
package/skills/cosmic-build/skills/cosmic-meta-modifier/references/list-filter-modification.md
CHANGED
|
@@ -12,14 +12,15 @@
|
|
|
12
12
|
用户的表单名称和字段名称就是合法选择器。`fieldKey` 接受业务名称,不要求内部编码。
|
|
13
13
|
命令内部负责解析并校验真实应用、表单、字段和实体。
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
用户给出准确表单编码时,第一次调用原样传给 `--form-name`。
|
|
16
|
+
字段业务描述也原样传入,包括“表头备注”。脚本优先匹配准确字段名,找不到时再按明确的
|
|
17
|
+
表头前缀定位主实体;模型不必在“完整字段名”与“表头位置”两种写法间选择。
|
|
18
|
+
用户另行提供的 `entity` 独立位置参数仍保留;无需预读清单。
|
|
18
19
|
|
|
19
|
-
|
|
20
|
+
独立的列表修改使用下列脚本:内部调用原生 `configureList`,保留全部独立回读断言,并在同一次调用中完成成功修改的原生卡片收口:
|
|
20
21
|
|
|
21
22
|
```text
|
|
22
|
-
{python} {ROOT_DIR}/
|
|
23
|
+
{python} {ROOT_DIR}/scripts/configure_list.py --app-root "<可信 appRoot>" --form-name "<已给准确编码时用编码,否则用准确名称>" --input '{"entity":"<用户点名的位置,如 header;未点名时才省略>","columns":[{"fieldKey":"<字段当前名称>","displayName":"<要求的列表标题>"}]}'
|
|
23
24
|
```
|
|
24
25
|
|
|
25
26
|
从用户原话填写这个请求即可,不先调用 queryForms、getFormSchema、describe 或 bootstrap。
|
|
@@ -40,20 +41,46 @@
|
|
|
40
41
|
|
|
41
42
|
列接受 `fieldKey`,以及可选的 `entity`、`displayName`、`order`、`hyperlink`。
|
|
42
43
|
排序接受 `ASC`、`DESC`、`NotOrder`,可写在列上或 `sort` 中,不能提供冲突排序。
|
|
43
|
-
|
|
44
|
+
`properties` 接受非空的列表展示属性字典,键使用实时属性名或准确显示名:
|
|
44
45
|
|
|
45
|
-
|
|
46
|
+
```json
|
|
47
|
+
{"columns":[{"fieldKey":"数量","properties":{"Summary":"合计","ZeroShow":true,"ColumnOrderAndFilter":"支持排序和过滤"}},{"fieldKey":"日期","properties":{"DisplayFormatString":"yyyy-MM-dd"}}]}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
入口按实际列类型读取 Schema,转换枚举显示名并逐项独立回读。数值列(含整数)支持
|
|
51
|
+
`Summary`(汇总)、`ZeroShow`、数值格式及进度显示;日期列支持格式和掩码;枚举列支持
|
|
52
|
+
显示风格、打钩样式;通用属性包括宽度、可见性、对齐和换行。仅接受该列实际声明可编辑的属性。
|
|
53
|
+
`Summary` 是列表汇总,与分录汇总到表头的 `SummaryToField` 不同。
|
|
54
|
+
列表的缺省/F7可见性可用实际已观测的标志,例如 `Visible:"default,lookup"`。
|
|
55
|
+
复杂属性继续使用已有专用属性入口,不把对象压成字符串。字段绑定、标识和类型由
|
|
56
|
+
`fieldKey` / `entity` 决定,不能通过 `properties` 改写。
|
|
57
|
+
新列创建后会继续设置所需属性并回读;若创建后的属性验证失败,明确报告保留的结构,不能重放创建。
|
|
58
|
+
|
|
59
|
+
用户独立提供的位置参数可限定受影响的选择器;明确表头前缀无需模型手工拆分。`header`/`表头` 选择主实体,准确分录名称选择
|
|
46
60
|
该分录;顶层 `entity` 为默认范围,选择器自己的 `entity` 可以覆盖它:
|
|
47
61
|
|
|
48
62
|
```json
|
|
49
63
|
{"entity":"header","columns":[{"fieldKey":"单据编号"},{"fieldKey":"明细字段","entity":"明细"}],"quickSearch":["单据编号"],"commonFilters":[{"fieldKey":"明细字段","entity":"明细"}],"schemeFilters":[{"fieldKey":"明细字段","entity":"明细"}],"sort":[{"fieldKey":"创建时间","order":"DESC"}]}
|
|
50
64
|
```
|
|
51
65
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
66
|
+
列宽保留明确单位:使用 `"Width":"150px"` 或 `"Width":{"value":150,"unit":"px"}`,不能丢成裸数字 `150`。
|
|
67
|
+
|
|
68
|
+
脚本复用原生回执中的 `data.appRoot`、`data.formNumber`,只消费一次结果:
|
|
69
|
+
- 修改并验证成功:结果已含原生卡片块和源码同步队列请求。保留准确卡片块,
|
|
70
|
+
仅将返回的 command 交给可追踪 Bash 后台任务(`run_in_background=true`、`preview=false`),随后答复。
|
|
71
|
+
原生卡片 stdout 已触发现有宿主输出校验;不再调用 `output_check`、重渲染或另读收口指南。
|
|
72
|
+
- `verified_noop`:直接说明本次现状;不发新卡或旧卡,不同步源码,不调用 `output_check`。
|
|
73
|
+
- `failed_preflight`:没有写入。按 `completion.nextAction` 报告不支持的属性,或只按准确列的
|
|
74
|
+
定向恢复修正回执指出的输入;不探索整表结构、全局帮助、其他 API 或 Java 插件。不发卡、不收口。
|
|
75
|
+
- 写入状态未知、部分写入或卡片生成失败:按返回的恢复信息继续,不能重放已验证字段。
|
|
76
|
+
|
|
77
|
+
业务属性可直接填,例如 `{"fieldKey":"表头备注","properties":{"Width":"240px","自动换行":true,"对齐":"左对齐"}}`。
|
|
78
|
+
准确字段/表头定位及常用属性映射均由脚本负责,模型无需再选择等价英文名称。
|
|
79
|
+
失败时会返回全部所报错误、合法候选及准确列查询,不需要做全局发现。
|
|
80
|
+
不能由 `ZeroShow` 回读推断汇总行显示等未验证的运行行为。只报告修改项和实际证据;
|
|
81
|
+
无变更或拒绝用简短结果收尾,不重复交付说明。
|
|
82
|
+
专家团委托实施且负责人仍有其他交付工作时,继续使用原生 `cosmic_api.py --stdout configureList`,
|
|
83
|
+
由负责人沿原有约定终点交付。
|
|
57
84
|
|
|
58
85
|
用户明确要求删除过滤列时,使用 `removeFilterColumn`:`parentScope` 为
|
|
59
86
|
`fastsearchgridview`(快捷搜索)、`filtergridview`(常用过滤)或 `schemefilterview`
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
|
|
14
14
|
苍穹 OpenAPI 平台提供 **MCP 服务列表**(元数据 `open_mcp_ext`),每条记录把一个
|
|
15
15
|
已发布 API 注册为 AI 可调用的 MCP 工具。本技能通过平台 `devportal/ai-meta/mcpserver`
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
接口族以对话方式驱动该完整生命周期。它与平台界面管理同一批 `open_mcp_ext`
|
|
17
|
+
记录,但界面操作不一定经过这个 API Controller。
|
|
18
18
|
|
|
19
19
|
适用场景:把 API 注册为 MCP 工具、查询/检索既有 MCP 服务、从 OpenAPI YAML 批量
|
|
20
20
|
导入工具、重新注册失败的服务、下架(unshelve)服务、导出服务用于环境间迁移。
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
| 前置条件/后置效果/错误恢复 | `beforeCondition` / `afterCondition` / `errRecovery` | 长文本(`x-ai-preconditions` / `x-ai-postconditions` / `x-ai-error-recovery`);AI 工具语义字段,每个正式工具都建议填写。 |
|
|
55
55
|
| 是否敏感操作 | — | 由目标 API 派生(delete/unaudit 等),不接受调用方传入。保存敏感 API 的工具时,先向用户明示再确认。 |
|
|
56
56
|
| 自定义参数扩展配置 | `cusParamExtCfg` | 必须是单个 JSON **对象**字符串,如 `{"key": "value"}`(否则 `CUS_PARAM_INVALID`)。 |
|
|
57
|
-
| 服务来源 | `sourceType` | 调用方只读。`custom` =
|
|
57
|
+
| 服务来源 | `sourceType` | 调用方只读。`custom` = 租户自建,`global` = 标品预置。修改/删除要求记录来源与当前环境的 ISV 分类匹配;另由 `enable_mcp_dev` 开关控制 `MCP_DEV_DISABLED`。 |
|
|
58
58
|
|
|
59
59
|
## 注册状态生命周期
|
|
60
60
|
|
|
@@ -69,13 +69,12 @@
|
|
|
69
69
|
- `unshelves`(→ `UNSHELVES`)只接受 **SUCCESS 或 PENDING_UPDATE** 的记录。
|
|
70
70
|
下架同样是异步的:记录先经 `UNSHELVES`(下架中)再到 `UNSHELVESED`
|
|
71
71
|
(已下架)——用 `get` 轮询确认。
|
|
72
|
-
- `delete`
|
|
73
|
-
|
|
74
|
-
`
|
|
75
|
-
`
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
报 `STATUS_LOCKED` / `MCP_DEV_DISABLED`。
|
|
72
|
+
- `delete` 接受 **FAILED 或 UNSHELVESED** 的记录,不是仅接受已下架记录。
|
|
73
|
+
状态只是必要条件:`source_type` 还须与当前环境匹配,随后标准 `open_mcp_ext`
|
|
74
|
+
删除操作也必须成功。`unshelves` 不检查来源匹配,因此能下架不代表能删除。
|
|
75
|
+
单凭 `DELETE_FAIL` 无法区分这些原因;应回读实际状态,不要假定后台自动重发布。
|
|
76
|
+
- 下架中的 `UNSHELVES` 拒绝编辑并报 `STATUS_LOCKED`;来源/环境不匹配与
|
|
77
|
+
未开放 MCP 开发属于不同的限制。
|
|
79
78
|
|
|
80
79
|
## CLI 参考
|
|
81
80
|
|
|
@@ -104,6 +103,11 @@ HTTP 方法由平台控制器固定:`listByForm` 与 `get` 为 GET(payload
|
|
|
104
103
|
参数传递),其余 7 个命令为 POST + JSON body。对 GET 端点发 POST 会返回 HTTP
|
|
105
104
|
405 `HttpMethod POST is not allowed`——真实路由不匹配(带 TraceId),不是部署缺失。
|
|
106
105
|
|
|
106
|
+
失败响应保留平台 `data`,包括可用的数量与 `data.items[].message`。
|
|
107
|
+
`delete` / `resetStatus` / `unshelves` / `importYaml` 的业务对象若含
|
|
108
|
+
`success: false` 或 `failCount > 0`,即使平台外层 `status` 为 true,CLI 也返回失败
|
|
109
|
+
(退出码 1)。已受理的成功项不会回滚:须检查保留的明细并逐条验证受影响记录。
|
|
110
|
+
|
|
107
111
|
## 对话流程
|
|
108
112
|
|
|
109
113
|
### 查找 MCP 服务
|
|
@@ -137,17 +141,27 @@ HTTP 方法由平台控制器固定:`listByForm` 与 `get` 为 GET(payload
|
|
|
137
141
|
v2/v3 明细,逐条列出失败路径与原因。
|
|
138
142
|
|
|
139
143
|
### 重新注册 / 下架 / 删除
|
|
140
|
-
1. `
|
|
141
|
-
|
|
142
|
-
`
|
|
143
|
-
2.
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
144
|
+
1. 用 `list` / `listByForm` 定位用户选定的工具,再用 `get` 回读。
|
|
145
|
+
`--ids` 是 `items[]` 中的 MCP 记录 id,绝不是 `apis[]` 中的目标 API id。
|
|
146
|
+
传 `--confirm` 前确认工具名与删除范围;删除 MCP 记录不授权删除其 API 或其他工具。
|
|
147
|
+
2. 按最新状态选择动作:**FAILED/UNSHELVESED → 直接删除**;
|
|
148
|
+
**SUCCESS/PENDING_UPDATE → 下架 → get 轮询 → 删除**;**UNSHELVES → 轮询**。
|
|
149
|
+
每 2–5 秒轮询,最多 3 分钟,超时报告最后观察到的状态。
|
|
150
|
+
其他状态尚不允许删除;不要为强行删除而重置或重新注册。
|
|
151
|
+
`resetStatus` 仅在用户要求重新注册时用于 FAILED/UNSHELVESED,不是删除前置步骤。
|
|
152
|
+
3. 已确认下架受理后,`get` 到 UNSHELVESED 即执行一次删除。
|
|
153
|
+
部分失败时逐条检查结果,不要重放原始整批请求。
|
|
154
|
+
对受影响的 id 用 `get` 验证:`bos.orm.read.dataNotExist` 证明记录不存在;
|
|
155
|
+
其他查询错误既不能证明删除成功,也不能证明记录仍然存在。
|
|
156
|
+
4. 删除失败时,先读 `data.items[].message`,再看顶层 message,
|
|
157
|
+
回读同一记录的状态与 `sourceType`。来源/环境拒绝时停止该序列;
|
|
158
|
+
标准操作错误需平台侧排查。只有证据表明阻断条件改变后才能重试。
|
|
159
|
+
记录已是 FAILED/UNSHELVESED 时不要重复下架。
|
|
160
|
+
5. 部分平台 Controller 失败时只返回 `DELETE_FAIL` 与数量摘要、`data: null`,
|
|
161
|
+
已把服务内部的逐项原因丢弃。应明确报告**根因尚未确定**,保留记录 id、
|
|
162
|
+
返回的 message/TraceId,请求 Controller 封装前的 `McpBatchResult.items`
|
|
163
|
+
或删除操作的 `OperationResult`;原始 HTTP 响应也无法恢复 Controller 已丢失的明细。
|
|
164
|
+
不要仅凭该错误归因为缺少 AI 网关或状态竞争;不要直写实体或删库绕过校验。
|
|
151
165
|
|
|
152
166
|
### 导出 / 环境间迁移
|
|
153
167
|
1. `export --ids … --format dts` 产出平台 DTS 包格式(已实测通过)。
|
|
@@ -167,12 +181,13 @@ HTTP 方法由平台控制器固定:`listByForm` 与 `get` 为 GET(payload
|
|
|
167
181
|
| `API_DUPLICATE` | 已有 MCP 记录绑定了该 API。 |
|
|
168
182
|
| `TOOL_NAME_INVALID` | 显式工具名被拒(格式/长度)。 |
|
|
169
183
|
| `STATUS_LOCKED` | 记录下架中(`UNSHELVES`)——等待完成后再编辑。 |
|
|
170
|
-
| `SOURCE_MISMATCH` |
|
|
184
|
+
| `SOURCE_MISMATCH` | 记录来源与当前环境不匹配;删除时可能作为逐项原因折叠进 `DELETE_FAIL`。不要修改来源来绕过检查。 |
|
|
171
185
|
| `MCP_COUNT_LIMIT` | 租户 MCP 数量达到 `openapi_mcp_maxCount` 上限。 |
|
|
172
186
|
| `MCP_DEV_DISABLED` | 当前环境未开放 MCP 开发。 |
|
|
173
187
|
| `DESCRIPTION_TOO_LONG` / `CUS_PARAM_INVALID` / `OPERATE_TYPE_INVALID` | 字段级校验——修正输入值。 |
|
|
174
188
|
| `RESET_STATUS_INVALID` / `UNSHELVES_INVALID` | 状态前置条件不满足——用 `list` 复核。 |
|
|
175
|
-
| `DELETE_FAIL` |
|
|
189
|
+
| `DELETE_FAIL` | 通用删除失败:记录存在性、FAILED/UNSHELVESED 状态、来源匹配或标准实体操作均可能失败。须读逐项原因,仅有数量摘要无法判断根因。 |
|
|
190
|
+
| `PARTIAL_SUCCESS` | 部分项失败。检查保留的数量/明细,验证已受理的成功项,不要重放整批请求。 |
|
|
176
191
|
| `bos.orm.read.dataNotExist` | `get` 查询已删除记录——这是删除成功的验证证据,不是故障。 |
|
|
177
192
|
|
|
178
193
|
## 环境兼容性
|
|
@@ -193,7 +208,7 @@ HTTP 方法由平台控制器固定:`listByForm` 与 `get` 为 GET(payload
|
|
|
193
208
|
即可,无需重新部署。
|
|
194
209
|
|
|
195
210
|
绝不要在接口族缺失时改用零码实体 API 直写 `open_mcp_ext` 表来绕过:注册状态机、
|
|
196
|
-
AI
|
|
211
|
+
AI 网关注册、数量管控、敏感操作检查由平台服务/操作负责——直写表会让记录进入
|
|
197
212
|
不一致状态。
|
|
198
213
|
|
|
199
214
|
## 边界说明
|
|
@@ -80,6 +80,7 @@ EXPORT_FORMATS = ("dts", "yaml")
|
|
|
80
80
|
IMPORT_MODES = ("override", "ignore")
|
|
81
81
|
|
|
82
82
|
DESTRUCTIVE_COMMANDS = frozenset({"delete", "resetStatus", "unshelves"})
|
|
83
|
+
BATCH_COMMANDS = DESTRUCTIVE_COMMANDS | {"importYaml"}
|
|
83
84
|
|
|
84
85
|
|
|
85
86
|
def _load_config():
|
|
@@ -103,8 +104,8 @@ def _ok(data):
|
|
|
103
104
|
return {"status": True, "errorCode": None, "message": None, "data": data}
|
|
104
105
|
|
|
105
106
|
|
|
106
|
-
def _fail(error_code, message):
|
|
107
|
-
return {"status": False, "errorCode": error_code, "message": message, "data":
|
|
107
|
+
def _fail(error_code, message, data=None):
|
|
108
|
+
return {"status": False, "errorCode": error_code, "message": message, "data": data}
|
|
108
109
|
|
|
109
110
|
|
|
110
111
|
# 灵基与苍穹发版解耦:目标环境可能未部署 ai-meta/mcpserver 接口族。两类特征归并
|
|
@@ -158,8 +159,8 @@ def _call(command, payload, cfg):
|
|
|
158
159
|
"""按 GET_ENDPOINTS 路由到 kd_api.get/post 并把 CustomApiResult 折叠为 CLI 结果。
|
|
159
160
|
|
|
160
161
|
listByForm/get 走 GET(payload 作为 query 参数),其余命令走 POST + JSON body。
|
|
161
|
-
|
|
162
|
-
|
|
162
|
+
成功与失败均保留平台 data(含批量数量和逐项原因);批量业务失败不能因
|
|
163
|
+
外层 status=true 被当成全成功。继续透传平台 errorCode。HTTP 层异常
|
|
163
164
|
折叠为受控错误码(不让 traceback 泄漏到机器输出流):MCP_API_NOT_DEPLOYED
|
|
164
165
|
表示环境未部署接口族,其余为 PLATFORM_ERROR。
|
|
165
166
|
"""
|
|
@@ -174,14 +175,27 @@ def _call(command, payload, cfg):
|
|
|
174
175
|
return _fail(*_classify_transport_failure(command, detail))
|
|
175
176
|
except Exception as exc: # noqa: BLE001 — transport/token/gateway failures all fold
|
|
176
177
|
return _fail(*_classify_transport_failure(command, str(exc)))
|
|
178
|
+
data = result.get("data")
|
|
177
179
|
if result.get("status"):
|
|
178
|
-
|
|
180
|
+
# 下架等接口可能外层成功但批量部分失败;整体操作失败也不能被成功数量掩盖。
|
|
181
|
+
if command in BATCH_COMMANDS and isinstance(data, dict) and (
|
|
182
|
+
data.get("success") is False or data.get("failCount", 0) > 0
|
|
183
|
+
):
|
|
184
|
+
return _fail(
|
|
185
|
+
data.get("errorCode") or (
|
|
186
|
+
"PARTIAL_SUCCESS" if data.get("successCount", 0) > 0 else "PLATFORM_ERROR"
|
|
187
|
+
),
|
|
188
|
+
_sanitize_message(data.get("message") or result.get("message")) or "batch operation failed",
|
|
189
|
+
data,
|
|
190
|
+
)
|
|
191
|
+
return _ok(data)
|
|
179
192
|
if str(result.get("errorCode") or "") == "404":
|
|
180
193
|
# body 级 404(HTTP 200 + "Cannot found OpenAPI"):该环境未登记本接口族
|
|
181
194
|
return _fail("MCP_API_NOT_DEPLOYED", _NOT_DEPLOYED_MESSAGE)
|
|
182
195
|
return _fail(
|
|
183
196
|
result.get("errorCode") or "PLATFORM_ERROR",
|
|
184
197
|
_sanitize_message(result.get("message")) or "platform call failed",
|
|
198
|
+
data,
|
|
185
199
|
)
|
|
186
200
|
|
|
187
201
|
|
|
@@ -382,7 +396,7 @@ def build_parser():
|
|
|
382
396
|
p_save.add_argument("--source-yaml", help="source YAML text")
|
|
383
397
|
|
|
384
398
|
for name, help_text in (
|
|
385
|
-
("delete", "Delete MCP services
|
|
399
|
+
("delete", "Delete MCP services (FAILED/UNSHELVESED; source and operation checks apply)"),
|
|
386
400
|
("resetStatus", "Reset register status to UNPUBLISH (FAILED/UNSHELVESED only)"),
|
|
387
401
|
("unshelves", "Unpublish MCP services (SUCCESS/PENDING_UPDATE only)"),
|
|
388
402
|
):
|
|
@@ -32,7 +32,7 @@ whenToUse: 苍穹开发任务(设计/建模/布局/插件/字段属性/操作
|
|
|
32
32
|
| 开发单据 | references/bill-dev-convention.md |
|
|
33
33
|
| 开发基础资料 | references/basedata-dev-convention.md |
|
|
34
34
|
| 开发动态表单/弹窗 | references/dynamic-form-dev-convention.md |
|
|
35
|
-
|
|
|
35
|
+
| 字段属性(必填/锁定/默认值/列表列/容量) | references/elements/common-field-property-conventions.md |
|
|
36
36
|
| 字段类型 / 控件(元素) | references/elements/README.md(元素索引) |
|
|
37
37
|
| 写 Java 插件(赋值/操作日志/事件流程) | references/java-plugin.md |
|
|
38
38
|
| 调用 cosmic_api / 导出打包发布 | references/cosmic-meta-api.md / datamodel-publish.md |
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
| `bill-dev-convention.md` | **单据开发规范**(模板/布局/单据字段/审核/关闭/作废/编码规则,参考过磅单) | 开发单据时 |
|
|
14
14
|
| `datamodel-publish.md` | datamodel **导出/打包/发布**最佳实践(目录规范/装配/预置/导出 API/权限) | 应用发布/打包/补丁包时 |
|
|
15
15
|
| `naming-convention.md` | **统一命名规范**(对象标识/单据体/字段三要素/常见字段对齐 ERP 标准)——单据与基础资料通用 | 设计任何开发对象(基础资料/单据)时 |
|
|
16
|
-
| `elements/common-field-property-conventions.md` | **字段属性设置规范**(必填/锁定/ViewDetail
|
|
16
|
+
| `elements/common-field-property-conventions.md` | **字段属性设置规范**(必填/锁定/ViewDetail/默认值/列表列/容量——按字段类别统一标准)——单据与基础资料通用 | 字段建完后设置属性时 |
|
|
17
17
|
| `layout-control-convention.md` | **页面布局控件规范**(面板/分录/附件/字段控件/工具栏——结构/key/可折叠/锁定/样式)——单据与基础资料通用 | 设计页面布局时 |
|
|
18
18
|
| `design-document-convention.md` | **业务对象设计文档规范**(设计文档标准结构/内容要求/引用规则——写设计文档时) | 编写/审查设计文档时 |
|
|
19
19
|
| `artifact-layout-convention.md` | **开发中日常产物路径规范**(工具链自动产物只记录 + agent 自主产物定稿/临时划分) | 产出/归档文档、图、脚本、报告时 |
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
|
|
45
45
|
## ⭐ 权威层级(字段属性/布局控件/设计文档唯一权威)
|
|
46
46
|
|
|
47
|
-
> **字段属性设置(必填/锁定/ViewDetail
|
|
47
|
+
> **字段属性设置(必填/锁定/ViewDetail/默认值/列表列/容量/引用/带出)唯一权威 = [elements/common-field-property-conventions.md](elements/common-field-property-conventions.md)**(横切通用规则;字段类型专属最佳实践见 elements/)。
|
|
48
48
|
> **页面布局控件(面板/分录/附件/样式)唯一权威 = [layout-control-convention.md](layout-control-convention.md)**。
|
|
49
49
|
> **设计文档写法唯一权威 = [design-document-convention.md](design-document-convention.md)**(设计文档结构/内容要求/引用规则)。
|
|
50
50
|
> `bill-dev-...` / `basedata-dev-...` 中涉及字段属性/布局控件的细节均**引用上述文档**(保留业务清单与流程上下文),**不双源维护**——两处冲突时以上述权威文档为准。
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
|
|
86
86
|
### 共性 G:主业务组织 = createorg(表单属性,组织管控生效基础)
|
|
87
87
|
|
|
88
|
-
带组织基础资料(`bos_baseorgtpl`)**必须设置表单级属性「主业务组织」(MainOrg)= `createorg`**——组织管控/数据隔离生效的基础(参考表单过磅单流转类型同款;field-property F.1 的「主业务组织字段」指单据场景 = `org`,基础资料场景 = `createorg`)。
|
|
88
|
+
带组织基础资料(`bos_baseorgtpl`)**必须设置表单级属性「主业务组织」(MainOrg)= `createorg`**——组织管控/数据隔离生效的基础(参考表单过磅单流转类型同款;field-property §附录 F.1 的「主业务组织字段」指单据场景 = `org`,基础资料场景 = `createorg`)。
|
|
89
89
|
|
|
90
90
|
**命令**(2026-08-26 实测,CLI 可设,非仅设计器):
|
|
91
91
|
```bash
|
|
@@ -391,7 +391,7 @@ python cosmic_api.py addMenu --bizAppId <应用ID> --name 港口 --formId sd_har
|
|
|
391
391
|
## 相关文档
|
|
392
392
|
|
|
393
393
|
- [naming-convention.md](naming-convention.md):统一命名规范(单据与基础资料通用)
|
|
394
|
-
- [elements/common-field-property-conventions.md](elements/common-field-property-conventions.md):字段属性设置规范(必填/锁定/ViewDetail
|
|
394
|
+
- [elements/common-field-property-conventions.md](elements/common-field-property-conventions.md):字段属性设置规范(必填/锁定/ViewDetail/默认值/列表列/容量,单据与基础资料通用)
|
|
395
395
|
- [layout-control-convention.md](layout-control-convention.md):页面布局控件规范(面板/分录/附件/字段控件/工具栏,单据与基础资料通用)
|
|
396
396
|
- [datamodel-publish.md](datamodel-publish.md):打包导出细节(同目录)
|
|
397
397
|
- [mermaid-guide.md](mermaid-guide.md):Mermaid 图表规范(同目录)
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
> 用途:苍穹开发**单据(BillFormModel)**的开发规范——模板、页面布局、单据字段、审计/关闭/作废字段、编码规则。
|
|
4
4
|
> 适用范围:**苍穹ERP 开发环境(通用)**,与基础资料规范同一套(命名见 [naming-convention.md](naming-convention.md))。
|
|
5
5
|
> 参考:过磅单 `sd_weighingbill`(AI大宗交易云实测)+ ERP 标准单据。
|
|
6
|
-
> 配套:[naming-convention.md](naming-convention.md)(命名规范)、[elements/common-field-property-conventions.md](elements/common-field-property-conventions.md)(字段属性规范:必填/锁定/ViewDetail
|
|
6
|
+
> 配套:[naming-convention.md](naming-convention.md)(命名规范)、[elements/common-field-property-conventions.md](elements/common-field-property-conventions.md)(字段属性规范:必填/锁定/ViewDetail/默认值/列表列/容量)、[layout-control-convention.md](layout-control-convention.md)(布局控件规范:面板/分录/附件/样式)、[basedata-dev-convention.md](basedata-dev-convention.md)(开发流程共性)。
|
|
7
7
|
|
|
8
8
|
---
|
|
9
9
|
|
|
@@ -216,7 +216,7 @@
|
|
|
216
216
|
- `canAddField --fieldType BillTypeField` → `allowed=false`,reason:`'BillTypeField' 是系统字段类型,禁止手动创建`;
|
|
217
217
|
- 直接 modifyMeta `remove 旧 TextField + add BillTypeField` → 报 `字段添加校验失败: 'BillTypeField' 是系统字段类型,禁止手动创建`(**非假阳性**,预校验与实测一致);
|
|
218
218
|
- 参考:过磅单 `sd_weighingbill` 的 `billtype` 实测类型 = `BillTypeField [引用=bos_billtype] [必填]`——标准做法如此,但该字段由**设计器**创建;
|
|
219
|
-
- 结论:开发单据的 `billtype` 需标准单据类型字段(F7 选单据类型)——**agent 不创建,只能开发者设计器手工创建 BillTypeField**(field-property
|
|
219
|
+
- 结论:开发单据的 `billtype` 需标准单据类型字段(F7 选单据类型)——**agent 不创建,只能开发者设计器手工创建 BillTypeField**(field-property §〇·二,原 F.2)。
|
|
220
220
|
- 🔧 **探针手法已变更(app-build 0.0.299 起)**:上面的 `canAddField --fieldType …` **已不可用** —— **`canAddField` 已不在 CLI 命令表**(200 条命令里只剩 `canAddFilterColumn` / `canAddToolbarItem`)。
|
|
221
221
|
现行验证方式 = **「authoring + emitter」**(零平台写入),详见 [cosmic-meta-api.md](cosmic-meta-api.md) **§9.9**;注册表快查 `field_type_registry.is_manual_forbidden_field_type('<X>')`。
|
|
222
222
|
**结论本身不变**:`BillTypeField` / `BillStatusField` 等 **13 个类型仍禁建**(2026-09-29 以新手法复验 `BillStatusField` → 被 `FIELD_TYPE_MANUAL_FORBIDDEN` 拒绝,且零写入)。
|
|
@@ -280,9 +280,9 @@
|
|
|
280
280
|
| 批次 | 内容 | 说明 |
|
|
281
281
|
|---|---|---|
|
|
282
282
|
| **0 补字段** | 设计文档 §四 配套字段(`closer`/`closedate`/`canceler`/`canceldate` 等)buildMeta **不自动建** | 增量用 `decorate_ops(standard=True)` + `do_modify_meta` **脚本直调**(CLI 走 workspace standard 会拼前缀) |
|
|
283
|
-
| **1 字段属性** |
|
|
283
|
+
| **1 字段属性** | 字段属性批次:org 职能+必录、客户/港口使用组织、币种默认 CNY、**汇率 5 项关联(传 UUID)**、单位关联物料、金额关联币种、必录日期缺省当天、金额族/状态族锁定、ViewDetail=false | `setProperties`(批量与锁定用 `--policy`;**字段**的 `--elementKey/--input` 写 Lock 报 `PROPERTY_READ_ONLY`,**容器控件**仍走 `--elementKey/--input`,见 field-property §B 实测矩阵)/ `setRefProps` / `setDefValueDesign` |
|
|
284
284
|
| **2 面板布局** | 业务面板(`fs_financeinfo`/`fs_clause`/`fs_creator`)**不自动建**——所有字段初始堆在 `fs_baseinfo`(`runBatch` 的 `uiComposition` 步骤被前序阶段失败中止时尤其如此,见 cosmic-meta-api §9.2) | **优先 `applyFormComposition`**(0.0.299 定型命令:**一次创建多分区并归位字段**,字段用**显示名**,输入 `{sections:[{key,caption,rows:[{fields:[...]}]}]}`;2026-09-29 实测 43 ops 一次成功并独立验证);面板顺序用 `applyPanelOrder --input '{"order":[...]}'`(`advconap` 也要进 `order`,见 §二)。⚠️ 旧法 `modifyMeta` 手写 add/move op 属**已弃的低层路径**,仅在前者不覆盖时使用(move op:`target.value=字段key` + `extra.destination=面板key`;面板排序 `destination=contentpanel`+`index`) |
|
|
285
|
-
| **3 状态族锁定** | `billstatus`/`auditor`/`auditdate`/`closer`/`closedate`/`canceler`/`canceldate` form 层全状态锁 | `setProperties --policy` 的 `{"set":{"Lock":"…"}}
|
|
285
|
+
| **3 状态族锁定** | `billstatus`/`auditor`/`auditdate`/`closer`/`closedate`/`canceler`/`canceldate` form 层全状态锁 | `setProperties --policy` 的 `{"set":{"Lock":"…"}}`(**字段**只走 `--policy`;容器控件见 field-property §B)。⚠️ 写 `submit,audit`(平台默认)时回执必报 `STATIC_FIELD_LOCK_READBACK_MISMATCH`(属确定性假阴性,写入已生效)——以 `formLayout.lock` 为准,不要重试;其它值均 `verified=true` |
|
|
286
286
|
| **4 汇率/汇总** | `exchangerate` FireUpdEvt=true(含绑定 5 字段共 6 处);SummaryToField 金额三件套(input 写文件裸 JSON 字符串) | `setProperties` / `setSummaryToField` |
|
|
287
287
|
| **5 列表列** | buildMeta 后平台**按全部字段**建列;authoring 的 `listConfiguration` 只补列/设排序,**不裁剪、不排顺序**(实测声明 11 列得 37 列,且仍报 `verified`) | 要"只有这几列":`modifyMeta remove listcolumn` 删多余列 → `configureList` 按序补列(它只增不删,`order` 是排序不是列序);列序只能"全删后重建" |
|
|
288
288
|
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
|---------|------|
|
|
19
19
|
| 业务定义/字段设计/状态流转/业务约束 | **设计文档本地** |
|
|
20
20
|
| 命名规则(sd_ 前缀/f{key}/枚举语义化)| **必须**引用 naming-convention,禁止重复正文 |
|
|
21
|
-
| 字段属性(必填/锁定/ViewDetail
|
|
21
|
+
| 字段属性(必填/锁定/ViewDetail/默认值/容量/引用/带出)| **必须**引用 field-property(横切通用规则),禁止重复 |
|
|
22
22
|
| 布局控件(面板/分录高级容器/附件/样式)| **必须**引用 layout-control |
|
|
23
23
|
| API 写法/踩坑 | **必须**引用 cosmic-meta-api |
|
|
24
24
|
| 模板字段核实方法 | **必须**引用 field-property §〇·一 |
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
- **必须**表格式:字段 | fieldKey | 类型 | 必填 | 说明;
|
|
71
71
|
- **必须**用权威专用类型名(CustomerField/CurrencyField/MaterielField 等)——**禁止用 BasedataField 代替专用类型**(违反视为违规);
|
|
72
72
|
- ⭐ **字段标识 ≤ 18 字符(强约束 2026-08-27)**——设计阶段就要短(`packing_req` 而非 `packing_requirement`),列名 `f{标识}` 后仍 ≤18;
|
|
73
|
-
-
|
|
73
|
+
- 默认值/锁定/引用/带出等**属性一律不展开**——**必须**引用现行锚点:「字段属性规范」§A 必填/§B 锁定/§C ViewDetail/§D 默认值/§E 列表列;类型专属规则引 `elements/<类型>.md`。**`F.x` 编号已作废**(旧文档里的 F.x 对照见该规范 §附录);
|
|
74
74
|
- 枚举 value **必须**语义化单词。
|
|
75
75
|
|
|
76
76
|
> 📌 **字段类型一律用 Field 型(2026-08-27 统一,与 authoring/CLI/服务端一致)**:设计文档字段表**必须**写 `xxxField`(`DateField`/`AmountField`/`CustomerField`…),**不出现 Prop 后缀**。布尔特殊:**无 `BooleanField`,布尔用 `CheckBoxField`**;状态字段用 `BillStatusField`(单据状态)。
|
package/skills/cosmic-dev-best-practices/references/design-examples/basedata-design-example.md
CHANGED
|
@@ -63,13 +63,13 @@
|
|
|
63
63
|
| 禁用人 | `disabler` | UserField [引用 `bos_user`] | 否 | 禁用后记录(框架自动写入) |
|
|
64
64
|
| 禁用时间 | `disabledate` | DateTimeField | 否 | 禁用后记录(框架自动写入) |
|
|
65
65
|
|
|
66
|
-
> 🔒 **锁定约束**:上述 4 个字段 + 制单信息面板的创建/修改字段(`creator`/`createtime`/`modifier`/`modifytime`)共 8 个,在**页面(form 层)锁定为 `new,edit,submit,audit`(全状态不可编辑)**——由框架自动写入,用户不可手改(属性按字段属性规范
|
|
66
|
+
> 🔒 **锁定约束**:上述 4 个字段 + 制单信息面板的创建/修改字段(`creator`/`createtime`/`modifier`/`modifytime`)共 8 个,在**页面(form 层)锁定为 `new,edit,submit,audit`(全状态不可编辑)**——由框架自动写入,用户不可手改(属性按字段属性规范 **§附录 F.17** 用户字段 / **§附录 F.16** 长日期 / **§附录 F.18** 创建修改人套用;参考 `sd_agent` 同名字段配置)。
|
|
67
67
|
|
|
68
68
|
---
|
|
69
69
|
|
|
70
70
|
## 三、业务字段设计
|
|
71
71
|
|
|
72
|
-
> 列名 = `f{字段标识}`(七、命名规范)。字段属性(必填/锁定/引用/带出)**一律不展开**——按 [common-field-property-conventions.md](../elements/common-field-property-conventions.md) 套用:**引用类字段(BasedataField)→ F.4**(使用组织=org 实体 UUID / 查看详情 / 快速新增 缺省);文本/下拉字段 → 锁定按规范 **§B**(普通业务字段 `submit,audit`);枚举 value **必须**语义化单词。
|
|
72
|
+
> 列名 = `f{字段标识}`(七、命名规范)。字段属性(必填/锁定/引用/带出)**一律不展开**——按 [common-field-property-conventions.md](../elements/common-field-property-conventions.md) 套用:**引用类字段(BasedataField)→ §附录 F.4**(使用组织=org 实体 UUID / 查看详情 / 快速新增 缺省);文本/下拉字段 → 锁定按规范 **§B**(普通业务字段 `submit,audit`);枚举 value **必须**语义化单词。
|
|
73
73
|
|
|
74
74
|
### 3.1 主业务字段
|
|
75
75
|
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
|------|----------|----------|------|:--------:|:----:|------|
|
|
78
78
|
| 港口英文名 | `name_en` | `fname_en` | 文本(String) | 255 | 否 | 提单 / 单证等英文单据展示用 |
|
|
79
79
|
| 国际口岸代码 | `unlocode` | `funlocode` | 文本(String) | 20 | **是** | **UN/LOCODE 标准码**(如 `CNSHA`=上海港、`CNXMN`=厦门港);报关、舱单、提单必备 |
|
|
80
|
-
| 国家 | `country` | `fcountry` | 引用(Basedata → `bd_country`) | — | **是** | 引用 ERP 内置基础资料「国家和地区」(**字段属性 F.4**);报关计税、贸易国别统计依赖 |
|
|
80
|
+
| 国家 | `country` | `fcountry` | 引用(Basedata → `bd_country`) | — | **是** | 引用 ERP 内置基础资料「国家和地区」(**字段属性 §附录 F.4**);报关计税、贸易国别统计依赖 |
|
|
81
81
|
| 备注 | `remark` | `fremark` | 文本(String) | 255 | 否 | 通用备注 |
|
|
82
82
|
|
|
83
83
|
### 3.2 可选业务字段(按需启用)
|
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
|------|----------|----------|------|:--------:|------|------|
|
|
89
89
|
| 港口属性 | `port_kind` | `fport_kind` | 下拉枚举(ComboField) | — | 海港→`sea`,河港→`river`,空港→`air`,陆港→`land` | 影响运输方式判断(海河空陆,UN/LOCODE 同款分类) |
|
|
90
90
|
| 港口级别 | `port_level` | `fport_level` | 下拉枚举(ComboField) | — | 干线港→`mainline`,支线港→`feeder` | 用于订舱决策(航运行业标准术语:干线船/支线船) |
|
|
91
|
-
| 时区 | `timezone` | `ftimezone` | 引用(Basedata → `inte_timezone`) | — | —(非枚举,直接引用基础资料) | 引用 ERP 内置基础资料「时区」(**字段属性 F.4**);取港口**所在地**时区(非国家时区,国家可能跨多时区);船期 ETD/ETA 当地时 → 内部标准时区换算、到港预警用 |
|
|
91
|
+
| 时区 | `timezone` | `ftimezone` | 引用(Basedata → `inte_timezone`) | — | —(非枚举,直接引用基础资料) | 引用 ERP 内置基础资料「时区」(**字段属性 §附录 F.4**);取港口**所在地**时区(非国家时区,国家可能跨多时区);船期 ETD/ETA 当地时 → 内部标准时区换算、到港预警用 |
|
|
92
92
|
|
|
93
93
|
---
|
|
94
94
|
|
|
@@ -75,13 +75,13 @@
|
|
|
75
75
|
| 字段 | fieldKey | 类型 | 必填 | 说明 |
|
|
76
76
|
|------|----------|------|:----:|------|
|
|
77
77
|
| 单据类型 | `billtype` | **BillTypeField(单据类型)——agent 不创建,开发者设计器手工添加** | **是** | 区分业务场景(模板不含,开发补充;BillTypeField 属系统字段类型禁止 API 创建);**预置单据类型:「标准出口合同」**(随包发布,sys 分库) |
|
|
78
|
-
| 合同日期 | `biztime` | **DateField** | **是** | 业务日期(业务发生日期/签订日期,统一 `biztime`);**必录日期缺省值=当天**(getToday/#CurrentDate#,字段属性规范 F.5) |
|
|
79
|
-
| 客户 | `customer` | **CustomerField** [引用 `bd_customer` 客户] | **是** | 出口客户(ERP 内置,不新建;**专用客户类型,非 BasedataField**,见字段属性规范
|
|
78
|
+
| 合同日期 | `biztime` | **DateField** | **是** | 业务日期(业务发生日期/签订日期,统一 `biztime`);**必录日期缺省值=当天**(getToday/#CurrentDate#,字段属性规范 §附录 F.5) |
|
|
79
|
+
| 客户 | `customer` | **CustomerField** [引用 `bd_customer` 客户] | **是** | 出口客户(ERP 内置,不新建;**专用客户类型,非 BasedataField**,见字段属性规范 §附录 F.3) |
|
|
80
80
|
| 贸易术语 | `trade_terms` | ComboField | **是** | 枚举:FOB→`fob`、CFR→`cfr`、CIF→`cif` |
|
|
81
81
|
| 起运港 | `port_of_loading` | BasedataField [引用 `sd_harbor` 港口] | **是** | 出口起运港(共用 L0 港口资料) |
|
|
82
82
|
| 目的港 | `port_of_discharge` | BasedataField [引用 `sd_harbor` 港口] | **是** | 出口目的港 |
|
|
83
|
-
| 交货期 | `delivery_date` | DateField | **是** |
|
|
84
|
-
| 最迟装运日 | `latest_shipdate` | DateField | **是** |
|
|
83
|
+
| 交货期 | `delivery_date` | DateField | **是** | 约定交货日期;**必录日期缺省值=当天**(字段属性规范 §附录 F.5) |
|
|
84
|
+
| 最迟装运日 | `latest_shipdate` | DateField | **是** | 最迟装船日期;**必录日期缺省值=当天**(字段属性规范 §附录 F.5) |
|
|
85
85
|
| ~~合同总数量~~ | ~~`total_quantity`~~ | ~~QtyField~~ | — | **已删除(2026-08-24)**:原设计「= Σ 明细行数量」供列表统计;用户确认 QtyField 无需配对单位、单据头不设数量汇总,数量全部在分录行维护(需要时可在列表用聚合统计替代) |
|
|
86
86
|
| 包装要求 | `packing_req` | TextField | 否 | 包装/唛头要求 |
|
|
87
87
|
| 质量要求 | `quality_req` | TextField | 否 | 柠檬酸质量指标要求(含量/色度等) |
|
|
@@ -94,12 +94,12 @@
|
|
|
94
94
|
|
|
95
95
|
| 字段 | fieldKey | 类型 | 必填 | 说明 |
|
|
96
96
|
|------|----------|------|:----:|------|
|
|
97
|
-
| 结算币种 | `settlecurrency` | **CurrencyField** [引用 `bd_currency`] | **是** | 合同计价币种(对齐 `conm_salcontract.settlecurrency`;规划文档示例 USD);**必录 + 缺省值=人民币**(getBasedata/RMB,字段属性规范 F.12);**锁定**(submit,audit,汇率原币) |
|
|
98
|
-
| 本位币 | `currency` | **CurrencyField** [引用 `bd_currency`] | **是** | 本位币(对齐 `conm_salcontract.currency`);**必录 + 缺省值=人民币**(getBasedata/RMB,字段属性规范 F.12) |
|
|
99
|
-
| 汇率表 | `exratetable` | **BasedataField** [引用 `bd_exratetable`] | **是** | 汇率表(对齐 `conm_salcontract.exratetable`);**汇率配套字段必录**(字段属性规范 F.14 强约束) |
|
|
100
|
-
| 汇率日期 | `exratedate` | **DateField** | **是** | 汇率日期(对齐 `conm_salcontract.exratedate
|
|
101
|
-
| 换算方式 | `exchangetype` | **ComboField** | **是** | 0=直接汇率, 1=间接汇率(对齐 `conm_salcontract.exchangetype
|
|
102
|
-
| 汇率 | `exchangerate` | **ExchangeRateField** | **是** | 结算币与本位币折算(对齐 `conm_salcontract.exchangerate`);**关联原币=settlecurrency/目标币=currency/汇率表/汇率日期/换算方式 5
|
|
97
|
+
| 结算币种 | `settlecurrency` | **CurrencyField** [引用 `bd_currency`] | **是** | 合同计价币种(对齐 `conm_salcontract.settlecurrency`;规划文档示例 USD);**必录 + 缺省值=人民币**(getBasedata/RMB,字段属性规范 §附录 F.12);**锁定**(submit,audit,汇率原币) |
|
|
98
|
+
| 本位币 | `currency` | **CurrencyField** [引用 `bd_currency`] | **是** | 本位币(对齐 `conm_salcontract.currency`);**必录 + 缺省值=人民币**(getBasedata/RMB,字段属性规范 §附录 F.12) |
|
|
99
|
+
| 汇率表 | `exratetable` | **BasedataField** [引用 `bd_exratetable`] | **是** | 汇率表(对齐 `conm_salcontract.exratetable`);**汇率配套字段必录**(字段属性规范 §附录 F.14 强约束) |
|
|
100
|
+
| 汇率日期 | `exratedate` | **DateField** | **是** | 汇率日期(对齐 `conm_salcontract.exratedate`);**汇率配套字段必录**(§附录 F.14) |
|
|
101
|
+
| 换算方式 | `exchangetype` | **ComboField** | **是** | 0=直接汇率, 1=间接汇率(对齐 `conm_salcontract.exchangetype`);**汇率配套字段必录**(§附录 F.14);**锁定**(submit,audit + new,edit 新增/修改锁定) |
|
|
102
|
+
| 汇率 | `exchangerate` | **ExchangeRateField** | **是** | 结算币与本位币折算(对齐 `conm_salcontract.exchangerate`);**关联原币=settlecurrency/目标币=currency/汇率表/汇率日期/换算方式 5 项**(§附录 F.14 强约束) |
|
|
103
103
|
| 结算方式 | `settletype` | **BasedataField** [引用 `bd_settlementtype`] | 否 | 结算方式(对齐 `conm_salcontract.settletype`) |
|
|
104
104
|
| 付款条件 | `payment_terms` | ComboField | **是** | 枚举:T/T→`tt`、L/C→`lc`、D/P→`dp`(出口业务特有) |
|
|
105
105
|
| 含税 | `istax` | **CheckBoxField** | 否 | 是否含税(对齐 `conm_salcontract.istax`) |
|
|
@@ -122,8 +122,8 @@
|
|
|
122
122
|
| 字段 | fieldKey | 类型 | 必填 | 说明 |
|
|
123
123
|
|------|----------|------|:----:|------|
|
|
124
124
|
| 物料编码 | `material` | **MaterielField** [引用 `bd_materialinventoryinfo`] | **是** | 出口产品(**参考过磅单 `entryentity.material` 属性**:MaterielField → `bd_materialinventoryinfo`,显示名「物料编码」) |
|
|
125
|
-
| 物料名称 | `materialname` | **基础资料属性(BasedataField)**,从属 `material` | — | 配置**显示物料的引用属性**:**跟随字段=物料编码 `material`**(选了物料即显示其资料)、显示属性=`masterid.name`(key 与过磅单一致;平台自动展示,**无需配置实体规则**);**⚠️ 创建通道:modifyMeta 增量不可行(平台限制),须 buildMeta 建模时创建或设计器手工添加**(字段属性规范 F.8) |
|
|
126
|
-
| 规格型号 | `model` | **基础资料属性(BasedataField)**,从属 `material` | — | 配置**显示物料的引用属性**:**跟随字段=物料编码 `material`**、显示属性=`masterid.modelnum`(key 与过磅单一致;平台自动展示,**无需配置实体规则**);**创建通道同 materialname
|
|
125
|
+
| 物料名称 | `materialname` | **基础资料属性(BasedataField)**,从属 `material` | — | 配置**显示物料的引用属性**:**跟随字段=物料编码 `material`**(选了物料即显示其资料)、显示属性=`masterid.name`(key 与过磅单一致;平台自动展示,**无需配置实体规则**);**⚠️ 创建通道:modifyMeta 增量不可行(平台限制),须 buildMeta 建模时创建或设计器手工添加**(字段属性规范 §附录 F.8) |
|
|
126
|
+
| 规格型号 | `model` | **基础资料属性(BasedataField)**,从属 `material` | — | 配置**显示物料的引用属性**:**跟随字段=物料编码 `material`**、显示属性=`masterid.modelnum`(key 与过磅单一致;平台自动展示,**无需配置实体规则**);**创建通道同 materialname**(§附录 F.8) |
|
|
127
127
|
| 数量 | `qty` | **QtyField** | **是** | 合同数量(数量 `qty`) |
|
|
128
128
|
| 单位 | `unit` | **UnitField** [引用 `bd_measureunits`] | **是** | 计量单位(单位 `unit` → `bd_measureunits`,如 MT 吨) |
|
|
129
129
|
| 基本单位 | `baseunit` | **UnitField** [引用 `bd_measureunits`] | **是** | 基本计量单位(参考过磅单 `entryentity.baseunit`:UnitField → `bd_measureunits`,必填) |
|
|
@@ -272,7 +272,7 @@ sd_excontract 出口合同(BillFormAp)
|
|
|
272
272
|
> ✅ 面板布局:fs_baseinfo(11 含 org/billstatus)/ fs_financeinfo(16)/ fs_clause(3)/ 商品明细(**高级容器 advconap** → advconchildcanelap → entryentity,buildMeta 自动生成)/ attachmentpanel / fs_creator(10 审计状态族)+ 三面板可折叠 + 状态族列表列移除(10 列)+ 面板顺序规范(基本信息→财务→条款→商品明细→附件→制单→隐藏)
|
|
273
273
|
> ✅ 锁定:审计/状态/制单全锁、金额族含 new,edit、换算方式新增+修改锁定(**不改下拉项**)——getFormSchema 回读 formLayout 验证
|
|
274
274
|
> ✅ 汇率即时触发:exchangerate + 绑定 5 字段 FireUpdEvt=true(币种/汇率日期更新后汇率自动联动)
|
|
275
|
-
> ⚠️ 汇总:SummaryToField 金额三件套**已写入**(分录 amount→主表 totalamount、taxamount→totaltaxamount、amountandtax→totalallamount;`setSummaryToField` 的 input 是**表头字段 key 的裸 JSON 字符串,必须写文件**)——**该能力已降级 + 回读 fieldId 存的是字段 key 而非 UUID,运行时是否生效待开发者设计器/运行态验证**(详见 field-property
|
|
275
|
+
> ⚠️ 汇总:SummaryToField 金额三件套**已写入**(分录 amount→主表 totalamount、taxamount→totaltaxamount、amountandtax→totalallamount;`setSummaryToField` 的 input 是**表头字段 key 的裸 JSON 字符串,必须写文件**)——**该能力已降级 + 回读 fieldId 存的是字段 key 而非 UUID,运行时是否生效待开发者设计器/运行态验证**(详见 field-property §附录 F.13)
|
|
276
276
|
> ⚠️ 物料名称/规格型号(**手工待办,agent 未执行**):BasedataFieldField 平台限制增量不可行,开发者设计器手工添加(sd_materialname→masterid.name、sd_modelnum→masterid.modelnum)
|
|
277
277
|
> ✅ 元数据回读验证通过(getFormSchema:面板顺序/字段归位/锁定/引用属性/汇率关联/汇总全部一致)
|
|
278
278
|
|
|
@@ -77,4 +77,4 @@
|
|
|
77
77
|
- [BasedataField.md](BasedataField.md):通用基础资料字段(赋值/引用指定)
|
|
78
78
|
- [common-field-property-conventions.md](common-field-property-conventions.md):通用字段属性规范(本字段经验原驻留 F.3,已迁出)
|
|
79
79
|
- [java-plugin.md](../java-plugin.md):字段赋值套路 §四
|
|
80
|
-
- 同类专用元素:`SupplierField`(供应商)、`UnitField`(单位)、`CurrencyField`(币别)、`OrgField`(组织)、`UserField`(用户)——字段类型/属性同理,见 field-property F
|
|
80
|
+
- 同类专用元素:`SupplierField`(供应商)、`UnitField`(单位)、`CurrencyField`(币别)、`OrgField`(组织)、`UserField`(用户)——字段类型/属性同理,见 field-property §附录(原 F 系列)
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
| 字段元素 | MuliLangTextProp(多语言文本) | [MuliLangTextProp.md](MuliLangTextProp.md) | LocaleString 赋值/整单加载/save | ✅ 已建(2026-08-26 实测) |
|
|
34
34
|
|
|
35
35
|
> ℹ️ `botp_selectfield`(字段选择器)是 **ERP 内置表单**(标准资产),不是 UI 元素——不纳入本目录;其复用经验在 [dynamic-form-dev-convention.md](../dynamic-form-dev-convention.md) §五(字段选择器复用)。
|
|
36
|
-
> 📌 **公共属性规范**(必填/锁定/ViewDetail
|
|
36
|
+
> 📌 **公共属性规范**(必填/锁定/ViewDetail/默认值/列表列/容量/系统字段禁建/走查——适用于所有字段类型)见 [common-field-property-conventions.md](common-field-property-conventions.md);元素文档只写本元素专属内容,横切规则一律引它、不重复。
|
|
37
37
|
|
|
38
38
|
---
|
|
39
39
|
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
| 6 | **QuickAddNew 快速新增** | `false`(须显式置 false) | 不允许 F7 快速新增供应商 |
|
|
21
21
|
| 7 | form 层 Lock | `submit,audit`(缺省) | 提交后锁定 |
|
|
22
22
|
|
|
23
|
-
### 1.2 命令(同客户
|
|
23
|
+
### 1.2 命令(同客户 [CustomerField.md](CustomerField.md) 已验证写法)
|
|
24
24
|
|
|
25
25
|
```bash
|
|
26
26
|
# ① 添加(authoring: dataType SupplierField,无 reference)
|