更新时间:2024-04-01 GMT+08:00
分享

树形结构实践

概述

树形结构指的是数据元素之间存在着“一对多”的树形关系的数据结构,是一类重要的非线性数据结构。在树形结构中,树根节点没有前驱节点,其余每个节点有且只有一个前驱节点。叶子节点没有后续节点,其余每个节点的后续节点数可以是一个也可以是多个。

为了便于用户维护数据之间的父子关系,工业数字模型驱动引擎(Industrial Digital Model Engine,简称iDME)提供树形结构功能。用户可在应用设计态创建数据实体时,在功能列表中勾选“树形结构”,即可使用此功能。

具有树形结构功能的数据实体会自动生成五个系统属性“ParentNode”“LeafFlag”“RawFullPath”“RootNode”“FullPath”,同时对外提供如下7个树形相关接口。

表1 树形结构相关接口

接口名称

描述

GetAllParentList

获取所有父节点(前驱节点):获取该叶子节点之上的所有父节点,可往上查到顶层父节点。

BatchRemoveChildNode

批量移除叶子节点。

BatchAddChildNode

批量添加叶子节点/批量更新叶子节点的父节点。

GetChildList

获取单层叶子节点。

GetParent

获取单层父节点。

Refresh

刷新所有叶子节点。

GetRoot

获取根节点/顶层父节点。

更多树形结构的接口信息请参见全量数据服务

使用说明

  • 如果数据实体的父模型存在树形结构,该数据实体自动继承树形结构功能,且不可去勾选。如果后续父模型删除了树形结构功能,该数据实体将不再继承父模型的树形结构功能,但可以自己重新勾选树形结构功能。
  • 如果数据实体为Master-Version模型实体(即“父模型”选择为“VersionObject”),则只能在Master模型上选择树形结构功能,Version模型和Branch模型不支持选择树形结构功能。

示例场景

常见的应用系统(如ERP、采购、财务等)中都会包含人员管理,而人员管理往往都是以组织的形式进行管理和展示。这种场景下,树形结构是此功能的基础核心,所有人员的权限操作都是依附于组织。

图1 某企业组织架构图

某企业的组织架构如图1所示,根据树形结构进行分析,可得知:

  • 黄色方框的部门没有父节点,即为根节点。
  • 红色方框的部门没有子节点,即为叶子节点。
  • 绿色方框的部门均有子节点。

为此,我们可在构建数据模型时,创建一个具有“树形结构”功能的数据实体用于管理此企业的组织。而后在其数据实体实例化时,通过指定“ParentNode”的属性值来实现组织管理。

如下操作步骤仅指导您如何通过可视化页面使用树形结构功能。关于如何通过API方式使用树形结构功能请参见全量数据服务

操作步骤

  1. 登录应用设计态
  2. 在左侧导航栏中,选择数据模型管理 > 数据实体,进入数据实体页面。
  3. 单击“创建”,根据如下主要信息,创建一个具有“树形结构”功能的数据实体(例如OrganizationalStructure)。

    图2 树形结构
    表2 主要参数信息

    类型

    参数

    参数说明

    基本信息

    英文名称

    OrganizationalStructure。

    中文名称

    组织结构。

    中文描述

    某公司的部门结构。

    模型类型

    选择“实体模型”

    父模型

    保持默认,此处以BasicObject为例。

    功能列表

    可选功能

    添加“树形结构”功能。

  4. 选择“属性”页签,新增一个“文本”类型的属性“DepartmentName”,用于记录部门名称。

    图3 属性

  5. 选择“功能配置”页签,在设置规则 > 树形结构栏设置树形结构的规则。

    此处以设置“指定全路径字段”“ID”为例。
    图4 功能配置

  6. 依次完成发布数据实体 > 发布应用 > 部署应用的操作,具体操作请参见发布数据实体发布应用部署应用
  7. 待应用完成部署后,登录应用运行态
  8. 数据模型管理 > 数据实体中,找到并编辑“OrganizationalStructure”数据实体,将“实例界面显示”设置为“是”
  9. 数据模型管理 > 数据实例中,选择数据实体“OrganizationalStructure”,根据示例场景的企业组织架构,依次创建如下数据实例。

    图5 创建数据实例
    表3 数据实例信息

    唯一编码(ID)

    部门名称(DepartmentName)

    父节点(ParentNode)

    10001

    公司股东会

    -

    20001

    股东会秘书

    10001

    20002

    总经理

    10001

    20003

    监事会

    10001

    30001

    技术总监

    20002

    30002

    营销总监

    20002

    30003

    生产总监

    20002

    30004

    财务总监

    20002

    ......

    ......

    ......

    为篇幅起见,表3仅列出部分数据实例信息。

分享:

    相关文档

    相关产品