BI 計画ソリューションとシナリオの計画機能の作成ガイド

 

適用先: SharePoint Server 2010 Enterprise

トピックの最終更新日: 2016-11-30

計画機能の作成ガイド

SharePoint リストを使用して計画フォームを作成する

SharePoint リストは、IW からデータを取得するときに役立ちます。SharePoint リストに入力されたデータは、ETL プロセスによって変換し、データ モデルの他の部分に読み込むことができます。

SharePoint リストを作成するには、リスト、ドキュメントなどを作成する適切な権限が必要です。Microsoft SharePoint Server 2010 のホーム ページで [リスト] をクリックし、[作成] をクリックします。さまざまなリストの種類から選択できますが、サンプル アプリケーションではカスタム リストを使用します。

まず、メインのリスト ページでフォームの列を作成します。次に、[ビューの管理] で [列の作成] をクリックし、タイトル、データ型、列の設定、および列の検証ルールを作成します。

すべての列が作成されたら、ユーザー グループ全体のユーザーにそのリストを公開して共有し、データを収集できます。この例では、ユーザーが新しい行を追加して、ポジションの支払い単価を予測できる人件費計画を作成します。ユーザーは、フォーム ベース エントリによってデータを入力できます。また、SharePoint リストは Microsoft InfoPath に統合され、カスタマイズされたエントリ用追加フォームも作成されます。

ワークフロー設定を計画する (単一レベル)

手順 1: 新しいワークフローを作成するには、[サイトの操作] メニューの [SharePoint Designer でサイトを編集] をクリックします。これにより SharePoint Designer が開き、メインページが表示されます。ナビゲーション ウィンドウで [ワークフロー] に移動し、[新規作成] の [再利用可能なワークフロー] をクリックします。

手順 1a: [SharePoint リスト] については、同様の方法でワークフローを作成できます。ただし、追加の手順がいくつか必要です。[リスト] に対してワークフローを新しく作成するには、[サイトの操作] メニューの [SharePoint Designer でサイトを編集] をクリックします。これにより SharePoint Designer が開き、メイン ページが表示されます。ナビゲーション ウィンドウで [ワークフロー] に移動し、[リストとライブラリ] をクリックします。[詳細設定] で、[リスト] への変更の [送信されたアイテムに対するコンテンツの承認を必須にする] をオンにします。このライブラリ リストのワークフローで [作成] をクリックすると、新しいワークフローが作成されます。

手順 2: このワークフローの名前と説明を指定します。

手順 3: ワークフローのステップ 1 (名前: "第 1 レベルのタスク割り当て") から開始し、[操作] で [ユーザーからデータを収集する] を選択し、強調表示された [データ] をクリックして、タスク ウィザードの手順を実行します。このタスクに対して名前と説明を指定して、[レビュー状況] のカスタム フィールドを追加します。これにより、[承認済み] と [拒否済み] の状態を選択できるドロップダウン リストが設定されます。

また、複数行のテキストを入力できる [レビュー担当者のコメント] フィールドを設定することもできます。

手順 4: [データ] フィールドを設定したら、[ユーザー] を [承認者] ユーザー グループ (または事前定義された他のユーザーかグループ) を設定できます。その後、コレクション出力の新しい変数を作成する必要があります。この例では、"ドキュメント レビュー ID" という名前を使用し、種類は "リスト アイテム ID" のままにします。完了したら、[レビュー状況] および [確認コメント] のワークフロー変数を設定します。

手順 5: [レビュー状況] に対して、[操作] の [ワークフローの変数を設定する] をクリックします。次に、"レビュー状況" を変数名として設定し、文字列値を選択します。選択する値は次のとおりです。

  • データ ソース: "関連付け: タスク リスト"

  • ソースのフィールド: "レビュー状況"

  • フィールド: "ID"

  • 値: "変数: ドキュメント レビュー ID"

手順 6: [確認コメント] に対して、[操作] の [ワークフローの変数を設定する] を再度クリックします。次に、"確認コメント" を変数名として設定し、文字列値を選択します。選択する値は次のとおりです。

  • データ ソース: "関連付け: タスク リスト"

  • ソースのフィールド: "レビュー担当者のコメント"

  • 返されるフィールド: "文字列として"

  • フィールド: "ID"

  • : "変数: ドキュメント レビュー ID"

これで、このワークフローのステップ 1 は完了です。次に、電子メール通知に対してステップ 2 (名前: "最終レベルの承認") を作成します。

手順 7: まず、ステップ 2 の条件を設定します。最初の if 句について、以下を設定します。

  • データ ソース: "ワークフローの変数とパラメーター"

  • ソースの フィールド: "変数: レビュー状況"

"次の値と等しい" 条件は "承認済み" に設定されます。次に、電子メール送信操作を設定します。電子メールはどのテンプレートでも独自に設定できます。この例では、テンプレートで以下を設定します。

  • [宛先] フィールド: "現在アイテムを作成したユーザー"

  • [件名] フィールド: "現在のアイテムのタイトル"

  • 本文のテキスト: "ドキュメントが承認されました"

手順 8: ここで、[拒否] 状態の新しい条件に対して [Else-If 分岐] を設定します。[拒否済み] 状態を設定するには、手順 7. の指示に従って操作し、"次の値と等しい" 条件を "拒否済み" に設定します。電子メール テンプレート内では、[拒否済み] 状態が反映されるようにテキストの本文を変更できます。さらに、[確認コメント] 変数のルックアップを追加して、レビュー担当者のコメントを取り込むこともできます。

手順 9: このワークフローを最終的な状態に保存できます。

ワークフロー設定を計画する (複数レベル)

最初の承認ステップと最終ステップ (電子メール通知) の間に、複数レベルの承認ステップを設定できます。これは、計画プロセス中に関連する多層承認プロセスがある場合に便利です。

手順 10: "最初のレベル: タスク割り当て" の後ろに新しいステップを設定し、"最初のレベルの承認および第 2 レベルの割り当て" という名前を付けます。まず、手順 7. ~ 8. に従って、[第 2 レベルの承認者] に対して電子メール通知を設定します。

手順 11: [レビュー状況] が承認されたら、送信内容が次のレベルの承認者に渡されます。これで、次の承認済み状態について、承認の状態とコメントを収集できます。承認済み状態内の最後のアクションで、手順 3. ~ 6. に従って承認の状態とコメントを設定します。

第 2 レベルの承認者からデータを収集するには、このロールに定義されたユーザーまたはグループが必要です。この例では、"第 2 レベルのマネージャー " という名前のグループの "第 2 レベルのマネージャーの承認" と呼ばれる新しいデータセットに対して、名前と説明を設定します。また、ユーザーのカスタム フォーム フィールドに新しい名前を設定して完了します。

第 2 レベルの承認: [承認済み] と [拒否済み] の状態を選択できるドロップダウン リストとして設定されます

第 2 レベルのコメント: 複数行のテキストとして設定されます

この 2 つのフォーム フィールドは、[レビュー状況] および [確認コメント] を設定するときに使用されます (承認済みの場合)。

送信が拒否された場合、最後の送信をコミットした所有者のみが電子メール通知を受信します。投稿者は、承認されるまで同じレベルの承認者に再送信し続けます。

手順 12: このワークフロー内で必要な追加レベルの承認について、適切なユーザーとグループに対して手順 10. ~ 11. を繰り返します。

手順 13: SharePoint 環境内で、使用可能なワークフローにワークフローが追加されたら、ドキュメント ライブラリに作成したワークフローを選択できます。ドキュメント ライブラリ内で、[ライブラリ] の [ワークフロー設定] に移動し、新しいワークフローをライブラリに追加します。

手順 14: 新しく作成したワークフローを選択し、一意のワークフロー名を入力して、新しく作成されたすべてのドキュメントでワークフローを開始できるようにします。これにより、このライブラリ内のすべてのドキュメントで、新しく作成されたワークフローが開始されます。

ユーザー環境に合わせてカスタマイズできるワークフローには多くのコンポーネントがありますが、この例では、標準的な計画、予算作成、および予測プロセスのベースラインを、承認および拒否サイクルに提供します。

新しい行を追加する

新しい行を追加する操作は、"IW" が予算を実行するときによく行われます。定義済みの入力フォームでは、IW の入力のニーズに対応しきれないことが少なくありません。たとえば、翌会計年度では数人の新しい人員に対して予算を計上し計画する必要があるのに、入力データを収集する領域が入力フォームに存在しない場合があります。理想的には、新しいディメンション メンバーが動的に作成され、予算用のデータ モデルに追加されるようにします。ここでは、2 つのアプローチの利点と欠点について簡単に説明します。

プレースホルダー (基本的なアプローチ) - カスタマイズなし 動的メンバー (高度なアプローチ) - カスタマイズが必要

実装が簡単

実装が複雑

OLAP ディメンションの処理が不要

OLAP ディメンションの処理が必要

追加のリレーショナル データベースの変更がない

リレーショナル データベースに新しいメンバー情報を保存

IW が、使用可能なプレースホルダーを使用する必要がある

IW が必要に応じて新しいメンバーを追加できる

プレースホルダー プロパティを変更できない

IW が、関連プロパティを持つ新しいメンバーを追加できる

基本的なアプローチ

従業員ディメンションで、固定数のプレースホルダー メンバーを事前に作成します。ソリューションでは、新規採用の予算計上で使用するために、TBH (採用予定) で始まる一連のメンバーを生成しました。

"北東部門" の有効な従業員のみが予算フォームに表示されていることに注目してください。これは、基盤となる MDX を定義して空の行を非表示にすることで実現できます。MDX クエリの NED は、地域ディメンションの北東部門を示しています。

1.

NON EMPTY

{
   {[Geography].[Geographies].[NED]} 
   *{ HIERARCHIZE (DESCENDANTS([Employee].[Employees].[All Employees], 0, AFTER), POST)}
   ,
   {[Geography].[Geographies].[NED]} 
   *{[Employee].[Employees].[All]}   

} ON ROWS

空の行を非表示にしているので、クエリが実行されたときに、プレースホルダー メンバーの行も返されるように、データをプレースホルダー メンバーに入力することが重要です。

