FetchItemById(Id: String; [Namespace_:Integer = 0;][Options: Integer = 0]): IMetabaseObjectDescriptor;
FetchItemById(Id: string; Namespace_: uinteger; Options: integer): Prognoz.Platform.Interop.Metabase.IMetabaseObjectDescrptor;
Id. Идентификатор внутреннего объекта;
Namespace_. Пространство имён, в котором расположены указанные идентификаторы;
Options. Настройки типа отложенной загрузки описаний по идентификаторам.
Метод FetchItemByld возвращает описание объекта или объекта, для которого установлен признак отложенной загрузки описания, по идентификатору.
Примером внутреннего объекта с отложенной загрузкой описания является внутренняя модель цепочки расчета метамодели. Пример создания внутренней модели приведен в описании метода IMsCalculationChainEntries.AddExclusiveModel.
Тип связанных объектов, для которых необходимо загрузить описание, указывается в параметре Options. Если в памяти компьютера имеются кэшированные описания, то метод загрузит их оттуда.
Если для репозитория используется отложенная загрузка описаний, то при выполнении метода описание объекта будет кэшировано в памяти. При последующих обращениях описание будет взято из кэша компьютера. Однако для объектов, для которых установлен признак IMetabaseObjectDescriptor.IsDeferred, кэширование описаний производиться не будет. Работа с этими объектами будет производиться с помощью методов Fetch*.
Для выполнения примера необходимо наличие в репозитории внутреннего объекта с идентификатором «Obj1».
Подключите ссылку на системную сборку Metabase.
Sub UserProc;
Var
MB: IMetabase;
MDesc: IMetabaseObjectDescriptor;
Begin
MB := MetabaseClass.Active;
MDesc := MB.FetchItemById("Obj1");
If MDesc <> Null Then
Debug.WriteLine(MDesc.Name);
End If;
End Sub UserProc;
Public
Sub Main(Params: StartParams);
Var
MB: IMetabase;
MDesc: IMetabaseObjectDescriptor;
Begin
MB := Params.Metabase;
MDesc := MB.FetchItemById("Obj1");
If MDesc <> Null Then
System.Diagnostics.Debug.WriteLine(MDesc.Name);
End If;
End Sub;
После выполнения примера в окне консоли среды разработки будет выведено наименование внутреннего объекта с идентификатором «Obj1».
См. также: