You are viewing limited content. For full access, please sign in.

Question

Question

Communication between 2 LF Forms processes

asked on February 25

Hi,

We are attempting to make 2 different Forms processes talk to each other to bypass the known limitation of public users (non-licenses public users, outside of our organization) to accomplish tasks relating to specific processes. (ex. students vs employers for coop terms)

There is the feature of listening for a signal in order to advance to the next step in LF Forms. Is there a magical way to trigger a signal from one process to another, either through an API or Workflow task, so that the active listening signal receives the signal to advance the process?

Basically what we want to do is this:

Ex. Process 1 is initiated by an internal user, fills out the basic necessary information. Step 2 is to send a task to a public user by sending an email link with a GUID to fill out Process 2.

Public user clicks on the link, fills out initiating form of Process 2. We now have a tie in between Process 1 and Process 2 because of the GUID value.

We'd like, from Process 2, tell Process 1 that Step 2 is now complete, move on to the next step.

 

Is there something, any kind of workaround through API, Workflow, magic wand, that allow a back and forth between 2 different processes to communicate clearly when certain events are completed? Without bogging down performance of having an endless loop of checking a backend service...

0 0

Answer

APPROVED ANSWER SELECTED ANSWER
replied on February 25
  • Main process -> kicks off workflow 1 (wait for workflow to complete in the process)
  • workflow 1 adds template field to an entry with status "started"
    • sends email with link to process 2
    • wait for entry change for field status = "complete"
  • process 2 is submitted by user
    • invokes workflow 2
    • workflow 2 updates entry field status = "complete"
  • workflow 1 automatically resumes
  • process 1 continues as the workflow is complete
4 0

Replies

replied on February 25

You could do this in 1 process instead of two, however you will have two instances.  Here is the setup I use:

Form is initiated by internal user.  Save field data to SQL (I use a JS to combine all data of any fields that are filled out).  

Send external user unique link to the same form but use URL variables like you mentioned (Instance ID and Submission ID) to trigger a lookup rule.  

Use lookup rule to pull original data into the form and use JS to fill in the previously completed fields.  *I use field rules to make them read only so the external user can't change them.

External user completes their fields and submits the form.  The process can end, or you can route it to an internal user for review.  

You just need to route the BP to accommodate two different scenarios from the message start event like this: 

 

Even though there are two instances, you can use the original Instance ID to keep track.  Much easier than trying to keep track of two processes.

2 0
replied on February 25

This is an interesting solution, however the initiating form cannot be a public form, it has to be started from an approved person (internal user) as there is somewhat sensitive information that the initiator sees before firing it off to the public user. But will keep this idea in mind for some of our other form processes. Thanks!

0 0
replied on February 25

I understand that.  Yes, you would have to technically make the link public, but you can use validation tools so that the initiator part is only accessible from a logged in account but populating the username in a single line field.  We have a form that is "public" because external users do complete it, but it validates certain areas of the form that are only fillable/viewable/etc by an internal user.  You should be able to control any sensitive information in the repopulation of the fields.

1 0
replied on February 25

The only way to "synchronize" multiple business processes is to use Workflow. Generally speaking there is typically a document or folder associated with every business process. You can use a status metadata field and "wait for entry change" in workflow to continue the workflow when the business process changes that field to "complete" for example

1 0
replied on February 25

Can this Workflow be integrated in a Forms process, in a "wait for entry change" status? I thought they only executed the Workflow as is. I need Process 1 to wait until it gets confirmation that Process 2 is completed. Not sure how to accomplish that with Workflow without some kind of loop that waits and keeps checking if there is a completed Process 2.

0 0
APPROVED ANSWER SELECTED ANSWER
replied on February 25
  • Main process -> kicks off workflow 1 (wait for workflow to complete in the process)
  • workflow 1 adds template field to an entry with status "started"
    • sends email with link to process 2
    • wait for entry change for field status = "complete"
  • process 2 is submitted by user
    • invokes workflow 2
    • workflow 2 updates entry field status = "complete"
  • workflow 1 automatically resumes
  • process 1 continues as the workflow is complete
4 0
replied on February 25

Trigger a workflow using process 2 after it is submitted by the public user. The workflow can pull the GUID (and should also have the process 1 instance ID or submission ID) from the process using the "Retrieve business process variables" activity and set a business process variable in process 1 that will allow it to continue. Process 1 will need to either have a loop within the Forms process or have a workflow that checks for this variable in a loop, assuming you want to keep process 1 still running this entire time.

0 0
replied on February 25

I do want to keep process 1 active, but would having this loop affect performance at all?

How does a loop in Forms look like? That's why I thought the effect of using signals would work nicely. What does the audit (process instance details through Monitor) look like with a loop in Forms?

Would a server reboot affect the loop if we ran it through Workflow? Like if Workflow is looping checking every few hours if the other task is completed, if a server reboot happens (ex. Windows Updates), would the workflow terminate or would it re-trigger once server is rebooted?

0 0
You are not allowed to follow up in this post.

Sign in to reply to this post.