Posts Tagged ‘’

MOSS で無理やり Rating

金曜日, 1 月 15th, 2010

SPS2010 では、アイテムに対する Rating 機能が標準でついているみたいですね。

MOSS でも SPD の WF を利用するとできるんですよ!


が…ちょっと実用にはという感じも…とりあえずこんなネタでも有用に思われる方がいらっしゃるかもしれないので共有しておきます。まずは実装画面からお見せします。

1.まずは Rating 前の状態です。Rating が現時点での評価、RatingNum は現時点での評価人数、AddRating は評価点になります。ここまでは、(1+2+3) / 3 = 2 という Ratingになってます。

image

2.アイテムのプロパティにある AddRating の値を入力して評価をします。今回は 4 を入力

image

3.今回は手動でワークフローを実行してみます。

image

4.実行結果の画面を見ると、2.5 = ( 1+2+3+4 ) / 4 になってます。

image

とまぁ、こんな感じで実装することができます。

ちなみに SPD の WF でどのように実装したかというと以下のような感じです(一部抜粋)。

image

ちょっとわかりにくいと思いますが、要は

([現時点での評価の値] X [今までの評価人数] + 今回の評価) / [今回の評価までの総人数]

今回の場合だと (2 X 3 + 4) / 4 を実行しているだけです。あとは今回の評価の点数を初期化( 0 にする)などのちょっとした設定をするだけになります。

ただし、厳密な意味で実装を考えると以下の 2 点が問題です。

・新規入力フォーム、編集フォーム利用時にほかの値を編集できないようにフォームを作成する必要がある(フォームの作成・編集方法はこちら)。

・WFを使いまわせないので結構大変(まぁ、GUIDを編集して使いまわすという荒業もありますが…)

ということで、弊社ひっそりと一つのライブラリのみ実装しております…

SharePointの活用をするためには??【TIPS】~疑似ワークフロー~

月曜日, 9 月 7th, 2009

以前のSaruhikoさんのブログのコメントをもとに、以前からネックだったWF(ここでは、厳密に言うとワークフローっぽいこと)を社内に導入しました!

ちなみにこのWFはドキュメント(Wordとか)をそのままWFで利用したい場合です(InfoPathフォームですべて実装するのは手間がかかるので…)

やっていることはSimpleなんですが意外と良い感じです。SharePoint標準提供のWF(SPD含む)で差し戻しっぽいことをしようとすると、承認のワークフローで割り当ての変更依頼を利用するという方法しかなかったのですが、どうもユーザーの操作性が原因で使ってもらってないみたいです(まぁ、インストラクションだしても誰も読まないですしね・・・)

で、どんなのを実装したのかというと下記の感じです。あくまでイメージであり、詳細な設計ではありません

(ひさびさに図を作った気がします)。

これ、ライブラリの移動はSPDのWFを利用し、プロパティの値でどこのライブラリに移動するかを制御してます。

さて、何が嬉しいかというと…

  • エンドユーザはプロパティのステータスを変えるだけでOK(わざわざWFタスク開かなくてOK!、作業負荷が減)
  • エンドユーザーは開くだけで、自分の作成しているコンテンツ、承認するコンテンツが一目で把握できます(期限を設定して、有効期限順にならべているのでさらに良い感じです←どうせタスクで有効期限つけたところで、強制力はないので…ちなみにがんばれが上司が部下の期限を把握するビューも可能で)。
  • ライブラリを分けることで、通知メールをそのまま流用できます。1つのライブラリだと定型のメールしかこないので、WFステータスのどのステータス(承認、申請など)かがわからないのですが、この場合、ライブラリを分けているので、ライブラリの名前(WFのステータス)=メールの件名となり、定型メールでも十分いけます!
  •  Saruhikoさんのブログのコメントを参考させて頂いて、ある程度ライブラリ単位で権限管理ができている!
  • もちろん一部イレギュラーな操作に関しては手動でWFを起動するなどの操作がありますが、そのインストラクションをページに直接表示しているので、問題ナシ!(たまに問合せきますけど…)

と書かせて頂きましたが、これOffice2007があるかないかでかなりユーザーの操作感が変わります。

ただ、一番のポイントはWF製品を買わなくてもある程度イケル!です

(もちろん、法律のしばりとかでWF製品を購入しなくてはいけない場合もあると思いますが…)

ということで、Saruhikoさんありがとうございました!

SharePoint Designerで、任意の承認者を選択するWFの作成(InfoPath 2007を利用するとき)

日曜日, 6 月 22nd, 2008

