LLL/webでは、基本的にサーバー側でのデータのやり取りを、LLLRDS.DLLという サーバーコンポーネントが持つサーバー関数で処理しています。このうち比較的よく使用するサーバー関数は以下に挙げる10種類になります
- QueryMain
- QuerySub
- QuerySubs
- ReadMain
- ReadSubs
- UpdateMain
- UpdateMainSubs
- UpdateSubs
- ProcMain
- ProcMainSubs
しかし、これらの関数だけでは、現場で要求されるこまやかな仕様に対応すること は出来ません。
さらに、MTSコンポーネントを用いたトランザクション処理の場合、1つのサーバー 関数内でトランザクションを完結させる必要があります。
業務系のアプリケーション等で必要になる分散トランザクション処理で、サーバー 関数をそのまま使用して対処するのは難しいと思われます。
そういった問題点を解決するために、サーバーオウンコンポーネントは、サーバー 関数がその関数本来の作業(ReadやUpdate等)を行う前後に処理を付加することで、処理の柔軟性と簡便性を高めています。
具体的には、トランザクション中のサーバー関数内からサーバーオウン コンポーネントのプロシージャをコールすることで、トランザクション内の一処理 としてユーザーが付け加えた処理を実行します。そのため、複数テーブル(または レコード)への更新処理も、トランザクションの単位としては1つになるため、どこで エラーが発生してもトランザクション開始時の状態にロールバックします。また、 サーバー関数の種別によらずにレコード処理を実行できるため、仕様に対する柔軟性を 高めることが出来ます。