技術情報ブログ
Power Platform
2023.10.04

【Power Automate】concat関数の文字数制限の境界値でエラーを発生させてみた

【Power Automate】concat関数の文字数制限の境界値でエラーを発生させてみた
みやみや

こんにちは、みやみやです。

普段は MaaS 事業のシステム開発や運用周りのマネジメントをしているのですが、部署の業務改善で Power Platform も利用しています

今日はconcat 関数の公式リファレンスをみていて、「この結果の長さは 104,857,600 文字以下にする必要があります。」と記載があり、気になったので、実際には何文字までいけるのかを検証してみました

 

検証方法

検証は下記のパターンで試します

検証用でフローを作りました

検証方法
検証方法

考え方ですが、まず、104,857,600 を 2 で割っていき、割り切れる回数の 22 回をループカウンター、割り切れる数字の 25 を基底となる数字として利用します

2で割った回数
2で割った回数

104,857,600 手前まで元気よく文字を結合していき、そこから 1 文字づつ結合して検証しました

 

検証1. シングルバイトのみのとき

ここでは、シングルバイトは半角文字とします

検証1. シングルバイトのみのとき
シングルバイトのみのとき

シングルバイト 25 文字として0123456789012345678901234を、変数Variable1にセットしています
項目数はlength()を使って確認しています

結論としては、シングルバイトのみで104,857,599文字に達するとエラーが発生しました

 

検証2. マルチバイトのみのとき

マルチバイトのみのとき
マルチバイトのみのとき

マルチバイトで 25 文字として0123456789012345678901234を、変数Variable1にセットしています

シングルバイトと同じく、マルチバイトのみで104,857,599文字に達するとエラーが発生しました

 

検証3. サロゲートペアのみのとき

サロゲートペアについての詳しい説明は他のサイトにお任せして、ここでは「2 バイトの定義で収まらなかった文字を、拡張領域として 4 バイトで表すようにした文字」と捉えます

サロゲートペアのみのとき
サロゲートペアのみのとき

サロゲートペアで 25 文字として `𦀗𦀗𦀗𦀗𦀗𦀗𦀗𦀗𦀗𦀗𥿻𥿻𥿻𥿻𥿻𥿻𥿻𥿻𥿻𥿻𦀌𦀌𦀌𦀌𦀌`を、変数Variable1にセットしました

上記 25 文字をlength()でカウントすると、50と返ってきます

つまり、2023/02/21 現在、PowerAutomate のlength()では、シングルバイトやマルチバイトは 1 文字は1として返し、サロゲートペアでは2と返します[1]

そのことから、ループカウントを他の検証と違い21として、検証を行いましたが、大方の予想通り、サロゲートペアのみでは、52,428,799 文字に達するとエラーが発生しました

 

考察

文字数制限に引っかかることはないと思いますが、制限があるということ、全角と半角に差はないこと、サロゲートペアが含まれるときに文字数カウントが変わることを抑えておきたいです

 

参考

Azure Logic Apps および Power Automate のワークフロー式関数のリファレンス ガイド – concat

miyamiya

みやみや

ビジュアル系プログラマー、ビジュアル系 PM を自称して 20 年近くが経ちました

弊社 MaaS 製品全般で、開発・運用側のマネジメントをしながら、時々開発もしています

シェアする
記事カテゴリ
最新記事
2025.04.30

Power Apps, Power Automate で作る NFC タグを活用したアプリ例

2025.04.16

Power Apps で NFC タグを使ってみる

2025.04.02

Copilot Studioで作成したコパイロットをTeams に追加する方法

2025.03.19

SharePoint リストで主キーを実装し、比較してみた

2025.03.12

SharePointのデザインをもっとおしゃれに!(X-SP Design | SharePoint デザイン拡張サービスのご紹介)(4) サンプルの紹介その2

データ構造.Net Core Test Explorerレスポンシブ技術カスタマイズ委任自動化したクラウド フロー運用開発環境filter query管理システム列X-SPNFCタグモデル駆動型アプリSortByColumns関数Dataverse for Teams入門ItcomponentVBAフローの種類選択肢列環境sortガバナンス登録日StylePowerAutomatePower AppsTypeScriptitem関数初心者情報技術ダイアログエラーインスタント クラウド フロー参照列本番環境ソートerror notification更新者StudioPower PlatformHTMLGoogle Maps中級者メッセージIDコンポーネントエクセルスケジュール済みクラウド フローChatGPTライセンスmultiple itemエラー通知更新日AISharePointEF CoreMarker Clustererキャンバスアプリメールdialogerrorレスポンシブ レイアウトOpenAI環境構築手順複数項目削除変更生成系AIExcelマイグレーションRANK()関数DatePickerfirst()関数Tips復元responsive layoutオープンAIpipelineシェアポイントフォルダ外部DBCopilotPower AutomateFramework CoreDynamics 365 SalesDropdownnest新機能restoreデータ行の制限チャットGPTCI/CD便利機能ゴミ箱連携licenseC#Attribute directivesMicrosoft Translatorview入れ子変数Power BI引き継ぎgalleryパイプラインカレンダー完全削除接続添付ファイルコントロールattributeO/Rマッパーマーカークラスタリングライブラリビュー動的リスト検索個人列退職ギャラリーDevOpsCalendarモデル駆動型データフローファイルサイズvalidationazure sql databasetailwindcssアクセス制限collectionMicrosoft 365グループユーザー列所有者を変更スクロールMicrosoft 365Teamsセキュリティロールrecycle binフルリモートワークローコードCase式マルチテナント承認コレクションセキュリティグループSharePoint Online異動コンテナ簡易在庫管理ローコード開発ビジネスルールごみ箱アーティサンAngularHTTP Requestドロップダウンメニューリマインド複数の添付ファイル送信元リストLoopショートカットキー時間外非エンジニアDataverseアクセス許可ArtisanAccessCSSBreakpointObserverSet承認フローメールの送信非表示Microsoftshortcut key通知体験談JavaScriptSharePoint Framework転職InfoPathxUnitメディアクエリForAllform差出人アプリdesignconcat関数ファイル勉強表示SPFx主キーMatTable.Net Core 3.1スマホUpdateContextエクスポートインスタントクラウドフロー[市民開発者JSON文字制限フィルター クエリ内製化切替サンプルCopilot StudioAngular MaterialVSCodePCロードマップインポート自動化したクラウドフロー構築デザインフロー実行ドキュメント ライブラリ市民開発登録者samplePowerApps
PageTop
ページトップに戻る