以前の記事で紹介したのは、MOSSのフォームを利用するというやり方でしたが、
同じことをInfoPathフォームを利用する時には、若干クセが出てきます。
InfoPathのフィールドに承認者を設定する場合ですが、「山田太郎(表示名)、tyamada(アリアス)」を承認者とする場合、
以前の記事で紹介した、WFの承認者用の変数表示名(山田太郎)を値として設定すると、タスクの担当者として適切に割当たりません… WFの承認者用の変数アリアス(tyamadaまたはdomain\tyamada)を設定すると、タスクの担当者として適切に割り当たりました。

ん~なぜ??私から見ると単なるテキストを渡しているように見えるんですけどね・・・ ま、そもそもタスクを割り当てる必要がないと言えばないですが…

SharePoint Designerで、任意の承認者を選択するWFの作成

日曜日, 6 月 22nd, 2008

以下のシナリオのWFをSPDで作成する方法をご紹介します。

シナリオ

  1. 申請者は、ユーザーPicker(ユーザー型のプロパティのことです)を利用し、承認者を選択します。
  2. 承認者は、SharePointのフォームで承認・却下を実施します。
  3. 申請者が申請したアイテムのプロパティに承認の状態を反映させます。
必要最低限の設定(以下、太字アクションを指します)
  1. ドキュメントライブラリに「承認者(ユーザ・グループ型)」・「承認状態(1行テキスト)」というプロパティを用意します。
  2. SharePoint DesignerからWFを新規作成します。
  3. (ステップ1の画面において)現在のアイテムでのフィールドの変更を待つを追加し、フィールド承認者、に等しい空でないに設定します(このアクションを追加するか、このステップ1をこのアクションのみにしないと動作しません)。
  4. 次に、ワークフローの変数を設定するにおいて、新しい変数(種類文字列)を作成(この変数を承認者変数とします)し、次にfxを押して、現在のアイテム承認者を選択します。
  5. ユーザーからデータを収集するを追加し、ユーザーワークフロー参照を選択し、ワークフローデータから変数:承認者変数として設定し、データ承認用タスクを選択します。次へを押したあと、カスタムフォームフィールドを設定します。追加を押し、フィールド名:承認・却下と入力し、情報の種類:選択肢(メニューから選択)を選択し、次へを押します。選択肢に未承認承認却下を入力し、完了を押します。
  6. リストアイテムを更新するを追加し、リスト:現在のアイテムを選択し、追加を押します。フィールド:承認状態割り当てる値を設定:fxを押して、ソース(S):ワークフロータスク(ワークフローが利用するタスクリスト名を選択)、フィールド(F):承認・却下、リストアイテムの検索のフィールド(I)、値(V):fxを押して、ソース(S):ワークフローデータ、フィールド(F):"変数:収集(ユーザーからデータを収集するアクションで作成される変数)"を選択します。
このカスタマイズでのポイントは「6」です。ワークフローを開始したアイテムと、そのアイテムに関連するタスクを一意に識別するのに大変苦労しました(アイテムとタスクで同じプロパティを持つ必要があります)。今まで、私が試したパターンは、パス(http://portal/sites/doclib/ファイル名)上記のIDで識別する方法です。パスだと同じファイル名がある時点で一意に識別できないという問題が起きます…ちなみにパスを一致させるのも工夫が必要です。同じ値がないので・・・ほかの方法を知っているかたは教えてください…あと、追記ですが、上記のIDで識別する場合は、変数で一意のIDを保持していますが、IISResetを実行しても変数の値は消去されません

SharePoint Designerのカスタムアクティビティ

日曜日, 6 月 22nd, 2008

以下のサイトには、SPDで利用できる追加のアクティビティがあります。

とても便利なアクティビティが用意されています。かなりありがたいです

http://www.codeplex.com/SPDActivities

 CodePlexにはそのほかにも良いソースがあるのでおすすめのコンテンツがあれば紹介していきたいと思います。

SharePoint Designerでアイテムを参照する際に選択できるプロパティ

日曜日, 6 月 22nd, 2008

私は、開発が得意ではないので、基本的にノンコーディングでの要件を満たそうとがんばります。
要件満たせないと開発しないといけないので・・・特にWFの開発は避けたいたいなと
ですので、SPDのWFは実際かなり触りました…
ちなみに、システムのフィールドがWF中にどのような値の持ち方してるか全然資料がなかったのもので
調べた情報を共有します…MSさん、資料出してほしいです 

※以下のプロパティは既定値です。追加したプロパティも利用できます。

ドキュメントライブラリで選択できるプロパティ

http://portal/sales/Doclib/

に"ファイル名.xlsx"をアップロード。2番目のアイテム
タスクで選択できるプロパティ

http://portal/sales/Lists/List/8_.000

にタスクを作成。8番目のアイテム
(プロパティ名)

(値):値がなかった箇所は確認できていません

GUID
{476773DA-A9D7-450F-AD7F-6136B3EF03F7}

HTMLファイルの種類

ID
2(ライブラリのID)

UIバージョン
512(チェックアウト→チェックインをした後は514)

URLパス
/sales/Doclib/ファイル名.xlsx

アイテムの種類
0

ウィルスの状態
16528

エンコードされた絶対URL
http://portal/sales/Doclib/ファイル名.xlsx

コンテンツタイプ
ドキュメント

コンテンツタイプのID
0x01010067A72797B384974BA9EB4B32693BFAEE

サーバーの相対URL
/sales/Doclib/ファイル名.xlsx

ソースURL

ソースのバージョン(変換済みドキュメント)

ソース名(変換済みドキュメント)

タイトル

チェックアウト先

チェックインのコメント

テンプレートのリンク

バージョン
1.0

パス
sales/Doclib

ファイルサイズ
16528

ファイルサイズ
16528

ファイルの種類
xlsx

レベル
1

現在のバージョン
TRUE

更新者
Domain名\ユーザ名

更新日時
2008/5/22 0:04


作成者


Domain名\ユーザ名

作成日時
yyyy/mm/dd hh:mm:ss

種類(ドキュメントにリンクされたアイコン)
xlsx

順序
200

承認の状況
0;#承認済み

承認者のコメント

名前
ファイル名

名前(フォームで使用)
ファイル名.xlsx
(プロパティ名)

(値):値がなかった箇所は確認できていません

Completed

Form_URN

GUID
{28BEEEC2-0A7C-4C77-9224-F7555EEE2481}

HTMLファイルの種類

ID
8

UIバージョン
512

URLパス
/sales/Lists/List/8_.000

アイテムの種類
0

コンテンツタイプ
タスク

コンテンツタイプのID
0x0108002A67581AAF875842B808EF50BE5A6FA4

サーバーの相対URL
/sales/Lists/List/8_.000

タイトル
TEST

タスクグループ

タスクの種類

バージョン
1.0

パス
sales/Lists/List

ファイルの種類

ファイル名
8_

フォームデータ

ユーザー設定の電子メール本文あり

リンク

レベル
1

ワークフロー アイテムID

ワークフロー リストID

ワークフロー名

開始日
2008/5/22 0:00

外部参加の理由

外部参加者

拡張プロパティ

期日

結果

現在のバージョン
TRUE

更新者


Domain名\ユーザ名

更新日時


yyyy/mm/dd hh:mm:ss

作成者


Domain名\ユーザ名

作成日時


yyyy/mm/dd hh:mm:ss

種類(ドキュメントにリンクされたアイコン)

順序
800

承認の状況
0;#承認済み

承認者のコメント

状態
未開始

説明


達成率(%)

担当者

添付ファイル
FALSE

電子メールの通知の送信

電子メールの本文

変更保留時間

名前(フォームで使用)
8_.000

優先度
(2) 標準
ページで選択できるプロパティ

http://portal/sales/Pages/

に"ファイル名.aspx"をアップロード。2番目のアイテム
 
(プロパティ名)

(値):値がなかった箇所は確認できていません

GUID
{C73E4BA1-7CDC-4AD1-B8B0-8E0B1573D402}

HTMLファイルの種類

ID
2

UIバージョン
512

URLパス
/sales/Pages/ファイル名.aspx

アーティクルの日付

アイテムの種類
0

ウィルスの状態
21111

エンコードされた絶対URL
http://portal/sales/Pages/ファイル名.aspx

コンテンツタイプ
ページ

サーバーの相対URL
/sales/Pages/ファイル名.aspx

ソースURL

ソースのバージョン(変換済みドキュメント)

ソース名(変換済みドキュメント)

タイトル

チェックアウト先

チェックインのコメント

テンプレートのリンク

バージョン
1.0

パス
sales/Pages

バリエーションのグループID

バリエーションのリレーションシップ リンク

ファイルサイズ
21111

ファイルサイズ
21111

ファイルの種類
aspx

ページレイアウト

レベル
1

現在のバージョン
TRUE

更新者


Domain名\ユーザ名

更新日時


yyyy/mm/dd hh:mm:ss

作成者


Domain名\ユーザ名

作成者

作成日時


yyyy/mm/dd hh:mm:ss

種類(ドキュメントにリンクされたアイコン)
aspx

順序
200

承認の状況
0;#承認済み

承認者のコメント

説明

名前
ファイル名

名前(フォームで使用)
ファイル名.xlsx

連絡先

連絡先の電子メールアドレス

連絡先の名前

連絡先用の画像

SharePoint Designerのワークフロー(WF)について

日曜日, 6 月 22nd, 2008

SharePoint Designer(以下、SPD)ではあらかじめ用意されたアクションを利用して簡単なWFを作成することができます。

下記の作成画面ですが、いまいち直感的に理解しずらいと思います・・・ image

ただ、条件アクションステップに関して以下のような図を描くことができると直感的に作成することができるかな?と思います。

 WF

 条件:読んで字の如く、条件を指定します。以下、一覧です。

    • ドキュメントフィールドの比較:「指定したライブラリ・リストのプロパティ」と「ワークフローデータ(変数)、現在のアイテム、サイト内のリスト・ライブラリのプロパティ」を比較
    • データソースの比較:「ワークフローデータ(変数)、現在のアイテム、サイト内のリスト・ライブラリのプロパティ」と「ワークフローデータ(変数)、現在のアイテム、サイト内のリスト・ライブラリのプロパティ」を比較
    • タイトルフィールドにキーワードを含む:現在のアイテムのタイトルフィールドに「ワークフローデータ(変数)、現在のアイテム、サイト内のリスト・ライブラリのプロパティ」の文字が含まれるかを確認
    • 指定した期間内に変更された:2つの日付を比較する。現在の日時・任意の日付の選択、「現在のアイテム、またはワークフローデータ(変数)、サイト内のリスト・ライブラリのプロパティ」から日付を選択可能
    • 指定したユーザーによって変更された

      • アドレス帳に登録されているユーザー
      • ワークフロー変数
      • 現在のアイテムを作成したユーザー
      • ADに登録されているユーザーまたはSharePointグループを選択可能

    • 指定した期間内に作成された:2つの日付を比較する。現在の日時・任意の日付の選択、「現在のアイテム、またはワークフローデータ(変数)、サイト内のリスト・ライブラリのプロパティ」から日付を選択可能
    • 指定したユーザーによって作成された

      • アドレス帳に登録されているユーザー
      • ワークフロー変数
      • 現在のアイテムを作成したユーザー
      • ADに登録されているユーザーまたはSharePointグループを選択可能

    • 指定したファイルの種類:任意の文字列、または「現在のアイテム、またはワークフローデータ(変数)、サイト内のリスト・ライブラリのプロパティ」から選択可能
    • ファイルサイズが指定した範囲内(キロバイト):「ワークフローデータ(変数)、現在のアイテム、サイト内のリスト・ライブラリのプロパティ」から2つのサイズ範囲を指定

アクション:WFの処理に該当します。以下一覧

    • To Doアイテムを割り当てる
    • アイテムのチェックアウトを破棄する
    • アイテムのチェックアウトをする
    • アイテムをチェックインする
    • アイテムを削除する
    • コンテンツの承認状態を設定する
    • フォームをグループに割り当てる
    • ユーザーからデータを収集する
    • リストアイテムをコピーする
    • リストアイテムを更新する
    • リストアイテムを作成する
    • ワークフローの変数を設定する
    • ワークフローを停止する
    • 計算を行う
    • 現在のアイテムでのフィールドの変更を待つ
    • 現在のアイテムにフィールドを設定する
    • 指定した期間だけ停止する
    • 指定日まで停止する
    • 電子メールを送信する
    • 動的文字列を作成する
    • 日付/時刻フィールドの時刻部分を設定する
    • 日付に時刻を追加する
    • 履歴リストに記録する

ステップ:条件とアクションをまとめる単位。1 つのステップ内のルールが完全に処理された後で次のステップに移行するという特徴があります。
あとは、用意された条件アクションステップでPuzzleをするようなものです。ただし、単にPuzzleで考えるとかなりいろいろなことができます。
しかし、実装をすると…というのが現状です。実は1つの1つのアクションには特有のクセみたいなものがあります。
たとえば、コンテンツの承認状態を設定するというアクションはライブラリでコンテンツの承認が有効になっている必要があったり、
To Doアイテムを割り当てるというアクションでは、割り当てたタスクが完了するまで次のアクションを実行しないなどです。
ですので、私は、最初はヘルプに出ているサンプルでコツをつかんだ後、その後で実際に自分でWFを作成しました。
今後は、便利だと思うSPDのWFについて紹介していきたいと思います。


ホットワード background border 金曜日 アイテム 利用
割引クーポンまとめ情報 - クー割