...

Добавить пользователя в ELMA используя SQL

Тема в разделе "Разработчикам", создана пользователем dimich1978, 28 фев 2020.

  1. dimich1978

    dimich1978 Member

    Доброго всем вечера.
    Мне необходимо добавить массово пользователей в таблицу User. Есть другая таблицы в которой есть только ФИО и вот по фио мне нужно будет отобрать тех, кого
    INSERT INTO [user] ([status], username, [password], firstname, middleName,lastname, fullname, Lang,issystemlocal,workplace)
    values (0,'TEST_2208_02_20','e10adc3949ba59abbe56e057f20f883e','Тестович','Тест','Тестовый','Тестовый Тест Тестович','ru-RU',1,1)
    Добавляется.
    Но ID =0 и Uid = 00000000-0000-0000-0000-000000000000
    есть ли вариант , как корректно добавить пользователя?
    Спасибо.
     
  2. pushkarev

    pushkarev Active Member

    Я бы не рекомендовал добавлять пользователей ELMA напрямую через SQL, лучше это сделать через сценарий в ELMA используя готовый API, в этом случае ELMA сама пропишет все необходимые связи и идентификаторы, для корректной работы. В базе знаний есть пример импорта пользователей из текстового файла, вы можете его адаптировать под свою задачу: https://www.elma-bpm.ru/KB/article-5804.html
     
  3. dimich1978

    dimich1978 Member

    Алексей , спасибо . Указано "Необходимо учитывать, что количество загружаемых пользователей не должно превышать число пользователей, указанное в лицензии."
    Почему? Как это влияет на лицензии, ведь есть лицензии на вход, на количество Юзеров не влияет. Или просто есть лицензирование по кол-ву пользователей?
     
  4. dimich1978

    dimich1978 Member

    Подскажите, куда нужно выкладывать файл. Выдает ошибку.
    System.InvalidOperationException: Не удалось возобновить или запустить экземпляр процесса ---> EleWise.ELMA.Exceptions.ScriptExecuteException: Ошибка исполнения сценария в процессе "Из справочника ОК в Users" (ID экземпляра: 257568): Устройство не готово.
    ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.IO.IOException: Устройство не готово.
     
  5. dimich1978

    dimich1978 Member

    Кидаю в корень диска С, диска Д нет. В Итоге
    System.InvalidOperationException: Не удалось возобновить или запустить экземпляр процесса ---> EleWise.ELMA.Exceptions.ScriptExecuteException: Ошибка исполнения сценария в процессе "Из справочника ОК в Users" (ID экземпляра: 258375): Index was outside the bounds of the array. ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.IndexOutOfRangeException: Index was outside the bounds of the array.
    at EleWise.ELMA.Model.Scripts.P_IzSpravochnikaOKVUsers_Scripts.Add_Users(P_IzSpravochnikaOKVUsers context) in c:\Windows\Temp\ELMA\ProcessScripts_d9f1503ff3f64eb4a8e513f5f0d3e8d4.cs:line 72
     
  6. dimich1978

    dimich1978 Member

    Я понимаю, что ошибка в том, что массив вышел за диапазон. Но. Файл с базы знаний скачал, код вставил в процесс один в один. Ошибка вылезает все равно.Index was outside the bounds of the array.
     
  7. pushkarev

    pushkarev Active Member

    А покажите на какую 72 строчку, чтобы понимать на что ругается
     
  8. dimich1978

    dimich1978 Member

    вот это 72 строка UserNew.MiddleName= stfio[2]; // Отчество
    Нашел пример из Экселя в базе знаний. Там все нормально. Все работает корректно.
     
  9. pushkarev

    pushkarev Active Member

    аа, ну тогда можно по экселевскому примеру делать. А по поводу ограничения числа пользователей, есть 2 модели лицензирования: конкурентные и именные. Второй вариант лицензирования ограничивает количество активных (не заблокированных) пользователей в системе. А по умолчанию пользователи заводятся активными, поэтому и пишут про такое ограничение. Заблокированных может быть сколько угодно.
     

Поделиться: