...

Параллельное согласование

Тема в разделе "Вопросы по функционалу", создана пользователем Turuhansky, 14 май 2020.

  1. Turuhansky

    Turuhansky Member

    Добрый день. Измучился, прошу совета.
    Есть задача сделать параллельное согласование на некоммерческой версии elma.
    На приложенной схеме показано:
    1.Готовый документ направляется на согласование одновременно двум заместителям через параллельный шлюз.
    2.Каждый из них может одобрить документ или отказать, оставив попутно комментарий для отказа. Для этого используется переменная "текст".
    3.Всё это собирается в закрывающем параллельном шлюзе и далее проходит проверку условий в исключающем шлюзе. Оттуда уже либо на утверждение, либо на доработку.

    И вот вроде бы всё работает. Если согласовали оба зама, уходит на утверждение. Если отказали оба или один из них, уходит на доработку. А инициатор видит комментарий с пояснениями.

    Проблема в том, что после доработки, даже если у обоих замов нет замечаний, документ всё равно уходит обратно на доработку. Всё потому, что в блоках с комментариями для отказа остается ранее введенный текст. Ну и соответственно исключающий шлюз воспринимает его как команду на возврат.

    Может я вообще не туда копаю. Но может есть способ как-то обнулять значения в комментариях после того, как всё прошло через исключающий шлюз? Хотя если их обнулить, то инициатор вместо пояснений во время возврата увидит шиш с маслом. Тогда и толку нет.
     

    Вложения:

    • СЗ2.jpg
      СЗ2.jpg
      Размер файла:
      267 КБ
      Просмотров:
      29
    Последнее редактирование: 14 май 2020
  2. Leonid

    Leonid New Member

  3. Turuhansky

    Turuhansky Member

    Возможности обойтись условиями перехода в исключающем шлюзе нет? Жаль. Ну пускай даже это будет сценарий в промежутке между подготовкой документа и согласованием, который вычистит значение переменной "текст" прежде чем документ попадет на согласование. На этом этапе комментарии всё равно значения не имеют. Я искал, но всё не то.
     
    Последнее редактирование: 14 май 2020
  4. Erzhan

    Erzhan New Member

  5. Turuhansky

    Turuhansky Member

    Добрый день. Для этого в дизайнере должен быть блок "Документооборот"? Я его не вижу. Он разве есть в бесплатной версии? Вроде есть в старых версиях, если не ошибся, но там ограничение на количество пользователей. У нас их пока что около 60, а будет больше.
     

    Вложения:

  6. pushkarev

    pushkarev Active Member

    Лучше всего сделать следующим образом:
    Завести 2 переменные типа да/нет, для хранения результатов согласования (для каждого согласующего своя переменная). После согласования на каждой из веток ставится скрипт, который соответственно пропишет в свою переменную да (если согласовано) или нет (если не согласовано), затем на шлюзе уже проверяете эти переменные и идете на повторное согласование или дальше.
    Не помню можно ли в CE версии вешать скрипты на переходы из задачи или на событие изменения значений полей на форме задачи. Если можно, то лучше отказаться от отдельной задачи и указывать комментарий сразу при согласовании в одной задаче.
     
  7. Turuhansky

    Turuhansky Member

    На обычные переходы можно повесить только значения переменных "Контекст" или "Текущий экземпляр". Сценарий можно повесить на переходы исключающего шлюза. Сценарии нужны в будущем, я это понимаю. Может быть есть пускай не мануал, но хотя бы что-то близкое именно к моей проблеме в плане решения? Близкий скрипт, дальше надеюсь разберусь.
    Пока что я решил вопрос кустарно, потому что время. При возвращении документа из доработки согласующий должен просто оставить поле комментария пустым в случае положительного решения (я убрал задачу с комментарием отказа, добавил аналогичную переменную в задачу рассмотрения и снял метку обязательности). Тогда всё работает, но это, сами понимаете, человеческий фактор. Забыл, случайно проставил пробел и т.д., А тот же пробел - это уже значение переменной. Что объяснять, вы лучше меня знаете..)
     
    Последнее редактирование: 15 май 2020
  8. ahkyamov

    ahkyamov Member

    Добавьте скрипт после задачи отправки документа на согласование, в котором будут обнуляться комментарии, там код будет очень простой, в духе
    Код:
    context.Comment = "";
     
  9. Roman42

    Roman42 New Member

    у меня реализовано при помощи элементов "да/нет" если есть хоть одно нет, то задача идет на доработку к инициатору, примерно так выглядит схема
     

    Вложения:

Поделиться: