Пример использования операции SaveObjectAs для перезаписи одного объекта репозитория другим. В запросе передается моникёр объекта-источника и описание того объекта, содержимое которого необходимо перезаписать. В ответе приходит описание объекта, содержимое которого было перезаписано.
{
"SaveObjectAs" :
{
"tObject" :
{
"id" : "FNDKOLJACBNNFOAEDCEENEKPOGMMOOGEBLEIHFKEJOFOFMNJ!M!176019"
},
"tArg" :
{
"destination" :
{
"operation" : "OverwriteExisting",
"overwrite" :
{
"object" :
{
"@isShortcut" : "false",
"@isLink" : "false",
"@hf" : "false",
"i" : "REPORT_COPY",
"n" : "Регламентный отчет(Копия)",
"k" : "305002",
"c" : "2562",
"p" : "65",
"h" : "false",
"hasPrv" : "false",
"ic" : "false"
}
},
"autoGenerateName" : "true"
}
}
}
}
{
"SaveObjectAsResult" :
{
"object" :
{
"@ds" : "",
"@isShortcut" : "0",
"@isLink" : "0",
"@ver" : "2",
"@hf" : "0",
"i" : "REPORT_COPY",
"n" : "Регламентный отчет(Копия)",
"k" : "305002",
"c" : "2562",
"p" : "65",
"h" : "0",
"hasPrv" : "0",
"ic" : "0",
"trackElementDependents" : "0",
"obId" :
{
"id" : "FNDKOLJACBNNFOAEDCEENEKPOGMMOOGEBLEIHFKEJOFOFMNJ!M!305002"
}
}
}
}
Указанная ниже функция OverwriteObj перезаписывает содержимого одного объекта содержимым другого объекта репозитория. Идентификаторы объекта-источника и объекта-назначения передаются посредством входных параметров sourcedObj и destinationObj. В примере используется функция FindObjectById, код которой приведен в примере «Получение описания объекта по его идентификатору». Результат выполнения операции является результатом выполнения функции.
public static SaveObjectAsResult OverwriteObj(MbId mb, string sourcedObj, string destinationObj)
{
var somClient = new SomPortTypeClient(); //Прокси-объект для выполнения операций
//Параметры выполнения операции
var tSave = new SaveObjectAs()
{
tArg = new SaveObjectAsArg()
{
destination = new ObjectCopyInfo()
{
//Действие - перезапись существующего объекта
operation = ObjectCopyOperation.OverwriteExisting,
overwrite = new ObjectOverwriteInfo()
{
//Перезаписываемый объект
@object = FindObjectById(mb, destinationObj)
}
}
},
tObject = new OdId()
{
id = mb.id + "!" + FindObjectById(mb, sourcedObj).k
}
};
//Перезапись объекта
var result = somClient.SaveObjectAs(tSave);
return result;
}
См. также: