Пример использования операции GetObjects для получения описания объекта репозитория по его идентификатору. В запросе передается идентификатор искомого объекта, а также дополнительные параметры поиска и фильтрации объектов. Поиск производится среди всех папок репозитория (включая скрытые папки), а также в различных объектах-контейнерах. В ответе приходит описание найденного объекта.
{
"GetObjects" :
{
"tParent" :
{
"id" : "S1!M!0"
},
"tFilter" :
{
"levels" : "-1",
"includeRoot" : "false",
"hideEmptyFolders" : "true",
"hideAllFolders" : "true",
"limit" : "1",
"findInfo" :
{
"active" : "true",
"text" : "NEWFORM",
"attribute" : "Ident",
"caseSensitive" : "false",
"wholeWordsOnly" : "true",
"scanNestedNamespaces" : "true",
"scanHiddenFolders" : "true"
}
},
"tArg" :
{
"pattern" : ""
}
}
}
{
"GetObjectsResult" :
{
"id" :
{
"id" : "S1!M!0"
},
"objects" :
{
"its" :
{
"d" :
{
"@isShortcut" : "0",
"@isLink" : "0",
"@hf" : "0",
"i" : "NEWFORM",
"n" : "NewForm",
"k" : "176175",
"c" : "1538",
"p" : "0",
"h" : "0",
"hasPrv" : "0",
"ic" : "0"
}
}
}
}
}
Указанная ниже функция FindObjectById осуществляет поиск объекта репозитория по идентификатору и возвращает его описание в случае удачного поиска. В качестве входных параметров функции должны быть переданы моникёр соединения с репозиторием и идентификатор искомого объекта. Результатом работы функции будет описание найденного объекта, либо значение null, если объект не найден.
public static Od FindObjectById(MbId mb, string id)
{
var somClient = new SomPortTypeClient(); //Прокси-объект для выполнения операций
//Параметры выполнения операции
var tObject = new GetObjects()
{
//Параметры фильтрации объектов
tArg = new GetObjectsArg()
{
pattern = new OdsPattern()
},
tFilter = new OdsFilt()
{
limit = 1,
levels = -1,
includeRoot = false,
hideAllFolders = true,
hideEmptyFolders = true,
findInfo = new OdFindInfo()
{
active = true,
attribute = OdFindAttribute.Ident,
caseSensitive = false,
scanHiddenFolders = true,
scanNestedNamespaces = true,
text = id,
wholeWordsOnly = true
}
},
//Указание идентификатора объекта, среди дочерних объектов которого будет производиться поиск
tParent = new OdId()
{
id = mb.id + "!0" //0 - ключ корневой папки репозитория
}
};
//Получение списка объектов в соответствии с указанными параметрами отбора
var result = somClient.GetObjects(tObject);
//Проверяем список описаний и возвращаем первое найденное описание
//Если список пуст, то возвращаем Null
var ods = result.objects;
if (ods.its.Length > 0)
return ods.its[0];
else
return null;
}
См. также: