Power Automate で V1 プロジェクト スケジュール API を使用する
適用対象: リソース/非在庫ベースのシナリオに使用する Project Operations、見積請求に対応する小規模の展開
この記事では、Microsoft Power Automate を使用して完全なプロジェクト計画を作成する方法、操作セットを作成する方法、およびエンティティを更新する方法を示すサンプル フローについて説明しています。 この例は、プロジェクト、プロジェクトチームのメンバー、操作セット、プロジェクト タスク、リソースの割り当てを作成する方法を示しています。 この記事では、エンティティを更新して操作セットを実行する方法についても説明しています。
この記事の例では、PssCreateV1 API を使用します。 PssCreateV2 API を使用する例については、Power Automate での V2 プロジェクト スケジュール API を参照してください。
この記事のサンプル フローに記載されているステップの完全なリストを次に示します:
- Power Apps トリガーの作成
- プロジェクトの作成
- チーム メンバーの変数を初期化する
- 汎用チーム メンバーの作成
- 操作セットの作成
- プロジェクト バケット ID の変数を初期化する
- プロジェクト バケットの作成
- タスクの数の変数を初期化する
- プロジェクト タスク ID の変数を初期化する
- 終点
- プロジェクト タスクを設定する
- プロジェクト タスクを作成する
- リソース割り当てを作成する
- 変数を減らす
- プロジェクト タスクの名前を変更する
- 操作セットの実行
前提条件
この記事では、Dataverse プラットフォーム、クラウド フロー、プロジェクト スケジュール API の基本的な知識があることを前提としています。 詳細については、この記事の後にある 参照 セクションをご覧ください。
フローの作成
環境を選択する
自分の環境で、Power Automate フローを作成できます。
- https://flow.microsoft.com に移動し、管理者資格情報を使用してサインインします。
- 右上隅で、環境 を選択します。
- 一覧から、Dynamics 365 Project Operations がインストールされている環境を選択します。
ソリューションの作成
次のステップに従って、ソリューション対応フロー を作成します。 ソリューション対応フローを作成することにより、フローをより簡単にエクスポートして後で使用することができます。
- ナビゲーション ウィンドウで ソリューション を選択します。
- ソリューション ページで、新しいソリューション を選択します。
- 新規ソリューション ダイアログ ボックスで、必須フィールドを設置して、作成 を選択します。
ステップ 1: Power Apps トリガーを作成する
- ソリューション ページで、作成したマイ自動化ソリューションを選択して、新規 を選択します。
- 左ペインで、クラウド フロー>オートメーション>クラウド フロー>インスタント を選択します。
- フロー名 フィールドで、API デモ フローのスケジュール を入力します。
- このフローをトリガーする方法を選択 リストで、Power Apps を選択します。 Power Apps トリガーを作成する時、ロジックは作成者としてのあなた次第です。 この記事の例では、テストのために入力パラメーターを空白のままにします。
- 作成 を選択します。
手順2 : プロジェクトの作成
これらのステップに従って、サンプル プロジェクトを作成します。
作成したフローで、新規ステップ を選択します。
操作を選択する ダイアログ ボックスで、検索フィールドに、アンバウンド アクションを実行する を入力します。 次に、アクション タブで、結果のリストから操作を選択します。
新規ステップで省略記号 (…) を選択し、次に 名前の変更 を選択します。
ステップの名前を タスクの作成 に変更します。
アクション名 フィールドで、msdyn_CreateProjectV1 を選択します。
msdyn_subject フィールドで、動的コンテンツを追加する を選択します。
Expression タブの機能フィールドで、concat('Project name - ',utcNow()) を入力します。
OK を選びます。
ステップ 3: チーム メンバーの変数を初期化する
- フローで、新規ステップ を選択します。
- 操作を選択する ダイアログ ボックスで、検索フィールドに、変数を初期化する を入力します。 次に、アクション タブで、結果のリストから操作を選択します。
- 新規ステップで省略記号 (…) を選択し、次に 名前の変更 を選択します。
- このステップ Init チーム メンバー の名前を変更します。
- 名前 フィールドで、TeamMemberAction と入力します。
- タイプ フィールドで、文字列 を選択します。
- 値 フィールドに、msdyn_CreateTeamMemberV1 と入力します。
ステップ 4: 汎用プロジェクトチームメンバーを作成する
フローで、新規ステップ を選択します。
操作を選択する ダイアログ ボックスで、検索フィールドに、アンバウンド アクションを実行する を入力します。 次に、アクション タブで、結果のリストから操作を選択します。
新規ステップで省略記号 (…) を選択し、次に 名前の変更 を選択します。
このステップ Init チーム メンバー の名前を変更します。
アクション名 フィールドで、動的コンテンツ ダイアログ ボックスで TeamMemberAction を選択します。
アクション パラメータ フィールドに、次のパラメータ情報を入力します。
{ "TeamMember": { "@@odata.type": "Microsoft.Dynamics.CRM.msdyn_projectteam", "msdyn_projectteamid": "@{guid()}", "msdyn_project@odata.bind": "/msdyn_projects(@{outputs('Create_Project')?['body/ProjectId']})", "msdyn_name": "ScheduleAPIDemoTM1" } }
パラメーターの説明を以下に示します:
- @@odata.type – エンティティ名。 たとえば、"Microsoft.Dynamics.CRM.msdyn_projectteam" と入力します。
- msdyn_projectteamid – プロジェクト チーム ID の主キー。 この値は、グローバル一意識別子 (GUID) 式です。 この ID は、式タブから生成されます。
- msdyn_project@odata.bind – 所有するプロジェクトのプロジェクト ID。 この値は、"プロジェクトの作成" ステップの応答から得られる動的コンテンツになります。 必ずフル パスを入力し、括弧の間に動的コンテンツを追加してください。 引用符が必要です。 たとえば、"/msdyn_projects(ADD DYNAMIC CONTENT)" と入力します。
- msdyn‑name – チームメンバーの名前。 たとえば、"ScheduleAPIDemoTM1" と入力します。
ステップ 5: 操作セットの作成
- フローで、新規ステップ を選択します。
- 操作を選択する ダイアログ ボックスで、検索フィールドに、アンバウンド アクションを実行する を入力します。 次に、アクション タブで、結果のリストから操作を選択します。
- 新規ステップで省略記号 (…) を選択し、次に 名前の変更 を選択します。
- ステップ 操作セットの作成 の名前を変更します。
- アクション名 フィールドで、msdyn_CreateOperationSetV1 Dataverse カスタム アクションを選択します。
- 説明 フィールドに、ScheduleAPIDemoOperationSet と入力します。
- プロジェクト フィールドに対して、動的コンテンツ ダイアログボックスで msdyn_CreateProjectV1Response ProjectId を選択します。
ステップ 6: プロジェクト バケット ID の変数を初期化する
- フローで、新規ステップ を選択します。
- 操作を選択する ダイアログ ボックスで、検索フィールドに、変数を初期化する を入力します。 次に、アクション タブで、結果のリストから操作を選択します。
- 新規ステップで省略記号 (…) を選択し、次に 名前の変更 を選択します。
- ステップ プロジェクト バケット ID を初期化する の名前を変更します。
- 名前 フィールドで、project bucket id と入力します。
- タイプ フィールドで、文字列 を選択します。
- 数値フィールドに、@{guid()} と入力します。
ステップ 7: プロジェクト バケットを生成する
フローで、アクションの追加 を選択します。
操作を選択する ダイアログ ボックスで、検索フィールドに、アンバウンド アクションを実行する を入力します。 次に、アクション タブで、結果のリストから操作を選択します。
ステップで省略記号 (…) を選択し、次に 名前の変更 を選択します。
ステップ バケットの作成 の名前を変更します。
-
- アクション名 フィールドで、msdyn_PssCreateV1 を選択します。
エンティティ フィールドに、次のパラメータ情報を入力します。
{ "@@odata.type": "Microsoft.Dynamics.CRM.msdyn_projectbucket", "msdyn_projectbucketid": "@{variables('project bucket id')}", "msdyn_name": "ScheduleAPIDemoBucket1", "msdyn_project@odata.bind": "/msdyn_projects(@{outputs('Create_Project')?['body/ProjectId']})", }
パラメーターの説明を以下に示します:
- @@odata.type – エンティティ名。 例えば、Microsoft.Dynamics.CRM.msdyn_projectbucket と入力します。
- msdyn_projectbucketid – プロジェクト バケットの一意の ID。 この値は ステップ 6 からの動的変数に設定する必要があります。
- msdyn_project@odata.bind – 所有するプロジェクトのプロジェクト ID。 この値は、"プロジェクトの作成" ステップの応答から得られる動的コンテンツになります。 必ずフル パスを入力し、括弧の間に動的コンテンツを追加してください。 引用符が必要です。 たとえば、"/msdyn_projects(ADD DYNAMIC CONTENT)" と入力します。
- msdyn_name – プロジェクト バケットの名前。
OperationSetId フィールドに対して、動的コンテンツ ダイアログ ボックスで msdyn_CreateOperationSetV1Response OperationSetId を選択します。
ステップ 8: タスク数の変数を初期化する
- フローで、新規ステップ を選択します。
- 操作を選択する ダイアログ ボックスで、検索フィールドに、変数を初期化する を入力します。 次に、アクション タブで、結果のリストから操作を選択します。
- 新規ステップで省略記号 (…) を選択し、次に 名前の変更 を選択します。
- ステップの名 タスク数の初期化 の名前を変更します。
- 名前 フィールドで、タスク数 と入力します。
- タイプ フィールドで、整数 を選択します。
- 数値フィールドに、5 と入力します。
ステップ 9: プロジェクト タスク ID の変数を初期化する
- フローで、新規ステップ を選択します。
- 操作を選択する ダイアログ ボックスで、検索フィールドに、変数を初期化する を入力します。 次に、アクション タブで、結果のリストから操作を選択します。
- 新規ステップで省略記号 (…) を選択し、次に 名前の変更 を選択します。
- ステップ Init ProjectTaskID の名前を変更します。
- 名前 フィールドで、msdyn_projecttaskid と入力します。
- タイプ フィールドで、文字列 を選択します。
- 値 フィールドに対して、式ビルダーに guid() と入力します。
ステップ 10: 終点
- フローで、新規ステップ を選択します。
- 操作を選択する ダイアログ ボックスで、検索フィールドに、終点 と入力します。 次に、アクション タブで、結果のリストから操作を選択します。
- 条件文の最初の値を 動的コンテンツ ダイアログ ボックスからの タスクの数 変数に設定します。
- 条件を 以下 にセットします。
- 条件ステートメントの 2 番目の値を 0 に設定します。
ステップ 11: プロジェクト タスクを設定する
- フローで、アクションの追加 を選択します。
- 操作の選択 ダイアログ ボックスで、検索フィールドに、変数を設定 を入力します。 次に、アクション タブで、結果のリストから操作を選択します。
- 新規ステップで省略記号 (…) を選択し、次に 名前の変更 を選択します。
- ステップ プロジェクト タスクの設定 の名前を変更します。
- 名前 フィールドで msdyn_projecttaskid を選択します。
- 値 フィールドに対して、式ビルダーに guid() と入力します。
ステップ 12: プロジェクト タスクを生成する
次のステップに従って、現在のプロジェクトと作成したプロジェクトバケットに属する一意の ID を持つプロジェクト タスクを作成します。
フローで、新規ステップ を選択します。
操作を選択する ダイアログ ボックスで、検索フィールドに、アンバウンド アクションを実行する を入力します。 次に、アクション タブで、結果のリストから操作を選択します。
ステップで省略記号 (…) を選択し、次に 名前の変更 を選択します。
ステップ プロジェクト タスクの作成 の名前を変更します。
アクション名 フィールドで、msdyn_PssCreateV1 を選択します。
エンティティ フィールドに、次のパラメータ情報を入力します。
{ "@@odata.type": "Microsoft.Dynamics.CRM.msdyn_projecttask", "msdyn_projecttaskid": "@{variables('msdyn_projecttaskid')}", "msdyn_project@odata.bind": "/msdyn_projects(@{outputs('Create_Project')?['body/ProjectId']})", "msdyn_subject": "ScheduleAPIDemoTask1", "msdyn_projectbucket@odata.bind": "/msdyn_projectbuckets(@{variables('project bucket id')})", "msdyn_start": "@{addDays(utcNow(), 1)}", "msdyn_scheduledstart": "@{utcNow()}", "msdyn_scheduledend": "@{addDays(utcNow(), 5)}" }
パラメーターの説明を以下に示します:
- @@odata.type – エンティティ名。 たとえば、"Microsoft.Dynamics.CRM.msdyn_projecttask" と入力します。
- msdyn_projecttaskid – タスクの一意の ID。 この値は msdyn_projecttaskid からの動的変数に設定する必要があります。
- msdyn_project@odata.bind – 所有するプロジェクトのプロジェクト ID。 この値は、"プロジェクトの作成" ステップの応答から得られる動的コンテンツになります。 必ずフル パスを入力し、括弧の間に動的コンテンツを追加してください。 引用符が必要です。 たとえば、"/msdyn_projects(ADD DYNAMIC CONTENT)" と入力します。
- msdyn_subject – 任意のタスク名。
- msdyn_projectbucket@odata.bind – タスクを含むプロジェクト バケット。 この値は、「バケットの作成」ステップで msdyn_projectbucketid を設定するために使用したものと同じです。 必ずフル パスを入力し、括弧の間に動的コンテンツを追加してください。 引用符が必要です。 たとえば、"/msdyn_projectbuckets(ADD DYNAMIC CONTENT)" と入力します。
- msdyn_start – 開始日の動的コンテンツ。 たとえば、明日は "addDays(utcNow(), 1)" のように表されます。
- msdyn_scheduledstart – スケジュールされた開始日。 たとえば、明日は "addDays(utcNow(), 1)" のように表されます。
- msdyn_scheduleend – スケジュールされた終了日。 将来の日付を選択します。 たとえば、"addDays(utcNow(), 5)" を指定します。
- msdyn_LinkStatus – リンクのステータス。 たとえば、"192350000" と入力します。
OperationSetId フィールドに対して、動的コンテンツ ダイアログ ボックスで msdyn_CreateOperationSetV1Response OperationSetId を選択します。
ステップ 13: リソース割り当てを作成する
フローで、アクションの追加 を選択します。
操作を選択する ダイアログ ボックスで、検索フィールドに、アンバウンド アクションを実行する を入力します。 次に、アクション タブで、結果のリストから操作を選択します。
ステップで省略記号 (…) を選択し、次に 名前の変更 を選択します。
このステップ 割り当ての作成 の名前を変更します。
アクション名 フィールドで、msdyn_PssCreateV1 を選択します。
エンティティ フィールドに、次のパラメータ情報を入力します。
{ "@@odata.type": "Microsoft.Dynamics.CRM.msdyn_resourceassignment", "msdyn_resourceassignmentid": "@{guid()}", "msdyn_name": "ScheduleAPIDemoAssign1", "msdyn_taskid@odata.bind": "/msdyn_projecttasks(@{variables('msdyn_projecttaskid')})", "msdyn_projectteamid@odata.bind": "/msdyn_projectteams(@{outputs('Create_Team_Member')?['body/TeamMemberId']})", "msdyn_projectid@odata.bind": "/msdyn_projects(@{outputs('Create_Project')?['body/ProjectId']})" }
OperationSetId フィールドに対して、動的コンテンツ ダイアログ ボックスで msdyn_CreateOperationSetV1Response OperationSetId を選択します。
ステップ 14: 変数を減らす
- フローで、新規ステップ を選択します。
- 操作を選択する ダイアログ ボックスで、検索フィールドに、変数を減らす を入力します。 次に、アクション タブで、結果のリストから操作を選択します。
- 名前 フィールドで、タスク数 を選択します。
- 数値フィールドに、1 と入力します。
ステップ 15: プロジェクト タスクの名前を変更する
フローで、新規ステップ を選択します。
操作を選択する ダイアログ ボックスで、検索フィールドに、アンバウンド アクションを実行する を入力します。 次に、アクション タブで、結果のリストから操作を選択します。
ステップで省略記号 (…) を選択し、次に 名前の変更 を選択します。
ステップ プロジェクト タスクの名前を変更する の名前を変更します。
アクション名 フィールドで、msdyn_PssUpdateV1 を選択します。
エンティティ フィールドに、次のパラメータ情報を入力します。
{ "@@odata.type": "Microsoft.Dynamics.CRM.msdyn_projecttask", "msdyn_projecttaskid": "@{variables('msdyn_projecttaskid')}", "msdyn_subject": "ScheduleDemoTask1-UpdatedName" }
OperationSetId フィールドに対して、動的コンテンツ ダイアログ ボックスで msdyn_CreateOperationSetV1Response OperationSetId を選択します。
ステップ 16: 操作セットの実行
- フローで、新規ステップ を選択します。
- 操作を選択する ダイアログ ボックスで、検索フィールドに、アンバウンド アクションを実行する を入力します。 次に、アクション タブで、結果のリストから操作を選択します。
- ステップで省略記号 (…) を選択し、次に 名前の変更 を選択します。
- ステップ 操作セットの実行 の名前を変更します。
- アクション名 フィールドで、msdyn_ExecuteOperationSetV1 を選択します。
- OperationSetId フィールドに対して、動的コンテンツ ダイアログ ボックスで msdyn_CreateOperationSetV1Response OperationSetId を選択します。