LoginSignup
3
3

More than 1 year has passed since last update.

PowerAutomate: Planner の バケット名を取得する方法

Last updated at Posted at 2022-04-07

背景

Planner を自動化している人からの質問で、バケット名が取れない!って話があったので調べてみた記録

概要

で、その 取得結果 はこんな感じ

image.png

ということで、方針は

  1. バケットID と バケット名 の一覧を用意
  2. 取得したいバケットID に該当するバケット名を取得する

ってことだけど・・
バケット一覧を取得しようとするとある課題が・・

  • グループID
  • プランID

の二つが必要

image.png

で、グループ、プラン、バケットの関係は以下なので、

  • グループ
    • プラン
      • バケット

方針としては

  1. グループ一覧取得
  2. プラン一覧取得
  3. バケット一覧取得
  4. ようやく、バケットID/名前 一覧を作成
  5. 一覧を利用して、バケットIDから名前を取得

詳細

フロー全景

こんな感じで、バケット名が取れます
image.png

それぞれの説明をしていくと・・

バケットID と バケット名 の一覧 の変数初期化

一覧作るので、まずは配列として初期化しておく
image.png

バケットID と バケット名 の一覧 の変数一覧作成

  1. グループ一覧取得
  2. プラン一覧取得
  3. バケット一覧取得
  4. バケットID/名前 一覧を作成

image.png

プラン一覧取得の設定

動的コンテンツで、グループID を渡すだけ
image.png

バケット一覧の取得

こちらも動的コンテンツで、グループID と プランID を渡すだけ
image.png

一覧に、それぞれのバケットID/名前 を紐づけたオブジェクトを追加していく

image.png

これで、あとは、BucketID で拾うだけ

一覧オブジェクト作成
{
  "BucketID": @{items('Apply_to_each_Bucket')?['id']},
  "BucketName": @{items('Apply_to_each_Bucket')?['name']}
}

バケット名取得

image.png

バケットID でのフィルター方法

単純にバケットIDで一致 (equal) するものだけにフィルター
image.png

フィルター条件
@equals(items('Apply_to_each_Task')?['bucketId'], item()['BucketID'])

バケット名を一点だけ取得

最初の一点を取得するだけ
こうしておかないと、参照した際に、リストの展開が勝手に走るので、その予防。
あとは使うだけですね。
image.png

最初の一点取得
@{first(body('Filter_array')).BucketName}

自分で作成した変数である為、動的コンテンツには出てきません。
動的コンテンツで使いたい場合は、JSON解析(Parse JSON) で解析させてやれば、使えます。

関連コネクター一覧

自分が所有および属しているグループを一覧表示する
グループのリストを一覧表示する
バケットの一覧表示

タスクの一覧表示

再現方法

以下のそれぞれの JSON をコピペ利用することで可能。コピペ方法は以下

バケットID と バケット名 の一覧 の変数初期化部分

変数初期化を Scope に含ませられないので、分割してます

