Conditional Intermediate Event blocks process pipeline

Collapse
X
 
  • Time
  • Show
Clear All
new posts

  • yuri
    replied
    Maybe your advanced pack is too old. I recommend to increase the value manually in the file.

    Leave a comment:


  • mazhid_kat
    replied
    I have cheked it: we have not modified file crm/application/Espo/Modules/Advanced/Core/Bpmn/BpmnManager.php and it has a default line
    PHP Code:
    PROCEED_PENDING_MAX_SIZE = 40; 
    
    . Our CRM Version is 5.5.6. Is it possible that in our version PROCEED_PENDING_MAX_SIZE is set to 40 and not 20000?

    Leave a comment:


  • yuri
    replied
    It's set to 20000 in BpmnManager.php. You said that you have 40. I assumed that you changed it manually.

    Leave a comment:


  • mazhid_kat
    replied
    How can I check current PROCEED_PENDING_MAX_SIZE and increase it? Where is this configuration stored?

    Leave a comment:


  • yuri
    replied
    PROCEED_PENDING_MAX_SIZE is supposed to be very big. 10,000 is OK. It also handles other event types. In future I think I will add the ability to split this queue into parallel sub-processed. But it only matters if you have thousands of active processes in the same time.

    1. Recommend to setup daemon https://docs.espocrm.com/administration/jobs/#daemon
    2. In parallel processes: https://docs.espocrm.com/administrat...llel-processes

    Leave a comment:


  • mazhid_kat
    commented on 's reply
    By overloads I mean that Conditional Intermediate Event (Catching) accumulate in pending flows in such a great number so that they exceed the number of processes which are processed every minute (we currently have PROCEED_PENDING_MAX_SIZE = 40 in BpmnManager.php).

    How can I setup jobs to run in parallel processes? Can i do it with Conditional Intermediate Event (Catching) separetely?
    Last edited by mazhid_kat; 06-25-2020, 01:34 PM.

  • yuri
    commented on 's reply
    I also recommend to setup jobs to run in parallel processes.

  • yuri
    commented on 's reply
    Yes, Every minute (can be configured more often). What do you mean by overloads. It gets tiny amount of resources and time to check. It's a trade off. Making check after each save would take even more resources or require to install additional extensions on the server, that can be a hurdle for customers.
    Last edited by yuri; 06-25-2020, 11:55 AM.

  • mazhid_kat
    commented on 's reply
    Exactly. But a particular Conditional Intermediate Event (Catching) is processed every minute to check if conditions are met. Is it correct? If so, it overloads the processes pipeline

  • yuri
    commented on 's reply
    This job check all pending events. If any fail, it should be skipped to the next with an exception handling.

  • mazhid_kat
    commented on 's reply
    Then, how is Conditional Intermediate Event (Catching) meant to be processed? It ends up to processed in Scheduled Jobs -> Process Pending Flows

  • yuri
    replied
    Hi,

    It's not supposed to happen that one event blocks execution of other processes. Might by something failed and an exception is not caught for some reason.

    Please check data/logs.

    entity\isAttributeChanged(ATTRIBUTE) is not working in BPM. It will return false. It does work in workflows.

    Leave a comment:


  • Conditional Intermediate Event blocks process pipeline

    Hi everebody!
    We have recently added Conditional Intermediate Event (Catching) to one of our BPM Flowcharts. You can check it on the screenshot below.

    Click image for larger version  Name:	Screenshot_1.png Views:	0 Size:	37.3 KB ID:	59648
    The feature of our processes is that we may have to wait for Conditional Intermediate Event (Catching) to happen for 10-20-30 days. The thing is: processes with this event have vastly accumulated in our Scheduled Jobs -> Process Pending Flows pipeline. As far as Conditional Intermediate Event (Catching) is processed every minute, this kind of event occupies the entire pipeline with all other processes being stuck behind.

    Is it assumed to be this way and processes Conditional Intermediate Event (Catching) every minute with all other processes? Or did we miss something in the documentation?

    Maybe the problem is with our conditions inside Conditional Intermediate Event (Catching), i.e. there is no 'Changed' filter, so it gets triggered every minute, while it is needed to work only if a particular field is changed. But it is not present in the dropdown. Will function entity\isAttributeChanged(ATTRIBUTE) solve the problem? So Conditional Intermediate Event (Catching) gets triggered only when necessary and not every minute


    Click image for larger version  Name:	Screenshot_3.png Views:	0 Size:	51.5 KB ID:	59650
Working...