IMetabaseUpdateContext.RegisterAttributeIdChange

Синтаксис Fore

RegisterAttributeIdChange(newObjKey: Integer;
                         AttributeType: MetabaseUpdateRemappingType;
                         oldAttributeId: String;
                         newAttributeId: String);

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

RegisterAttributeIdChange(newObjKey: uinteger;
                         AttributeType: Prognoz.Platform.Interop.Metabase.MetabaseUpdateRemappingType;
                         oldAttributeId: string;
                         newAttributeId: string);

Параметры

newObjKey. Ключ объекта репозитория после обновления;

AttributeType. Тип повторного сопоставления атрибутов. Используйте значения MetabaseUpdateRemappingType.MetafactsAttribute и MetabaseUpdateRemappingType.MetavalsAttribute;

oldAttributeId. Идентификатор атрибута объекта до обновления;

newAttributeld. Идентификатор атрибута объекта после обновления.

Описание

Метод RegisterAttributeIdChange переопределяет идентификаторы атрибутов объекта обновления.

Комментарии

Метод RegisterAttributeIdChange используется для изменения привязки атрибутов объектов экспорта/импорта в базе данных временных рядов путем замены их идентификаторов.

Пример Fore

Для выполнения примера в репозитории необходимо:

Добавьте ссылки на системную сборку Metabase.

Sub UserProc;
Var
    MB: IMetabase;
    Update: IMetabaseUpdate;
    Context: IMetabaseUpdateContext;
Begin
    // Получим репозиторий
    MB := MetabaseClass.Active;
    // Создадим обновление из файла
    Update := Mb.CreateUpdate;
    Update.LoadFromFileNF("C:\AttrRemap.pefx", UpdateLoadMode.Replace);
    Context := Update.CreateUpdateContext;
    // Переименуем идентификаторы атрибутов рядов базы данных временных рядов
    Context.RegisterAttributeIdChange(39512, MetabaseUpdateRemappingType.MetafactsAttribute, "ATTR2""ATTR1");
    Context.RegisterAttributeIdChange(39512, MetabaseUpdateRemappingType.MetafactsAttribute, "ATTR1""ATTR2");
    // Применим обновление
    Update.ApplyEx(Null, Context);
End Sub UserProc;

После выполнения примера в репозитории будет обновлена база данных временных рядов с указанным ключом, будут переименованы указанные идентификаторы атрибутов.

Пример Fore.NET

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

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    Update: IMetabaseUpdate;
    Context: IMetabaseUpdateContext;
Begin
    // Получим репозиторий
    MB := Params.Metabase;
    // Создадим обновление из файла
    Update := Mb.CreateUpdate();
    Update.LoadFromFileNF("C:\AttrRemap.pefx", UpdateLoadMode.ulmReplace);
    Context := Update.CreateUpdateContext();
    // Переименуем идентификаторы атрибутов рядов базы данных временных рядов
    Context.RegisterAttributeIdChange(39512, MetabaseUpdateRemappingType.murtMetafactsAttribute, "ATTR2""ATTR1");
    Context.RegisterAttributeIdChange(39512, MetabaseUpdateRemappingType.murtMetafactsAttribute, "ATTR1""ATTR2");
    // Применим обновление
    Update.ApplyEx(Null, Context);
End Sub;

См. также:

IMetabaseUpdateContext