【OutSystems】エンティティ更新方法(CRUD)
この記事では、OutSystemsでのデータ更新方法について説明してきます。
OutSystemsでは、DB用語でテーブルをエンティティ、カラムをアトリビュートと言います。
エンティティについて詳しく知りたい方は下記の記事を見てください。
データ操作方法
OutSystemsではエンティティを操作するための方法に標準でロジックが生成されます。
![](https://outsystems.ryoma-portfolio.com/wp-content/uploads/2021/02/7f3ffd788c1ac3ac3a1fb87323a8511c.png)
Createロジック
Createは、SQLのInsert文のように使えるロジックになります。データベースに新しいレコードを追加することができます。
![](https://outsystems.ryoma-portfolio.com/wp-content/uploads/2021/02/982ffe808d7e7f0bf77022fdc4552cb7.png)
Createロジックでは、基本的に更新するエンティティのデータ型の変数を定義します。
![](https://outsystems.ryoma-portfolio.com/wp-content/uploads/2021/02/21a3ab849076a4de94dcac0e05f67ece.png)
Recordに挿入するデータを格納しCreateロジックに設定します。
![](https://outsystems.ryoma-portfolio.com/wp-content/uploads/2021/02/bf297e8ebc6916484d05bba820d2bcdf.png)
CreateOrUpdateロジック
CreateOrUpdateは、テーブルにレコードが存在しない場合、レコードを追加する。存在する場合更新する。
![](https://outsystems.ryoma-portfolio.com/wp-content/uploads/2021/02/CreateorUpdate.png)
CreateOrUpdateは、基本的に、Createロジックと同じように使用することができます。
Updateロジック
SQLのUPDATE文のように使えるとじっくになります。テーブルレコードを更新し、データが存在しない場合エラーを発生させる。
![](https://outsystems.ryoma-portfolio.com/wp-content/uploads/2021/02/8545f294e80559435cff9b2086908cff.png)
UPDATEロジックでは、基本的に更新するデータをAggregateで抽出します。そして、Assignで更新内容を反映します。
![](https://outsystems.ryoma-portfolio.com/wp-content/uploads/2021/02/8a2aa3c6134f55323bc60cba8f8d1721.png)
Aggregateで取得したデータをUpdateロジックに設定します。
![](https://outsystems.ryoma-portfolio.com/wp-content/uploads/2021/02/UpdateCrud.png)
Getロジック
SQLのSelect文のように使えるロジックになります。データベースを参照する。データが存在しない場合はエラーを発生させる。
![](https://outsystems.ryoma-portfolio.com/wp-content/uploads/2021/02/d28f324e0a86a6863a6c5fc01d773ee7.jpg)
Getロジックでは、抽出したいデータのIDを元に、エンティティのデータ型のデータを抽出することができます。
GetOrUpdeteロジック
GetOrUpdeteでは、データベーストランザクションが終了するまでロックすることができます。
悲観排他を実装したい場合にしようすることができます。
![](https://outsystems.ryoma-portfolio.com/wp-content/uploads/2021/02/GetForUpdate.jpg)
ロックは、CommitTransactionを使用することで、解除されます。
悲観排他を実装したい場合は下記の記事を参考にしてください。
Deleteロジック
SQLのDelete文のように扱えるロジックになります。データベースからレコードを削除する。
![](https://outsystems.ryoma-portfolio.com/wp-content/uploads/2021/02/1688eb5d95d0b23dc92ab8ee042d1eac.jpg)
Deleteロジックでは、Aggregateでデータを抽出し、削除したいデータのIDを元に、データを削除することができます。
標準ロジックのデメリット
標準ロジックでは、大量の単純なデータを更新する場合に処理速度が遅くなってしまうというデメリットがあります。
![](https://outsystems.ryoma-portfolio.com/wp-content/uploads/2021/02/a0335a44aeccf5e1709598305f7643e7.jpg)
このように、大量のデータを更新する場合は、SQLを更新することで処理速度を向上させることでができます。
![](https://outsystems.ryoma-portfolio.com/wp-content/uploads/2021/02/SQLJPG.jpg)
コメント