how to save into a variable and start a process at the same time?

I have a feature where the user clicks a link to run a process in the background and perform some actions. What I want to do is to display a message to the user while the PM is running so they know that something is going on. However, I found out that you can't do any other saves until the onSuccess is run. I want to run the following code.

a!dynamicLink(
showWhen: not(ri!inProgress),
value: true,
saveInto: {
a!save(ri!showMessage, true),
a!startProcess(
processModel: cons!WM_PM_SYNC_HOLDS_DATA,
processParameters: {
siteAcronym: ri!siteAcronym,
siteId: ri!siteId,
writeType: ri!writeType,
user: loggedInUser(),
lastSyncDate: ri!lastSyncDate
},
onSuccess: {
a!save(
ri!processInstance,
fv!processInfo.pp.id
)
},
onError: a!save(ri!error, "error")
),
}
),

In the code above, a!save(ri!showMessage, true) is not executed until the onSuccess() in the starProcess() is run even though it's outside of the startProcess. I've tried chaining the process and without any chaining and that save always waits for the PM on success or onError(). Is there a way to get around this? I know there is other ways like using a process report which is what I'm doing, I just want to know if this scenario is possible.

  Discussion posts and replies are publicly visible

Parents Reply Children
  • 0
    Certified Lead Developer
    over 1 year ago in reply to Jose H.
    So we chained the process model and updated a variable inside the onSuccess() to trigger the local variable refresh but that didn't quite behave as expected.

    The issue here lies in Appian's behind-the-scenes variable value-setting execution (just based on what I've been able to observe from external evidence).  Sometimes chainings of updates like this fail to work how we expected, in seemingly unintuitive ways, because while we assume Appian will do everything in order, it really attempts to execute everything (or at least many of the things) all at once.