ICubeMetaUpdateEx.PrerequisiteObjects

Синтаксис Fore

PrerequisiteObjects: ICubeMetaUpdateAdditionalObjects;

Синтаксис Fore.NET

PrerequisiteObjects: Prognoz.Platform.Interop.Cubes.ICubeMetaUpdateAdditionalObjects;

Описание

Свойство PrerequisiteObjects возвращает коллекцию объектов, которые должны быть среплицированы перед репликацией базы данных временных рядов.

Комментарии

Объекты, указанные в данной коллекции, реплицируются перед базой данных временных рядов, поэтому не должны зависеть от неё. Данная коллекция предназначена для репликации различных справочников НСИ и других внешних объектов, от которых может зависеть база данных временных рядов или ее содержимое.

Пример Fore

Для выполнения примера предполагается наличие в репозитории базы данных временных рядов с идентификатором «FC». В данной базе создан атрибут, ссылающийся на справочник НСИ «Users». Данный справочник хранится в репозитории НСИ с идентификатором «NSI_1».

Sub UserProc;
Var
    Mb: IMetabase;
    Update: ICubeMetaUpdateEx;
    Rubr: IRubricator;
    Dict: IMetabaseObjectDescriptor;
    Prerequisite: ICubeMetaUpdateAdditionalObjects;
    PrerequisiteDict: ICubeMetaUpdateAdditionalObject;
    DataSettings: ICubeMetaUpdateAdditionalObjectDataSettings;
Begin
    Mb := MetabaseClass.Active;
    Update := New CubeMetaUpdateClass.Create As ICubeMetaUpdateEx;
    // Реплицируемая база данных временных рядов
    Rubr := Mb.ItemById("FC").Bind As IRubricator;
    Update.Rubricator := Rubr;
    // Реплицировать вместе с данными
    Update.CopyData := True;
    // Объекты, реплицируемые перед базой
    Prerequisite := Update.PrerequisiteObjects;
    Dict := Mb.ItemByIdNamespace("Users", Mb.ItemById("NSI_1").Key);
    PrerequisiteDict := Prerequisite.Add(Dict);
    // Реплицировать справочник НСИ вместе с дочерними объектами
    // (схемы отметок, группы элементов, альтернативные иерархии);
    PrerequisiteDict.IncludeChildren := True;
    // Параметры репликации данных
    DataSettings := PrerequisiteDict.DataSettings;
    DataSettings.BatchMode := ObjectUpdateDataBatchMode.InsertOnly;
    DataSettings.IncludeData := True;
    DataSettings.ReferenceConstraintsHandling := UpdateDataConstraintsHandlingType.ErrorBreak;
    DataSettings.UpdateRdsSequence := True;
    Update.Save("c:\Fc.zip");
End Sub UserProc;

При выполнении примера будет среплицирована и сохранена в файл «Fc.zip» база данных временных рядов. В копию будет включен справочник НСИ, от которого зависит данная база. Справочник будет среплицирован со всеми дочерними объектами. Также для справочника будут определены параметры репликации данных. Так как база данных временных рядов зависит от справочника, то при создании копии базы сначала будет производиться репликация справочника НСИ. Репликация справочника и базы будет производиться вместе с данными. При репликации будет обновлено значение системной последовательности репозитория.

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Public Shared Sub Main(Params: StartParams);
Var
    Mb: IMetabase;
    Update: ICubeMetaUpdateEx;
    Rubr: IRubricator;
    Dict: IMetabaseObjectDescriptor;
    Prerequisite: ICubeMetaUpdateAdditionalObjects;
    PrerequisiteDict: ICubeMetaUpdateAdditionalObject;
    DataSettings: ICubeMetaUpdateAdditionalObjectDataSettings;
Begin
    Mb := Params.Metabase;
    Update := New CubeMetaUpdateClass() As ICubeMetaUpdateEx;
    // Реплицируемая база данных временных рядов
    Rubr := Mb.ItemById["FC"].Bind() As IRubricator;
    Update.Rubricator := Rubr;
    // Реплицировать вместе с данными
    Update.CopyData := True;
    // Объекты, реплицируемые перед базой
    Prerequisite := Update.PrerequisiteObjects;
    Dict := Mb.ItemByIdNamespace["Users", Mb.ItemById["NSI_1"].Key];
    PrerequisiteDict := Prerequisite.Add(Dict);
    // Реплицировать справочник НСИ вместе с дочерними объектами
    // (схемы отметок, группы элементов, альтернативные иерархии);
    PrerequisiteDict.IncludeChildren := True;
    // Параметры репликации данных
    DataSettings := PrerequisiteDict.DataSettings;
    DataSettings.BatchMode := ObjectUpdateDataBatchMode.obupdabamoInsertOnly;
    DataSettings.IncludeData := True;
    DataSettings.ReferenceConstraintsHandling := UpdateDataConstraintsHandlingType.udchtErrorBreak;
    DataSettings.UpdateRdsSequence := True;
    Update.Save("c:\Fc.zip");
End Sub;

См. также:

ICubeMetaUpdateEx