対応容量についてはじめに先日検証していて、以下参考URLにあるSPOでの「パス(フォルダ名+ファイル名)が長すぎるとファイル作成でエラーが発生」事象が解消した(と思われる)ので共有です。検証しながら記事を書いていたら、最後の方法でサクッと解消できたのでそれ以外は備忘録的な内容となります。※ざっとした確認で問題なしでしたが、要因など不明確なので、間違いあったりしたらご容赦ください。TIPS以下のLT登壇の際に、チャンクの許可をオフにした場合のSPOファイル作成時の対応容量などについて追加調査しました!本記事の最後に概要と記事へのリンクを追加しております。Qiita概要SharePointのライブラリにファイルを保存するアクションで、特定のファイルだけ保存が失敗する事象に遭遇しました。Requ...NOTESPOやOneDrive側の制限でエンコード後の文字数400文字の制限はありますので、それ以下であればという前提です。サポートぴーたくん海外だとあまり影響ないのかもしれないけど、日本人は困っている人多そうだよねファイル名が一定以上に長いとエラーになる事象まずこの事象ですが、SharePointのファイルの作成アクションで、ファイルパス(フォルダ名+ファイル名まで)のエンコード後のバイト数が740ほどとなるとエラーが発生するというものです。ファイルの識別子(ID)にこのパスをエンコードしたものが使われるのですが、2バイト文字の場合、エンコード×エンコードという感じで1文字が15バイトくらいになってしまい、軽く740バイトに達します。大体日本語のみで5、60文字で到達する感じかと。詳細は参考記事ご参考ください。実際に以下の状況で試してみるとエラーが発生します。SPOライブラリからファイルを取得し作成しています。・指定ライブラリに長い名前のフォルダを作成しておく・そのフォルダに長いファイル名でファイルを作成する→フォルダ名とファイル名が一定以上長いとエラー、それ以下なら正常に作成される。成功時(上記の制限以下)上記のまま実行した場合は正常に完了します。この際に作成されるファイル識別子(id)は以下で見れます。この文字数を数えると「616」ですね。上記の740には収まっています。LEN関数でカウントエラー時(上記制限以上)次にもう少しファイル名を長くしてみます。さきほど616だったので10文字くらい増やしてみます。大体750くらいになるのかなと。※エラー時にIDが取れないのでざっとです。以下のようにエラーとなりました。参考の記事にもある同じエラーです。invalid.</p></BODY></HTML>このエラーメッセージではidが長すぎるからエラーだとよは読み取れませんが、これ以上の文字数でも同様にエラーになりますし、これ以下なら成功するので、参考記事の情報どおり、パス→ファイルの識別子(ID)に起因するものと思われます。NOTE上記のサンプルではドキュメントライブラリの画像ファイルを使用していますが、SPOの添付ファイルの場合やDataverseのファイル取得の場合も同様に事象が発生しました。複数環境で確認しましたがいずれも発生していました。検証中に2通りみつけたんですが、最後に3つ目を見つけてそれだけでOKそうです。1つめはトリガーのパラメータで渡したファイルなら発生しない2つめはファイル取得したものを一旦作成アクションに入れてから指定する3つめ(これだけでOKそう)はファイル作成アクションのチャンクの許可をオフにする元々アプリからパラメータでファイル渡した場合に発生しなかったので、なぜかな??と思い色々調査してみたのがきっかけです。1パラメータで渡した場合は起きない以下のようにフローのトリガーでパラメータで同じファイルを渡した場合、同じパスの長さでもエラーが起きません!先ほどエラーとなったIDの文字数は766でした。パラメータで同じファイルを渡してファイルコンテンツに指定エラー発生せずファイルが作成される。中身も問題なし作成できたIDの長さは766さらにもっと名前を長くしてもエラーは発生しません。以下の場合、IDの文字数は2,416でした。3000でも大丈夫でした。作成アクションに入れたものをそのまま指定したらなぜか同じくエラーがでなくなりました!一旦取得したファイルコンテンツを作成アクションにいれて、それを指定するファイルもちゃんとしています。いう感じで、なぜか作成アクションに入れて使ったら解消した。※変数アクションだとバイナリ保持されなかった。作成アクションだとOK作成時の挙動も異なる(既存があると上書き)上記でフォルダ名+ファイル名が一定以上でもエラーが発生しないように調整できました。あわせて、作成時の挙動も異なりました。元の場合は既存ファイルがあるとエラーとなるが、上記対応の場合は上書きとなる。ファイルの作成アクションで従来(ファイル取得したものをそのままファイル作成で使用)で作成した場合は同じファイルがあると作成時エラーが出ます。このため、一意の名前となるように日時を付けたり、先にファイル存在チェックするなどで回避が必要でした。同名ファイルが既にある場合に作成エラーとなり作成できない。ところが上記の文字数でエラーにならない実装(パラメータ渡しと作成アクション)の場合は、上記エラーは出ずに、そのまま上書きしてくれます。この段階でさらに調査したところ、以下3つ目の方法にたどり着きました。「ファイル作成」は上書きでエラーになった仕事で使っている技術情報をお送りしています。試しに変更してみると、たしかに同名ファイルがあってもエラーとならず上書きしてくれました!さらに、今回の検証目的だった長いパスのファイルの場合でも同様にエラーがでませんでした!ぱわ代なぜかこの設定で解消するのね!理由がよくわからないけれど解消するならいいわ!(とりあえずは)きっと裏側の処理のどこかが違うんでしょうね。同名ファイルがあった場合はファイルが上書きされるOneDriveではそもそも起きないSPOの場合は上記のように最初のままだとエラーになっていましたが、OneDriveの方はそもそもエラーは起きませんでした。ファイル名が同様に長いものでも正常に作成でき、同じ名前のファイルがあっても上書きする挙動でした。ファイルのIDも形式が異なり長くなったりしてないのでその点も関連するのかもしれません。ちなみにこっちのアクションはチャンクの許可はオンのままですね。上記のようにSPOのファイル作成で長い名前のファイルが保存出来た場合でも、ファイルコンテンツの取得アクションでもファイル識別子(ID)が使用されるので、ここでエラーとなります(参考記事によると1024くらいでエラーになるとあり)この点は「パスによるファイルコンテンツの取得」にすることで長いパスのファイルでもエラーとならず取得が可能です。こちらも併せての考慮が必要ですね。パスによるファイルコンテンツの取得とファイルコンテンツの取得パスによるは成功だが、ID指定のコンテンツ取得の方は長いと同様のエラーとなるぴーたくん取得時のほうも考慮が必要だねー。ID指定するアクションはさけて、パスによる取得に切り替えたら安心そうだね。おわりにということで、最初に作成アクションに入れたら解消してさらに上書きもできた!を確認したときはうれしかったのですが、チャンクの許可をオフにするのほうが設定のみで対応できるので、結果3つ目が解消方法となりますね。その他は備忘録として、各パターンで発生、発生しないのがわかったという点で記載を残してます。パラメータ渡しの場合や作成アクション挟んだ場合は(なぜかわかりませんが)チャンクの許可オフと同様の裏の動きになってくれるんですかね。わかりませんがそんな印象です。その他、記載は割愛しましたが、そのままファイル指定と作成アクションを経ての場合で、ファイルの作成アクションの入力値情報は全く同じでした。※コンテンツタイプとバイナリを渡していてどちらも同じだったパラメータ渡しの場合はコンテンツのバイナリのみを渡していて上とは入力値は異なりました。(これと同じようにファイル指定でコンテンツのみを指定にした場合は中身が壊れていた)UI上で操作、確認できる以外の部分で裏情報が何やらあるのかなーという感じでした。チャンクの許可をオフにするとなぜ解消するのか?という点も自身わかっていません💦とりあえず解消するならいいやのスタンスですのでご容赦ください。本記事が今後同様の事象に悩まされている方のお助けになれば幸いです。2023/10/21にMVPたなさん主催の気ままに勉強会にLT登壇した際に本記事のことをLTしました。その際にチャンクの許可をオフにした場合のSPOファイル作成の実際の挙動について確認したので追記します。・SPOファイル作成アクションは90MBまではチャンクの許可をオフにしても対応可能。それ以上となるとエラーになります。・作成アクションとパラメータ渡しの挙動はチャンクの許可をオフと同じだった。→作成アクションは1アクション増えるので、チャンクの許可をオフにするで良いと思います。・チャンクの許可をオンのままの場合は90MBを突破できました。100MBは作成できました。Automateの制限のページにはチャンクの許可をオンの場合~1GBまで対応可能とありましたが、SPOのファイルの取得アクションでファイルが100MB以上だとそっちがエラーとなりました。そのため100MB以上は今回未検証です。個人の感想としては90MBまでオフでも動作するのであれば、おおむねこれ(チャンクの許可をオフ)で良いのかと思います。これ以上の容量のファイルを扱う場合、別の箇所でも制限がある可能性がありますので全体的に影響調査をした方がよいでしょう。通常は90MB以内で使うと考える方が無難ですね。APIを使うと対応できる可能性があると思います。APIで対応したことがあります。以下、登壇資料からこの部分を抜粋したものです。気ままに勉強会にLT登壇させていただいた際の資料です。追加検証した対応する容量などについてを抜き出し記事にしました。この記事は以下の関連記事および登壇内容から派生して記載しています。SPOファイル作成アクションで長いパスでエラー、上書きエラーの回避方法としてチャンクの許可をオフにたどり着いた記事を書き、たなさん主催の勉強会でLT登壇しました。itこの記事は役に立ちましたか?もし参考になりましたら、下記のボタンで教えてください。Automate技術者へと転身。qiitaや自社HPでも技術ブログを書いていました。Userコネクタで取れるということを知りました。Apps2023.07.056自動生成アプリについて確認・比較してみた(2023年6月上旬時点)Tipsこちらの記事は現状Qiita記事へのリンクとなります。リンク先よりご確認ください。Automateで取得する方法について記載します。プルダウン表示について(コンボボックス)今回は他のマスタテーブルのデータをプルダウン系で表示する際のTipsです。少量マスタの場合は対して気にせずよいですが、大量データのマスタを参照する際は制限が出てくるのでそのあたりの実装のサンプルをご紹介します。Apps2023.07.159追記型のコメント機能を作る(承認コメントを残す機能)はじめにTIPS本投稿は1年ほど前に自社ブログで書いた内容のリライト版です。承認操作のあるアプリを作成する場合には、コメント欄を用意して入力しその内容を履歴として保持しておきたいケースは多いと思います。多段階の承認や複数人の承認の場合は追記して削除できないようにする機能です。トラックバックこの記事へのコメントはありません。トラックバックURLこの記事へのトラックバックはありません。返信をキャンセルする。