一覧用変数
{
    "id": "70194cac-722a-410e-928b-e23626136756",
    "brandColor": "#770BD6",
    "connectionReferences": {
        "shared_office365groups": {
            "connection": {
                "id": "/providers/Microsoft.PowerApps/apis/shared_office365groups/connections/shared-office365grou-c08f06b2-071d-44e3-bb02-62fc623e68ed"
            }
        },
        "shared_planner": {
            "connection": {
                "id": "/providers/Microsoft.PowerApps/apis/shared_planner/connections/shared-planner-9e851f83-d92f-4f9a-a2e5-81121d888066"
            }
        }
    },
    "connectorDisplayName": "Variables",
    "icon": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzJweCIgaGVpZ2h0PSIzMnB4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMzIgMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+DQogPHJlY3Qgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIiBmaWxsPSIjNzcwQkQ2Ii8+DQogPGcgZmlsbD0iI2ZmZiI+DQogIDxwYXRoIGQ9Ik02Ljc2MywxMy42ODV2LTMuMjA4QzYuNzYzLDguNzQ4LDcuNzYyLDgsMTAsOHYxLjA3Yy0xLDAtMiwwLjMyNS0yLDEuNDA3djMuMTg4ICAgIEM4LDE0LjgzNiw2LjUxMiwxNiw1LjUxMiwxNkM2LjUxMiwxNiw4LDE3LjE2NCw4LDE4LjMzNVYyMS41YzAsMS4wODIsMSwxLjQyOSwyLDEuNDI5VjI0Yy0yLjIzOCwwLTMuMjM4LTAuNzcyLTMuMjM4LTIuNXYtMy4xNjUgICAgYzAtMS4xNDktMC44OTMtMS41MjktMS43NjMtMS41ODV2LTEuNUM1Ljg3LDE1LjE5NCw2Ljc2MywxNC44MzQsNi43NjMsMTMuNjg1eiIvPg0KICA8cGF0aCBkPSJtMjUuMjM4IDEzLjY4NXYtMy4yMDhjMC0xLjcyOS0xLTIuNDc3LTMuMjM4LTIuNDc3djEuMDdjMSAwIDIgMC4zMjUgMiAxLjQwN3YzLjE4OGMwIDEuMTcxIDEuNDg4IDIuMzM1IDIuNDg4IDIuMzM1LTEgMC0yLjQ4OCAxLjE2NC0yLjQ4OCAyLjMzNXYzLjE2NWMwIDEuMDgyLTEgMS40MjktMiAxLjQyOXYxLjA3MWMyLjIzOCAwIDMuMjM4LTAuNzcyIDMuMjM4LTIuNXYtMy4xNjVjMC0xLjE0OSAwLjg5My0xLjUyOSAxLjc2Mi0xLjU4NXYtMS41Yy0wLjg3LTAuMDU2LTEuNzYyLTAuNDE2LTEuNzYyLTEuNTY1eiIvPg0KICA8cGF0aCBkPSJtMTUuODE1IDE2LjUxMmwtMC4yNDItMC42NDFjLTAuMTc3LTAuNDUzLTAuMjczLTAuNjk4LTAuMjg5LTAuNzM0bC0wLjM3NS0wLjgzNmMtMC4yNjYtMC41OTktMC41MjEtMC44OTgtMC43NjYtMC44OTgtMC4zNyAwLTAuNjYyIDAuMzQ3LTAuODc1IDEuMDM5LTAuMTU2LTAuMDU3LTAuMjM0LTAuMTQxLTAuMjM0LTAuMjUgMC0wLjMyMyAwLjE4OC0wLjY5MiAwLjU2Mi0xLjEwOSAwLjM3NS0wLjQxNyAwLjcxLTAuNjI1IDEuMDA3LTAuNjI1IDAuNTgzIDAgMS4xODYgMC44MzkgMS44MTEgMi41MTZsMC4xNjEgMC40MTQgMC4xOC0wLjI4OWMxLjEwOC0xLjc2IDIuMDQ0LTIuNjQxIDIuODA0LTIuNjQxIDAuMTk4IDAgMC40MyAwLjA1OCAwLjY5NSAwLjE3MmwtMC45NDYgMC45OTJjLTAuMTI1LTAuMDM2LTAuMjE0LTAuMDU1LTAuMjY2LTAuMDU1LTAuNTczIDAtMS4yNTYgMC42NTktMi4wNDggMS45NzdsLTAuMjI3IDAuMzc5IDAuMTc5IDAuNDhjMC42ODQgMS44OTEgMS4yNDkgMi44MzYgMS42OTQgMi44MzYgMC40MDggMCAwLjcyLTAuMjkyIDAuOTM1LTAuODc1IDAuMTQ2IDAuMDk0IDAuMjE5IDAuMTkgMC4yMTkgMC4yODkgMCAwLjI2MS0wLjIwOCAwLjU3My0wLjYyNSAwLjkzOHMtMC43NzYgMC41NDctMS4wNzggMC41NDdjLTAuNjA0IDAtMS4yMjEtMC44NTItMS44NTEtMi41NTVsLTAuMjE5LTAuNTc4LTAuMjI3IDAuMzk4Yy0xLjA2MiAxLjgyMy0yLjA3OCAyLjczNC0zLjA0NyAyLjczNC0wLjM2NSAwLTAuNjc1LTAuMDkxLTAuOTMtMC4yNzFsMC45MDYtMC44ODVjMC4xNTYgMC4xNTYgMC4zMzggMC4yMzQgMC41NDcgMC4yMzQgMC41ODggMCAxLjI1LTAuNTk2IDEuOTg0LTEuNzg2bDAuNDA2LTAuNjU4IDAuMTU1LTAuMjU5eiIvPg0KICA8ZWxsaXBzZSB0cmFuc2Zvcm09Im1hdHJpeCguMDUzNiAtLjk5ODYgLjk5ODYgLjA1MzYgNS40OTI1IDMyLjI0NSkiIGN4PSIxOS43NTciIGN5PSIxMy4yMjUiIHJ4PSIuNzc4IiByeT0iLjc3OCIvPg0KICA8ZWxsaXBzZSB0cmFuc2Zvcm09Im1hdHJpeCguMDUzNiAtLjk5ODYgLjk5ODYgLjA1MzYgLTcuNTgzOSAzMC42MjkpIiBjeD0iMTIuMzY2IiBjeT0iMTkuMzE1IiByeD0iLjc3OCIgcnk9Ii43NzgiLz4NCiA8L2c+DQo8L3N2Zz4NCg==",
    "isTrigger": false,
    "operationName": "Initialize_variable_Buckets",
    "operationDefinition": {
        "type": "InitializeVariable",
        "inputs": {
            "variables": [
                {
                    "name": "Buckets",
                    "type": "array",
                    "value": []
                }
            ]
        },
        "runAfter": {},
        "metadata": {
            "operationMetadataId": "42d478aa-c3ea-451d-bccd-321304caff6b"
        }
    }
}

