IRdsUniqueKeys.Add

Синтаксис Fore

Add: IRdsUniqueKey;

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

Add(): Prognoz.Platform.Interop.Rds.IRdsUniqueKey;

Описание

Метод Add создает новый уникальный ключ справочника НСИ.

Пример Fore

Для выполнения примера в репозитории предполагается наличие репозитория НСИ с идентификатором «RDS_REPO», содержащего справочник НСИ с идентификатором «MDM_DICT».

Добавьте ссылки на системные сборки: Dal, Metabase, Rds.

Sub UserProc;
Var
    MB: IMetabase;
    MDMKey: Integer;
    MObj: IMetabaseObject;
    Dict: IRdsDictionary;
    Attrs: IRdsAttributes;
    Attr: IRdsAttribute;
    UniqKeys: IRdsUniqueKeys;
    UniqKey: IRdsUniqueKey;
Begin
    MB := MetabaseClass.Active;
    // Получаем справочник НСИ
    MDMKey := MB.ItemById("RDS_REPO").Key;
    MObj := MB.ItemByIdNamespace("MDM_DICT", MDMKey).Edit;
    Dict := MObj As IRdsDictionary;
    // Получаем атрибуты справочника
    Attrs := Dict.Attributes;
    // Получаем коллекцию уникальных ключей
    UniqKeys := Dict.UniqueKeys;
    // Создаем атрибут справочника
    Attr := Attrs.Add;
    Attr.DataType := DbDataType.String;
    Attr.Id := "ITN";
    Attr.Name := "ИНН";
    // Создаем уникальный ключ на основе созданного атрибута
    UniqKey := UniqKeys.Add;
    UniqKey.Id := "UNIKKEY_ITN";
    UniqKey.Name := "Уникальный ключ по ИНН";
    UniqKey.Contains(Attr) := True;
    // Сохраняем изменения
    MObj.Save;
End Sub UserProc;

После выполнения примера в справочнике НСИ будет создан пользовательский атрибут. По данному атрибуту будет создан уникальный ключ справочника НСИ.

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Dal;
Imports Prognoz.Platform.Interop.Rds;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    MDMKey: uinteger;
    MObj: IMetabaseObject;
    Dict: IRdsDictionary;
    Attrs: IRdsAttributes;
    Attr: IRdsAttribute;
    UniqKeys: IRdsUniqueKeys;
    UniqKey: IRdsUniqueKey;
Begin
    MB := Params.Metabase;
    // Получаем справочник НСИ
    MDMKey := MB.ItemById["RDS_REPO"].Key;
    MObj := MB.ItemByIdNamespace["MDM_DICT_46586", MDMKey].Edit();
    Dict := MObj As IRdsDictionary;
    // Получаем атрибуты справочника
    Attrs := Dict.Attributes;
    // Получаем коллекцию уникальных ключей
    UniqKeys := Dict.UniqueKeys;
    // Создаем атрибут справочника
    Attr := Attrs.Add();
    Attr.DataType := DbDataType.ddtString;
    Attr.Id := "ITN";
    Attr.Name := "ИНН";
    // Создаем уникальный ключ на основе созданного атрибута
    UniqKey := UniqKeys.Add();
    UniqKey.Id := "UNIKKEY_ITN";
    UniqKey.Name := "Уникальный ключ по ИНН";
    UniqKey.Contains[Attr] := True;
    // Сохраняем изменения
    MObj.Save();
End Sub;

См. также:

IRdsUniqueKeys