Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OutSystems愛知ユーザー会#3使用 回答例

 OutSystems愛知ユーザー会#3使用 回答例

8dc75100bcf44d3e86a8082cd0f9e871?s=128

out-developers

January 29, 2020
Tweet

Transcript

  1. 回答例

  2. 使用していない変数、Entityは削除する • GroupEntity • TaskEntity: Attrebute GroupId • home :ローカル変数Count

    • Tasks Preparation:GetGroupAggregate • ServerActions: GetTasksByStatus
  3. 命名規則に沿った内容にする • 意味が伝わりやすい名前にする – WebScreen : Detail→TaskDetail – InputParameter :

    commentInsert Task → TaskId • パスカルケースを使用する – WebScreen : home → Home commentInsert → CommentInsert • 外部キーには「Id」というサフィックスを付ける – Entity : Comment User → UserId Task → TaskId Task Priority → PriorityId
  4. ハードコーディングは避ける • home:Preparationでのデータ取得 GetTasksTodo

  5. ハードコーディングは避ける • home:Preparationでのデータ取得 GetTasksdoing,GetTasksComplete

  6. ハードコーディングは避ける • Tasks の優先度アイコンの表示設定

  7. SQLよりはAggregateを使う • home:PreparationGetTasksdoing,GetTasksComplete GetTasksTodoと同じ方法で代替可能

  8. クエリの数を最小限にする • home:ChartStatusCountはForEachを使わなくても取得可能

  9. クエリの数を最小限にする • home:ChartStatusCountはForEachを使わなくても取得可能

  10. 再利用化する • タスク一覧にある優先度アイコンはhomeにもTasksにもあるの でWebBlockにまとめる – InputParameterによってアイコンを変えるWebBlockを作る – home、TasksにWebBlockを配置

  11. 再利用化する • タスク一覧にある優先度アイコンはhomeにもTasksにもあるの でWebBlockにまとめる – InputParameterによってアイコンを変えるWebBlockを作る – home、TasksにWebBlockを配置

  12. 再利用化する(ロジック)① • homePreparationの GetTask~はStatus毎の件数 を出してExpressionに表示して いる

  13. 再利用化する(ロジック)① • homePreparationの GetTask~はStatus毎の件数 を出してExpressionに表示して いる

  14. 再利用化する(ロジック)② • StatusId:InputParameter 件数:OutputParameterの ServerActionを作成 (FunctionはYesにする)

  15. 再利用化する(ロジック)③ • ExpressionValueにServerActionが 選択できるように

  16. モジュールを分割する① モジュールをCloneする以外の手順 ①データを保持するモジュールを作成 ②分割前のモジュールのEntityを参照する ③参照元のEntityのコピーを作成する

  17. モジュールを分割する② ③参照元のEntityのデータをコピーしたEntityに保存する アクションを作る ④③のアクションを実行する(タイマーなどで) ⑤コピーしたEntityを参照して動作確認できたら 分割前のモジュールのEntityを削除する

  18. その他細かい箇所 • Is Mandatoryプロパティを忘れずに設定する – Entity:Task Titleや Comment:Text (Formも同様に設定する) •

    サイトプロパティはロジック内で書き換えない – Tasks:PreparationのFileter(Site.Tasks_SearchStatusId) • 表示、非表示の定義の仕方は統一したほうがよい – Commentformの表示・非表示だけ プロパティ:Displayに設定している