高度なアプローチ

高度なアプローチでは、IW の要件を満たすように、プラットフォームにカスタマイズを作成する必要があります。カスタマイズには以下のコンポーネントが含まれます。

  • 新しい従業員とそのプロパティを収集する外部コンテンツ タイプに基づいた SharePoint リスト。詳細については、「[方法] 外部コンテンツ タイプを作成する」を参照してください。SharePoint の外部コンテンツ タイプ機能は、ディメンション、階層テーブルなどのアプリケーション データを IW に直接公開するときに役に立ちます。

  • Analysis Services ディメンションを処理する Excel の VBA (注: ユーザーには、Analysis Services データベースでの処理権限が必要です)。

IW は、新しい行を作成するときに以下の作業を行います。

  • SharePoint に移動し、新しい従業員とその詳細を追加します

  • Excel フォームから、ディメンション処理の VBA を実行します

  • Excel ピボットテーブルから予算計上を続行します

例では、SharePoint リストを使用して新しいリスト アイテムを追加することで、新しいテーブル レコードがディメンション テーブルにデータ ストアから作成されます。この新しいレコードは、SSAS ディメンションでの処理コマンドの実行後、SSAS の階層定義の設定に基づいて階層のメンバー方向に自動処理されます。実質的には、IW が、使い慣れたレコードに対して必要な更新を直接行えるようにします。これは、ピボットテーブルや他のクライアント ツールからのデータの表示方法に直接影響を及ぼします。

更新が、SSAS 階層構造のアイテムのフラット リストで行われている点に注意することが重要です。この構造は、これらのアイテムのプロパティ フィールドから取得したものです。これは、PC ベース階層とレベル ベースの階層の両方に当てはまります。

Analysis Service ディメンション処理用の VBA

Excel 2013 ブックで定義されたマクロから新しいディメンション メンバーを処理する例を以下に示します。マクロは SSAS サーバーのインスタンスに接続し、ディメンション処理に対して XMLA コマンドを発行します。プロセスの種類として "ProcessAdd" が使用されていることに注目してください。これは、新しいメンバーをディメンションに追加するときの最高速のオプションなので重要です。ProcessFull を必須にするのは避けてください。ProcessFull により関連キューブも処理されることになります。

Sub ProcessAddEmployee()

 Dim connection As New ADODB.connection
 Dim xmlaCommand As New ADODB.Command

 Dim ServerName As String
 Dim DatabaseName As String
 Dim DimensionName As String

 ServerName = "kepion02"
 DatabaseName = "AdventureWorks Planning"
 DimensionName = "Employee_All_Employee"

 connection.Open("Provider=MSOLAP;Data Source=" & ServerName _
       & ";Initial Catalog=" & DatabaseName & ";" _
       & "Integrated Security = SSPI;")

 xmlaCommand.ActiveConnection = connection
 xmlaCommand.CommandTimeout = 120 ' 120 seconds

 xmlaCommand.CommandText = _
 "<Batch https://schemas.microsoft.com/analysisservices/2003/engine"">" & _
 "<Parallel>" & _
  "<Process>" & _
   "<Object>" & _
    "<DatabaseID>" & DatabaseName & "</DatabaseID>" & _
    "<DimensionID>" & DimensionName & "</DimensionID>" & _
   "</Object>" & _
   "<Type>ProcessAdd</Type>" & _
   "<WriteBackTableCreation>UseExisting</WriteBackTableCreation>" & _
  "</Process>" & _
 "</Parallel>" & _
 "</Batch>"

 xmlaCommand.Execute()
 connection.Close()

End Sub

このマクロは、Excel クイック アクセス ツール バーのボタンに関連付けることもできます。これにより、計画および予算作成時に、ユーザーがすばやく簡単にマクロを見つけられるようになります。

See Also

Concepts

BI 計画ソリューションとシナリオの基本的な計画シナリオ
BI 計画ソリューションとシナリオのデータ マートを計画する
BI 計画ソリューションとシナリオにおけるモデル化の概念の計画
BI 計画ソリューションとシナリオでの書き戻しキューブ モデリング
BI 計画ソリューションとシナリオにおけるパフォーマンスに関する考慮事項と方法
BI 計画ソリューションとシナリオの Excel PowerPivot を使用したキューブ モデリング
BI 計画ソリューションとシナリオのレポートおよびフォームの作成
BI 計画ソリューションとシナリオの計画データの提出
BI 計画ソリューションとシナリオのワークフロー アクション、ワークフロー図、および SharePoint ワークフローの設定
BI 計画ソリューションとシナリオの監査管理
BI 計画ソリューションとシナリオの管理
BI 計画ソリューションとシナリオの計算
BI 計画ソリューションとシナリオの追加の計画機能
BI 計画ソリューションとシナリオの移行
BI 計画ソリューションとシナリオのメンテナンス
BI 計画ソリューションとシナリオの企業による関連企業の管理
BI 計画ソリューションとシナリオのモデルおよびレポート作成の計画ガイド
BI 計画ソリューションとシナリオの計画機能の作成ガイド
BI 計画ソリューションとシナリオでの計画と予算の計算の例