ICubeMetaLoaderLogEntry.ValueRecordNumber

Синтаксис Fore

ValueRecordNumber: Integer;

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

ValueRecordNumber: integer;

Описание

Свойство ValueRecordNumber возвращает номер ошибочной записи уровня наблюдения.

Комментарии

Свойство возвращает значение «-1», если ошибочная запись относится к уровню фактов.

Пример Fore

Для выполнения примера предполагается наличие баз данных временных рядов с идентификаторами «OBJ_RUBRICATOR» и «OBJ_RUBRICATOR_SOUR». В данных базах должны присутствовать атрибут показателей «COUNTRY» и атрибут наблюдения «COMMENT». Добавьте ссылки на системные сборки «Metabase», «Cubes», «Dimensions».

Sub UserProc;
Var
    MB: IMetabase;
    Copier: ICubeMetaCopier;
    Bindings: ICubeMetaCopierBindings;
    Binding: ICubeMetaCopierBinding;
    Log: ICubeMetaLoaderLog;
    LogEnt: ICubeMetaLoaderLogEntry;
    i: Integer;
Begin
    MB := MetabaseClass.Active;
    Copier := New CubeMetaCopierClass.Create;
    // Параметры копирования
    Copier.CalendarLevelSet := DimCalendarLevelSet.Year;
    Copier.DestinationRubricator := MB.ItemById("OBJ_RUBRICATOR").Bind As IRubricator;
    Copier.SourceRubricator := MB.ItemById("OBJ_RUBRICATOR_SOUR").Bind As IRubricator;
    Copier.ImportObjectKey := MB.ItemById("OBJ_RUBRICATOR").Key;
    Copier.NewRevisionName := "Копирование показателей";
    Bindings := Copier.Bindings;
    // Привязка атрибута COUNTRY
    Binding := Bindings.Add;
    Binding.BindingType := CubeMetaCopierBindingType.Attribute;
    Binding.DestinationAttribute := "COUNTRY";
    Binding.SourceAttribute := "COUNTRY";
    // Привязка атрибута COMMENT
    Binding := Bindings.Add;
    Binding.BindingType := CubeMetaCopierBindingType.ValueAttribute;
    Binding.DestinationAttribute := "COMMENT";
    Binding.SourceAttribute := "COMMENT";
    // Копирование показателей и вывод отчета
    Copier.Copy;
    Log := Copier.Log;
    For i := 0 To Log.Count - 1 Do
        LogEnt := Log.Item(i);
        Debug.WriteLine("Номер записи: " + LogEnt.RecordNumber.ToString);
        Debug.WriteLine("Дата создания записи: " + LogEnt.DateBegin.ToString);
        Debug.WriteLine("Поле: " + LogEnt.Field);
        If LogEnt.IsWarning Then
            Debug.WriteLine("Предупреждение: " + LogEnt.ErrorMessage);
        End If;
        If LogEnt.IsError Then
            Debug.WriteLine("Ошибка: " + LogEnt.ErrorMessage);
            Debug.WriteLine("Код ошибки: " + LogEnt.ErrorCode.ToString);
            Debug.WriteLine("Номер ошибочной записи уровня наблюдения: " + LogEnt.ValueRecordNumber.ToString);
        End If;
        Debug.WriteLine("----");
    End For;
End Sub UserProc;

После выполнения примера показатели из базы «OBJ_RUBRICATOR_SOUR» будут скопированы в базу «OBJ_RUBRICATOR». В окно консоли будет выведен отчет о результатах копирования.

Пример Fore.NET

Для выполнения примера предполагается наличие баз данных временных рядов с идентификаторами «OBJ_RUBRICATOR» и «OBJ_RUBRICATOR_SOUR». В данных базах должны присутствовать атрибут показателей «COUNTRY» и атрибут наблюдения «COMMENT».

Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Dimensions;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    Copier: ICubeMetaCopier;
    Bindings: ICubeMetaCopierBindings;
    Binding: ICubeMetaCopierBinding;
    Log: ICubeMetaLoaderLog;
    LogEnt: ICubeMetaLoaderLogEntry;
    i: Integer;
Begin
    MB := Params.Metabase;
    Copier := New CubeMetaCopierClass.Create();
    // Параметры копирования
    Copier.CalendarLevelSet := DimCalendarLevelSet.dclsYear;
    Copier.DestinationRubricator := MB.ItemById["OBJ_RUBRICATOR"].Bind() As IRubricator;
    Copier.SourceRubricator := MB.ItemById["OBJ_RUBRICATOR_SOUR"].Bind() As IRubricator;
    Copier.ImportObjectKey := MB.ItemById["OBJ_RUBRICATOR"].Key;
    Copier.NewRevisionName := "Копирование показателей";
    Bindings := Copier.Bindings;
    // Привязка атрибута COUNTRY
    Binding := Bindings.Add();
    Binding.BindingType := CubeMetaCopierBindingType.cmcbtAttribute;
    Binding.DestinationAttribute := "COUNTRY";
    Binding.SourceAttribute := "COUNTRY";
    // Привязка атрибута COMMENT
    Binding := Bindings.Add();
    Binding.BindingType := CubeMetaCopierBindingType.cmcbtValueAttribute;
    Binding.DestinationAttribute := "COMMENT";
    Binding.SourceAttribute := "COMMENT";
    // Копирование показателей и вывод отчета
    Copier.Copy();
    Log := Copier.Log;
    For i := 0 To Log.Count - 1 Do
        LogEnt := Log.Item[i];
        System.Diagnostics.Debug.WriteLine("Номер записи: " + LogEnt.RecordNumber.ToString());
        System.Diagnostics.Debug.WriteLine("Дата создания записи: " + LogEnt.DateBegin.ToString());
        System.Diagnostics.Debug.WriteLine("Поле: " + LogEnt.Field);
        If LogEnt.IsWarning Then
            System.Diagnostics.Debug.WriteLine("Предупреждение: " + LogEnt.ErrorMessage);
        End If;
        If LogEnt.IsError Then
            System.Diagnostics.Debug.WriteLine("Ошибка: " + LogEnt.ErrorMessage);
            System.Diagnostics.Debug.WriteLine("Код ошибки: " + LogEnt.ErrorCode.ToString());
            System.Diagnostics.Debug.WriteLine("Номер ошибочной записи уровня наблюдения: " + LogEnt.ValueRecordNumber.ToString());
        End If;
        System.Diagnostics.Debug.WriteLine("----");
    End For;
End Sub;

После выполнения примера показатели из базы «OBJ_RUBRICATOR_SOUR» будут скопированы в базу «OBJ_RUBRICATOR». В окно консоли будет выведен отчет о результатах копирования.

См. также:

ICubeMetaLoaderLogEntry