前回までで、 「簡易ナレッジベース」 のデータ管理を行うための機能はほぼ完成です。今回は仕上げとして、ビジネスロジックの肉付けやUIの調整などを行ってみたいと思います。
やること
以下を行います。
- TOCフォルダの設定
- 記事番号の自動採番化
- フォームレイアウトの調整
- 「いいね!」投票ボタンの追加
- 「いいね!」タブの非表示化
- 後追い記事作成アクションの追加
今回は分量が多いですし、これまでご紹介していない機能も使ったりしますので、細かい手順のご紹介は省略します。「大体こんな感じでやるんだな」というのを掴んで頂けたらと思います。
それでは順に見ていきましょう。
1. TOCフォルダの設定
これまで「記事」と「タグ」は どのTOCフォルダにも属さず、外に飛び出していましたが、これを他のアイテムタイプと同じようにフォルダ内に整理したいと思います。
TOCに「簡易ナレッジベース」フォルダを追加 TOCのフォルダ構造は、「Categories」という名称の「リスト」アイテムで定義されていますので、これを編集します。
「記事」と「タグ」を「簡易ナレッジベース」フォルダに表示 次に「記事」と「タグ」のアイテムタイプ画面を開き、TOCアクセスを編集します。
2. 記事番号の自動採番化
これまで手入力で設定していた記事番号を、自動採番化します。
「採番」アイテムを追加 番号体系を記した「採番」アイテムを新規追加します。
「記事番号」プロパティのデータタイプを「Sequence」に変更 「記事」アイテムタイプの画面を開き、プロパティ「記事番号」のデータタイプを「Sequence」に、データソースを先ほど作成した採番アイテムに変更します。
3. フォームレイアウトの調整
これまで画面のレイアウトには手を入れていませんでしたが、見栄え/使い勝手が良くなるように調整します。フォーム「KM_Article」を編集します。
4. 「いいね!」投票ボタンの追加
「いいね!」投票の機能を追加します。画面へのボタン追加と、ボタンクリック時に呼び出すメソッドの作り込み(プログラミング)です。
「KM_Article」フォームに「いいね!」ボタンを配置 「KM_Article」フォームに「いいね!」ボタンを配置します。ボタンのクリックイベントにメソッドを新規作成して割り当てます。
クリック時メソッドの作り込み リレーションシップ「いいね!」(KM_Article Vote)を自動生成するリクエスト(AML)をサーバに発行します。
リレーションシップ「いいね!」の追加前処理の作り込み リレーションシップ「いいね!」(KM_Article Vote)を追加する際の事前処理として、同じユーザによる投票の有無をチェックします。また、「記事」アイテムの「いいね数」プロパティを一つカウントアップします。このメソッドは、アイテムタイプ「KM_Article Vote」のサーバイベントに割り当てます。
これだけだと、一度投票済みでも「いいね!」ボタンが表示されてしまうので、投票済みかどうかでボタンの色を変えるようにします。
「KM_Article」フォームのフォームデータ取得時処理の作り込み 「KM_Article」フォームのフォームデータ取得イベント(onFormPopulated)に、メソッドを新規作成して割り当てます。ボタンの色の調整や処理要否の設定などです。
5. 「いいね!」タブの非表示化
「いいね!」タブは見えていても意味がない、というよりも誰が投票したか見えてしまうと色々良くないので、非表示にします。リレーションシップタイプ「KM_Article Vote」の画面を開き、「全て非表示」をチェックします。
6. 後追い記事作成アクションの追加
元記事をロックしなくても(編集中にしなくても)後追い記事を作成できるように、かつ通知先も自動で設定できるように、後追い記事作成の機能を追加します。ここでは、メニューから選ぶタイプの「アクション」にします。
後追い記事作成メソッドの作成 メソッドを新規作成します。このメソッドで、「記事」アイテムを新規作成して、選択されている「記事」に「後追い記事」リレーションシップを追加します。その際、タイトルや公開先、通知先などを自動設定します。
アクションの追加 アクション「後追い記事作成」を新規作成し、作成したメソッドと関連付けます。また、これをアイテムタイプ「記事」の「アクション」タブに登録します。
※ ここでは処理を簡略化するために、後追い記事の内容を作り込む前にデータベースへの登録をしてしまっています。本来はクライアント画面上で内容を作り込んだ後に保存すべきです。また、これだけだと一度作成した後追い記事は削除できなくなってしまうので、その削除機能も用意すべきです。
(補足)リレーションシップアイテムタイプの権限変更
通常のリレーションシップは、親アイテムをロックしてから追加・編集するオペレーションとなるため、権限が親アイテムに連動しますが、今回の「いいね!」リレーションシップと「後追い記事」リレーションシップは、親アイテムをロックせずに外から追加する形となるため、親アイテムとは独立した権限設定を施す必要があります。 アイテムタイプ「KM_Article Vote」と「KM_Article Reply」の画面を開いて「パーミッションの継承」のチェックを外し、新規登録権限に「World」を、デフォルトパーミッションに「Default Access」を割り当てることにします。
動作確認
これで遂に完成です! 早速動作確認してみましょう。
いかがでしょうか? ちゃんと動いているようですね。
特殊なカスタマイズとして、例えばAras Innovatorをバックエンドとし、フロントに独自のWebページを用意してモバイル対応させたりなども、割と簡単に行えたりします。
以上で、全3回に分けてお送りしてきた「やってみよう①」のシリーズはおしまいです。Aras Innovatorを用いた「作り込み」のイメージは掴んで頂けましたでしょうか? 次回からは「Aras Innovator のトリセツ」と題し、より細かい内容についてご紹介していきたいと思います。 それでは、また次回。
(アラスジャパン 宮内一也)