...

Окно подтверждения из сценария

Тема в разделе "Разработчикам", создана пользователем Дмитрий Марков, 27 фев 2018.

  1. Добрый день.
    Есть ли возможность поднять из сценария окно подтверждения с текстом и двумя кнопками ДА, Нет. (аналогичное окну подтверждения на переходах) ?
    Заранее спасибо.
     
  2. akarimov

    akarimov Member

    Если надо принять решение, нужно определить кто это решение принимает, значит нужно разбить сценарий на 3 операции:
    1. Сценарий до
    2. Пользовательская задача с двумя переходами
    3. Сценарий после (2 штуки если надо каждый ответ обработать)
    Если нужно чтобы до закрытия пользовательской задачи сотрудник имел возможность сказать да/нет то это точно возможно в коммерческих версиях (настройки переходов) насчет CE не уверен
     
  3. kael

    kael New Member

    Если не трудно, опишите как это сделать. Проблема возникает периодически, нужно запретить пользователю закрывать задачу до выполнения каких либо действий,а обязательность полей не всегда помогает.
     
  4. arkarimov

    arkarimov Member

    Если версия CE то запретить пользователю задачу выполнить вы не можете, вы можете после задачи поставить безусловный шлюз, в нем проверку, если введенные данные не устраивают - вернуть обратно пользователю, желательно с каким то комментом почему вернули. Т.е. он будет получать задачу до тех пор, пока не ответит так, как устраивает программу) - см. пример 1
    Если коммерческая версия то гораздо проще, можно в настройках переходов вставить сценарий и в нем обрабатывать пользовательский ввод и либо разрешать задачу закрыть, либо нет (пример 2)
     

    Вложения:

    1 это нравится
  5. kael

    kael New Member

    Спасибо, со сценарием на переходах разобрался (у меня платная версия). А как из сценария вызвать окно подтверждения, можно пример кода? Пока только приходит мысль использовать информационное сообщение форме.
     
  6. arkarimov

    arkarimov Member

    Если именно из сценария -то никак. Повторюсь косвенный вариант это создать задачу после сценария если она требует пользовательских действий.
    Можно вставив сценарий на переходе запретить пользователю закрывать задачу, пока он каких то важных действий не выполнит, и об этом написать информационное сообщение на форме (используя Form.Notifier или Form.Validation)
    Возможно следует исходить из кейса, в чем конкретно задача - зачем это понадобилось? На практике подобные вещи нужны были только в отдельных случаях, когда для перехода А обязательно заполнять одни поля, а для перехода Б - другие
     
  7. also28

    also28 New Member

    Подниму тему, пример: пользователь заполняет поля задачи, скажем время наблюдения и температура датчика, и закрывает задачу кнопкой Готово. При этом, если температура датчика выше определенного значения, скажем, 50 градусов, то необходимо запретить пользователю закрывать задачу - скрыть кнопку Готово, например, или выдавать form.Notify при нажатии на Готово, и не переводить задачу далее по процессу.

    верно ли я понимаю, что при использовании варианта 2 из сообщений выше, нет простой возможности блокировать закрытие задачи пользователем, а можно лишь вернуть задачу повторно с комментарием?
     
  8. arkarimov

    arkarimov Member

    Если версия коммерческая то можно проверять выполнение задачи по кнопке, повесив сценарий на кнопку завершения задачи, и запретить там закрывать её пока пользователь не сделает что-то важное. Про CE не знаю, может там такой возможности и нет
     
  9. also28

    also28 New Member

    версия коммерческая. можете подсказать пример скрипта? kb пролистал, не нашел сходу
     
  10. arkarimov

    arkarimov Member

    Ну например в статье в которой описано это обновление
    Искать по слову Notifier или по фразе "Добавлена возможность повесить сценарий на определённый переход" читать от неё и пока не станет понятна идея.
     
    1 это нравится
  11. also28

    also28 New Member

    Спасибо! вопрос решен.
    Если вдруг у кого-то еще появится такая же задача, то подключайте скрипт на переход, и в скрипте описывайте условия, например:

    Код:
    public virtual bool checkBeforeNegotiation (Context context, EleWise.ELMA.Model.Views.FormViewBuilder<Context> form)
            {
                if(context.Amount1 > context.Amount2)
                {
                    return true;
                }
                else
                {
                    //не пропускать заявку, передать причину в сообщении
                    form.Notifier.Information("Значения меньше плановых!");
                    return false;
                }
            }
     

Поделиться: