园区空间数据变更订阅
当园区SaaS端想要获取园区的空间数据变化消息时,可以通过如下方式进行订阅。
1、消息订阅
1、获取项目appkey和appSecret
使用阿里云账号登录数字园区引擎,登录后如下图所示
点击对应的园区,则会进入该园区的管理页面,在园区概览菜单下,可以查看园区项目的appKey和appSecret
2、获取实例ID
3、获取数据模型id
在园区管理页面,选中应用管理菜单,选择数据管理菜单,可以看到园区空间数据订阅,模型编号为iotx_iwms_space_subscribe,如下图所示
4、建立连接
根据以上信息,建立消息连接通道,使用方法参考连接,选择AMQP方式建立连接https://help.aliyun.com/document_detail/140317.html#h2-va4-r81-xq3
2、使用控制台进行空间变更
空间变更的操作包括:新增、删除、修改,下面以新增空间举例。
选中具体园区项目,进入后在左边菜单栏,选中基础能力菜单,选择空间管理菜单,如下图所示
当鼠标放置在左侧空间树状节点上,会弹出添加按钮,此时可以进行空间位置的添加
选择某个空间以后,可以在右侧界面增加空间单元,如下图所示
3、消息接收
当空间信息有变更(新增、删除、编辑)的时候,可以收到对应的变更消息,如下所示
{
"dataIds": [
123456789 // 数据唯一标识
],
"dataInstanceId": "iot-pre06****0a", // 园区的实例id
"logicalModelIsoId": "oxs_***_id",
"modelId": "iotx_iwms_space_subscribe", // 数据模型id
"operateType": "insert", // 通常是insert,注意区别于payload内的operate_type
"payload": "payload info", // 消息体,JSON字符串
"scopeId": "a123pe****2uP3cK" // 通常是当前园区项目id
}
在使用的时候可以根据modelId字段,进行不同数据模型消息的区分
4、payload详细信息
payload字段为JSON字符串,具体字段见下表
名称 | 数据类型 | 是否必须 | 属性名称 | 描述 |
tenant_id | String | 是 | 租户id | 园区项目所属租户id |
instance_id | String | 是 | 实例id | 园区实例id |
project_id | String | 是 | 项目id | 园区项目id,通常和外部scopeId一致 |
creator_type | String | 否 | 创建人类型 | 通常是SYSTEM |
creator_id | String | 否 | 创建人ID | 通常是campus_si_oc |
modifier_type | String | 否 | 修改人类型 | 修改人类型,通常是SYSTEM |
modifier_id | String | 否 | 修改人ID | 修改人的ID |
parent_id | String | 是 | 上级空间ID | 当前空间ID对应的上级空间ID |
type_code | String | 否 | 空间类型 | 空间位置是default,空间单元是space_unit |
poi_code | String | 否 | 当前空间编码 | 当前空间编码 |
poi_code_path | String | 否 | 空间编码 | 包含所有父层级的空间编码 |
uses_code | String | 否 | 用途 | 当前空间用途的代码 |
name | String | 是 | 业务空间名称 | 当前业务空间名称 |
description | String | 否 | 业务空间描述 | 业务空间描述 |
business_id | String | 否 | 业务空间id | 当前业务空间的id |
status | Integer | 是 | 状态 | 状态:启用(1),停用(0) |
geo | String | 否 | 空间形状及坐标 | 当前空间的形状及坐标 |
path | String | 是 | 层及路径 | 包含所有父层级空间id,用“/”分割 |
space_id | String | 是 | 空间id | 当前空间id |
name_path | String | 是 | 业务空间名称path | 包含所有父空间层级名称,用“/”分割 |
operate_type | String | 是 | 操作类型 | 空间位置的变更类型,包括新增add、删除delete、编辑update |