残りの全部

フロー全体
{
    "id": "d03606a6-adbf-447d-bee2-42b4d0eee36b",
    "brandColor": "#8C3900",
    "connectionReferences": {
        "shared_office365groups": {
            "connection": {
                "id": "/providers/Microsoft.PowerApps/apis/shared_office365groups/connections/shared-office365grou-c08f06b2-071d-44e3-bb02-62fc623e68ed"
            }
        },
        "shared_planner": {
            "connection": {
                "id": "/providers/Microsoft.PowerApps/apis/shared_planner/connections/shared-planner-9e851f83-d92f-4f9a-a2e5-81121d888066"
            }
        }
    },
    "connectorDisplayName": "Control",
    "icon": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDMyIDMyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPg0KIDxwYXRoIGQ9Im0wIDBoMzJ2MzJoLTMyeiIgZmlsbD0iIzhDMzkwMCIvPg0KIDxwYXRoIGQ9Im04IDEwaDE2djEyaC0xNnptMTUgMTF2LTEwaC0xNHYxMHptLTItOHY2aC0xMHYtNnptLTEgNXYtNGgtOHY0eiIgZmlsbD0iI2ZmZiIvPg0KPC9zdmc+DQo=",
    "isTrigger": false,
    "operationName": "Scope",
    "operationDefinition": {
        "type": "Scope",
        "actions": {
            "Scope_Create_Buckets_Name_List": {
                "type": "Scope",
                "actions": {
                    "List_groups_that_I_own_and_belong_to": {
                        "type": "OpenApiConnection",
                        "inputs": {
                            "host": {
                                "connectionName": "shared_office365groups",
                                "operationId": "ListOwnedGroups_V3",
                                "apiId": "/providers/Microsoft.PowerApps/apis/shared_office365groups"
                            },
                            "parameters": {},
                            "authentication": {
                                "type": "Raw",
                                "value": "@json(decodeBase64(triggerOutputs().headers['X-MS-APIM-Tokens']))['$ConnectionKey']"
                            }
                        },
                        "runAfter": {},
                        "metadata": {
                            "operationMetadataId": "f160977d-37f3-44fc-8d62-a2acec6df09f"
                        }
                    },
                    "Apply_to_each_Group": {
                        "type": "Foreach",
                        "foreach": "@outputs('List_groups_that_I_own_and_belong_to')?['body/value']",
                        "actions": {
                            "List_plans_for_a_group": {
                                "type": "OpenApiConnection",
                                "inputs": {
                                    "host": {
                                        "connectionName": "shared_planner",
                                        "operationId": "ListGroupPlans",
                                        "apiId": "/providers/Microsoft.PowerApps/apis/shared_planner"
                                    },
                                    "parameters": {
                                        "groupId": "@items('Apply_to_each_Group')?['id']"
                                    },
                                    "authentication": {
                                        "type": "Raw",
                                        "value": "@json(decodeBase64(triggerOutputs().headers['X-MS-APIM-Tokens']))['$ConnectionKey']"
                                    }
                                },
                                "runAfter": {},
                                "metadata": {
                                    "operationMetadataId": "f6f5e952-fc2d-41bc-9721-576f3d1a8d7b"
                                }
                            },
                            "Apply_to_each_Plan": {
                                "type": "Foreach",
                                "foreach": "@outputs('List_plans_for_a_group')?['body/value']",
                                "actions": {
                                    "List_buckets": {
                                        "type": "OpenApiConnection",
                                        "inputs": {
                                            "host": {
                                                "connectionName": "shared_planner",
                                                "operationId": "ListBuckets_V3",
                                                "apiId": "/providers/Microsoft.PowerApps/apis/shared_planner"
                                            },
                                            "parameters": {
                                                "groupId": "@items('Apply_to_each_Group')?['id']",
                                                "id": "@items('Apply_to_each_Plan')?['id']"
                                            },
                                            "authentication": {
                                                "type": "Raw",
                                                "value": "@json(decodeBase64(triggerOutputs().headers['X-MS-APIM-Tokens']))['$ConnectionKey']"
                                            }
                                        },
                                        "runAfter": {},
                                        "metadata": {
                                            "operationMetadataId": "011459fc-89b5-4da1-91d8-4bb21a74fa91"
                                        }
                                    },
                                    "Apply_to_each_Bucket": {
                                        "type": "Foreach",
                                        "foreach": "@outputs('List_buckets')?['body/value']",
                                        "actions": {
                                            "Append_to_array_variable": {
                                                "type": "AppendToArrayVariable",
                                                "inputs": {
                                                    "name": "Buckets",
                                                    "value": {
                                                        "BucketID": "@items('Apply_to_each_Bucket')?['id']",
                                                        "BucketName": "@items('Apply_to_each_Bucket')?['name']"
                                                    }
                                                },
                                                "runAfter": {},
                                                "metadata": {
                                                    "operationMetadataId": "6a6f440a-761a-43f5-9032-6b675a1d3a26"
                                                }
                                            }
                                        },
                                        "runAfter": {
                                            "List_buckets": [
                                                "Succeeded"
                                            ]
                                        },
                                        "metadata": {
                                            "operationMetadataId": "0423a98d-4e3e-4418-a555-b21075cd6619"
                                        }
                                    }
                                },
                                "runAfter": {
                                    "List_plans_for_a_group": [
                                        "Succeeded"
                                    ]
                                },
                                "metadata": {
                                    "operationMetadataId": "a599c042-bd54-4175-a133-b10603c7bf10"
                                }
                            }
                        },
                        "runAfter": {
                            "List_groups_that_I_own_and_belong_to": [
                                "Succeeded"
                            ]
                        },
                        "metadata": {
                            "operationMetadataId": "bb4a0b17-76b7-4beb-bb2f-a1933ad5a258"
                        }
                    }
                },
                "runAfter": {},
                "metadata": {
                    "operationMetadataId": "3bc94144-d2ea-47d4-ae84-7829eabef01f"
                }
            },
            "Scope_Get_Bucket_Name": {
                "type": "Scope",
                "actions": {
                    "List_my_tasks": {
                        "type": "OpenApiConnection",
                        "inputs": {
                            "host": {
                                "connectionName": "shared_planner",
                                "operationId": "ListMyTasks_V2",
                                "apiId": "/providers/Microsoft.PowerApps/apis/shared_planner"
                            },
                            "parameters": {},
                            "authentication": {
                                "type": "Raw",
                                "value": "@json(decodeBase64(triggerOutputs().headers['X-MS-APIM-Tokens']))['$ConnectionKey']"
                            }
                        },
                        "runAfter": {},
                        "metadata": {
                            "operationMetadataId": "01bfed00-a150-4beb-8ba7-82f924956ac4"
                        }
                    },
                    "Apply_to_each_Task": {
                        "type": "Foreach",
                        "foreach": "@outputs('List_my_tasks')?['body/value']",
                        "actions": {
                            "Get_a_task": {
                                "type": "OpenApiConnection",
                                "inputs": {
                                    "host": {
                                        "connectionName": "shared_planner",
                                        "operationId": "GetTask_V2",
                                        "apiId": "/providers/Microsoft.PowerApps/apis/shared_planner"
                                    },
                                    "parameters": {
                                        "id": "@items('Apply_to_each_Task')?['id']"
                                    },
                                    "authentication": {
                                        "type": "Raw",
                                        "value": "@json(decodeBase64(triggerOutputs().headers['X-MS-APIM-Tokens']))['$ConnectionKey']"
                                    }
                                },
                                "runAfter": {},
                                "metadata": {
                                    "operationMetadataId": "75b1ab60-8a5e-45b8-9b92-de444ce90888"
                                }
                            },
                            "Compose": {
                                "type": "Compose",
                                "inputs": "@first(body('Filter_array')).BucketName",
                                "runAfter": {
                                    "Filter_array": [
                                        "Succeeded"
                                    ]
                                },
                                "metadata": {
                                    "operationMetadataId": "58a0fca4-a11c-4111-85ca-6dac3e80b360"
                                }
                            },
                            "Filter_array": {
                                "type": "Query",
                                "inputs": {
                                    "from": "@variables('Buckets')",
                                    "where": "@equals(outputs('Get_a_task')?['body/bucketId'], item().BucketID)"
                                },
                                "runAfter": {
                                    "Get_a_task": [
                                        "Succeeded"
                                    ]
                                },
                                "metadata": {
                                    "operationMetadataId": "83c63ed1-bb0f-46b9-a146-9cbe433e3ab0"
                                }
                            }
                        },
                        "runAfter": {
                            "List_my_tasks": [
                                "Succeeded"
                            ]
                        },
                        "metadata": {
                            "operationMetadataId": "b3708b9f-e926-402e-b59e-dd955c2af2b7"
                        }
                    }
                },
                "runAfter": {
                    "Scope_Create_Buckets_Name_List": [
                        "Succeeded"
                    ]
                },
                "metadata": {
                    "operationMetadataId": "57ae0ab0-df53-4192-a672-e998e878eb61"
                }
            }
        },
        "runAfter": {
            "Initialize_variable_Buckets": [
                "Succeeded"
            ]
        },
        "metadata": {
            "operationMetadataId": "5fb5226e-360f-4068-9d9a-9b90ff348419"
        }
    }
}

あとがき

Planner のコネクター要望にあげて、対応してもらうようなレベルだなぁとやってみて思いました。
そのうち更新されるんじゃないのかな?

keyword

how to get Bucket Name of Planner by Power Automate

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3