こんにちは、新人の鎌倉です。
以前投稿したこちらの記事 #実装方法:データ登録Part2~ビジネスコンポーネント編~では
Newコマンドとのデータ登録の違いに着目して、ビジネスコンポーネントについてご紹介させていただきました。
今回の記事では、より詳しいビジネスコンポーネントの実装方法についてご紹介させていただきたいと思います。
※BCを使用するために必要なプロパティ設定等は、
#実装方法:データ登録Part2~ビジネスコンポーネント編~をご覧ください。
ビジネスコンポーネントについて
ビジネスコンポーネントは、
以前の記事のようにプロシージャでビジネスコンポーネントを使用して登録を行うことも可能ですが
プロシージャを呼び出さずに、ウェブパネルで直接データベースの更新を行える
唯一の方法がビジネスコンポーネントを使用する方法となります。
また、ビジネスコンポーネントを適用したオブジェクトは、
トランザクションに定義したルールが実行されるメリットもあります。
※下記の5つのルールは実行されない為注意が必要です。
しかし、1件ずつ更新処理を行うため、大量のデータ処理には向いていません。
そのため大量なデータの更新処理を行う場合は、
プロシージャでNewコマンドやFor eachを使用した実装が向いています。
ビジネスコンポーネントの登録・更新方法
以前の記事では、saveメソッドを使用したデータの登録方法を代表してご紹介させていただきましたが、
saveメソッドは更新も行えるメソッドとなります。
※#実装方法:データ登録Part2~ビジネスコンポーネント編~
登録・更新を行えるメソッドはSaveメソッドの他に、
InsertメソッドやUpdateメソッドも存在します。
今回の記事でも引き続き、勤怠管理システムを例にして
それぞれのメソッドの違いについてご説明させていただきます。
打刻をする画面は以下のような画面だとします。
saveメソッド
saveメソッドは登録・更新が行えるメソッドになります。
なぜどちらの動作も行えるのかというと、適用先のビジネスコンポーネントに基づいて
変数の現在のモードを考慮して動作するためです。
また、更新を行う際はLoadメソッドを使用してメモリ内にロードを行います。
Insertメソッド・Updateメソッド
Insertメソッドは登録のみ、Updateメソッドは更新のみが行えるメソッドとなります。
これらのメソッドは、Saveメソッドとは違いデータベース側で追加・更新を考慮して動作します。
saveメソッドの方が使用しやすいように思いますが、データの更新時にUpdateメソッドでは
Loadメソッドを記述する必要がありません。
そのため、データベースへのアクセスを回避することが可能です。
ビジネスコンポーネントの削除方法
ビジネスコンポーネントで削除を行うには、Deleteメソッドを使用します。
Deleteメソッドでは、トランザクションから削除を行う時と同様の動作が実行されます。
削除する画面は、先ほどの画面に削除ボタンを新たに追加した画面だとします。
Deleteメソッド
削除されるデータは、存在するデータでなければならない為
Loadメソッドの記述が必要となります。
※他には、2レベルのトランザクションの削除を行えるRemoveByKey メソッドもあります。
ビジネスコンポーネントについての記事は、以上となります。
こちらの記事が少しでも参考になれば幸いです。
最後までお読みいただきありがとうございました。
参考リンク