📑

Power Automate Desktopでフローの共有 テキスト形式

2023/09/17に公開

テキスト形式でのエクスポート/インポートについて

知っている人からすると何をいまさらといわれるかもしれませんが、知らない人からすると目から鱗かも。
どこまで知られているのかよくわからない操作方法について説明します。知っていたらすみません。

フローの共有でテキストからインポートをするときに、ワークスペースに貼り付ける方法を行っている方が多いかもしれません。部品単体や狭い範囲ならともかく、サブフローを作成してから全体をコピーして貼り付けていませんか?
タブに貼り付ける方法を使うと、サブフローの作成+貼り付けまで一気に出来てお得です。

コピーする際も、Ctrl + A (すべて選択)してコピーではなく、タブを選択してコピーです。
そうするとFUNCTION ~ END FUNCTIONもついてきます。そしてそのままタブにペーストです。
エクスポートするときに1つのテキストにフローを全部くっつけてもFUNCTION ~ END FUNCTIONで
サブフローの範囲がぱっと見わかるので見やすくなると思います。……たぶん。

Mainフローだけは特別で、コピーした際に Main_copy になってしまいますが、ファンクション名がMainのフローは(Function付きで)貼り付けできない制限があるためなので、そのまま共有した方が良いです。
まあ、Main_copy のサブフローを作ってコピペし直すくらいなら直接 Main に貼り付ければ良い気もするので、Mainだけは別ということでひとつ。

操作する範囲は

ここではなく
ワークスペース

ここを使うのです
タブ

通常のアクション

FUNCTION ~ END FUNCTION の範囲をコピペします。

Sample 1
FUNCTION Main_copy GLOBAL
    Display.ShowMessageDialog.ShowMessage Message: $'''Hello world!''' Icon: Display.Icon.None Buttons: Display.Buttons.OK DefaultButton: Display.DefaultButton.Button1 IsTopMost: False ButtonPressed=> ButtonPressed
END FUNCTION

アクション自体は特に意味はありません。なんとなく。

接続参照のあるアクション

プレミアム機能で接続参照を使用するアクションを共有する場合は、
ControlRepositoryも含めて全部コピペします。FUNCTIONだけでは貼り付きません。
あと、プレミアム機能を使えない環境でも貼り付きません。

Sample 2
FUNCTION Subflow_1 GLOBAL
    @@dataset: 'https://hogehoge.sharepoint.com/sites/sitename'
    @@connectionDisplayName: 'Crf0000_shared_sharepointonline_00000000'
    External.InvokeCloudConnector Connection: '00000000-0000-0000-0000-000000000000' ConnectorId: '/providers/Microsoft.PowerApps/apis/shared_sharepointonline' OperationId: 'GetAllTables' @dataset: $'''https://hogehoge.sharepoint.com/sites/sitename''' @GetAllTablesResponse=> GetAllTablesResponse
END FUNCTION

# [ControlRepository][PowerAutomateDesktop]

{
  "ControlRepositorySymbols": [],
  "ImageRepositorySymbol": {
    "Repository": "{\r\n  \"Folders\": [],\r\n  \"Images\": [],\r\n  \"Version\": 1\r\n}",
    "ImportMetadata": {},
    "Name": "imgrepo"
  },
  "ConnectionReferences": [
    {
      "ConnectorId": "/providers/Microsoft.PowerApps/apis/shared_sharepointonline",
      "DisplayName": "Crf0000_shared_sharepointonline_00000000",
      "InternalId": "00000000-0000-0000-0000-000000000000",
      "IsDisabled": false,
      "LogicalName": "Crf0000_shared_sharepointonline_00000000000000000000000000000000",
      "IsEmbedded": false,
      "ConnectionName": "00000000000000000000000000000000",
      "ConnectionDisplayName": "hogehoge@test.test"
    }
  ]
}

Discussion