IRdsDictionaryInstance.CreateBatch

Синтаксис Fore

CreateBatch(BatchType: RdsDictionaryBatchType): IRdsDictionaryBatch;

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

CreateBatch(BatchType: Prognoz.Platform.Interop.Rds.RdsDictionaryBatchType): Prognoz.Platform.Interop.Rds.IRdsDictionaryBatch;

Параметры

BatchType. Тип пакета элементов.

Описание

Метод CreateBatch создает пакет элементов справочника НСИ.

Комментарии

Пакет предназначен для выполнения каких-либо действий над всеми элементами в пакете одновременно.

Параметр BatchType не может принимать значение Null.

Пример Fore

Для выполнения примера предполагается наличие репозитория НСИ с идентификатором «MDM». Данный репозиторий содержит версионный справочник НСИ с ручным управлением периодами и идентификатором «DICT».

Добавьте  ссылки на системные сборки «Metabase» и «Rds».

Sub UserProc;
Var
    mb: IMetabase;
    RdrRepoDescr: IMetabaseObjectDescriptor;
    RdsDictObj: IMetabaseObject;
    DictInst: IRdsDictionaryInstance;
    DictBatch: IRdsDictionaryBatch;
    DelBatch: IRdsDictionaryBatchDelete;
Begin
    mb := MetabaseClass.Active;
    // Получаем репозиторий НСИ
    RdrRepoDescr := mb.ItemById("MDM");
    // Получаем справочник
    RdsDictObj := mb.ItemByIdNamespace("DICT", RdrRepoDescr.Key).Edit;
    DictInst := RdsDictObj.Open(NullAs IRdsDictionaryInstance;
    // Создаем пакет для удаления элементов
    DictBatch := DictInst.CreateBatch(RdsDictionaryBatchType.Delete);
    If DictBatch.BatchType = RdsDictionaryBatchType.Delete Then
        DelBatch := DictBatch As IRdsDictionaryBatchDelete;
        // Задаем дату окончания действия для значений элементов
        DelBatch.CloseDate := DateTime.Parse("20.07.2013");
    End If;
    // Выполняем удаление элементов и выводим результат в окно консоли
    Debug.WriteLine("Число обработанных элементов: " + DelBatch.Execute.ToString);
    Debug.WriteLine("Число удаленных элементов: " + DelBatch.Count.ToString);
    RdsDictObj.Save;
End Sub UserProc;

Результат выполнения примера: создан пакет для удаления элементов, задана дата окончания действия для значений элементов. Действие над пакетом элементов будет выполнено. В окно консоли будет выведено число обработанных и удаленных элементов.

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Rds;

Public Shared Sub Main(Params: StartParams);
Var
    mb: IMetabase;
    RdrRepoDescr: IMetabaseObjectDescriptor;
    RdsDictObj: IMetabaseObject;
    DictInst: IRdsDictionaryInstance;
    DictBatch: IRdsDictionaryBatch;
    DelBatch: IRdsDictionaryBatchDelete;
Begin
    mb := Params.Metabase;
    // Получаем репозиторий НСИ
    RdrRepoDescr := mb.ItemById["MDM"];
    // Получаем справочник
    RdsDictObj := mb.ItemByIdNamespace["DICT", RdrRepoDescr.Key].Edit();
    DictInst := RdsDictObj.Open(NullAs IRdsDictionaryInstance;
    // Создаем пакет для удаления элементов
    DictBatch := DictInst.CreateBatch(RdsDictionaryBatchType.rdbtDelete);
    If DictBatch.BatchType = RdsDictionaryBatchType.rdbtDelete Then
        DelBatch := DictBatch As IRdsDictionaryBatchDelete;
        // Задаем дату окончания действия для значений элементов
        DelBatch.CloseDate := DateTime.Parse("20.07.2013");
    End If;
    // Выполняем удаление элементов и выводим результат в окно консоли
    System.Diagnostics.Debug.WriteLine("Число обработанных элементов: "
        + DelBatch.Execute().ToString());
    System.Diagnostics.Debug.WriteLine("Число удаленных элементов: "
        + DelBatch.Count.ToString());
    RdsDictObj.Save();
End Sub;

См. также:

IRdsDictionaryInstance