Announcement

Collapse
No announcement yet.

Логика для согласования документов

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Логика для согласования документов

    Привет всем. Подскажите пожалуйста, как написать логику для согласования документов с выбором пользователей или групп. Установленна обычная версия без дополнений.Возможно ли это?

  • #2
    Здравствуйте,
    В базовой версии программы есть возможность использовать формулу https://github.com/espocrm/documenta...ion/formula.md. Формула не имеет такого объема возможностей как Рабочие потоки https://github.com/espocrm/documenta...n/workflows.md или Управления бизнес-процессами https://github.com/espocrm/documenta...tration/bpm.md. Опишите пожалуйста как конкретно должна выглядеть логика?

    Comment


    • #3
      Originally posted by Maximus View Post
      Здравствуйте,
      В базовой версии программы есть возможность использовать формулу https://github.com/espocrm/documenta...ion/formula.md. Формула не имеет такого объема возможностей как Рабочие потоки https://github.com/espocrm/documenta...n/workflows.md или Управления бизнес-процессами https://github.com/espocrm/documenta...tration/bpm.md. Опишите пожалуйста как конкретно должна выглядеть логика?
      Добрый день Максим.
      Имеется -
      1. автор создания заявки
      2. сотрудники для согласования
      3. Руководитель Компании

      1. Допустим создается документ на согласования, далее загружается файл, указываются надписи (текст, имя контрагента, наименование договора и др.)
      2. Выбираются пользователи или группа пользователей для согласования.
      3. отправляется на согласования.
      4. сотрудник получает в кабинете уведомления что есть заявка для согласования ставит одобрить (ставится галочка или значок или др.) если нет (описывается уведомление и возвращается автору заявки).
      5. Если все одобрили, то приходит заявка Руководителю он ободряет или нет.
      6. Автор видит что все согласованно уходит заявка в Архив.

      Comment


      • #4
        Такой алгоритм возможен только с использованием bpm (Управления бизнес-процессами).
        Last edited by Maximus; 10-30-2019, 11:36 AM.

        Comment


        • #5
          Originally posted by maximus View Post
          такой алгоритм возможен только с использованием bpm (управления бизнес-процессами).
          а в этой программе есть расширение для bpm?

          Comment


          • #6
            BPM доступен только в расширении Advanced Pack https://www.espocrm.com/extensions/advanced-pack/.

            Comment


            • #7
              Добрый день Максим.
              Пытался сделать такое с помощью BPM. Получается довольно коряво. Реализуемо конечно несколькими вариантами, но суммарно не устраивает, а именно то что есть необходимость как в стандартной сущности "Встречи" иметь "участники", чтобы отправить е-мэйлы со ссылками "согласен/несогласен" из которых можно увидеть обратную связь этих участников. Через BPM можно либо разослать всем мыло, либо через process task запрашивать согласование. Хотя можно вообще сделать "квадратно" - отправлять мыло с ссылкой на process task. Но это уже костыли.
              А теперь вопрос )))))
              Как в кастомную сущность добавить функционал панели "Attenders"?

              Comment


              • #8
                Здравствуйте,
                "Attenders" нужно добавлять в ручную. Вы можете проанализировать код. Взгляните на эти файлы:
                1. /application/Espo/Modules/Crm/Resources/metadata/entityDefs/Meeting.json;
                2. /application/Espo/Modules/Crm/Resources/metadata/clientDefs/Meeting.json;
                3. /application/Espo/Modules/Crm/Controllers/Meeting.php;
                4. /client/modules/crm/src/views/meeting/detail.js

                Comment


                • #9
                  Добрый день.
                  После анализа
                  PHP Code:
                  /application/Espo/Modules/Crm/Resources/metadata/entityDefs/Meeting.json
                  Стало очевидно, что copy/past сделать не получится. т.к. написаны прямые sql запросы:
                  PHP Code:
                    "acceptanceStatus": {
                             ...
                             
                  "<>""meeting.id NOT IN (SELECT meeting_id FROM contact_meeting WHERE deleted = 0 AND status = {value}) AND meeting.id NOT IN (SELECT meeting_id FROM meeting_user WHERE deleted = 0 AND status = {value}) AND meeting.id NOT IN (SELECT meeting_id FROM lead_meeting WHERE deleted = 0 AND status = {value})",
                             ... 
                  Возможны ли дополнительные варианты решения данной задачи?

                  Comment


                  • #10
                    > copy/past сделать не получится. т.к. написаны прямые sql запросы.
                    A отредактировать их под себя не получится? Какого у вас типа сущность и как называется (не лейба а key_value)?

                    Comment


                    • #11
                      Скажу честно. С меня такое себе "программист".
                      Помочь мне правтически некому, поэтому и пишу тут.
                      На данный момент пробую через BPM. если не получится, буду пробовать ковыряться в коде.

                      Как в BPM создать Process User Task для каждого пользователе указанного в одном поле?

                      Comment


                      • #12
                        Один Process User Task на одного пользователя. Добавить список пользователей нельзя.
                        Как по мне то ваша идея с добавлением поля участников отлично подходит для согласования.

                        Comment


                        • #13
                          Не могли бы Вы тогда мне немного помочь с исправлением json. а то я переживаю, т.к. система уже частично боевая...

                          Comment


                          • VikinGDM
                            VikinGDM commented
                            Editing a comment
                            Подскажите, пожалуйста, какие файлы достаточно создать, чтобы после ребилда создалась новая сущность?

                        • #14
                          Maximus , день добрый.
                          обновился Advance pack и как я понял по realese notes появилась возможность создавать targetlink и получать результат перехода.
                          Не могли бы Вы привести пример реализации данного функционала?

                          Так же ни как не могу понять как в BPM реализовать прикрепление вложений сущности к письму.
                          Заранее спасибо за помощь.

                          Comment


                          • #15
                            Здравствуйте,
                            я уже написал в одном из ваших постов о примере как создать список участников. Пример находится здесь https://forum.espocrm.com/forum/deve...6690#post56690.

                            Comment

                            Working...
                            X