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;
После выполнения примера в окне консоли среды разработки будет выведено наименование внутреннего объекта с идентификатором «Obj1».
Для выполнения примера необходимо наличие в репозитории внутреннего объекта с идентификатором «Obj1». Подключите ссылку на системную сборку Metabase.
Imports Prognoz.Platform.Interop.Metabase;
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».
См. также: