MoveObjectResult MoveObject(OdId tParent, MoveObjectArg tArg)
tParent. Моникёр перемещаемого объекта.
tArg. Параметры выполнения операции.
Операция MoveObject перемещает объект репозитория.
Для выполнения операции в параметре tParent необходимо указать моникёр перемещаемого объекта. В параметре tArg указывается информация о том, куда будет перемещен объект. Также в нем могут быть указаны параметры обновления списка объектов репозитория, которые будут применены после выполнения операции.
Результатом работы операции является описание перемещенного объекта, а также обновленный список объектов репозитория, если указаны соответствующие параметры выполнения операции.
Пример перемещения объекта. Перемещение осуществляется в папку репозитория с идентификатором «Temp».
В примере C# используется функция FindObjectById, код которой приведен в примере «Получение описания объекта по его идентификатору».
{
"MoveObject" :
{
"tParent" :
{
"id" : "FNDKOLJACBNNFOAEDCEENEKPOGMMOOGEBLEIHFKEJOFOFMNJ!M!305000"
},
"tArg" :
{
"info" :
{
"parent" :
{
"@isShortcut" : "false",
"@isLink" : "false",
"@hf" : "false",
"i" : "TEMP",
"n" : "Temp",
"k" : "65",
"c" : "0",
"p" : "70",
"h" : "false",
"hasPrv" : "false",
"ic" : "false"
}
},
"getObjects" :
{
"parent" :
{
"id" : "FNDKOLJACBNNFOAEDCEENEKPOGMMOOGEBLEIHFKEJOFOFMNJ!M!65"
},
"filter" :
{
"hideEmptyFolders" : "true",
"classes" :
{
"it" :
{
"k" : "1538"
}
}
},
"arg" :
{
"pattern" :
{
"n" : "false",
"i" : "true",
"ts" : "false",
"ds" : "false",
"isShortcut" : "false"
}
}
}
}
}
}
{
"MoveObjectResult" :
{
"object" :
{
"@ds" : "",
"@isShortcut" : "0",
"@isLink" : "0",
"@ver" : "1",
"@hf" : "0",
"i" : "NEWFORM1",
"n" : "NewForm1",
"k" : "305000",
"c" : "1538",
"p" : "65",
"h" : "0",
"hasPrv" : "0",
"ic" : "0",
"trackElementDependents" : "0"
},
"objects" :
{
"id" :
{
"id" : "FNDKOLJACBNNFOAEDCEENEKPOGMMOOGEBLEIHFKEJOFOFMNJ!M!305000"
},
"objects" :
{
"its" :
{
"d" :
[
{
"@isShortcut" : "0",
"@isLink" : "0",
"@hf" : "0",
"i" : "OBJ90",
"n" : "",
"k" : "90",
"c" : "1538",
"p" : "65",
"h" : "0",
"hasPrv" : "0",
"ic" : "0"
},
{
"@isShortcut" : "0",
"@isLink" : "0",
"@hf" : "0",
"i" : "NEWFORM1",
"n" : "",
"k" : "305000",
"c" : "1538",
"p" : "65",
"h" : "0",
"hasPrv" : "0",
"ic" : "0"
}
]
}
}
}
}
}
public static MoveObjectResult MoveObject(MbId mb, string moveableObj, string newParentId)
{
var somClient = new SomPortTypeClient(); //Прокси-объект для выполнения операций
var tObject = FindObjectById(mb, moveableObj);
var tParent = FindObjectById(mb, newParentId);
//Параметры выполнения операции
var tMove = new MoveObject()
{
tArg = new MoveObjectArg()
{
//Параметры обновления списка объектов после перемещения
getObjects = new GetObjectsOpArg()
{
arg = new GetObjectsArg()
{
pattern = new OdsPattern()
{
ds = false,
i = true,
isShortcut = false,
n = false,
ts = false
}
},
filter = new OdsFilt()
{
classes = new OdClass[1]
{
//Обновить список объектов с тем же классом, какой имеет перемещаемый объект
new OdClass(){k = tObject.c},
},
hideEmptyFolders = true
},
parent = new OdId() { id = mb.id + "!" + tParent.k }
},
info = new ObjectMoveInfo()
{
parent = tParent
}
},
tParent = new OdId()
{
id = mb.id + "!" + tObject.k
}
};
//Перемещение объекта
var result = somClient.MoveObject(tMove);
return result;
}
См. также: