Targeted message activates another receiver

A Score Level 1

Version : Appian 20.3.

I have a process with 2 Event Receivers : "External_Escalaion" & "Escalation".

I have a User Input node which escalates, sending  a message to destination called "External_Escalation" (in the same process).

I would expect to receive the message only on the "External_Escalation" node, however it triggers

the other as well.

Any clues ? 

  Discussion posts and replies are publicly visible

Parents
  • 0
    Certified Lead Developer

    I know why!  Appian does not initiate a process with a start form until you complete the start form.  It actually comes highly recommended that you make as many processes with start forms as you can for this reason.  It really, really saves your engines not having to run until the process is really going.

    In your case, it prevents the escalations from doing anything until the process is started running, which would be after the start form completes.  That's the whole problem, that whoever won't fill out (or can't fill out) the start form, so this process is in limbo.

    The solution is to break with best practice and instead make this PM with no start form.  Just chain directly into a User Input Task as the first node.  Then stick the form that would have been a start form directly in there.  If it's not a Site action, users will have absolutely 0 change to their experience.  If you're using a Site, you unfortunately NEED a start form, so you may want to consider a very simple start form like "Ready to get going?  Click here!" and a single button.  In your case you want it to be basically impossible for your users to have not made it past the start form and into the main part of the form, where the escalations can help.

    You also might want to consider configuring those End Nodes to Terminate.  My project has had no end of woes from processes that like to hang out forever, even after all the nodes are executed.  Best practice from Appian is all PMs should contain at least one Terminate node.

  • 0
    A Score Level 1
    in reply to Dave Lewis

    This process has a start form. Note that the screenshot above was captured after the start form was completed, and after the "External" node has been activated as well. The "Ëxternal" node as 0 min escalation (because I need the task for the external user to be activated. when she logs in into the system). That escalation, sends a message to the "External_Escalation" event, which works fine, it is being activated properly, however the same message hits the "Escalation" event as well which is unexpected behavior.

  • 0
    Certified Lead Developer
    in reply to Nahum

    I wonder if those escalations prevent the Start form from completing properly, or vice versa.  Anyway, solution remains the same: if possible, remove the start form.

    That will at least show if the escalations are the cause of the problem.

    If you absolutely need to have the Start Form, you may need to rethink inter-process communication.  Perhaps an entirely separate process receives these messages and puts something in the database, then nodes in this process search the database for an entry, following an exception path when they find it.

    Also, why would you ever use inter-process communication to communicate between two nodes in the same process?  Use an AND gateway.

Reply
  • 0
    Certified Lead Developer
    in reply to Nahum

    I wonder if those escalations prevent the Start form from completing properly, or vice versa.  Anyway, solution remains the same: if possible, remove the start form.

    That will at least show if the escalations are the cause of the problem.

    If you absolutely need to have the Start Form, you may need to rethink inter-process communication.  Perhaps an entirely separate process receives these messages and puts something in the database, then nodes in this process search the database for an entry, following an exception path when they find it.

    Also, why would you ever use inter-process communication to communicate between two nodes in the same process?  Use an AND gateway.

Children
No Data