OpenRubResult OpenRub(OdId tObject, OpenRubArg tArg)
tObject. Моникёр объекта репозитория, являющегося базой данных временных рядов.
tArg. Параметры выполнения операции.
Операция OpenRub открывает базу данных временных рядов и возвращает контекст для работы с её структурой.
Для выполнения операции необходимо в поле tObject указать моникёр объекта, являющегося базой данных временных рядов, а в поле tArg указать параметры открытия. Моникёр объекта может быть получен при выполнении операции GetObjects. В поле tArg могут быть указаны значения параметров, которые будут переданы параметрическим объектам, и шаблон для извлечения метаданных. В шаблоне указывается та информация, которая должна быть получена при открытии.
Результатом работы операции будет моникёр открытого экземпляра базы данных временных рядов, а также метаданные, если при выполнении операции был задан шаблон tArg.metaGet. Дальнейшая работа со структурой базы данных временных рядов осуществляется с помощью операции GetRubMd. Также полученный моникёр используется в операции OpenHie для получения доступа к иерархии показателей, хранящихся в базе данных. Для закрытия открытого экземпляра базы данных временных рядов используйте операцию CloseRub.
Ниже приведён пример открытия базы данных временных рядов. В запросе передаётся моникёр объекта репозитория, являющегося базой данных временных рядов, и шаблон для получения информации по атрибутам и периоду базы данных временных рядов. В ответе приходит моникёр открытого экземпляра базы данных временных рядов и запрошенная информация. В примере C# используется функция FindObjectById, код которой приведен в примере «Получение описания объекта по его идентификатору».
{
"OpenRub" :
{
"tObject" :
{
"id" : "S1!M!5472"
},
"tArg" :
{
"args" :
{
"openForEdit" : "true"
},
"metaGet" :
{
"obInst" : "true",
"atts" : "true",
"period" : "true"
}
}
}
}
{
"OpenRubResult" :
{
"id" :
{
"id" : "S1!M!S!R1"
},
"meta" :
{
"obInst" :
{
"obDesc" :
{
"@ds" : "",
"@isShortcut" : "0",
"@isLink" : "0",
"@ver" : "5",
"@hf" : "0",
"i" : "TS_DB",
"n" : "БД временных рядов",
"k" : "5472",
"c" : "2822",
"p" : "5471",
"h" : "0",
"hasPrv" : "0",
"ic" : "0",
"trackElementDependents" : "0",
"isPermanent" : "1",
"isTemp" : "0"
},
"openArgs" : ""
},
"atts" :
{
"its" :
{
"it" :
[
{
"@hasMultipleValues" : "0",
"k" : "1",
"id" : "KEY",
"n" : "Ключ",
"vis" : "0",
"dt" : "2",
"predefined" : "1",
"nullable" : "0",
"primary" : "0",
"defaultValue" : "",
"dataDomain" : "0",
"isInHierarchyByDefault" : "0",
"orderInHierarchyByDefault" : "0"
},
{
"@hasMultipleValues" : "0",
"k" : "2",
"id" : "FACTOR",
"n" : "Факт",
"vis" : "0",
"dt" : "2",
"predefined" : "1",
"nullable" : "0",
"primary" : "0",
"defaultValue" : "",
"dataDomain" : "0",
"isInHierarchyByDefault" : "0",
"orderInHierarchyByDefault" : "0"
},
{
"@hasMultipleValues" : "0",
"k" : "3",
"id" : "REV",
"n" : "Ревизия",
"vis" : "0",
"dt" : "2",
"predefined" : "1",
"nullable" : "0",
"primary" : "0",
"defaultValue" : "",
"dataDomain" : "0",
"isInHierarchyByDefault" : "0",
"orderInHierarchyByDefault" : "0"
},
{
"@hasMultipleValues" : "0",
"k" : "4",
"id" : "DL",
"n" : "Период",
"vis" : "1",
"valuesObj" :
{
"@ds" : "",
"@isShortcut" : "0",
"@isLink" : "0",
"@ver" : "0",
"@hf" : "0",
"i" : "CALENDAR_LEVELS",
"n" : "Динамики",
"k" : "5482",
"c" : "1038",
"p" : "5472",
"h" : "0",
"hasPrv" : "0",
"ic" : "0",
"trackElementDependents" : "0"
},
"dt" : "2",
"predefined" : "1",
"nullable" : "0",
"primary" : "1",
"dimension" : "1",
"defaultValue" : "1",
"dataDomain" : "0",
"isInHierarchyByDefault" : "0",
"orderInHierarchyByDefault" : "0",
"filterInHierarchyByDefault" :
{
"k" : "5482",
"id" : "CALENDAR_LEVELS",
"n" : "Динамики",
"vis" : "1"
}
},
{
"@hasMultipleValues" : "0",
"k" : "5",
"id" : "UNIT",
"n" : "Единица измерения",
"vis" : "0",
"valuesObj" :
{
"@ds" : "",
"@isShortcut" : "0",
"@isLink" : "0",
"@ver" : "0",
"@hf" : "0",
"i" : "UNITS_D",
"n" : "Единицы Измерения",
"k" : "174",
"c" : "3076",
"p" : "159",
"h" : "0",
"hasPrv" : "0",
"ic" : "0",
"trackElementDependents" : "0"
},
"dt" : "2",
"predefined" : "1",
"nullable" : "1",
"primary" : "0",
"unitsObj" :
{
"@ds" : "",
"@isShortcut" : "0",
"@isLink" : "0",
"@ver" : "0",
"@hf" : "0",
"i" : "UNITS",
"n" : "Единицы измерения",
"k" : "5483",
"c" : "1033",
"p" : "5472",
"h" : "0",
"hasPrv" : "0",
"ic" : "0",
"trackElementDependents" : "0"
},
"defaultValue" : "",
"dataDomain" : "0",
"isInHierarchyByDefault" : "0",
"orderInHierarchyByDefault" : "0",
"filterInHierarchyByDefault" :
{
"k" : "174",
"id" : "UNITS_D",
"n" : "Единицы Измерения",
"vis" : "1"
}
},
{
"@hasMultipleValues" : "0",
"k" : "6",
"id" : "OBT",
"n" : "Объект",
"vis" : "0",
"dt" : "2",
"predefined" : "1",
"nullable" : "1",
"primary" : "0",
"defaultValue" : "",
"dataDomain" : "0",
"isInHierarchyByDefault" : "0",
"orderInHierarchyByDefault" : "0"
},
{
"@hasMultipleValues" : "0",
"k" : "7",
"id" : "MNEMO",
"n" : "Мнемоника",
"vis" : "0",
"dt" : "1",
"predefined" : "1",
"nullable" : "0",
"primary" : "0",
"defaultValue" : "",
"dataDomain" : "0",
"isInHierarchyByDefault" : "0",
"orderInHierarchyByDefault" : "0"
},
{
"@hasMultipleValues" : "0",
"k" : "8",
"id" : "DLT",
"n" : "Удален",
"vis" : "0",
"dt" : "6",
"predefined" : "1",
"nullable" : "0",
"primary" : "0",
"defaultValue" : "0",
"dataDomain" : "0",
"isInHierarchyByDefault" : "0",
"orderInHierarchyByDefault" : "0"
},
{
"@hasMultipleValues" : "0",
"k" : "9",
"id" : "COUNTRY",
"n" : "Страна",
"vis" : "1",
"valuesObj" :
{
"@ds" : "",
"@isShortcut" : "0",
"@isLink" : "0",
"@ver" : "5",
"@hf" : "0",
"i" : "COUNTRIES",
"n" : "Страны",
"k" : "208",
"c" : "3076",
"p" : "159",
"h" : "0",
"hasPrv" : "0",
"ic" : "0",
"trackElementDependents" : "0"
},
"dt" : "2",
"predefined" : "0",
"nullable" : "0",
"primary" : "1",
"dimension" : "1",
"defaultValue" : "",
"dataDomain" : "0",
"isInHierarchyByDefault" : "0",
"orderInHierarchyByDefault" : "0",
"filterInHierarchyByDefault" :
{
"k" : "208",
"id" : "COUNTRIES",
"n" : "Страны",
"vis" : "1"
}
}
]
}
},
"period" :
{
"startYear" : "1980",
"endYear" : "2020"
}
}
}
}
public static OpenRubResult OpenRub(MbId mb, string rubId)
{
var somClient = new SomPortTypeClient(); //Прокси-объект для выполнения операций
//Параметры выполнения операции
var tOpen = new OpenRub()
{
tArg = new OpenRubArg()
{
args = new RubOpenArgs()
{
openForEdit = true
},
//Шаблон, в соответствии с которым будут извлекаться метаданные
metaGet = new RubMdPattern()
{
atts = true
}
},
tObject = new OdId() { id = mb.id + "!" + FindObjectById(mb, rubId).k }
};
//Открытие базы данных временных рядов
var result = somClient.OpenRub(tOpen);
return result;
}
См. также: