Ниже приведён пример использования операции OpenCustomOb для открытия объекта пользовательского класса. В запросе передаётся моникёр объекта репозитория. В ответе приходит моникёр открытого на редактирование экземпляра объекта.
{ "OpenCustomOb" : { "tOb" : { "id" : "S1!M!38194" }, "tArg" : { "openForEdit" : "true", "metaGet" : { "obInst" : "true", "data" : "true" } } } }
{ "OpenCustomObResult" : { "id" : { "id" : "S1!M!S!T1" }, "meta" : { "obInst" : { "obDesc" : { "@fullUrl" : "\/", "@isShortcut" : "0", "@isLink" : "0", "i" : "CUST_OBJ", "n" : "Обработчик данных", "k" : "38194", "c" : "71425", "p" : "38193", "h" : "0", "isPermanent" : "1", "isTemp" : "0" } }, "dirty" : "0", "data" : { "refs" : { "its" : "" }, "content" : "" } } } }
Указанная ниже функция OpenCustomObject открывает объект пользовательского класса на редактирование. Моникёр соединения с репозиторием и идентификатор объекта передаются в качестве входных параметров. В примере используется функция FindObjectById, код которой приведен в примере «Получение описания объекта по его идентификатору». Результат выполнения операции является результатом выполнения функции.
public static OpenCustomObResult OpenCustomObject(MbId mb, string id)
{
var somClient = new SomPortTypeClient(); //Прокси-объект для выполнения операций
//Параметры выполнения операции
var tOpen = new OpenCustomOb()
{
tArg = new OpenCustomObArg()
{
openForEdit = true,
metaGet = new CustomObMdPattern()
{
data = true
}
},
tOb = new OdId() { id = mb.id + "!" + FindObjectById(mb, id).k }
};
//Открытие объекта пользовательского класса
var tResult = somClient.OpenCustomOb(tOpen);
return tResult;
}
См. также: