普段は MaaS 事業のシステム開発や運用周りのマネジメントをしているのですが、部署の業務改善で Power Platform も利用しています
今日はconcat 関数の公式リファレンスをみていて、「この結果の長さは 104,857,600 文字以下にする必要があります。」と記載があり、気になったので、実際には何文字までいけるのかを検証してみました
検証方法
検証は下記のパターンで試します
検証用でフローを作りました
考え方ですが、まず、104,857,600 を 2 で割っていき、割り切れる回数の 22 回をループカウンター、割り切れる数字の 25 を基底となる数字として利用します
104,857,600 手前まで元気よく文字を結合していき、そこから 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
【こちらも合わせて読みたい】
地方自治体ローコード導入・運用支援サービス(Power Apps・Power Automate)
Microsoft社が提供するローコード技術であるPower Platformを用いて、自治体様のDX化を支援します。
X-SP | SharePoint デザイン・機能拡張サービス
デザイン×機能を兼ね備えたSharePointを提供いたします。
SharePointの利便性を向上し、操作性と視認性を兼ね備えたデザインでユーザーの業務効率化・ストレス低減を提供します。
内製化支援サービス | Power Platform(Power Apps・Power Automate)
Power Platform(Power Apps・Power Automate)開発や運用をスムーズに内製できるよう支援いたします。
DX人材育成プログラム | Power Apps・Power Automte 教育
Microsoft社が提供するローコード技術であるPower Platformを用いて、社内のDX化を推進するための人材を育成いたします。
Power Apps/Power Automateアプリ開発・導入支援サービス
Microsoft社が提供するPower Apps / Power Automateの導入支援として、高度なアプリも最速で作れる業務アプリ作成支援サービスを提供いたします。
SharePointモダン化コンサルティングサービス
従来のSharePoint から移行・モダン化したい方に向けて、事前調査からサイト作成・活用支援までトータルなコンサルティング・技術支援を提供いたします。
みやみや
ビジュアル系プログラマー、ビジュアル系 PM を自称して 20 年近くが経ちました
弊社 MaaS 製品全般で、開発・運用側のマネジメントをしながら、時々開発もしています
こんにちは、みやみやです。