2009-05-28 4 views
5

最近、SharePointサイト内の変更に対して日次要約アラートを受け取る必要がありました。各サイトには、サイトのコンテンツを担当する所有者がいます。SharePointサイト内の変更に対して日次要約アラートを作成する方法

私たちが働く現在の方法は、サイト内のすべてのリスト/ライブラリに対してアラートを自動的に設定することです。

  1. ユーザーが作成した別のアラートをたくさん持っている:

    // Get the Lists on this Site 
    SPListCollection siteLists = currentSite.Lists; 
    foreach (SPList list in siteLists) 
    { 
        if (!list.ToString().Equals("Master Page Gallery")) 
        { 
         if (list.ReadSecurity == 1) // user has read access to all items 
         { 
          // Create an Alert for this List 
          Guid alertID = currentUser.Alerts.Add(list, SPEventType.All, SPAlertFrequency.Daily); 
    
          // Set any additional properties 
          SPAlert newAlert = currentUser.Alerts[alertID]; 
         } 
        } 
    } 
    

    これは二つの問題を作成します。理想:1日の要約を含む1つのメールのみ。

  2. サイト内の新しいリストやライブラリをチェックし、自動的にアラートを設定するために、モニタを設定する必要があります。

Q:サイト内のすべての変更について日次要約アラートを作成するにはどうすればよいですか?

答えて

6

あなたが探しているソリューションは、監査フレームワークから入手できると思います。監査はSPで非常に堅牢ですが、残念ながら出力によって圧倒されるのは簡単です。

監査は、SPSite、SPWeb、SPList、SPItemの各プロパティで使用できるプロパティです。

このプロパティを使用して(.Audit.AuditFlagsプロパティを使用して)特定の監査フラグを調整して、ニーズをスイートにします(詳細は「変更」の定義方法に依存しますが、

SPAudit objectに関する詳細は、MSDNでご覧になれます。

監査対象とする場所や場所を定義したら、その情報をユーザーに返す必要があります。

デフォルトでは、SPはサイトコレクションレベル([サイトコレクションのURL]/_ layouts/Reporting.aspx?Category = Auditing)で利用できる素晴らしいレポートを設定します。これらはあなたのニーズを満たすかもしれません。

あなたの最初の解決策では、ユーザーの電子メールによる警告が記載されていました。ほとんどのユーザーは自分の情報を電子メールに集中させたいと考えています(ただし、MySiteはレポートにリンクするのに最適な場所です)。もう少し作業が必要です。

SPAuditQueryオブジェクトとSPAuditEntryCollectionオブジェクトを使用して、オブジェクトモデルを通じて必要な監査情報を取得できます。これらのオブジェクトの使用方法については、MSDN has some informationを参照してください。

私はその日の終わりに実行されるカスタムSPJobDefinitionをセットアップして、自分のサイトの監査レポートを電子メールで送信することをお勧めします。アンドリュー・コネルは彼のブログにhow to setup a custom jobという素晴らしい説明をしています。

  • 質問
  • でSPWeb年代の監査を有効にする各SPWeb
  • ためSPAuditQueryとSPAuditEntryCollectionを使用してレポートを作成するレポートを電子メールで送信するために毎晩実行さSPJobDefinitionを作成:要約する

    各SPWebの所有者

2

サイトで監査ポリシーを有効にする前に考慮すべきことは、パフォーマンスオーバーヘッドを追加します。

ここではフットプリントをできるだけ少なくすることをおすすめします。

これは、特定のコンテンツタイプまたはこの情報が必要な特定のリストの場合は、これらのCTまたはリストの情報ポリシーのみを有効にしてください。

また、ロギングを最小限に抑えてください。たとえば、ビューにのみ関心があり、削除や復元ではない場合は、これらのイベントだけを記録してください。

大規模なサイトでは、本当にゴミのパフォーマンスを監査しています。

リストで監査を有効にすることはできますが(ドキュメントライブラリではないなど)、多くのイベント(ビューイベントなど)はリストアイテム専用に記録されません。これはどこにも記載されていません(実際に私はTed PattisonがMSDN記事でアイテムレベルの監査を言及していることさえ知っていますが)性能問題のためにアイテムレベルの監査がSP2007に実装されていないCSSと製品チームから直接得ました。代わりに、リストにタッチされたことを指定するログのリスト・イベントを取得するだけです。

ドキュメントはかなり正常に追跡されますが、監査が設定された方法と場所に応じて、公開ページ(APIではドキュメントではないと見なされます)のビューイベントを監査する際に問題が発生しました継承されたCTで実装されていたので注意してください)。

[編集:昨日、この周りにいくつかのテストを行なったし、そのさらに悪化:実際にはパブリッシングページは、サイトレベルの監査ポリシーに設定されている場合、追跡のみです!一覧またはコンテンツタイプ(またはポリシーを使用してコンテンツタイプを継承するコンテンツタイプ)にポリシーを設定すると、には SPAuditItemType.Documentレベルのイベントはまったくありません。サイトに設定すると、監査があまりにも多くなります!例えば。ビューはx2ビューのイベントをトリガーし、アップデートと同様にログを記録することになります。それはdefinetely

ここでの主なメッセージがある] ...ポリシーがリストやCTの上に置かれたときに何が監査されていないバグのようになります。それはあなたのサイトがあること TESTに、パフォーマンスに影響しますので、 あなたは、慎重にログインする何何ログが実際にログに記録されることを期待してください!

HTHはAndersラスク

+0

ありがとうございました!私は自分の問題を解決する最良の方法が何であるかを正確には決めていません。監査は問題を解決するかのように見えましたが、アイテムレベルの監査がない場合は、別の方法を見つける必要があります。 –

0

まあ、アイテムレベルの監査がない場合ではありません。アイテムレベルの監査は実装されていますが、特定のアイテムに対してはオンにする必要があります。リストアイテムが存在する場合は、そのインスタンスを取得し、これをリストと同じように監査をオンにすることができます。問題は、ListItemの作成時にそれを有効にする方法です。多分ワークフローが助けになるだろうか?

+1

あなたの答えがわかりません。監査はサイトコレクションレベルでオン/オフになっています。 –

関連する問題