IMetabase.FetchItemById

Синтаксис

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».

См. также:

IMetabase