工业数字模型驱动引擎
工业数字模型驱动引擎
- 最新动态
- 功能总览
- 产品介绍
- 计费说明
- 快速入门
- 控制台操作指南
-
数据建模引擎用户指南
- 设计态使用指南
- 运行态使用指南
- 流程引擎使用指南
- 数字主线引擎用户指南
- 最佳实践
- 开发指南
-
API参考
- 使用前必读
- API概览
- 如何调用API
-
API
- 应用管理
- 运行服务管理
-
数据建模引擎
- 基础数据服务
-
版本服务
- 管理员更新M-V模型数据实例
- 管理员批量更新M-V模型数据实例
- 管理员撤销检出M-V模型数据实例
- 管理员批量撤销检出M-V模型数据实例
- 获取指定M-V模型实例的版本列表
- 获取指定版本的M-V模型实例数据
- 检出M-V模型数据实例
- 批量检出M-V模型数据实例
- 检出并更新M-V模型
- 批量检出并更新M-V模型
- 撤销检出M-V模型数据实例
- 批量撤销检出M-V模型数据实例
- 检入M-V模型数据实例
- 批量检入M-V模型数据实例
- 更新并检入M-V模型数据实例
- 批量更新并检入M-V模型数据实例
- 修订M-V模型数据实例
- 批量修订M-V模型数据实例
- 修订并更新M-V模型数据实例
- 批量修订并更新M-V模型数据实例
- 批量升级M-V模型实例的版本号
- 删除版本对象下最新分支的最新版本实例数据
- 软删除版本对象下最新分支的最新版本实例数据
- 删除最新大版本下的所有小版本
- 批量删除最新大版本下的所有小版本
- 软删除M-V模型实例下最新分支的所有小版本数据
- 批量软删除最新大版本下的所有小版本
- 对比M-V模型实例
- 失效管理
- 业务编码生成器
- 标签管理
- 生命周期管理
- 系统版本
- 多维视图和多维分支
- 关系实体服务
- 树形结构
- 流程引擎
- 应用示例
- 权限和授权项
- 附录
- SDK参考
-
常见问题
- 一般性相关问题
- 计量计费相关问题
-
数据建模引擎相关问题
- 设计态与运行态有什么区别?
- 为什么无法登录应用运行态?
- 为什么用户管理中会有“用户不存在”的用户?
- 为什么登录应用运行态时提示“缺少参数或参数错误”?
- 为什么设置输入型参数时提示安全校验失败?
- 应用发布后,在运行态为什么看不到构建的模型数据?
- 如何验证已设置的用户权限已生效?
- 什么是XDM应用?
- 什么是M-V模型?
- 数据建模引擎支持哪些属性类型?
- 枚举、合法值和参考对象的区别是什么?
- 入图和不入图有什么不同?
- 数据建模引擎支持哪些层级的缓存?
- 如何进行应用同步?
- 可以通过API方式使用应用设计态吗?
- 体验版数据建模引擎和基础版数据建模引擎提供的API有什么不同?
- 如何查看数据建模引擎的版本号?
- 如何避免数据模型互相引用形成环?
- 使用JDK 17版本应用运行态时,服务编排存在哪些约束与限制?
-
数字主线引擎相关问题
- 什么是企业租户和应用租户?
- 创建实体时选择构建表的作用是什么?
- 复杂实体属性太多,创建麻烦怎么办?
- 什么是源端映射和目标端映射?
- 什么是增量字段?
- 关系型数据库映射配置中DelFlag字段的作用是什么?
- 创建数据质量任务时,怎么选不出数据实体?
- 为什么LinkX-F中xDM-F来源的实例数据的最后更新时间显示与xDM-F中不一致
- 什么是入图调度的数据起止时间和数据分片间隔?
- 聚合服务编排中非纯脚本服务选择入参时,提示错误“初始数据实体必填入参为空,请选择必填入参”?
- 发布聚合服务后生成的API如何调用?
- 调用聚合服务时提示“查找不到该企业用户”
- 为什么操作时提示WSF参数校验失败?
- 描述类信息中输入英文双引号导致系统错误提示
- 全量数据服务API相关问题
- 文档下载
- 通用参考
本文导读
链接复制成功!
通过xDM-F的多租户能力实现应用运行态数据的逻辑隔离
操作场景
假设A公司在工业数字模型驱动引擎(Industrial Digital Model Engine,简称iDME)开发了一个应用(PDM),希望将该应用授权给B公司和C公司使用,且两个公司之间的数据不互通。此时,用户可以通过iDME应用提供的多租户能力,创建多个租户,为B公司和C公司的数据进行逻辑隔离。
前提条件
已登录应用运行态。
步骤1:创建租户
创建两个租户实例,租户编码分别为tenantB和tenantC。具体操作请参见租户管理。
图1 租户实例

步骤2:逻辑隔离租户数据
- 可视化页面:在应用运行态的右上方,单击租户的下拉列表,切换为tenantB或tenantC。即可在tenantB和tenantC租户下,分别管理B公司和C公司在PDM应用下的模型数据。例如,创建扩展模型的数据实体、创建数据实例、创建扩展属性等。
图2 切换租户
- API方式:在待调用的API中为B公司和C公司添加“tenantid”必填参数。即,当B公司或者C公司对PDM应用进行增删改查操作时,发送的请求头必须带有tenantid。
请求头:
POST http://{Endpoint}/rdm_{appID}_app/services/dynamic/api/{entityName}/{method} Content-Type: Application/Json Content-Length: Content Length X-AUTH-TOKEN: Token ID tenantid: 租户编码 { "params": { "id": "唯一编码", ...... } }
其中,{Endpoint}表示数据建模引擎所在域名或IP地址,{appID}表示应用ID,{entityName}表示实体的英文名称,{method}表示请求方法。
以在tenantB租户下创建单位类型为例,其请求示例如下:
POST http://dme.cn-north-4.huaweicloud.com/rdm_01a2b2c4764d4e00f123g345fd9baa9f_app/services/dynamic/api/UnitType/create Content-Type: Application/Json Content-Length: Content Length X-AUTH-TOKEN: XXXXXXXXXX tenantid: tenantB { "params": { "id": "439166695949471744", "nameEn": "UnitTest", "name": "UnitTest", "descriptionEn": "", "descriptionCn": "", "unitGbFlag": true } }
步骤3:隔离验证
如下操作以步骤2:逻辑隔离租户数据的创建单位类型为示例进行验证。
- 通过可视化页面方式验证。
- 在应用运行态的右上方,单击租户的下拉列表,选择“tenantB”。
- 在左侧导航栏中,选择“基础数据管理 > 计量单位”,进入“计量单位”页面。
该页面下存在“UnitTest”的数据。
- 在应用运行态的右上方,单击租户的下拉列表,选择“tenantC”。
- 在左侧导航栏中,选择“基础数据管理 > 计量单位”,进入“计量单位”页面。
该页面下无“UnitTest”的数据。
- 通过API方式调用单位类型的查询接口验证。
- 发送请求头带有“tenantid”为“tenantB”的查询请求。
POST http://dme.cn-north-4.huaweicloud.com/rdm_01a2b2c4764d4e00f123g345fd9baa9f_app/services/dynamic/api/UnitType/find/20/1 Content-Type: Application/Json Content-Length: Content Length X-AUTH-TOKEN: XXXXXXXXXX tenantid: tenantB { "params": { "sort": "DESC", "orderBy": "lastUpdateTime", "filter": { "joiner":"string", "conditions": [] }, "isNeedTotal": true } }
可查询到在“tenantB”租户下创建的单位类型。
- 发送请求头带有“tenantid”为“tenantC”的查询请求。
POST http://dme.cn-north-4.huaweicloud.com/rdm_01a2b2c4764d4e00f123g345fd9baa9f_app/services/dynamic/api/UnitType/find/20/1 Content-Type: Application/Json Content-Length: Content Length X-AUTH-TOKEN: XXXXXXXXXX tenantid: tenantC { "params": { "sort": "DESC", "orderBy": "lastUpdateTime", "filter": { "joiner":"string", "conditions": [] }, "isNeedTotal": true } }
查询不到在“tenantB”租户下创建的单位类型。
- 发送请求头带有“tenantid”为“tenantB”的查询请求。