背景
SharePoint 格納で、Excel ファイル自動化の際、file パラメーターに識別子を使ってたところ、
たまに実行エラーになっていた。
その原因調査と回避策の記録
結論
- 識別子(Identifier) を使うのではなく、完全パス(FullPath) を使いましょう。
エラーについて
発生したエラー
エラーを見てみると
HTTP Error 400. The request URL is invalid.
正常に動いている中で、一部だけがエラーになるので質悪いんですよね・・。
でもって request URL はエラー内部には無し
原因調査
で、まぁ、知り合いが「長いんじゃね?」って突っ込んでくれたんで、制限を調査
回避策
他に使えるものは?とドキュメントを見ると
ファイルを一意指定子は以下な感じ
- ファイルID (ID)
- ライブラリ内の連番
- 識別子 (Identifier)
- 完全パスを内部エンコードしてる?
- 完全パス (FullPath)
- 完全パスとかいいつつ、ライブラリ以下のパス。
- ファイルへのリンクとして使いたいなら、{link} とか {thumbnail} を
識別子がエラーになるのは長すぎる為
何故長すぎるか?っていうと、エンコードがかかってるから
であれば、エンコードされてない完全パスを利用しようって流れですね
無事、識別子だとエラーになる場合でも、以下のように完全パスだと正常化しました。
あとがき
識別子、っていう名称的に、GUID 的なものかと思ってると嵌ってしまいますよね。
ドキュメントを指定してるので、File ID でもいいんじゃね?とか思うんですけど、現状使えない?
参考
keyword
The limitation of 'file parameter' in Excel Connector is 756.