MOSS で無理やり Rating
金曜日, 1 月 15th, 2010
SPS2010 では、アイテムに対する Rating 機能が標準でついているみたいですね。
MOSS でも SPD の WF を利用するとできるんですよ!
が…ちょっと実用にはという感じも…とりあえずこんなネタでも有用に思われる方がいらっしゃるかもしれないので共有しておきます。まずは実装画面からお見せします。
1.まずは Rating 前の状態です。Rating が現時点での評価、RatingNum は現時点での評価人数、AddRating は評価点になります。ここまでは、(1+2+3) / 3 = 2 という Ratingになってます。
2.アイテムのプロパティにある AddRating の値を入力して評価をします。今回は 4 を入力
3.今回は手動でワークフローを実行してみます。
4.実行結果の画面を見ると、2.5 = ( 1+2+3+4 ) / 4 になってます。
とまぁ、こんな感じで実装することができます。
ちなみに SPD の WF でどのように実装したかというと以下のような感じです(一部抜粋)。
ちょっとわかりにくいと思いますが、要は
([現時点での評価の値] X [今までの評価人数] + 今回の評価) / [今回の評価までの総人数]
今回の場合だと (2 X 3 + 4) / 4 を実行しているだけです。あとは今回の評価の点数を初期化( 0 にする)などのちょっとした設定をするだけになります。
ただし、厳密な意味で実装を考えると以下の 2 点が問題です。
・新規入力フォーム、編集フォーム利用時にほかの値を編集できないようにフォームを作成する必要がある(フォームの作成・編集方法はこちら)。
・WFを使いまわせないので結構大変(まぁ、GUIDを編集して使いまわすという荒業もありますが…)
ということで、弊社ひっそりと一つのライブラリのみ実装しております…
これ、ライブラリの移動はSPDのWFを利用し、プロパティの値でどこのライブラリに移動するかを制御してます。
WFの承認者用の変数にアリアス(tyamadaまたはdomain\tyamada)を設定すると、タスクの担当者として適切に割り当たりました。
ま、そもそもタスクを割り当てる必要がないと言えばないですが…
。