SharePointOnlineと旧バージョンのOfficeの問題について
Share Point Onlineをコミュニケーション基盤として使用されている企業の方も多いと思います。
SPO(Share Point Online)には、Docment毎にIDを割り振り、対象のファイルを確実に容易に検索可能なDocumentID検索(DocID検索)の機能が付属していますが、今回の記事では、このDocID検索を古いOfficeアプリケーションをインストールしている環境で使用した場合に発生する問題についてです。
今回記事にするケースは稀なケースだと思いますが、環境としてはIE11でOffice2007を使用してOffice365へ接続をしている場合のSPOに関する問題です。
このケースで発生する問題は、DocID検索窓WEBパーツを使用してDocment ID検索をした場合、Officeソフトウェア側は対象のOfficeファイルを直接開こうとする挙動をします。しかし、2007バージョンのOfficeでは、パスが256文字を超えている場合、エラーとなりファイルを開けません。詳しくは以下リンクを参照してください。
この問題はoffice365ではなく、officeソフトウェア側の問題です。この問題の詳細については
以下のサポートリンクを参照してください。
https://support.microsoft.com/ja-jp/help/326039/error-message-when-you-open-a-office-file-that-has-a-long-folder-name
では、この問題に対してのアプローチ方法をご説明します。
最終的なゴールは、Office2007(あるいはそれ以前のOffice)で、SPOのDocID検索を使用して、IDでドキュメントを検索し、そのドキュメントを開くことです.ここでは、2つの方法でこの問題に対してのアプローチを行ないます。
1、検索したDocumentを旧バージョンのOfficeで開く方法
2、旧バージョンのOfficeを使用している環境で、DocIDでDocumentを検索する方法
それぞれのアプローチに対して有効な方法は以下の通りです。
1、検索したDocumentを旧バージョンのOfficeで開く方法
ここではSPOをHTMLまたはjavascriptを使用してカスタマイズして、検索結果ページに対してダウンロードリンクを追加する方法をご案内します。
発行機能がアクティブな場合と比アクティブな場合で方法が異なるので注意してください。この手順を実施すると、検索結果ページで各ドキュメントを選択したときに表示されるオーバービューにドキュメントをローカルにダウンロードするためのリンクが表示されます。
発行機能が非アクティブな場合
============================
1. ブラウザにて対象のサイトを開きます。
2. ページ右上のギアアイコンをクリックし、[サイトの設定] メニューをクリックします。
3. [Web デザイナーギャラリー] セクション、[マスターページ] をクリックします。
4. [Display Templates] フォルダー、[Search] フォルダーの順に展開し、“Item_CommonHoverPanel_Actions.js” をダウンロードします。
5. ダウンロードした “Item_CommonHoverPanel_Actions.js” をテキストエディターで開き、以下のタグを追加して UTF-8 形式で保存します。
* 二つ目の DIV タグを追加しています。
— 編集前ここから —
ms_outHtml.push(”
,’ <div class=”ms-srch-hover-action”>’
,’ <a clicktype=”ActionViewLibrary” id=”‘, $htmlEncode(id + HP.ids.parentLink) ,'” class=”ms-calloutLink ms-uppercase” title=”‘, $htmlEncode(Srch.Res.hp_Tooltip_ViewLibrary) ,'” href=”‘, $urlHtmlEncodeString(ctx.CurrentItem.ParentLink) ,'”>’, $htmlEncode(Srch.Res.hp_ViewLibrary) ,'</a>’
,’ </div>’
);
— 編集前ここまで —
— 編集後ここから —
ms_outHtml.push(”
,’ <div class=”ms-srch-hover-action”>’
,’ <a clicktype=”ActionViewLibrary” id=”‘, $htmlEncode(id + HP.ids.parentLink) ,'” class=”ms-calloutLink ms-uppercase” title=”‘, $htmlEncode(Srch.Res.hp_Tooltip_ViewLibrary) ,'” href=”‘, $urlHtmlEncodeString(ctx.CurrentItem.ParentLink) ,'”>’, $htmlEncode(Srch.Res.hp_ViewLibrary) ,'</a>’
,’ </div>’
,’ <div class=”ms-srch-hover-action”>’
,’ <a clicktype=”ActionDownload” id=”‘, $htmlEncode(id + ‘_hoverDownload’) ,'” class=”ms-calloutLink ms-uppercase” title=”‘, $htmlEncode(“ダウンロード“) ,'” href=”‘,ctx.CurrentItem.SPWebUrl,’/_layouts/15/download.aspx?SourceUrl=’, encodeURIComponent(ctx.CurrentItem.Path) ,'”>’, $htmlEncode(“ダウンロード“) ,'</a>’
,’ </div>’
);
— 編集後ここまで —
6. 編集した “Item_CommonHoverPanel_Actions.js” をマスターページギャラリーの [Display Templates] – [Search] フォルダーに上書きアップロードします。
7. 検索を実施し、ドキュメントのホバーパネルに “ダウンロード” リンクが追加されていること、および正常にダウンロードが行えることを確認します。
変更が反映されない場合は、ブラウザのキャッシュを削除して再度確認してください。
発行機能がアクティブな場合
==========================
1. ブラウザにて対象のサイトを開きます。
2. ページ右上のギアアイコンをクリックし、[サイトの設定] メニューをクリックします。
3. [Web デザイナーギャラリー] セクション、[マスターページ] をクリックします。
4. [Display Templates] フォルダー、[Search] フォルダーの順に展開し、“Item_CommonHoverPanel_Actions.html” をダウンロードします。
5. ダウンロードした “Item_CommonHoverPanel_Actions.html” をテキストエディターで開き、以下のタグを追加して UTF-8 形式で保存します。
* 二つ目の DIV タグを追加しています。
— 編集前ここから —
<div class=”ms-srch-hover-action”>
<a clicktype=”ActionViewLibrary” id=”_#= $htmlEncode(id + HP.ids.parentLink) =#_” class=”ms-calloutLink ms-uppercase” title=”_#= $htmlEncode(Srch.Res.hp_Tooltip_ViewLibrary) =#_” href=”_#= $urlHtmlEncodeString(ctx.CurrentItem.ParentLink) =#_”>_#= $htmlEncode(Srch.Res.hp_ViewLibrary) =#_</a>
</div>
— 編集前ここまで —
— 編集後ここから —
<div class=”ms-srch-hover-action”>
<a clicktype=”ActionViewLibrary” id=”_#= $htmlEncode(id + HP.ids.parentLink) =#_” class=”ms-calloutLink ms-uppercase” title=”_#= $htmlEncode(Srch.Res.hp_Tooltip_ViewLibrary) =#_” href=”_#= $urlHtmlEncodeString(ctx.CurrentItem.ParentLink) =#_”>_#= $htmlEncode(Srch.Res.hp_ViewLibrary) =#_</a>
</div>
<div class=”ms-srch-hover-action”>
<a clicktype=”ActionDownload” id=”_#= $htmlEncode(id + ‘_hoverDownload’) =#_” class=”ms-calloutLink ms-uppercase” title=”_#= $htmlEncode(‘ダウンロード‘) =#_” href=”_#=ctx.CurrentItem.SPWebUrl=#_/_layouts/15/download.aspx?SourceUrl=_#= encodeURIComponent(ctx.CurrentItem.Path) =#_”>_#= $htmlEncode(‘ダウンロード‘) =#_</a>
</div>
— 編集後ここまで —
6. 編集した “Item_CommonHoverPanel_Actions.html” をマスターページギャラリーの [Display Templates] – [Search] フォルダーに上書きアップロードします。
7. 検索を実施し、ドキュメントのホバーパネルに “ダウンロード” リンクが追加されていること、および正常にダウンロードが行えることを確認します。
変更が反映されない場合は、ブラウザのキャッシュを削除して再度確認ください。
上記のカスタマイズを実施した後、実際の動作を確かめます。
検索結果ページにドキュメントのダウンロードのためのリンクが各ドキュメントのオーバービューに追加されているはずです。また、HTNLまたはjavascriptファイルは必ずUTF-8を指定して保存してください。ANSIなど別の文字コードを指定した場合、ダウンロードボタンが表示されないなどで失敗します。
2、旧バージョンのOfficeを使用している環境で、DocIDでDocumentを検索する方法
ここでは、DocID WEBパーツを使用する代わりに、サイトの検索に独自のURLリンクを設定し、DocID検索を行なえる方法を説明します。
具体的には、DocID:という文字列を自動的に付与することによって、ユーザーはこのサーチ窓に単純にDocIDを入力するだけで、DocID検索の結果が表示される仕組みです。
1.SPOでカスタマイズ対象のサイトを開きます。
2,サイトの右上の歯車を選択し、サイトの設定を開きます。
3.検索から、検索の設定を開きます。
4,検索ナビゲーションの構成の中で、リンクの追加を選択します。
5,追加するリンクを以下のように構成します。
タイトル:ドキュメントID検索
URL:/sites/サイト名/_layouts/15/osssearchresults.aspx?k=dlcdocid%3A
→このURLについては環境によって数字が異なるケースが考えられるので、サイトの検索で検索をして、リンク先のURLを上記URL内の/sites/サイト名/_layouts/15/osssearchresults.aspxと見比べて、異なる箇所がある場合には環境に合わせた形で記述します。
このdocid%3Aという部分がDocID:という文字列になります。
6.OKを選択し、カスタマタマイズURLを保存します。
7,検索の設定ページの下部のOKを選択し、設定を保存します。
8.サイトの検索窓から虫眼鏡アイコンの横にある▼を選択し、先ほど設定したドキュメントID検索を選択します。任意のDocIDを設定し、検索結果ページで
ドキュメントID検索結果が表示されることを確認します。
これら1と2のアプローチを組み合わせて行なうことにより、2007などの旧バージョンのOfficeを使用してSharePointOnlineでDocID検索をして、対象のドキュメントをダウンロードし開くことが可能です。SPOは常にアップデートされているので、この方法は必ず本番サイトではなく、検証用のサイトで検証をした後に動作を確認し本番サイトへ適用をするようにしてください。