PrerequisiteObjects: ICubeMetaUpdateAdditionalObjects;
PrerequisiteObjects: Prognoz.Platform.Interop.Cubes.ICubeMetaUpdateAdditionalObjects;
Свойство PrerequisiteObjects возвращает коллекцию объектов, которые должны быть среплицированы перед репликацией базы данных временных рядов.
Объекты, указанные в данной коллекции, реплицируются перед базой данных временных рядов, поэтому не должны зависеть от неё. Данная коллекция предназначена для репликации различных справочников НСИ и других внешних объектов, от которых может зависеть база данных временных рядов или ее содержимое.
Для выполнения примера предполагается наличие в репозитории базы данных временных рядов с идентификатором «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.
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;
См. также: