From 2b8c0168d753fbde854fc1e496bb69eaef32e31d Mon Sep 17 00:00:00 2001 From: Jack Zhuang <50353452+hotlong@users.noreply.github.com> Date: Tue, 14 Nov 2023 18:43:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=83=E6=95=B0=E6=8D=AE=20=E4=B8=AD?= =?UTF-8?q?=E6=96=87=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...-automation.mdx => metadata-automation.md} | 0 ...metadata-object.mdx => metadata-object.md} | 0 ...ermissions.mdx => metadata-permissions.md} | 0 .../{metadata-ui.mdx => metadata-ui.md} | 0 .../package/metadata/metadata-automation.md | 175 ++++++++++ .../package/metadata/metadata-object.md | 322 ++++++++++++++++++ .../package/metadata/metadata-permissions.md | 247 ++++++++++++++ .../developer/package/metadata/metadata-ui.md | 313 +++++++++++++++++ 8 files changed, 1057 insertions(+) rename docs/developer/package/metadata/{metadata-automation.mdx => metadata-automation.md} (100%) rename docs/developer/package/metadata/{metadata-object.mdx => metadata-object.md} (100%) rename docs/developer/package/metadata/{metadata-permissions.mdx => metadata-permissions.md} (100%) rename docs/developer/package/metadata/{metadata-ui.mdx => metadata-ui.md} (100%) create mode 100644 i18n/zh-CN/docusaurus-plugin-content-docs/current/developer/package/metadata/metadata-automation.md create mode 100644 i18n/zh-CN/docusaurus-plugin-content-docs/current/developer/package/metadata/metadata-object.md create mode 100644 i18n/zh-CN/docusaurus-plugin-content-docs/current/developer/package/metadata/metadata-permissions.md create mode 100644 i18n/zh-CN/docusaurus-plugin-content-docs/current/developer/package/metadata/metadata-ui.md diff --git a/docs/developer/package/metadata/metadata-automation.mdx b/docs/developer/package/metadata/metadata-automation.md similarity index 100% rename from docs/developer/package/metadata/metadata-automation.mdx rename to docs/developer/package/metadata/metadata-automation.md diff --git a/docs/developer/package/metadata/metadata-object.mdx b/docs/developer/package/metadata/metadata-object.md similarity index 100% rename from docs/developer/package/metadata/metadata-object.mdx rename to docs/developer/package/metadata/metadata-object.md diff --git a/docs/developer/package/metadata/metadata-permissions.mdx b/docs/developer/package/metadata/metadata-permissions.md similarity index 100% rename from docs/developer/package/metadata/metadata-permissions.mdx rename to docs/developer/package/metadata/metadata-permissions.md diff --git a/docs/developer/package/metadata/metadata-ui.mdx b/docs/developer/package/metadata/metadata-ui.md similarity index 100% rename from docs/developer/package/metadata/metadata-ui.mdx rename to docs/developer/package/metadata/metadata-ui.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/developer/package/metadata/metadata-automation.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/developer/package/metadata/metadata-automation.md new file mode 100644 index 0000000..3f2e4e6 --- /dev/null +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/developer/package/metadata/metadata-automation.md @@ -0,0 +1,175 @@ +--- +title: 自动化元数据 +--- + +## 概览 + +- 对象验证规则 +- 工作流规则 +- 字段更新 +- 工作流通知 +- 记录修改(创建、更新、删除) +- 批准过程 +- Process +- Flow + +### 对象验证规则 object_validation_rules + +对象验证规则.validationRule.yml +用于保存在对象上配置的验证规则,验证规则主要用于验证该对象的数据是否符合特定的规则。当用户对于对象的某个字段的更改不符合用户创建的验证规则时,用户输入的信息无法提交保存。 + +```yaml +name: test +active: true +description: 对象验证规则说明 +error_condition_formula: 1==1 +error_message: 错误消息提示 +``` + +| 字段名 | 字段类型 | 字段含义 | +|----|----|----| +| name | text | 规则名 | +| object_name | master_detail | 所属对象 | +| active | boolean | 已启用 | +| description | textarea | 说明 | +| error_condition_formula | textarea | 错误条件公式 | +| error_message | textarea | 错误消息 | + +### 工作流规则 workflow_rule + +object_name.workflow.yml +用于保存管理员在流程自动化配置中配置的工作流规则 + +```yaml +rules: + - name: test + active: true + description: 描述信息 + formula: 1=1 + label: 测试工作流规则 + object_name: testobject__c + trigger_type: onCreateOrTriggeringUpdate + updates_field_actions: [] + workflow_notifications_actions: [] +fieldUpdates: [] +notifications: [] +``` + +| 字段名 | 字段类型 | 字段含义 | +|----|----|----| +| object_name | lookup | 对象 | +| name | text | API 名称 | +| label | text | 显示名称 | +| active | boolean | 启用 | +| trigger_type | select | 评估条件 | +| formula | textarea | 公式 | +| updates_field_actions | lookup | 字段更新 | +| workflow_notifications_actions | lookup | 工作流通知 | +| description | textarea | 描述 | + + +### 字段更新 action_field_updates + +object_name.workflow.yml +用于保存管理员在流程自动化配置中配置的字段更新信息。 + +```yaml +fieldUpdates: + - name: fieldupdate + description: 描述 + field_name: name + formula: '{ ''名称全称'' }' + label: 字段更新测试 + object_name: testobject__c + operation: formula + reevaluate_on_change: true + target_object: testobject__c + undirect: true +``` + +| 字段名 | 字段类型 | 字段含义 | +|----|----|----| +| name | text | API 名称 | +| label | text | 显示名称 | +| object_name | lookup | 对象 | +| target_object | lookup | 要更新的对象 | +| field_name | lookup | 要更新的字段 | +| operation | lookup | 新字段值类型 | +| formula | textarea | 公式 | +| literal_value | text | 指定新字段值 | +| notify_assignee | boolean | 通知被分配人(仅修改拥有者时由此选项) | +| description | textarea | 描述 | +| reevaluate_on_change | boolean | 字段更改后重新评估工作流规则 | +| undirect | boolean | 触发对象触发器、工作流规则、字段验证规则 | + +### 工作流通知 workflow_notifications + +object_name.workflow.yml +用于保存管理员在流程自动化配置中配置的工作流通知信息 + +```yaml +notifications: + - name: worktalk + assigned_user_field: [] + body: '{ ''哈哈哈哈'' }' + label: 工作流通知测试 + object_name: testobject__c + title: '{ ''标题公式'' }' +``` + +| 字段名 | 字段类型 | 字段含义 | +|----|----|----| +| name | text | API 名称 | +| label | text | 显示名称 | +| object_name | lookup | 对象 | +| title | textarea | 标题公式 | +| body | textarea | 正文公式 | +| assigned_users | lookup | 指定具体人员 | +| assigned_user_field | lookup | 指定对象上的用户字段 | + +**注意:** 工作流规则、字段更新、工作流通知这三个元数据在同一个文件下! + + +### 批准过程 process_definition +用于保存管理员在设置应用中配置的批准过程信息。 + +```yaml +name: process_definition +label: Approval Processes +hidden: true +icon: approval +enable_inline_edit: false +``` + +| 字段名 | 字段类型 | 字段含义 | +|----|----|----| +| name | text | API 名称 | +| label | text | 显示名称 | +| object_name | lookup | 对象 | +| description | textarea | 描述 | +| order | number | 序号 | +| active | boolean | 启用 | +| entry_criteria | textarea | 指定条目条件 | +| record_editability | select | 记录可编辑性属性 | +| allow_recall | boolean | 允许提交人取消申请 | +| initial_submission_record_lock | select | 锁定记录 | +| initial_submission_updates_field_actions | lookup | 字段更新 | +| initial_submission_workflow_notifications_actions | lookup | 工作流通知 | +| final_approval_record_lock | select | 锁定记录 | +| final_approval_updates_field_actions | lookup | 字段更新 | +| final_approval_workflow_notifications_actions | lookup | 工作流通知 | +| final_rejection_record_lock | select | 锁定记录 | +| final_rejection_updates_field_actions | lookup | 字段更新 | +| final_rejection_workflow_notifications_actions | lookup | 工作流通知 | +| recall_record_lock | select | 锁定记录 | +| recall_updates_field_actions | lookup | 字段更新 | +| recall_workflow_notifications_actions | lookup | 工作流通知 | + +| 权限属性 | user | admin | +|----|----|----| +| allowCreate | false | true | +| allowDelete | false | true | +| allowEdit | false | true | +| allowRead | true | true | +| modifyAllRecords | false | true | +| viewAllRecords | true | true | \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/developer/package/metadata/metadata-object.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/developer/package/metadata/metadata-object.md new file mode 100644 index 0000000..4667873 --- /dev/null +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/developer/package/metadata/metadata-object.md @@ -0,0 +1,322 @@ +--- +title: 对象元数据 +--- + +## 对象 .object.yml + +定义对象名称、显示名称、对象的基本信息,以及功能开关。 + +```yaml +name: contracts +enable_api: true +enable_audit: true +enable_chatter: false +enable_events: false +enable_files: true +enable_inline_edit: true +enable_instances: false +enable_notes: false +enable_search: true +enable_tasks: false +enable_trash: true +enable_workflow: true +enable_enhanced_lookup: true +icon: contract +is_enable: true +label: 合同 +``` + +| 属性名 | 类型 | 含义 | +|----|----|----| +| datasource | master_detail | 数据源 | +| label | text | 显示名 | +| name | text | API 名称 | +| icon | lookup | 图标 | +| is_enable | boolean | 启用 | +| in_development | select | 开发状态 | +| enable_search | boolean | 允许搜索 | +| enable_files | boolean | 允许上传附件 | +| enable_tasks | boolean | 允许添加任务 | +| enable_notes | boolean | 允许添加备注 | +| enable_events | boolean | 允许添加事件 | +| enable_api | boolean | 允许 API 访问 | +| enable_workflow | boolean | 允许配置对象流程 | +| enable_instances | boolean | 允许查看申请单 | +| enable_chatter | boolean | 允许添加留言 | +| enable_audit | boolean | 记录字段历史 | +| enable_inline_edit | boolean | 允许编辑单个字段 | +| enable_tree | boolean | 启用树状结构显示记录 | +| enable_enhanced_lookup | boolean | 启用弹出窗口查找模式 | +| table_name | text | 数据库表名称 | +| description | textarea | 备注 | +| owner | lookup | 拥有者 | +| is_system | boolean | 系统 | +| fields_serial_number | number | 对象上新增字段时排序号以+10方式递进 | +| is_deleted | boolean | 已删除 | +| created_by | lookup | 创建人 | +| modified_by | lookup | 修改人 | +| form | object | 表单事件 | +| form.onValuesChange | code | 数据变化时 | +| form.initialValues | code | 初始化数据 | +| form.beforeDelete | code | 删除数据之前 | +| form.afterDelete | code | 删除数据之后 | +| form.beforeView | code | 记录显示之前 | +| form.afterView | code | 记录显示之后 | + + + + +补充说明: + +- **datasource**:数据源,存在“默认数据源”和“外部数据源(oracle等)”,默认值为“默认数据源”。 +- **name**:API 名称, 表单事件、触发器等中调用该字段所用的名称。 +- **icon**:图标, 对象图标对应 salesforce 中的 [Standard Icons](https://www.lightningdesignsystem.com/icons/#standard) 。 +- **is_enable**:启用,该对象是否启用。 +- **in_development**:开发状态,有“开发中(仅管理员才可以访问对象)” 和“已部署”两个可选项。 +- **enable_search**:允许搜索,全局搜索。 +- **enable_files**:允许上传附件,开启后详细页存在附件子表。 +- **enable_tasks**:允许添加任务,开启后详细页存在任务子表。 +- **enable_notes**:允许添加备注,开启后详细页存在备忘子表。 +- **enable_events**:允许添加事件,开启后详细页存在日程子表。 +- **enable_api**:允许 API 访问,关闭后,不会将对象服务的actions转化为rest接口 +- **enable_workflow**:允许配置对象流程,设置审批流程功能必须开启此属性。 +- **enable_instances**:允许查看申请单,开启后详细页存在审批子表。 +- **enable_chatter**:允许添加留言,开启后详细页同级菜单栏有留言子页面。 +- **enable_audit**:记录字段历史,开启后详细页存在审计日志子表,记录字段修改历史。 +- **enable_inline_edit**:允许编辑单个字段,开启后列表页允许编辑字段保存。 +- **enable_tree**:启用树状结构显示记录,在记录列表页以树状结构显示记录。 +- **enable_trash**: 如果为true,则开启回收站功能,此对象数据删除后,会进入回收站。如果为false,则直接删除 。 +- **enable_enhanced_lookup**:启用弹出窗口查找模式,对象上开启该属性时,引用该对象的相关表 lookup/master_detail 字段会以弹出窗口方式显示可选项,反之会以下拉列表形式显示可选项。 +- **table_name**:数据库表名称,引用外部数据源的数据库表名称。 +- **description**:备注, 该对象备注信息。 +- **is_system**:系统,该对象是否是系统内置标准对象。 +- **is_deleted**:已删除,该对象是否已删除。 +- **form**:表单事件 +- **form.onValuesChange**:数据变化时执行的函数 +- **form.initialValues**:初始化数据时执行的函数 +- **form.beforeDelete**:删除数据之前执行的函数 +- **form.afterDelete**:删除数据之后执行的函数 +- **form.beforeView**:记录显示之前执行的函数 +- **form.afterView**:记录显示之后执行的函数 + +## 字段 .field.yml + +定义字段名称、字段类型以及具体属性。 + +```yaml +name: await_proceeds +type: summary +data_type: number +filterable: false +group: 收款信息 +index: false +is_name: false +is_wide: false +label: 收款累计(待收款) +hidden: false +omit: false +precision: 18 +required: false +scale: 2 +searchable: false +sort_no: 500 +sortable: true +summary_field: amount +summary_filters: + - field: contract_receipts_state + operation: '=' + value: unreceived +summary_object: finance_receive +summary_type: sum +``` + +### 通用属性 + +| 属性名 | 类型 | 含义 | +|----|----|----| +| object | master_detail | 所属对象 | +| label | text | 显示名称 | +| name | text | API 名称 | +| type | select | 字段类型 | +| defaultValue | text | 默认值 | +| group | text | 字段分组 | +| sort_no | number | 排序号 | +| is_name | boolean | 名称字段 | +| required | boolean | 必填 | +| is_wide | boolean | 宽字段 | +| hidden | boolean | 忽略此字段 | +| omit | boolean | 忽略此字段 | +| unique | boolean | 唯一索引字段 | +| index | boolean | 创建字段索引 | +| sortable | boolean | 可排序 | +| searchable | boolean | 可搜索 | +| filterable | boolean | 高级查找默认字段 | +| visible_on | textarea | 字段显示公式 | +| depend_on | text[] | 依赖的字段 | +| inlineHelpText | textarea | 提示文本 | +| description | textarea | 描述 | + +补充说明: +- **name**: API 名称, 表单事件、触发器等中调用该字段所用的名称。 +- **is_name**: 名称字段, 勾选该属性表示此字段会代替name字段作为“名称字段”。对象上默认以名为name的字段作为”名称字段”,点击“名称字段”会跳转到记录详细页面,支持配置为”名称字段“的字段类型有:文本、多行文本、自动编号、公式、日期、日期时间。 +- **is_wide**: 宽字段,普通字段详细页占一列,宽字段占两列。 +- **hidden**: 表单上新建、编辑记录的表单上、列表和记录详细界面上都忽略该字段,始终不显示且不加载该字段,通常用于系统级的隐藏字段,比如 locked,is_deleted 等,该属性值会被字段权限配置覆盖变更。 +- **omit**: 同hidden。 +- **unique**: 字段上配置该属性可以自动生成唯一性索引。 +- **index**: 创建索引,设置true时会自动为数据库字段创建索引。 +- **searchable**: 可全局搜索字段,默认为false,表示在对象快速搜索及全局搜索功能中不可查询该字段,设置为true表示可以全局搜索,该属性只支持文本、长文本、网址、邮件地址、自动编号、选择框(搜索value,不能搜索label)、公式和HTML文本字段类型。 +- **filterable**: 高级查找默认字段,默认为true,表示在高级查找框中显示为默认字段,如果设置为false表示会折叠显示到高级栏中。需要注意的,该字段功能与 searchable 属性有点重复,字段的 searchable 或 filterable 两属性之一值为 true 该字段就不会显示在查找界面的高级栏中,而是显示在默认过滤字段里。 +- **visible_on**: 字段显示公式,公式返回true或false来控制此字段是否显示。 +- **depend_on**: 依赖的字段,当依赖的字段值变更,此字段值会被清空。 +- **inlineHelpText**: 提示文本,详细页该字段显示名称右侧提供一个提示文本的图标。 + +### 外部数据源相关 + +| 属性名 | 类型 | 含义 | +|----|----|----| +| column_name | text | 数据库字段名 | +| primary | boolean | 主键 | +| generated | boolean | 自增 | + +补充说明: +- **column_name**: 数据库字段名, 仅支持关系型数据库。 +- **primary**: 主键, 勾选其“外部数据源”栏的“主键”勾选框来把该字段设置为主键字段,仅支持关系型数据库。 +- **generated**: 字段自增, 仅支持关系型数据库。 + +### 字段类型相关 + +| 属性名 | 类型 | 含义 | 字段类型 | +|----|----|----|----| +| reference_to | lookup | 引用对象 | lookup/master_detail | +| reference_to_field | string | 引用字段 | lookup/master_detail | +| multiple | boolean | 多选 | lookup/master_detail/select | +| write_requires_master_read | boolean | 子表权限开关 | master_detail | +| filtersFunction | textarea | 过滤器函数 | lookup/master_detail | +| optionsFunction | textarea | 选择项函数 | lookup/master_detail/select | +| depend_on | text[] | 依赖的字段 | lookup/master_detail/select | +| reference_limit | number | 选项显示数量 | lookup/master_detail | +| showIcon | boolean | 是否显示图标 | lookup/master_detail | +| precision | currency | 精度(数字长度) | number/currency/percent | +| scale | currency | 小数位数 | number/currency/percent | +| min | number | 最小值 | number/currency/percent/text/textarea | +| max | number | 最大值 | number/currency/percent/text/textarea | +| rows | currency | 多行文本行数 | textarea | +| options | grid | 选择项 | select | +| options.$ | object | Options | +| options.$.label | text | 显示名 | +| options.$.value | text | 选项值 | +| options.$.color | text | 背景颜色 | +| options.$.description | text | 描述 | +| formula | textarea | 公式 | formula/autonumber | +| data_type | select | 数据类型 | formula/select | +| formula_blank_value | select | 空白字段处理 | formula | +| summary_object | lookup | 要汇总的对象 | summary | +| summary_type | select | 汇总类型 | summary | +| summary_field | lookup | 要聚合的字段 | summary | +| summary_filters | grid | 过滤条件 | summary | +| summary_filters.$ | object | Filter Criteria | +| summary_filters.$.field | lookup | 字段 | +| summary_filters.$.operation | lookup | 运算符 | +| summary_filters.$.value | text | 值 | +| show_as_qr | boolean | 显示为二维码 | url | + +#### 选项相关类型属性补充说明 + +- **reference_to**: 引用对象,只有“相关表”和“主表/子表”字段类型才支持此属性。 +- **reference_to_field**: 引用的对象的字段,默认值为主键字段 `_id`,表示要把对象上哪个字段值作为相关表的字段值保存到数据库中,只有“相关表”和“主表/子表”字段类型才支持此属性。 +- **multiple**: 多选,启用后可以保存多个值,只有“相关表”、“主表/子表”和“选择框”字段类型才支持此属性。 +- **write_requires_master_read**: 该开关表示“当用户对主表记录有读取权限时对子表记录可以增删改”,默认情况下,只允许同时具有主表记录的读取和写入权限的用户创建、编辑和删除子表记录,勾选该属性后表示允许只有主表记录读取权限的用户创建、编辑或删除子记录,只有“主表/子表”字段类型才适用此属性。 +- **filtersFunction**: 过滤器函数,该函数返回值定义了 相关表(lookup) 和 主表/子表(master_detail) 字段类型的过滤条件。 +- **optionsFunction**: 选择项函数,该函数返回值定义了 选择框(select)、相关表(lookup) 和 主表/子表(master_detail) 字段类型的选项值。 +- **options**: 选择项,定义“选择框”字段类型的下拉选项,只有“选择框”字段类型才支持此属性。。。 +- **options.$**: 选择项 +- **options.$.label**: 显示名 +- **options.$.value**: 选项值 +- **options.$.color**: 背景颜色 +- **options.$.description**: 描述 +- **reference_limit**: 选项显示数量,当显示为下拉选项时,默认只会列出10个选项供选择,只有“相关表”、“主表/子表”和“选择框”字段类型才支持此属性。 +- **showIcon**: 是否显示图标,每个对象上都可以配置图标,默认情况下相关表字段会在选项上显示引用对象的图标,配置该属性值为false可以隐藏选项上的图标,只有“相关表”、“主表/子表”和“选择框”字段类型才支持此属性。 +- **depend_on**: 依赖的字段,当依赖的字段值变更时,不但会清空此字段值,而且会触发 `optionsFunction` 和 `filtersFunction` 函数重新执行,一般用于实现表单字段级联功能。 + +#### 公式相关属性补充说明 + +- **formula**: 公式,通过用户定义的算法自动计算字段的值,只有“公式”和“自动编号”字段类型才支持此属性。 +- **data_type**: 数据类型,保存到数据库中的值类型,只有“公式”和“选择框”字段类型才支持此属性。 +- **formula_blank_value**: 空白字段处理, zeroes表示将空白字段视为零,blanks表示将空白字段视为空白,默认为zeroes,只有“公式”才支持此属性。 + +#### 汇总相关属性补充说明 + +- **summary_object**: 要汇总的对象, 只有“累计汇总”字段类型才支持此属性。 +- **summary_type**: 汇总类型, 含有COUNT、SUM、MIN、MAX、AVG这五个选择项, 只有“累计汇总”字段类型才支持此属性。 +- **summary_field**: 要聚合的字段,定义汇总时需要聚合汇总哪个字段,比如汇总合同金额, 只有“累计汇总”字段类型才支持此属性。 +- **summary_filters**: 过滤条件,定义汇总时需要汇总哪些记录,只汇总符合该过滤条件的记录, 只有“累计汇总”字段类型才支持此属性。 +- **summary_filters.$**: 过滤条件 +- **summary_filters.$.field**: 字段 +- **summary_filters.$.operation**: 运算符 +- **summary_filters.$.value**: 值 + +#### 数值相关属性补充说明 + +- **precision**: 精度(数字长度),定义数值类型的字段的精度, 只有“数值”、“金额”和“百分比”字段类型才支持此属性。 +- **scale**: 小数位数,定义数值类型的字段的小数位数, 只有“数值”、“金额”和“百分比”字段类型才支持此属性。 +- **min**: 最小值,定义数值类型的字段允许的最小值,只有“数值”、“金额”和“百分比”字段类型才支持此功能,用于文本类型字段时表示允许的字符最小长度。 +- **max**: 最大值,定义数值类型的字段允许的最大值, 只有“数值”、“金额”和“百分比”字段类型才支持此功能,用于文本类型字段时表示允许的字符最大长度。 + +#### 其他相关属性补充说明 + +- **rows**: 多行文本行数, 定义“长文本”字段类型显示的文本框行数,默认显示为3行。 +- **show_as_qr**: 显示为二维码,只有”网址“”字段类型才支持此属性,开启后该字段值只读时显示为二维码。 + + \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/developer/package/metadata/metadata-permissions.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/developer/package/metadata/metadata-permissions.md new file mode 100644 index 0000000..7088501 --- /dev/null +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/developer/package/metadata/metadata-permissions.md @@ -0,0 +1,247 @@ +--- +title: 权限元数据 +--- + + +## 简档 .profile.yml + +简档只约定了一个名称,定义了简档之后,就可以在对象权限中定义此简档对具体对象的访问权限。 + +一个用户只能属于一个简档。元数据中不能指定具体用户的具体简档。系统管理员可以在用户管理界面中设置用户的简档。 + +系统有4个默认简档: + +* admin: 系统管理员,默认对所有对象有最高权限 +* user: 普通用户,通常对大部分对象拥有增删改权限 +* customer: 外部客户,默认无权限 +* supplier: 外部供应商,默认无权限 + +```yaml +name: user +license: platform +``` + +| 属性名 | 属性类型 | 属性含义 | +|----|----|----| +| name | text | API名称 | +| label | text | 显示名称 | +| type | select | 类别 | +| license | lookup | 许可证 | +| assigned_apps | lookup | 授权应用 | +| users | lookup | 成员 | +| is_system | boolean | 系统 | +| password_history | lookup | 强制密码历史 | +| max_login_attempts | select | 最大无效登录尝试次数 | +| lockout_interval | select | 锁定有效期间 | +| enable_MFA | boolean | 多重身份验证(需要开启短信服务) | +| logout_other_clients | boolean | 单例登录 | +| login_expiration_in_days | number | 登录到期时间(天) | +| phone_logout_other_clients | boolean | 手机App单例登录 | +| phone_login_expiration_in_days | number | 手机App登录到期时间(天) | + + +补充说明: + +- **type**: profile(简档)/permission_set(权限集),默认值为profile,简档是一种特殊的权限集。 +- **assigned_apps**: 授权对简档/权限集下的用户可以访问的应用,默认为空,表示授权全部应用 +- **users**: 分配哪些用户到权限集,如果是简档不需要指定该属性,因为用户属于哪个简档是在用户界面上配置的,一个用户可以属于多个权限集,但是只能属于一个简档。 +- **is_system**: 是否是系统简档,表示元数据是否只在代码文件中而没有保存到数据库中,可以点击名为“自定义”的操作按钮把该元数据保存到数据库中以在界面上修改相关属性。 +- **password_history**: 强制密码历史,这是一种密码策略。密码的重复使用是一个重要问题,在越长时间内重复使用帐户的相同密码,被攻击破解的可能性就越大。使用该密码策略,可以强制用户在更改密码时,不能使用之前使用过又被该密码策略记住的密码,系统默认会记住3个历史密码,同时提供记住1到24个密码的选项,管理员可以变更该选项来修改属于特定简档用户的密码策略。 +- **max_login_attempts**: 最大无效登录尝试次数,也是一种密码策略。设置将导致用户帐户被锁定的登录失败次数,默认最大尝试10次失败才会锁定账户,系统提供3次、5次、10次和无限制的选项,允许管理员变更该选项来修改属于特定简档下用户的密码策略,被锁定的账户将无法登录使用系统。 +- **lockout_interval**: 锁定有效期间,也是一种密码策略。设置账户被锁定后,自动解锁之前保持锁定状态的分钟数。默认15分钟后被锁定的账户就会自动解锁,系统提供15分钟、30分钟、60分钟和始终锁定的选项,允许管理员变更该选项来修改属于特定简档下用户的密码策略,另外用户也可以求助管理员手动为用户解除锁定。 +- **login_expiration_in_days**: 登录到期时间,这是一种登录策略,系统默认会在用户登录系统后90天自动清除其登录状态强制其重新登录以提升账户安全性,管理员可以在这里配置属于特定简档的账户多少天后会自动登出系统。 +- **phone_login_expiration_in_days**: 手机App登录到期时间,也是一种登录策略,与登录到期时间一样,不过这里只针对手机APP客户端上的账户。 +- **logout_other_clients**: 单例登录,也是一种登录策略,该策略强制一个账户只能在一处登录,每次登录某个客户端后,会自动注销以当前用户身份登录的其他客户端,默认不开启该策略,管理员可以为属于特定简档的用户开启该策略。 +- **phone_logout_other_clients**: 手机App单例登录,也是一种登录策略,与单例登录一样,不过这里只针对手机APP客户端上的账户。 +- **enable_MFA**: 多重身份验证,也是一种登录策略,使用该策略需要开启短信服务,默认不开启该策略,管理员可以开启短信服务后再为属于特定简档的用户开启该策略。 + +## 权限集 .permissionset.yml + +权限集只约定了一个名称,定义了权限集之后,就可以在对象权限中定义此权限集对具体对象的访问权限。 + +一个用户可以拥有多个权限集,最终权限为叠加之后的结果。 + +元数据中未约定权限集并未绑定到具体用户,系统管理员可以在设置界面中配置适用此权限集的用户清单。 + +```yaml +name: contract_manager +label: 合同管理员 +type: permission_set +``` + +系统有2个默认权限集: + +* organization_admin: 分部管理员,用于为分部管理员额外增加权限。 +* workflow_admin: 流程管理员,用于为流程管理员额外增加权限。 + +因为简档是一种特殊的权限集,所以它们拥有相同的元数据模型,并通过 `type` 属性来标识是属于简档还是普通的权限集,以下表格描述了哪些元数据属性分别属于哪种权限集, + +| 属性名 | 简档 | 权限集 | 属性含义 | +|----|----|----|----| +| name | Y | Y | API 名称 | +| label | Y | Y | 显示名称 | +| type | Y | Y | 类别 | +| license | Y | Y | 许可证 | +| assigned_apps | Y | Y | 授权应用 | +| users | Y | Y | 成员 | +| is_system | Y | Y | 系统 | +| password_history | Y | N | 强制密码历史 | +| max_login_attempts | Y | N | 最大无效登录尝试次数 | +| lockout_interval | Y | N | 锁定有效期间 | +| login_expiration_in_days | Y | N | 登录到期时间 | +| phone_login_expiration_in_days | Y | N | 手机App登录到期时间 | +| logout_other_clients | Y | N | 单例登录 | +| phone_logout_other_clients | Y | N | 手机App单例登录 | +| enable_MFA | Y | N | 多重身份验证 | + +## 对象权限 .permission.yml + +设定某一个简档(或权限集)对当前对象的访问权限。 + +```yaml +name: 合同.用户 +allowCreate: true +allowDelete: true +allowEdit: true +allowRead: true +modifyAllRecords: false +modifyCompanyRecords: false +permission_set_id: user +viewAllRecords: false +viewCompanyRecords: false +``` + +| 属性名 | 属性类型 | 属性含义 | +|----|----|----| +| name | formula | 名称 | +| permission_set_id | master_detail | 权限集 | +| object_name | lookup | 对象 | +| allowRead | boolean | 允许查看 | +| allowCreate | boolean | 允许创建 | +| allowEdit | boolean | 允许编辑 | +| allowDelete | boolean | 允许删除 | +| viewAllRecords | boolean | 查看所有记录 | +| modifyAllRecords | boolean | 修改所有记录 | +| viewCompanyRecords | boolean | 查看本分部 | +| modifyCompanyRecords | boolean | 修改本分部 | +| viewAssignCompanysRecords | lookup | 查看指定分部 | +| modifyAssignCompanysRecords | lookup | 修改指定分部 | +| allowReadFiles | boolean | 允许查看附件 | +| allowCreateFiles | boolean | 允许创建附件 | +| allowEditFiles | boolean | 允许修改附件 | +| allowDeleteFiles | boolean | 允许删除附件 | +| viewAllFiles | boolean | 查看所有附件 | +| modifyAllFiles | boolean | 修改所有附件 | +| disabled_list_views | lookup | 禁用列表视图 | +| disabled_actions | lookup | 禁用操作 | +| unreadable_fields | lookup | 不可见字段 | +| uneditable_fields | lookup | 不可编辑字段 | +| unrelated_objects | lookup | 禁用关联对象 | +| is_system | boolean | 系统 | + +## 字段权限 .permission.yml + +设定某一个简档(或权限集)对当前对象下的字段的访问权限,与对象权限共用配置文件,相关配置保存在`field_permissions`属性中。 + +```yaml +name: 合同.用户 +allowCreate: true +allowDelete: true +allowEdit: true +allowRead: true +modifyAllRecords: false +modifyCompanyRecords: false +permission_set_id: user +viewAllRecords: false +viewCompanyRecords: false +field_permissions: + - field: name + readable: true + editable: true + - field: owner + readable: false + editable: true + - field: created + readable: true + editable: false + - field: created_by + readable: true + editable: false + - field: modified + readable: true + editable: false + - field: modified_by + readable: true + editable: false + - field: locked + readable: false + editable: false + - field: company_id + readable: false + editable: false + - field: company_ids + readable: false + editable: false + - field: instance_state + readable: false + editable: false + - field: amount__c + readable: true + editable: true +``` + +| 属性名 | 属性类型 | 属性含义 | +|----|----|----| +| name | text | Api 名称 | +| permission_set_id | lookup | 权限集 | +| permission_object | master_detail | 对象权限 | +| object_name | lookup | 对象 | +| field | lookup | 字段 | +| readable | boolean | 允许查看 | +| editable | boolean | 允许编辑 | +| is_system | boolean | 系统 | + +## 限制规则 .restrictionRule.yml + +在对象上配置限制规则来收缩用户对业务对象记录级的查看权限,满足此过滤条件的记录,用户始终禁止查看。 +该规则并不是基于简档(或权限集)来配置,但是可以在指定条目条件中判断当前用户所属简档(或权限集)。 + +```yaml +name: test +entry_criteria: '{{$user.roles.indexOf("salesman") > -1}}' +object_name: contracts__c +record_filter: '{{[["profile__c", "=", "customer"], "or", ["owner", "=", $user.userId]]}}' +``` + +| 属性名 | 属性类型 | 属性含义 | +|----|----|----| +| name | text | Api 名称 | +| object_name | lookup | 对象 | +| active | boolean | 启用 | +| entry_criteria | textarea | 指定条目条件 | +| record_filter | textarea | 记录过滤器 | +| description | textarea | 描述 | +| is_system | boolean | 系统 | + +## 共享规则 .shareRule.yml + +在对象上配置共享规则来放大用户对业务对象记录级的查看权限,满足此规则的记录,用户始终可以查看。 +该规则并不是基于简档(或权限集)来配置,但是可以在指定条目条件中判断当前用户所属简档(或权限集)。 + +```yaml +name: test +active: true +entry_criteria: '{{$user.roles.indexOf("salesman") > -1}}' +object_name: contracts__c +record_filter: '{{[["company_id", "=", $user.company_id],["profile__c", "=", "customer"]]}}' +``` + +| 属性名 | 属性类型 | 属性含义 | +|----|----|----| +| name | text | Api 名称 | +| object_name | lookup | 对象 | +| active | boolean | 启用 | +| entry_criteria | textarea | 指定条目条件 | +| record_filter | textarea | 记录过滤器 | +| description | textarea | 描述 | +| is_system | boolean | 系统 | \ No newline at end of file diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/developer/package/metadata/metadata-ui.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/developer/package/metadata/metadata-ui.md new file mode 100644 index 0000000..fce0c93 --- /dev/null +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/developer/package/metadata/metadata-ui.md @@ -0,0 +1,313 @@ +--- +title: 界面元数据 +--- + +## 概览 + +- 应用 +- 选项卡 +- 列表视图 +- 页面布局 +- 自定义按钮 + +## 应用 +应用.app.yml +可以设置应用的名称、显示名称、应用图标,以及在应用中显示的对象、选项卡清单。 +```yaml +name: 合同 +code: contracts +description: 管理合同及收付款。 +icon_slds: contract_line_item +mobile: true +mobile_objects: + - contracts + - finance_invoice + - finance_receive + - finance_receipt + - finance_payment + - contract_types +oauth2_enabled: false +oauth2_logout_enabled: false +objects: + - contracts + - finance_invoice + - finance_receive + - finance_receipt + - finance_payment + - contract_types +saml_enabled: false +saml_logout_enabled: false +sort: 50 +tabs: + - contract_analysis +visible: true +``` + +| 属性名 | 属性类型 | 属性含义 | +|----|----|----| +| name | text | 名称 | +| code | text | API 名称 | +| icon_slds | lookup | 图标 | +| visible | boolean | 启用 | +| description | textarea | 描述 | +| tabs | lookup | 选项卡 | +| objects | lookup | 桌面主菜单 | +| mobile_objects | lookup | 手机主菜单 | +| is_creator | boolean | 显示在桌面菜单中 | +| mobile | boolean | 显示在手机菜单中 | +| icon | text | 旧版图标 | +| sort | number | 排序 | +| url | url | 外部链接 | +| is_use_ie | boolean | 使用IE打开(需使用Steedos桌面客户端) | +| is_use_iframe | boolean | 使用iframe打开 | +| is_new_window | boolean | 在新窗口打开 | +| on_click | textarea | 链接脚本 | +| auth_name | text | 验证域名 | +| secret | text | API 密钥 | +| oauth2_enabled | boolean | 启用 OAuth2 | +| oauth2_callback_url | text | 回调 URL | +| oauth2_scopes | select | 范围 | +| oauth2_logout_enabled | boolean | 启用单点注销 | +| oauth2_logout_url | url | 单点注销 URL | +| oauth2_home_url | url | 应用首页 | +| oauth2_logo | image | 应用 Logo | +| oauth2_client_secret | text | 应用密钥 | +| saml_enabled | boolean | 启用 SAML | +| saml_entity_id | text | Entity Id | +| saml_issuer | text | Issuer | +| saml_idp_cert | text | IDP Cert | +| saml_acs_url | url | ACS Url | +| saml_name_id_format | text | 名称 | +| saml_logout_enabled | boolean | 启用单点注销 | +| saml_logout_url | url | 单点注销 URL | +| saml_logout_block | select | 单点注销绑定 | +| is_system | boolean | 系统 | +| from_code_id | text | from_code_id | + + +## 选项卡 +选项卡.tab.yml +选项卡可以绑定到一个对象,也可以绑定到一个网址或是自定义页面。 +```yaml +name: contract_analysis +desktop: true +icon: dashboard +label: 合同分析 +mobile: true +page: contract_analysis +type: page +``` + +| 属性名 | 属性类型 | 属性含义 | +|----|----|----| +| label | text | 显示名称 | +| name | text | API 名称 | +| icon | lookup | 图标 | +| parent | lookup | 上级选项卡 | +| type | select | 类型 | +| mobile | boolean | 显示在手机菜单中 | +| desktop | boolean | 显示在桌面菜单中 | +| frame_height | number | 选项卡框架的高度 | +| has_sidebar | boolean | 显示侧边栏面板 | +| object | lookup | 对象 | +| url | url | 外部链接 | +| is_new_window | boolean | 在新窗口打开 | +| page | lookup | 页面 | +| action_overrides | text | 分配给选项卡的操作替代列表 | +| description | textarea | 描述 | +| is_system | boolean | 系统 | + +## 列表视图 +列表视图.listview.yml +定义对象的列表显示,包括:显示的列、过滤条件、排序规则、默认搜索字段。 +```yaml +name: all +label: 所有合同 +columns: + - field: 'no' + width: '150' + wrap: true + - field: name + width: '220' + wrap: true + - field: contract_type + width: '150' + wrap: true + - field: amount + width: '150' + wrap: true + - field: signed_date + width: '150' + wrap: false + - field: owner + width: '150' + wrap: false + - field: created + width: '150' + wrap: false +filter_fields: + - contract_type + - signed_date + - othercompany + - instance_state + - owner +filter_scope: space +filters: + - is_default: true + field: instance_state + operation: <> + value: + - terminated + is_required: false +shared: true +show_count: false +sort: + - field_name: 'no' + order: desc +``` + +| 属性名 | 属性类型 | 属性含义 | +|----|----|----| +| label | text | 显示名称 | +| name | text | API 名称 | +| object_name | master_detail | 对象 | +| filter_scope | lookup | 过滤范围 | +| shared | boolean | 共享视图到工作区 | +| show_count | boolean | 显示条目数 | +| type | select | 视图类型 | +| scrolling_mode | select | 滚动条样式 | +| columns | grid | 显示的列 | +| columns.$ | object | 显示的列 | +| columns.$.field | lookup | 字段 | +| columns.$.width | text | 宽度 | +| filter_fields | lookup | 默认过滤字段 | +| sort | grid | 默认排序规则 | +| sort.$ | object | Order | +| sort.$.field_name | lookup | 排序字段 | +| sort.$.order | select | 排序方式 | +| filters | grid | 过滤器 | +| filters.$ | object | Filter | +| filters.$.field | lookup | 字段 | +| filters.$.operation | lookup | 运算符 | +| filters.$.value | | 值 | +| filter_logic | text | 过滤逻辑 | +| mobile_columns | grid | 手机端显示的列 | +| mobile_columns.$ | object | 手机端显示的列 | +| mobile_columns.$.field | lookup | 字段 | +| sort_no | number | 排序号 | + + +## 页面布局 +对象名.页面布局.layout.yml +定义对象的记录显示,包括:所属简档、操作按钮、显示的字段、相关子表。 +``` +name: customer +buttons: + - button_name: standard_new + - button_name: standard_edit + - button_name: standard_delete +fields: + - field_name: name + is_required: true + - field_name: start + - field_name: end +label: 客户 +object_name: events +profiles: + - customer +related_lists: + - related_field_fullname: tasks.related_to + field_names: + - name + - due_date + - state + - priority + - assignees + - related_to + sort_order: asc + page_size: 5 +type: record +``` + +| 属性名 | 属性类型 | 属性含义 | +|----|----|----| +| name | text | Api Name | +| label | text | 页面布局名 | +| object_name | master_detail | 对象 | +| type | select | 类型 | +| profiles | lookup | 简档 | +| buttons | grid | 操作 | +| buttons.$.button_name | lookup | 名称 | +| buttons.$.visible_on | textarea | 显示条件 | +| fields | grid | 字段 | +| fields.$ | object | Field | +| fields.$.field_name | lookup | 字段 | +| fields.$.is_readonly | boolean | 只读 | +| fields.$.is_required | boolean | 必填 | +| fields.$.group | text | 分组 | +| fields.$.visible_on | textarea | 显示条件 | +| related_lists | grid | 相关子表 | +| related_lists.$.related_field_fullname | lookup | 子表名称 | +| related_lists.$.label | text | 显示标题 | +| related_lists.$.field_names | lookup | 显示的字段 | +| related_lists.$.sort_field_name | lookup | 排序字段 | +| related_lists.$.sort_order | select | 排序方式 | +| related_lists.$.filters | textarea | 过滤规则 | +| related_lists.$.visible_on | textarea | 显示条件 | +| related_lists.$.page_size | number | 每页显示数量 | + +## 自定义按钮 +自定义按钮分为 按钮.button.js 和 按钮.button.yml 两个文件。 +``` +buttons +├── 按钮.button.js +└── 按钮.button.yml +``` +示例:详细记录页”确认“按钮,在指定条件下显示此按钮,点击此按钮新建指定对象的一条记录。 +sure.button.js 文件 +``` +module.exports = { + sure: function(object_name, record_id) { + var record = this.record; + var initialValues = { + name: record.name, + state: '试用' + } + SteedosUI.showModal(stores.ComponentRegistry.components.ObjectForm, { + name: `standard_new_form`, + objectApiName: 'hmc__c', + title: '确认', + initialValues + }, null, { + iconPath: '/assets/icons' + }); + }, + sureVisible: function(object_name, record_id, permissions, record) { + if (record.rz_state === "待入职" && record.instance_state === 'approved') { + return true; + } else { + return false; + } + } +} +``` +sure.button.yml 文件 +``` +name: sure +is_enable: true +label: 确认 +'on': record_only +type: script +visible: true +``` + +| 属性名 | 属性类型 | 属性含义 | +|----|----|----| +| name | text | API 名称 | +| label | text | 显示名称 | +| object | master_detail | 所属对象 | +| is_enable | boolean | 启用 | +| visible | boolean | 可见 | +| 'on' | lookup | 显示位置 | +| type | select | 类型 | +| todo | code | 执行的脚本 | \ No newline at end of file