We are attempting to use Outsystems logic to INSERT a record into an external database table.
The external database is referenced via a LINKED SERVER in TSQL and the transaction is very basic, but we believe there may be Outsystems based constraints that do not allow this.
Unable to begin a distributed transaction
Unable to start a nested transaction
However, with the power of Outsystems we have to assume there are multiple options to workaround this constraint. Unfortunately, we have not found an "elegant", or "simple" workaround and have to assume we are missing a basic piece of the puzzle (ie. inline vs stored proc, platform\service center config, forge component, etc)
Hi Doug,
Is this a question? or you just want to start a discussion to generate awareness, that OutSystems does NOT support distributed transactions when connecting to multiple database catalogs or external database?
For completion, the information you shared can be found in this official OutSystems documentation:
https://success.outsystems.com/documentation/11/reference/outsystems_language/data/database_reference/handling_transactions/
Regards,
Daniel
This a question...
"in these cases, transaction handling might need some extra care"
What "care" is needed to make this happen?
"attempting to use Outsystems logic to INSERT a record into an external database table."
or
"we have to assume there are multiple options to workaround this constraint"
How can this be accomplished?
With "care" is ment that you need to code yourself the logic to ensure that the distribution transaction either completely is successful or completely not is executed.
You can watch the following presentation from my colleague Rui Coutinho on Service Composition around minute 20:00 that gives you an idea about the complexity you need to take care of
https://www.outsystems.com/nextstep/2019/?wchannelid=lxt52ix89e&wmediaid=x2lvjhe2ix
Thanks for the prompt response but the link you supplied does not answer my question...
You mention ensuring the transaction is successful \ completed, that is not in question, we simply need a basic example of how to accomplish the transaction.
Granted there are multiple ways to conduct that type of transaction but I'm looking for specific examples of "basic", "clean" or the smallest \ fewest steps to accomplish.
Can someone provide a code sample or link to code sample to accomplish this?
As a seasoned developer I'm used to being able to search the web for sample code and Outsystems simply isn't there and I assumed posting specific questions to this forum, and getting specific answers, is part of that building process.