I'm trying to call startProcess within an expression rule but no matter what, the ouput is "Smart Service". I cannot call this startProcess feature from within my interface since the requirement doesn't allow for a button press. Therefore an expression rule must be triggered within a refreshVariable statement and it's output is set to a local variable within my interface.
example 1:
a!startProcess( processModel: cons!PM_Con, processParameters: { param: ri!param, param2: ri!param2 }, onSuccess: fv!processInfo.pv.data, onError: null )
example 2:
a!localVariables( local!return, a!startProcess( processModel: cons!PM_Con, processParameters: { param: ri!param, param2: ri!param2 }, onSuccess: a!save(local!return, fv!processInfo.pv.data), onError: a!save(local!return, null) ))
Discussion posts and replies are publicly visible
a!startProcess can only be called inside a saveInto or in a Web API. This is by design and well documented.
What do you want to achieve?
As mentioned by Stefan , A process can only be triggered from the saveInto of a component or in a Web Api .From your requirement i see you want to trigger a process from the expression rule . A possible solution which you can use is.
Step 1 - Create a web api which triggers your process modelStep 2 - Create an integration object and call the web api which you created in step 1Step 3 - Call this Integration object from the Expression Rule
Hope this helps
Thank you Stefan Helzle and rohito0002. My requirement is to update data on the UI based on a certain type of insert into a db table. So the basic flow is, db table gets updated, refreshVariable grabs updates from the table, triggers a PM to update local variables according to the db update.
I'm no expert appian developer so this is a POC at the moment. I will try out this suggested solution.
My main question is: how is the initial database table update happening? Is it occurring through an Appian process or an external system or is it triggered based on some user action on the interface? If it's occurring through an Appian process, I'd recommend just having any additional changes also happen in that process. If the database is updated outside of Appian, you could also have database triggers that are kicked off based on an initial insert into the table.
Here's how I usually like to think about it:
This worked very well. Quite a roundabout way of doing things XDDD but successful none the less. Thanks again for the help.
Yes quite a round about way for a tricky requirement