Ниже приведён пример использования операции 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;
}
См. также:
SOAP