RegisterAttributeIdChange(newObjKey: Integer;
AttributeType:
MetabaseUpdateRemappingType;
oldAttributeId:
String;
newAttributeId:
String);
RegisterAttributeIdChange(newObjKey: uinteger;
AttributeType:
Prognoz.Platform.Interop.Metabase.MetabaseUpdateRemappingType;
oldAttributeId:
string;
newAttributeId:
string);
newObjKey. Ключ объекта репозитория после обновления;
AttributeType. Тип повторного сопоставления атрибутов. Используйте значения MetabaseUpdateRemappingType.MetafactsAttribute и MetabaseUpdateRemappingType.MetavalsAttribute;
oldAttributeId. Идентификатор атрибута объекта до обновления;
newAttributeld. Идентификатор атрибута объекта после обновления.
Метод RegisterAttributeIdChange переопределяет идентификаторы атрибутов объекта обновления.
Метод RegisterAttributeIdChange используется для изменения привязки атрибутов объектов экспорта/импорта в базе данных временных рядов путем замены их идентификаторов.
Для выполнения примера в репозитории необходимо:
наличие базы данных временных рядов. База данных временных рядов имеет ключ «39512». Она содержит два добавленных атрибута рядов. Идентификаторы атрибутов «ATTR1» и «ATTR2»;
наличие файла обновления с наименованием «AttrRemap.pefx» в корне диска C. Данный файл является обновлением для указанной выше базы данных временных рядов.
Добавьте ссылки на системную сборку 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.
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;
См. также: