**NOTE: This plug-in is deprecated and no longer recommended for use for sites running on Appian 22.1 or later. The functionality of this component is available in Appian without installing the plug-in. You can use a!executeStoredProcedureForQuery(), a!executeStoredProcedureOnSave(), or the Execute Stored Procedure Smart Service in Appian 22.1 or later.**
Overview
This plug-in provides a Smart Service and Function for executing stored procedures. The Smart Service can be used to execute stored procedures that modify data. Result sets are returned as CDTs. As custom functions cannot have side-effects, it must not be used to execute stored procedures that modify data. It is only safe to use the Smart Service with stored procedures that modify data. Following SQL Statements should not be used by the stored procedures executed with the function:
Key Features & Functionality
The desciption above says that data should not be updated at all by a stored procedure using this plugin, but the pdf documentation in the plugin zip says:
"This function may be used anywhere expressions are valid. This function must not be used to update
data and actively attempts to prevent such use. **Use the Smart Service to update data instead.**" [Emphasis added]
The latter quote makes it look like the no-update restriction is only for the function version, consistent with the goal of preventing stateful changes in expression rules generally (and needed by the parallelism in SAIL evaluation in recent versions of Appian).
Which restriction is correct? Note that doing updates in sprocs is a very useful way to implement transactional locking on related actions.