Announcement

Collapse
No announcement yet.

Conditional Intermediate Events not working

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

  • Conditional Intermediate Events not working

    Hi, I am on 5.8.2 and have a process flowchart that I am developing.

    I need to add a "Conditional Intermediate Event" to the diagram but I cannot add it. I can select it from the menu, the pointer changes, but I cannot click to have it added to the diagram.

    I am using Chrome.

    All of the intermediate events seem to have the same issue. Other events are ok.

    Thanks

  • #2
    Hi,

    I can't reproduce. Maybe you are trying to add Boundary event?

    Comment


    • #3
      Very sorry, my mistake. I should be using the "Conditional Intermediate Event (Catching)" (which works as expected) but was trying to add a "Conditional Intermediate Event (Boundary)" by mistake. I am guessing the latter is only for sub-processes. I am a little confused on their usage, is there more documentation than https://www.espocrm.com/documentatio...event-catching available?

      Comment


      • #4
        There's no more documentation. Event items (as well as others) work according BPMN 2.0 specification. You can find a lot of info on internet.
        Last edited by yuri; 02-15-2020, 06:01 PM.

        Comment


        • #5
          Hi, I am really struggling to get some of the more complex bits working. I have looked on-line, but can only find generic help, nothing that would help with my specific items.

          Is it possible to get access to a system with the "Drip Email Campaign" configured so that I can see how it is done?


          If not, let me explain what I want to do, I would really appreciate your advice on how to build it.

          To set the scene when we win an order from a client we have to go through several steps to close it off fully. I therefore have a workflow that triggers correctly when the Opportunity get to the correct stage.

          The start of thew workflow is therefore very simple and looks like this:
          • Start
          • Update the opportunity in some ways
          • User Process Task 1
          • User Process Task 2
          • User Process Task 3
          • Other things
          On the User Process Task 1, 2 and 3 the user has tell the system that they have done something (e.g. issue a PO to a supplier).

          In reality the user has 2 options:
          1. Task complete - everything moves forward
          2. Cancel workflow - trigger some "clean up" process and exit workflow
          It is dealing with the 2nd of these items that causes me the issue. Right now I have a lot of complexity built around the User Process Tasks' "Result" field and I check for "Cancelled". I know that there are easier ways with sub-processes, but cannot get them to work.

          I am building a prototype on a trial on the cloud version, which I am happy to share the login details with you on.

          Thanks in advance for pointers and help.

          Comment


          • #6
            Please provide a screenshot of your flowchart. I don't understand the problem.

            Comment


            • #7
              Here is my current diagram.

              Each User Process Task on the left has 2 options "Complete" or "Cancelled", I then check the Result field against the value "Cancelled" and jump to the appropriate place. This is a lot of work.

              I would rather do something like the example given for Email Marketing, where if the user "opts out" then everything is stopped. I don't understand how to set this up.

              I also note that on the User Process Task there is a "Is Cancelled" field, but I don't know how this gets set and how to take action upon it.

              Thanks.


              Click image for larger version

Name:	Current Process.png
Views:	237
Size:	25.0 KB
ID:	56053

              Comment


              • #8
                Each time task is cancelled throw an escalation with some code , e.g. 'cancel'. Use Escalation Intermediate Event (throwing).

                Add an Event Sub-Process that starts with Escalation Start event. Make this event 'Interrupting'. Specify the escalation code. That will stop the entire process after an escalation is caught.

                It's one solution I came up with. There must be multiple other ways to do it.

                Click image for larger version

Name:	Screenshot from 2020-02-17 15-27-32.png
Views:	279
Size:	14.5 KB
ID:	56060
                Last edited by yuri; 02-17-2020, 01:29 PM.

                Comment


                • #9
                  Ok, getting much closer thanks.

                  Is the "throw" and "catch" just within this workflow instance (i.e. just the 1 Opportunity) or can another BPM Workflow catch it (I thought the latter). If that is the case how do I tie the event to the specific Opportunity ID that I am working upon?

                  In the above diagram, you suggest using the "Escalation Intermediate Event (throwing)" but the diagram uses the "Signal Intermediate Event (Throwing)" which one should I use? Also what should I put into the "Escalation Code" or "Signal" section?

                  Also what is the "is Cancelled" field for and how does it get set?

                  In the email example that is given, it references the "Opt Out" field without saying how this works.

                  I am doing all of the above on a test instance on the cloud so happy to give you a login if you want to set something up. Actually seeing this work would be really helpful.

                  Thanks.

                  Comment


                  • #10
                    Escalations are limited by a process. Escalation can be caught within the current process (e.g. by event-sub-process) or by a boundary escalation catching event attached to the sub-process within which the current process is running.

                    Signals are not limited by a process and can be used to communicate between different processes. You can use {$id} placeholder in signal name to avoid catching by another process.

                    There is also another type of signals that are prefixed with '@'. That means that signal is broadcasted along with a record. @optOut with lead A and @optOut with lead B are different signals because they are broadcasted with different leads. If there are two processes waiting for @optOut signals, they won't interfere each other.

                    In my diagram I made a mistake. You need to use escalation event.

                    'Is Cancelled' is a boolean field means that process task was cancelled and was not resolved. Can be cancelled by a process. See https://github.com/espocrm/documenta...s.md#canceling

                    Regarding opted-out, there is an explanation: https://github.com/espocrm/documenta...ing-opting-out

                    Comment


                    • #11
                      Got this working with Escalations now; thanks very much.

                      So it seems that the "Is Cancelled" has no pre-defined action, it is up to me.

                      The email example that is pointed to is ok in principal, but for it to be of use, I need to be able to see how the configuration is actually set up. Is there any way I can actually touch it and see the configuration of the individual items, in particular:
                      • Lead Subscribed
                      • Lead Oped Out
                      As they are where the real "magic" is.

                      And finally one other question ... When a process is running and I look at the specific BPM Instance I can see the steps listed in a table at the bottom. If one of those steps is a "User Process Task"
                      then I have 2 options that I can take "Interrupt" or "Reject". What do these do? I have tried messing around with them but cannot find out what. Is it documented? Could you point me to it?

                      Thanks.

                      Comment


                      • #12
                        You can manually reject/interrupt flow nodes. E.g. you see that the process flow went wrong by some reason. You can interrupt an active flow node. And then you can either stop the process, or proceed execution from any node: https://github.com/espocrm/documenta...d#manipulating

                        Comment


                        • #13
                          Ok, got it thanks (the Git Hub docs seem to be more detailed than those here: https://www.espocrm.com/documentation/).

                          Any comment on the 2 definitions in the Email example?

                          Comment

                          Working...
                          X