Project Online: OData でフィルタリングの文字列に関する問題が発生する場合について

(この記事は 2015 年 11 月 13 日に Office Blogs に投稿された記事 Project Online: Having problems filtering with strings in OData? の翻訳です。最新情報については、翻訳元の記事をご参照ください。)

 

このブログの提案者の Alex と、解決策を発見した Excel チームの同僚に感謝します。今回説明する問題は、Project Online から OData をプルする際に、Excel 上ではフィルタリングの文字列は正常に動作するにもかかわらず、その Excel ファイルから作成されるレポートを Web 上で更新できないというものです。

以下の図は、4 つのフィールドを選択してプロジェクト名でフィルタリングした非常に簡単なレポートです。これを Excel Online で更新すると、下記のエラーが発生します。

Excel ではこのレポートは正常に更新されます。OData への接続を作成するときに Excel にフィードしたリンクは次のとおりです。

https://brismithpjo.sharepoint.com/sites/pwa/_api/ProjectData/Projects?

$select=ProjectName,ProjectStartDate,ProjectFinishDate,ProjectDuration&

$filter=ProjectName eq 'BriSmithAlertTest654'

ここでは以下の 4 つのフィールドを選択し、ProjectName eq 'BriSmithAlertTest654' という文字列のフィルターを適用しています。

この問題を解決し Excel Online でエラーを発生させずに更新できるようにするには、この文字列をエンコードする必要があります。この場合、ブラウザーにコピーするのが最も簡単な方法です。上記の文字列をお好みのブラウザーにペーストします。

その後、更新すると URL は次のように変更されます。

これで正常な結果が返されるようになります。このスクリーンショットは少々読み取りにくいので、以下のように新たにエンコードされた URL を抜き出して、エンコードされていない見やすい形に分解します。

https://brismithpjo.sharepoint.com/sites/pwa/\_api/ProjectData/Projects?

$select=ProjectName,ProjectStartDate,ProjectFinishDate,ProjectDuration

&$filter=ProjectName%20eq%20%27BriSmithAlertTest654%27

フィルター セクションでは空白文字や引用符が同等の ASCII コードに置換されていることに注意してください。この文字列を Excel のリンクとして使用し、レポート ドキュメント ライブラリに保存すると、レポートの更新が正常にできるようになります。エンコードされていない文字列の場合の問題に関して、現時点では修正計画は進められていないようなので、文字列でフィルタリングする場合にはこの方法が最良です。エンコード以外にもレポートを生成する方法はあるかと思います。他のシナリオをお試しいただいて、もしうまくいかない場合はサポート インシデントを開いていただければ、マイクロソフトが調査を行います。

  

※ 本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。