Move Asset Node


Move an asset node, together with all its descendant nodes, to a specified location.

This API is only available if 2.3 Cumulative Update 2 has been applied to your environment. For the full change list of 2.3 Cumulative Update 2, see Cumulative Update 2.

Operation Permissions

Required Authorization Required Operation Permission
Asset Tree Management Full Access

Request Format

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

Request Parameters (URI)

Name Location (Path/Query) Mandatory/Optional Data Type Description
orgId Query Mandatory String The organization ID which the asset belongs to. How to get orgId>>
treeId Query Mandatory String The asset tree ID. How to get treeID>>
parentAssetId Query Mandatory String The asset ID of the parent node of assetId after it is moved. How to get assetId>>
preAssetId Query Optional String The asset ID of the sibling node prior to the assetId after it is moved. If null, the assetId will be moved to the first position under the parentAssetId. How to get assetId>>
assetId Query Mandatory String The asset ID of the asset node to be moved. How to get assetId>>

Examples

Assuming an asset tree has the following structure.


_images/move_asset_original_tree.png


Scenario 1: If parentAssetId is 7, preAssetId is 13, and assetId is 10, the new tree structure will be as per the below after the move.


_images/move_asset_example1.png


Scenario 2: If parentAssetId is 3, preAssetId is null, and assetId is 10, the new tree structure will be as per the below after the move.


_images/move_asset_example2.png


Scenario 3: If parentAssetId is 5, preAssetId is null, and assetId is 10, the new tree structure will be as per the below after the move.


_images/move_asset_example3.png

Error Codes

Code Message Description
99400
  • Invalid arguments
  • Parent asset is not exist in the tree
  • The request parameter is invalid. Check the request parameters.
  • The parent asset does not exist in this tree.
99500 System error Internal server error. Contact EnOS support.
17404 Asset is not exist in the tree The asset does not exist in this tree.
17762 The tree is locked The asset tree cannot be modified/deleted for the time being as someone is currently accessing the asset tree. Please try again later.
17764 The root asset node can not be moved or deleted: or tree is not exist The root asset node cannot be moved or the tree does not exist.
17768 Can not move to descendant node Unable to move under one’s descendant.
17770 Exceeding the layer limit(7) The tree exceeds the maximum number of layers (7 layers).
17777 Parent asset is invalid The parentAssetId is invalid.

Samples

Request Sample

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

Return Sample

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

Java SDK Sample

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));
    }

}