CreateCustomObResult CreateCustomOb(OdId tParent, CreateCustomObArg tArg)
tParent. Моникёр родительского объекта, в котором создаётся объект пользовательского класса.
tArg. Параметры выполнения операции.
Операция CreateCustomOb создаёт объект пользовательского класса.
Для выполнения операции укажите в поле tParent моникёр объекта-родителя, а в поле tArg.classId идентификатор класса создаваемого объекта. Идентификатор класса доступен в метаданных пользовательского класса, которые можно получить с помощью операций OpenCustomExtender, GetCustomExtender.
Результатом работы операции будет моникёр и описание созданного объекта. Объект создаётся с признаком временного, для его появления в репозитории необходимо будет его сохранить.
Если для класса объектов у операции создания назначена веб-форма, то в результате операции также будет доступен ключ этой веб-формы. Дальнейшая работа с полученным объектом осуществляется с помощью операций GetCustomOb, SetCustomOb или на веб-форме. Для открытия веб-формы используйте операцию OpenWebForm, информация об объекте передаётся в поле cstmArgs. Для того, чтобы объект появился в репозитории, его необходимо сохранить. Сохранение может быть осуществлено в коде веб-формы или с помощью операции SaveObject/SaveObjectAs.
Ниже приведён пример создания объекта пользовательского класса. В запросе передаётся моникёр родительской папки и идентификатор класса создаваемого объекта. В ответе возвращается моникёр и описание созданного временного объекта.
{
"CreateCustomOb" :
{
"tParent" :
{
"id" : "KIJGJLGLBNIEGOAEKKDNNHHCKMKIANEEPIGPOKBNCCCNDLDC!M!10099"
},
"tArg" :
{
"classId" : "2168577"
}
}
}
{
"CreateCustomObResult" :
{
"createResult" :
{
"id" :
{
"id" : "KIJGJLGLBNIEGOAEKKDNNHHCKMKIANEEPIGPOKBNCCCNDLDC!M!S!OGJDCJCHLBNIEGOAEEJEBKIOHBNBIFPPEIIEEIAFBMGNGGONL"
},
"object" :
{
"@ds" : "",
"@isShortcut" : "0",
"@isLink" : "0",
"@ver" : "1",
"@hf" : "0",
"i" : "OBJ10106",
"n" : "Пользовательский объект",
"k" : "10106",
"c" : "2168577",
"p" : "10099",
"h" : "0",
"hasPrv" : "0",
"ic" : "0",
"trackElementDependents" : "0"
}
}
}
}
public static CreateCustomObResult CreateCustomOb(string parentMon, uint classId)
{
var somClient = new SomPortTypeClient(); // Прокси-объект для выполнения операций
// Параметры выполнения операции
var tNew = new CreateCustomOb()
{
tArg = new CreateCustomObArg()
{
classId = classId
},
tParent = new OdId() { id = parentMon }
};
// Создание объекта пользовательского класса
var tResult = somClient.CreateCustomOb(tNew);
return tResult;
}
См. также: