August, 2011

  • Web パーツが編集できなくなる場合がある

    こんにちは。今回は SharePoint の Web パーツが編集できなくなる現象とその回避策についてご案内したいと思います。

     

    SharePoint のページ上に配置した Web パーツを編集する際には、Web パーツの右上の アイコンをクリックする、もしくは [ページの編集] でデザインモードに切り替えて [編集] ボタンをクリックして編集を行います。

    1)      アイコンをクリックする場合

    2)    [ページの編集] をクリックする場合

     

    しかしながら、状況によっては上記の操作を行っても、上記画面のプルダウンが表示されず、IE のスクリプトエラー「メッセージ: 'style.display' は Null またはオブジェクトではありません。」が発生する場合があります。

      

    - 本現象の原因について

    この現象はコンテンツエディタ Web パーツのソースに以下のようなタグが含まれている場合に発生します。

     <DIV class="ms-WPBody" id=WebPartWPQ4 webpartid="00000000-0000-0000-0000-000000000000"></DIV>

    SharePoint では <div> タグを使用して Web パーツを配置し、“WebPartWPQn” (nは数字) という ID を使用して Web パーツを識別します。ページの HTML ソース上でこの ID が重複する場合に、今回の現象が発生します。

     

    SharePoint のサイト上のお気に入りのコンテンツを再利用しようとして、IE で HTML ソースを表示して、対象の部分コピーして貼り付け!という操作を行う場合等にこの現象に遭遇してしまいます。

    また、コンテンツエディタ Web パーツだけではなく、リスト ビュー Web パーツなどで参照するアイテムに上記のタグが含まれている場合もこの現象が発生します。

    リストの列の型が “複数行テキスト (拡張リッチテキスト)” 列の場合は直接 HTML ソースが埋め込むことができるため、上記のような操作を行った場合は今回の現象が発生します。

    (お知らせリストの “本文” などが多いです。)

     

    <form> タグ等のサポートされていないタグが使用された場合は以下のような警告メッセージが表示されるのですが、<div> 要素の id 属性まではチェックがされないため、気づかないパターンが結構多いのです。

    • コンテンツエディタ Web パーツのソースに <form> タグを追加した場合

     

    - 本現象の回避策について

    この現象を回避するためには、以下のようにコンテンツエディタ Web パーツのソースに保存された <div> タグの id 属性を削除します。不要であれば <div> タグそのものを削除します。

     <DIV class="ms-WPBody" ></DIV>

     

    少し注意が必要なのは、編集できない現象が発生している Web パーツではなく、それ以外の Web パーツが悪さをしている場合が多い、という点です。

    Web パーツがたくさんあって大変!という場合は、対象のページの URL に ?contents=1 というパラメータを付与して、[Web パーツ ページの管理] 画面を開いて 怪しそうな Web パーツを [閉じる] 作業を繰り返して、特定するとういう流れになります。

    • ?contents=1  というパラメータを付与してアクセスすると、

    • 以下の画面に切り替わります。

     

    こちらの件については、Technet サイトの「5 minutes トラブルシューティング」に SharePoint サポートチームの人気者の森さんがご案内していますので、ぜひご覧ください。

    参考資料:

    タイトル : SharePoint の Web パーツ ページが表示できない場合のトラブルシューティング

    アドレス : http://technet.microsoft.com/ja-jp/ff806173

  • 送信メールの設定で 50220 (日本語 (JIS)) を選択すると送信されるメールが文字化けする場合がある

    こんにちは。

    前回のブログポストから間が空いてしまい大変申し訳ございませんでした。

     

    今回は SharePoint の送信メールの設定についてご案内したいと思います。

    SharePoint 製品では、ドキュメントがアップロードされたときにメールを送信するなど、通知メールを使用することが可能です。また、サーバーの全体管理サイトより、この通知メールの文字コードを指定することが可能です。

     

    文字セットが 50220 (日本語 (JIS)) である場合は、通常は送信されるメールは、以下の形式で送信されます。

     

    Content-Transfer-Encoding : 7bit

    charset                   : iso-2022-jp

     

    しかしながら、SharePoint 製品では送信メールの設定画面で 50220 (日本語 (JIS)) を選択した場合、送信されるメールは以下の形式で送信されます。

     

    Content-Transfer-Encoding : 8bit

    charset                   : (空白)

     

    上記の形式でメールが送信された場合、メールサーバーやメールクライアントによってはメールが文字化けする可能性がございます。

    弊社製品では、Exchange Server 2003 + Outlook 2007 の組み合わせなどで発生することを確認しております。

     

    - 本現象の原因について

    この現象は SharePoint 製品の内部で、日本語 (JIS) が 使用するコードページ ID が 50221 として保持されていることに起因します。このため、送信メールの設定画面で 50220 (日本語 (JIS)) を選択しても、内部で該当するコードページが存在しないと判断されて、Content-Transfer-Encoding と charset に正しくない値がセットされます。

     

    - 本現象の回避策について

    本現象を防ぐためには、stsadm コマンドを使用して、送信メールが使用するコードページを 50221 に指定することで、正しい日本語 (JIS) の文字コードを設定できます。以下にコマンド例をご案内します。

     

    stsadm -o email -outsmtpserver <SMTP サーバー名> -fromaddress <有効な電子メール アドレス> -replytoaddress <有効な電子メールアドレス> -codepage 50221

     

    コマンド例:

    stsadm -o email -outsmtpserver exchange -fromaddress user01@test.com -replytoaddress user01@test.com -codepage 50221

     

    参考資料:

    タイトル : Email : Stsadm 操作 (Windows SharePoint Services)

    アドレス : http://technet.microsoft.com/ja-jp/library/cc288265(office.12).aspx

     

    なお、本現象が発生する SharePoint 製品は現時点 (2011 年 8 月 5 日時点) で以下になります。

     

    ・Windows SharePoint Services 3.0

    ・Office SharePoint Server 2007

    ・SharePoint Foundation 2010

    ・SharePoint Server 2010

     

    以上になります。

    本ブログ記事が SharePoint ユーザーの皆様のお役に立てれば幸いです。