Пример использования операции SaveObjectAs для перемещения объекта репозитория. В запросе передается моникёр перемещаемого объекта и описание родительского объекта, в который осуществляется перемещение. В ответе приходит обновленный список объектов родительского объекта, в который производилось перемещение.
{
"SaveObjectAs" :
{
"tObject" :
{
"id" : "S1!M!176178"
},
"tArg" :
{
"destination" :
{
"operation" : "MoveToParent",
"move" :
{
"parent" :
{
"@isShortcut" : "false",
"@isLink" : "false",
"@hf" : "false",
"i" : "TEMP",
"n" : "Temp",
"k" : "65",
"c" : "0",
"p" : "70",
"h" : "false",
"hasPrv" : "false",
"ic" : "false"
}
},
"autoGenerateName" : "true"
},
"getObjects" :
{
"parent" :
{
"id" : "S1!M!65"
}
}
}
}
}
{
"SaveObjectAsResult" :
{
"object" :
{
"@ds" : "",
"@isShortcut" : "0",
"@isLink" : "0",
"@ver" : "1",
"@hf" : "0",
"i" : "REPORT_COPY",
"n" : "Регламентный отчет(Копия)",
"k" : "176178",
"c" : "2562",
"p" : "65",
"h" : "0",
"hasPrv" : "0",
"ic" : "0",
"obId" :
{
"id" : "S1!M!176178"
}
},
"objects" :
{
"id" :
{
"id" : "S1!M!176178"
},
"objects" :
{
"its" :
{
"d" :
[
{
"@isShortcut" : "0",
"@isLink" : "0",
"@hf" : "0",
"i" : "OBJ66",
"n" : "проверка макросов",
"k" : "66",
"c" : "1537",
"p" : "65",
"h" : "0",
"hasPrv" : "0",
"ic" : "0"
},
{
"@isShortcut" : "0",
"@isLink" : "0",
"@hf" : "0",
"i" : "OBJ90",
"n" : "Форма90",
"k" : "90",
"c" : "1538",
"p" : "65",
"h" : "0",
"hasPrv" : "0",
"ic" : "0"
},
{
"@isShortcut" : "0",
"@isLink" : "0",
"@hf" : "0",
"i" : "NEWFORM1",
"n" : "NewForm1",
"k" : "176176",
"c" : "1538",
"p" : "65",
"h" : "0",
"hasPrv" : "0",
"ic" : "0"
},
{
"@isShortcut" : "0",
"@isLink" : "0",
"@hf" : "0",
"i" : "NEWFORM2",
"n" : "NewForm2",
"k" : "176177",
"c" : "1538",
"p" : "65",
"h" : "0",
"hasPrv" : "0",
"ic" : "0"
},
{
"@isShortcut" : "0",
"@isLink" : "0",
"@hf" : "0",
"i" : "REPORT_COPY",
"n" : "Регламентный отчет(Копия)",
"k" : "176178",
"c" : "2562",
"p" : "65",
"h" : "0",
"hasPrv" : "0",
"ic" : "0"
}
]
}
}
}
}
}
Указанная ниже функция MoveObj перемещает объект репозитория. Идентификатор объекта и папки, в которую осуществляется перемещение, передаются посредством входных параметров objId и parentId. В примере используется функция FindObjectById, код которой приведен в примере «Получение описания объекта по его идентификатору». Результат выполнения операции является результатом выполнения функции.
public static SaveObjectAsResult MoveObj(MbId mb, string objId, string parentId)
{
var somClient = new SomPortTypeClient(); //Прокси-объект для выполнения операций
//Параметры выполнения операции
var tParent = FindObjectById(mb, parentId);
var tSave = new SaveObjectAs()
{
tArg = new SaveObjectAsArg()
{
destination = new ObjectCopyInfo()
{
//Действие - перемещение объекта
operation = ObjectCopyOperation.MoveToParent,
move = new ObjectMoveInfo()
{
parent = tParent
}
},
getObjects = new GetObjectsOpArg()
{
parent = new OdId() { id = mb.id + "!" + tParent.k }
}
},
tObject = new OdId()
{
id = mb.id + "!" + FindObjectById(mb, objId).k
}
};
//Перемещение объекта
var result = somClient.SaveObjectAs(tSave);
return result;
}
См. также: