今回からは新シリーズです。 これまで数回に渡りご紹介してきたArasフレームワークの構成要素を実際に組み合わせて、簡単なシステムを構築してみたいと思います。 ご紹介してきた内容のイメージアップに繋がれば何よりです。
何を作るか
挑戦するお題は、ユーザが思い思いのネタを投稿して構成するタイプの 「簡易ナレッジベース」 です。 以下の機能を実現します。
- 記事の投稿
- 記事へのファイル添付やタグ付け
- 記事の公開範囲の設定
- 投稿された記事に対する後追い記事投稿
- 後追い記事の元記事投稿者への通知
- 投稿された記事への「いいね!」投票
データモデル
まずはデータモデルを考えます。 ただ、データモデルは抽象概念を扱いますので、最初はかなり敷居が高いかもしれません。 慣れない内はぜひ、Aras Innovatorの画面をイメージしましょう。画面イメージがそのままデータモデルに相当しますので、具体的に考え易くなるはずです。
これを、Aras Innovator上に実装するアイテムタイプやリレーションシップの形に置き換えると・・・
さらに、画面に配置する入力欄やグリッドに表示する項目をイメージしながら、必要となるプロパティを挙げていきます。
データモデルがある程度出来上がったら、いよいよAras Innovatorへ実装します。
※ 実際のプロジェクトにおいても、データモデルが「ある程度」出来上がった段階でさっさとプロトタイプを作ってしまうのがオススメです。具体化してみてはじめて気付く不整合も多いですし、ユーザからのフィードバックも何十倍も有意義なものになるはずです。データモデルのお絵描きをどれだけ工夫したところで、結局は「抽象概念」ですので。
アイテムタイプの実装
・・・とその前に、Aras Innovatorのセットアップをお忘れなく。 今回は、
- Aras Innovator 9.4.0
- 1台のWindows7 PC上にInnovatorサーバ、Vaultサーバ(及びVault領域)、DBサーバを詰め込んだ「オール・イン・ワン」構成
- メール通知も使いたいので、SMTPサーバもセットアップ
でいきます。 この辺りの設定方法については、インストールガイド をご参照ください。
さて、いよいよ実装です。
- まずはログインID「admin」(= ユーザ「Innovator Admin」のアカウント)でログインします。
- TOCの「アドミニストレータ」フォルダを開いて「アイテムタイプ」を選択し、「新規作成」を実行。まずは中心となるアイテムタイプ「記事」を作成します。
- アイテムタイプ新規作成画面の上半分を「記事」の設定内容で埋めて保存 → システムプロパティが自動作成されて下半分に現れます。
- 「プロパティ」タブ内に、「記事」のプロパティを追加し、再度保存。
- 「ビュー」タブ内のフォームを選択し、右クリックからフォームをリビルド。この操作でプロパティの内容がフォームに自動反映されます。レイアウトをいじりたい場合はこの後フォームを編集しますが、今回はスキップします。
- TOCに表示できるように、「TOCアクセス」タブも設定します。現時点ではとりあえずどのフォルダにも入れず、かつ誰でもアクセスできるようにしておきます。
- 「新規登録権限」タブで新規登録権限を設定します。現時点ではとりあえず誰でも新規登録できるようにしておきます。
- 「パーミッション」タブでデフォルトパーミッションを設定します。現時点ではあまり深く考えず、既定で用意されているパーミッションを割り当てておきます。
※ ここまでの6~8の作業で、アイテムタイプ「記事」に対するアクセス権を設定していることになります。アクセス権には、メニュー表示権限(TOCアクセス)、新規登録権限、登録されたアイテムの参照・操作権限(パーミッション)の3段階があったことを思い出してください。
- アイテムタイプ「記事」を保存した後 アンロックし、画面を閉じます。
- 同様に、アイテムタイプ「タグ」も作成します。なお、「ファイル」と「ユーザ」はAras Innovatorに標準で備わっているアイテムタイプをそのまま使いますので、新規に作成する必要はありません。
リレーションシップの実装
次にリレーションシップを設定します。前述したデータモデルを眺めると、設定が必要なリレーションシップは以下の4つだということが分かります(青色の六角形で表していたやつです)。
- 付与タグ (記事→タグ)
- 添付ファイル (記事→ファイル)
- 後追い記事 (記事→記事)
- いいね! (記事→ユーザ)
以下、それらを設定していきます。
- アイテムタイプ「記事」の画面を開いてロックした後、「リレーションシップタイプ」タブを選択。
- 「リレーションシップタイプ」タブ内の新規作成ボタンを押す。リレーション先のアイテムタイプを選択するダイアログが現れるので、「タグ」を選択してダイアログを閉じます。
- タブラベルに「付与タグ」を、リレーションシップ名称に「KM_Article Tag」を設定。
- アイテムタイプ「記事」を保存。
- 今作成した「リレーションシップタイプ」タブ内の行を選択し、右クリックからリレーションシップタイプを開きます。
- リレーションシップタイプ「付与タグ」の画面でロックをし、「リレーティッド必須」をチェック。特殊なリレーションシップを除いて、このオプションはチェックするものとお考えください。
- リレーションシップタイプ「付与タグ」を保存・アンロックし、画面を閉じます。
- アイテムタイプ「記事」を保存。
- 同様に、残りのリレーションシップについても作成します。
なお、リレーションシップタイプ「添付ファイル」の新規リレーティッドオプションは、「作成(Create Related)」を選択します。一方「いいね!」は、「選択(Pick Related)」にしておきます。
- リレーションシップタイプの設定が完了したら、アイテムタイプ「記事」を保存・アンロックし、画面を閉じます。
動作確認
ここまででデータモデルは一通り実装完了です。 画面レイアウトや細かい機能の実装はまだですが、新規登録や検索などを実際に動かしてみることが可能ですので、簡単に動作確認してみましょう。データ間の繋がりがイメージ通りかなど、具体的に検証できるかと思います。
※ 今回はここまでです。データモデルは機能の「背骨」に相当する部分と言えるかもしれません。次回はパーミッションやライフサイクルの設定など、今回作成した「背骨」に対し、機能の「骨格」を形作っていきたいと思います。是非ご期待ください。 それでは、また次回。
(アラスジャパン 宮内一也)