Move Asset Node


移动一个资产节点连同其后代节点到一个指定的位置。

使用此 API 前,确保当前环境已安装 EnOS 2.3 CU 2

操作权限

需授权的资源

所需操作权限

资产树管理

Full Access

请求格式

POST https://{apigw-address}/asset-tree-service/v2.1/asset-nodes?action=move

请求参数(URI)

名称

位置(Path/Query)

必需/可选

数据类型

描述

orgId

Query

必需

String

资产所属的组织 ID。如何获取 orgId 信息>>

treeId

Query

必需

String

需资产树 ID。如何获取资产树信息 ID>>

parentAssetId

Query

必需

String

移动后 assetId 的父节点资产 ID。如何获取 assetId 信息>>

preAssetId

Query

可选

String

移动后处在 assetId 的前一个位置的兄弟节点资产 ID。如果为 nullassetId 将会移到 parentAssetId 下面的第一个位置。如何获取 assetId 信息>>

assetId

Query

必需

String

要移动的资产的资产 ID。如何获取 assetId 信息>>

例子

假设资产树具有以下结构。


_images/move_asset_original_tree.png


场景 1:如果 parentAssetId 为 7,preAssetId 为 13,assetId 为 10,移动后新的树结构将如下所示。


_images/move_asset_example1.png


场景 2:如果 parentAssetId 为 3,preAssetId 为 null,assetId 为 10,移动后新的树结构将如下所示。


_images/move_asset_example2.png


场景 3:如果 parentAssetId 为 5,preAssetId 为 null,assetId 为 10,移动后新的树结构将如下所示。


_images/move_asset_example3.png

错误码

名称

错误信息

描述

99400

  • Invalid arguments

  • Parent asset is not exist in the tree

  • 请求参数非法,请检查请求参数。

  • 父资产不存在该树上。

99500

System error

服务器内部错误,请联系 EnOS。

17404

Asset is not exist in the tree

资产不存在该树上。

17762

The tree is locked

一次只允许一个用户修改资产树,暂时不能操作该资产树,请再次请求。

17764

The root asset node can not be moved or deleted: or tree is not exist

根节点不能被移动或资产树不存在。

17768

Can not move to descendant node

不能移动至自己的后代节点下。

17770

Exceeding the layer limit(7)

该树超过最高层数限制(7层)。

17777

Parent asset is invalid

parentAssetId 不合法。

示例

请求示例

url:  https://{apigw-address}/asset-tree-service/v2.1/asset-nodes?parentAssetId=yourParrentAssetId&assetId=yourAssetId&preAssetId=yourPreAssetId&orgId=yourOrgId&treeId=yourTreeId&action=move
method: POST

返回示例

{
  "code": 0,
  "msg": null,
  "requestId": "8d0b2297-4dce-48b5-b685-3bd30e4c4636",
  "data": null
}

Java SDK 调用示例

package com.envision.energy.asset_tree_service.service;

import org.junit.Test;

import com.envision.apim.poseidon.config.PConfig;
import com.envision.apim.poseidon.core.Poseidon;
import com.envision.eos.commons.utils.GsonUtil;
import com.envisioniot.enos.asset_tree_service.v2_1.MoveAssetNodeRequest;
import com.envisioniot.enos.asset_tree_service.v2_1.MoveAssetNodeResponse;


public class AssetNodExceptionTest {

    private static String AccessKey = "yourAccessKey";
    private static String SecretKey = "yourSecretKey";
    private static String OrgId = "yourOrgId";
    private static String ServerUrl = "yourServerUrl";

    @Test
    public void testAssociateAssetNode() {
        MoveAssetNodeRequest request = new MoveAssetNodeRequest();
        request.setOrgId(OrgId);
        request.setTreeId("yourTreeId");
        request.setParentAssetId("yourParentAssetId");
        request.setAssetId("yourAssetId");
        request.setPreAssetId("yourPreAssetId");

        MoveAssetNodeResponse response = Poseidon.config(PConfig.init().appKey(AccessKey).appSecret(SecretKey).debug())
            .url(ServerUrl).getResponse(request, MoveAssetNodeResponse.class);
        System.out.println(GsonUtil.toJson(response));
    }

}