社内で稼動しているMOSS2007のページにRSSビューアWebパーツを追加して、RSSフィードのURLを指定してOKボタンを押すと、Webパーツの画面に

要求の処理中に、予期しないエラーが発生しました。ログで詳細を確認して、問題を修正してください
(英語版だと An unexpected error occurred processing your request. Check the logs for details and correct the problem.)

と表示されます。

MOSS2007のトレースログファイル(デフォルトの状態では \Program Files\Common Files\Microsoft Shared\web server extensions\12\logs\サーバ名-yyyymmdd-0000.log)を開いて RssWebPart を検索すると、

リモート名を解決できませんでした。 : 'RSSのURL'
(英語版だとRssWebPart:Exception handed to HandleRuntimeException....remote name could not be resolved: ‘RSS URL’)

と書いてあります。

Digital Dashboard 時代から似た問題で苦労している経験から、プロキシが絡んでいそうな気がして調べてみました。
web.config を変更すると解決するようです(iisreset不要)

--- 変更前 ---
<system.net>
    <defaultProxy>
        <proxy autoDetect="true" />
    </defaultProxy>
</system.net>

--- 変更後 ---
<system.net>
    <defaultProxy>
        <proxy usesystemdefault="False" proxyaddress="http://your-proxy-name.domain.com:port-number-if-any" bypassonlocal="True" autoDetect="False" />
    </defaultProxy>
</system.net>

参考:
WebException , the remote name could not be resolved
http://forums.asp.net/t/992641.aspx
参考になりました。でもusesystemdefaultがスペルミスです(^^;

Proxy server settings for SharePoint 2007
http://geekswithblogs.net/hinshelm/archive/2007/10/24/Proxy-server-settings-for-SharePoint-2007.aspx

Windows SharePoint Services 3.0 Tools: Visual Studio 2005 Extensions, Version 1.1
からVSeWSSv11.exeをダウンロードし、MOSS2007+VS2005(OS含めて全て日本語版)の環境にインストールしてみました。
VS2005を起動して[ファイルメニュー]-[新規作成]-[プロジェクト]を実行して、[Visual C#]-[SharePoint]を選択しましたが、テンプレート一覧には何も追加されていません。
試しに全て英語版の環境を用意してVSeWSSv11.exeをインストールすると、テンプレートが追加されています。

いろいろ調べていると、テンプレートのインストールフォルダが1033になっているのを見つけ、1041に変更しました。
\Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplates\CSharp\SharePoint\1033
\Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplates\VisualBasic\SharePoint\1033
\Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplatesCache\CSharp\SharePoint\1033
\Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplatesCache\VisualBasic\SharePoint\1033
その後 Visual Studio 2005 コマンドプロンプトで devenv /InstallVSTemplates を実行したら、テンプレートが追加されました。

ナオキにASP.NET(仮):VS 2008 日本語版で MVC プロジェクトテンプレートを利用できた
が参考になりました。ナオキさんに感謝。

世間から大変遅れて、SharePoint Server 2007(MOSS2007)を導入検討する段階に入りました。
会社では既に SPS2003 が稼動しているため、MOSS2007 インストール方法の選択肢から一括アップグレードを試してみました。

  • .NET Framework 3.0 + LangPack
  • MOSS2007 setup.exe 実行。アップグレードの種類=一括アップグレード(製品とテクノロジ構成ウイザードは実行しない)。
  • prescan.exe /c preupgradescanconfig.xml /all
  • 製品とテクノロジ構成ウィザード
  • サーバの全体管理~ホーム~管理者タスク~初期展開:サーバーへのサービスの割り当てにて、Windows SharePoint Services Search を開始
  • 同様に Excel Calculation Services を開始
  • サーバー構成の管理~アップグレードと移行~アップグレードの終了処理
  • スタートメニュー~管理ツール~サービスにて Microsoft SharePointPS Search サービスを停止+無効
  • コントロールパネル~プログラムの追加と削除で Microsoft SharePoint Portal Server 2003 を削除

SPS2003 削除の時点で Microsoft SharePointPS Search サービスは、スタートアップの種類=手動、状態=停止 です。
が、削除を開始すると、このサービスが起動し、アンインストールのプロセスが停止(プログレスバーの表示進行しない状態)してしまいます。
このため、事前にサービスを確実に無効にしておく必要があるようです。

参考資料:
Plan and prepare for upgrade
http://technet2.microsoft.com/Office/ja-JP/library/83079d8c-c64d-40b8-80c6-bab3c8bd44f61041.mspx?mfr=true
Unable to remove SharePoint Portal Server 2003 following upgrade to MOSS
http://mindsharpblogs.com/matthew/archive/2007/01/28/1508.aspx

もはや旧バージョンとなってしまいましたが、いまだに SharePoint Portal Server 2003(以下SPS2003)を使っています。

社内向け SPS2003 のユーザープロファイルは Active Directory のインポートで管理しています。
人名から内線番号を見つけたい場合、SPS2003の検索ボックスに人名を入れて検索するのですが、正直なところ使い勝手が悪いです。
検索結果は、チームサイト内の投稿アイテム、ファイルサーバのドキュメント、その人が作成したチームサイト等々、この際ノイズにしかならない情報が延々と表示され、「次へ」を数十回クリックしないと希望する項目にたどり着きません。


なんとか検索範囲をユーザープロファイルだけに限定できないかと、いろいろ調べてみたのですが、独力で解決できず・・・
最後に MS のカスタマサポートに調査依頼したところ、最初は「無理です」だったのですが、何度か連絡を取り合ううちに「出来る方法が見つかりました」との回答をもらいました。新発見だったみたいです。

  1. SPSホームにて、サイトの設定~検索とインデックス作成の構成にて
    高度な検索管理モードの有効化

  2. コンテンツインデックスの追加 名前=Portal_User、説明=ユーザープロファイル、ソースグループ=ユーザープロファイルグループ OKボタン

  3. コンテンツインデックスの管理~Portal_Userのプルダウンメニュー~編集~コンテンツをエクスクルードまたはインクルードするルールの管理

  4. 既定のサーバー名のプルダウンメニュー~編集にて、クロールの構成で「このサイトのアイテムをすべてインクルードする」を選択し、「複合 URL (疑問符 (?) が含まれる URL) をインクルードする」=ONにする。 OKボタンを押す

  5. Portal_User でエクスクルードまたはインクルードするコンテンツ」画面に戻る
    新しいルールを実行する
    パス=sts2://FQDN表記のSPSサーバ名/personal/*
    クロールの構成=このパスにあるアイテムをすべてエクスクルードする
    このルールをクロールされたアドレスおよび検索結果に表示されるアドレスの両方に適用する=ON
    OKボタンを押す

  6. 検索とインデックス作成の構成画面にて、コンテンツソースの追加
    コンテンツインデックスの選択にて、Portal_User、Exchange Server パブリックフォルダを選択し、「次へ」ボタンを押す
    アドレス=sps://FQDN表記のSPSサーバ名/site$$$people 説明=ユーザープロファイル ソースグループ=ユーザープロファイルグループ 完了ボタン
    検索とインデックス作成の構成画面にて、検索範囲の管理
    新しい検索範囲を実行 名前=人 トピックとエリア=トピックまたはエリアをインクルードしない コンテンツソースグループ=範囲を以下のコンテンツソースのグループに限定する、「人」だけを選択 OKボタンを押す

  7. 検索とインデックス作成の構成画面にて、コンテンツ ソースの管理~「人」のプルダウンメニュー~フル更新の開始

コンテンツソースに Exchange Server を選択するのがミソだったようですが、そこまでは思いつきませんでした。
これに合わせて、MS のサイトにあがっている追加のWebパーツ Enterprise Search
http://www.microsoft.com/japan/office/previous/2003/sharepoint/downloads/webparts.mspx
を導入すると、SPS2003 の検索機能がずいぶんとアップしました。

諸般の事情で、UnManaged な FORTRAN77 から .NET Framework クラスライブラリを呼び出すことになり、Intel Visual Fortran 9.1 と Visual Studio 2005 の VC++ の静的リンクを試してみました。
(INTERFACE 宣言を除いて) Fortran ソースに手を加えなくても、動くようです。
これで旧資産の延命措置になるかも。

VS2005~ツールメニュー~オプションの設定
 プロジェクトおよびソリューション~VC++ディレクトリ
  ディレクトリを表示するプロジェクト=ライブラリファイルを選択して、ディレクトリ一覧の最後に IVF の %LIB% を追加
  (デフォルトインストールの場合は \Program Files\Intel\Compiler\Fortran\9.1\IA32\Lib)

VS2005 新規作成~プロジェクト
 プロジェクトの種類=Visual C++ CLRコンソールアプリケーション 名前=cmain
 ソリューションエクスプローラにてソリューションを選択して、追加~新しいプロジェクト、プロジェクトの種類=Intel Fortran Project~スタティックライブラリ 名前=fortlib

ソリューションのプロパティ設定
 共通プロパティ~プロジェクト依存関係にて、プロジェクト=cmain、依存先=fortlib にチェックを入れてOKボタン

cmainプロジェクトのプロパティ
 C/C++~コード生成~構造体メンバのアライメント=4byte
  リンカ~入力~追加の依存ファイルに libifcorertd.lib を追加

fortlibプロジェクトのプロパティ
 Fortran~データ~共通要素のアライメント=4byte
  プロジェクトのSource Filesにて、追加~新しい項目、テンプレート=Source

----------------------------------------------------------------------------------------------------
// cmain.cpp : メイン プロジェクト ファイルです。

#include "stdafx.h"
#include <string.h>

using namespace System;

extern "C" void C2F(double *dArg);  // C++→Fortranのプロトタイプ。必ず大文字
extern "C" void f2c(void);          // Fortran→C++のプロトタイプ
typedef struct tagCommon1 {         // COMMONメンバのプロトタイプ。実体はFortran側で宣言、メモリ確保される
    int i;
    double d;
    char c[12];
} Common1;
extern "C" Common1 COMMON1;         // COMMONの宣言。

int main(array<System::String ^> ^args)
{
    // COMMONの初期化
    COMMON1.i = 1;
    COMMON1.d = 2.0;
    strcpy_s(COMMON1.c,sizeof(COMMON1.c),"Managed C++");

    double dArg;
    C2F(&dArg);
    Console::WriteLine(L"Fortran引数戻り={0}",dArg);

    // Fortran側で変更したCOMMONの結果
    Console::WriteLine(L"COMMON:integer={0}",COMMON1.i);
    Console::WriteLine(L"COMMON:double={0}",COMMON1.d);
    Console::WriteLine(L"COMMON:character={0}",gcnew String(COMMON1.c));

    return 0;
}

void f2c(void)
{
    Console::WriteLine(L"Fortran から呼ばれた Managed C++ 関数");
}

----------------------------------------------------------------------------------------------------
C
C FORTLIB.FOR
C

      SUBROUTINE C2F(ARG)
      INTERFACE
        SUBROUTINE F2C[C,ALIAS:'_f2c']
        END
      END INTERFACE
      REAL*8 ARG
      COMMON/COMMON1/I,D,C
      INTEGER*4 I
      REAL*8 D
      CHARACTER*12 C
     
      WRITE(6,*) 'MANAGED C++から呼ばれた FORTRAN SUBROUTINE'
C
C
 引数を設定する
C

      ARG = 10.D0
C
C COMMONの値を設定する
C
      I = I + 1
      D = D + 1.D0
      C = 'FORTRAN 77'
C
C FORTRAN→MANAGED C++
C
      CALL F2C()
      RETURN
      END

前回書いたサーバ移行手順ですが、旧URL情報が残るケースがあるようなので、再度調べてみました。
(下記文章は実験結果であり、Microsoftの公式見解ではありません)


チームWebサイト内にお知らせWebパーツを2つ作成し、それぞれ「お知らせ(デフォルト)」と「お知らせ(カスタム)」として、アイテムを各1件ずつ投稿します。
サイトのトップページ default.aspx に2つのWebパーツを表示させ、お知らせ(カスタム)の方だけ FrontPage 2003 でXSLTビューを変換します(更新日時の形式を日付=yy/M/d、時刻表示=無し)

前述の手順でデータのバックアップと復元を行い、別サーバに移行させた後のサイトを表示させると、一部のURLが新サーバ側に移行完了してないことが判りました。
移行してないデータは、サイトのトップページ default.aspx 上のお知らせ(デフォルト)Webパーツに関して、タイトルバーのハイパーリンクURLや、Webパーツのプロパティ内に記載されているURL(詳細へのリンク、アイコンファイル大など)です。

お知らせ(デフォルト)Webパーツ側は問題なく移行できていることから推測して、FrontPageでXSLTビューを編集したことが原因だと思われます。
この変更情報がSQLサーバ内のどこに保存されているのか調べてみると、XXX_SITE.WebParts テーブル内の tp_AllUsersProperties と tp_PerUserProperties (共にimage型)が怪しそうです。
さらに調べて、前回のSharePoint Portal Server 2003 その4 サーバマシンの移行手順の後に下記手順を追加すると解決しました。

  1. 移行先サーバ(NewSPSServer)にて、SQL Server の「データのインポートとエクスポート」ツールを起動します。
    コピー元データソース=Microsoft OLE DB Provider for SQL Server
    データベース=XXX_SITE
    変換先=Text File
    テーブルのコピーまたはクエリの指定=変換するデータの指定にクエリを使用
    クエリステートメント=select * from WebParts
    変換先ファイルフォーマットの選択=変更なし

  2. 取り出したテキストファイル内の16進数の並びに、....55687474703A2F2F6F6C64736572766572.... が散見されます。
    どうやら先頭1バイト(55)はURL文字列のバイト数、それ以降(687474...)は旧URL文字列 http://oldserver.... を表しているようです。この部分が FrontPage でカスタマイズした情報なのでしょう。新URL文字列 http://newspsserver に変更し、直前の1バイトもサーバ名の長さの差分(この例では+3バイト)して58にします。
    WebPartsテーブル内の他の列を調べると、Size 列もサーバ名の増減に応じて変化することが判りました。
    Size 列はテキストファイル上で行末に位置しています。
    こちらは10進数で ,320 などと書いてありますので、+3バイトして ,323 に変更します。
    この修正を、旧URL文字列の出現回数だけ繰り返します。
    この繰り返し作業は、ストアドプロシージャか何かを使うと簡単にできるのかもしれませんが、そちら方面の知識が乏しい私はエディタの Mifes でマクロを作成、一括修正を行いました。

  3. 修正したテキストファイルでWebPartsテーブル内の全レコードを置き換えるのですが、「データのインポートとエクスポート」ツールを使うと、一部の NULL のデータだけが空白に変化してしまい、Webパーツエラーを起こします。
    そこで、修正後のテキストファイルを戻す前に、XXX_SITEデータベースに対して下記SQL文を実行し、NULLのデータをNULLで上書きするUPDATE文を用意します。

    select "UPDATE WebParts SET tp_ListId =NULL WHERE(tp_ID='",tp_ID,"')" from WebParts where(tp_ListId is null)
    select "UPDATE WebParts SET tp_Type =NULL WHERE(tp_ID='",tp_ID,"')" from WebParts where(tp_Type is null)
    select "UPDATE WebParts SET tp_Flags =NULL WHERE(tp_ID='",tp_ID,"')" from WebParts where(tp_Flags is null)
    select "UPDATE WebParts SET tp_BaseViewID =NULL WHERE(tp_ID='",tp_ID,"')" from WebParts where(tp_BaseViewID is null)
    select "UPDATE WebParts SET tp_DisplayName =NULL WHERE(tp_ID='",tp_ID,"')" from WebParts where(tp_DisplayName is null)
    select "UPDATE WebParts SET tp_Version =NULL WHERE(tp_ID='",tp_ID,"')" from WebParts where(tp_Version is null)
    select "UPDATE WebParts SET tp_PartOrder =NULL WHERE(tp_ID='",tp_ID,"')" from WebParts where(tp_PartOrder is null)
    select "UPDATE WebParts SET tp_ZoneID =NULL WHERE(tp_ID='",tp_ID,"')" from WebParts where(tp_ZoneID is null)
    select "UPDATE WebParts SET tp_View =NULL WHERE(tp_ID='",tp_ID,"')" from WebParts where(tp_View is null)
    select "UPDATE WebParts SET tp_WebPartTypeId =NULL WHERE(tp_ID='",tp_ID,"')" from WebParts where(tp_WebPartTypeId is null)
    select "UPDATE WebParts SET tp_AllUsersProperties =NULL WHERE(tp_ID='",tp_ID,"')" from WebParts where(tp_AllUsersProperties is null)
    select "UPDATE WebParts SET tp_PerUserProperties =NULL WHERE(tp_ID='",tp_ID,"')" from WebParts where(tp_PerUserProperties is null)
    select "UPDATE WebParts SET tp_Cache =NULL WHERE(tp_ID='",tp_ID,"')" from WebParts where(tp_Cache is null)
    select "UPDATE WebParts SET tp_UserID =NULL WHERE(tp_ID='",tp_ID,"')" from WebParts where(tp_UserID is null)
    select "UPDATE WebParts SET tp_Source =NULL WHERE(tp_ID='",tp_ID,"')" from WebParts where(tp_Source is null)

    出力結果にはこんな感じのUPDATE文が延々と続きます。

    UPDATE WebParts SET tp_ListId =NULL WHERE(tp_ID='840CC98A-F1B5-46D1-B396-8BD5A5FC5C16')

    この出力結果を ResetNull.sql というファイル名で保存しておきます。

  4. 再度 SQL Server の「データのインポートとエクスポート」ツールを起動します.。
    データのコピー元=Text File、ファイル名=修正したテキストファイル
    変換先ファイルフォーマットの選択=変更なし
    列区切り記号の指定=変更なし
    変換先=Microsoft OLE DB Provider for SQL Server
    データベース=XXX_SITE
    テーブルとビューの選択にて、「テーブルとビュー」より変換元テキストファイルの行にて作成先を[XXX_SITE].[dbo].[WebParts]にしてから「変換」をクリック、「列マッピング」タブにて「変換先テーブル内の行を削除」を選択してOKボタンを押します
    実行すると、WebPartsテーブル内の既存レコードを全て削除した上でテキストファイルの情報が追加されます。

  5. 先ほどのSQL実行により作成したResetNull.sqlを実行して、NULLであるべき全てのデータをNULLにします。

  6. 最後に、SharePointとSQL Server 関連の全サービスを再起動(またはOSを再起動)させます。

SPS2003を動かしているシングルサーバー構成のサーバ機(OldServer)を新規導入したサーバ機(NewServer)に移行する場合の手順をまとめました。

条件はこんな感じです:

  • OldServerとNewServerはコンピュータ名(URL)が異なる
  • いずれもIIS上の既定のWebサイトを使う
  • SPS2003のインストール先(正確には%SYSTEMDRIVE%)が異なる
  • チームWebサイトに、メールによる通知設定を行っている
  • カスタムWebパーツをインストールしている
  • <TRUST level>等、web.configを手動で変更している

※以下の作業手順には、経験から見付け出した部分が含まれており、正式な手順からは外れている可能性もあります。悪しからずご了承ください。

OldServer側のフルバックアップ作業

  1. スタートメニュー~SharePoint Portal Server~データのバックアップと復元を起動します。
    「データのバックアップと復元」ユーティリティの「バックアップ」タブを表示させます。図参照
  2. バックアップの場所と名前テキストボックスに<フォルダ名>\バックアップ名を入力します。
    例えば、C:\temp\OldServer と入力すると、c:\temp フォルダに OldServerで始まるバックアップファイルが生成されます。
  3. バックアップするコンポーネントとアイテムにて、利用できるコンポーネントを展開し、すべてのサーバーファームコンポーネントを指定し、バックアップアイテムが全てチェックされていることを確認します。
  4. バックアップボタンを押すと、バックアップファイル作成を開始します。
    完了のメッセージボックスが表示されたらOKボタンを押して、バックアップと復元ツールを終了します。図参照
    ※リセットボタンを押すように指示が出ますが、ここでバックアップ作業を終わる場合は無視して構いません。
  5. バックアップファイルが生成されていることを確認します。
    バックアップの場所と名前にC:\temp\OldServerと指定した場合は、OldServer.XMLおよび、OldServer-で始まり拡張子が.SPBのファイルが複数個存在します。

NewServer側の復元作業

  1. ServicePackも含めてOldServerと同じバージョンのSPS2003をインストールします。
    インストール作業は、サーバートポロジの構成が完了した時点で(トップレベルサイトを作成せずに)中止しておきます。
  2. 「データのバックアップと復元」ユーティリティを起動し、「復元」タブを表示させます。図参照
  3. マニュフェストファイルのテキストボックスで、バックアップ作業で生成したファイル(OldServer.XML)を指定します。
  4. 復元するコンポーネントおよびアイテムにて、利用できるコンポーネントを展開し、すべてのサーバーファームコンポーネントを指定し、「アイテムの復元」のうち、種類=SITEDBSの項目に関して(チェックボックス以外の領域を)選択して編集ボタンを押します。
    ※チェックボックスを先にチェックした場合は、警告メッセージが表示されますので、それを閉じてから編集ボタンを押します。図参照
    ポータル復元情報ダイアログが表示されるので、IIS仮想サーバ(通常は既定のWebサイト)とポータルURLを指定してOKボタンを押し、ポータル復元情報ダイアログを閉じてから再度アイテムの復元の項目をチェックします。図参照
  5. 「アイテム復元」のうち、種類=INDEXの項目を選択してチェックします。
    移行元と移行先でSPS2003のインストール先フォルダ名が同一でない場合は、ここで編集ボタンを押して「復元処理に新しい値を指定」ダイアログを表示させます。図参照
    検索アプリケーションを復元するサーバ...のパスを指定します...のテキストボックスに、\DATAを入力します。例 D:\Program Files\SharePoint Portal Server\DATA
    OKボタンを押して「復元処理に新しい値を指定」ダイアログを閉じます。
  6. アイテムの復元の全項目をチェックして、復元ボタンを押します。
    バックアップ時と復元時でサーバ名が異なる場合は、メッセージボックスが表示されますが、OKボタンを押して処理を続けます。図参照
  7. 処理が終わったらバックアップと復元ユーティリティを終了します。
  8. OldServerのweb.configをNewServerにコピーします
    ※バックアップファイル内にはweb.configの情報は含まれていません
  9. NewServerにカスタムWebパーツをインストールします(stsadm.exe -o addwppack ...)
    ※バックアップファイル内にはカスタムWebパーツの本体(*.dll)は含まれていません。
    ※新サイトでは、カスタムWebパーツを登録した場所が「エラー」として表示されます。図参照
  10. NewServerでSQL Enterprise Manager を起動し、..._SITE データベース内のSitesテーブル内のSiteUrl列からOldServerのURLが記載されているレコードを検索して、NewServerのURLに変更します
    ※トップレベルサイトや個人用サイトに登録した通知に関してはNewServerのURLに自動変換されますが、チームWebサイトに登録した通知に関しては手動で変更する必要があるようです。

既に大量のアイテムを登録したり、ビューや列のカスタマイズを設定済みのWebパーツを、他のサイトに登録(コピー)したい場合には、リストテンプレートギャラリーを使います。
※リストテンプレートギャラリーの操作には、コピー元・コピー先のサイトに対してWebデザイナ権限が必要です。

  1. コピー元のWebパーツにて、設定と列の変更~リストをテンプレートとして保存を実行します。

  2. テンプレートとして保存の画面にて、ファイル名、テンプレートのタイトル、説明(任意)、コンテンツを含むかどうかのチェックボックスを設定して、OKボタンを押します。

  3. 以下の手順で、保存したリストテンプレートをファイルとして取り出します。
    コピー元サイトのホームに移動
    サイトの設定~サイト管理へ移動
    リストテンプレートギャラリーの管理
    リストテンプレートの一覧から、保存したい項目の名前をクリックし、「ファイルのダウンロード」ダイアログで「保存」ボタンを押して、リストテンプレートファイルをファイルとしてディスクに保存します(ファイルの拡張子は.stpです)

  4. 以下の手順で、リストテンプレートをサイトに登録します。
    コピー先サイトのホームに移動
    サイトの設定~サイト管理へ移動
    リストテンプレートギャラリーの管理
    テンプレートのアップロードをクリックして、.stpファイルをアップロードします。

  5. 以下の手順で、登録したリストテンプレートからリストを作成します。
    コピー先サイトのホームに移動
    作成をクリックしてページの作成画面に移動して、「リスト」の一覧からリストテンプレートの名前をクリックします。
    新しいリスト名を指定(リストテンプレートと同じ名前も可)すると、Webパーツが復元されます。

ポータルサイト内の各サイトやエリアを作成する際には、テンプレートが適応されます。
テンプレート毎に使えるWebパーツや画面構成が異なります。
(ある程度は重複していますが)特定のWebパーツを特定の形(位置)で表示したいと考えた場合に、それだけで使用するテンプレートが決まってしまう場合もあります。
ここでは、各サイトの画面構成とWebパーツの一覧の一覧を簡単に紹介します。

各サイトの分類
サイトを作成する場所を3種類に大別して説明します。

  1. トップWebサイト
    ナビゲーションバーから移動できるページです。
    PENTAXポータルでは、ポータル管理者だけがここにエリア(ページ)を追加できます。
    エリア作成時に選択するテンプレートには以下のものがあります。
    ・コンテンツエリア
    ・トピックエリア
    ・ニュースエリア
    ・ニュースホームエリア
    ・サイトディレクトリエリア
    ・コミュニティエリア

  2. チームWebサイト
    ナビゲーションバーの「サイト」の下に作成されます。
    ※PENTAXポータルでは、「サイト」は表示されていません。
    PENTAXポータルでは、ポータル管理者だけが各チームWebサイトの先頭のページを追加できます。
    各チームWebサイトの管理者権限を持つ方は、チームWebサイト内にWebパーツやサブサイトを追加できます。
    チームWebサイトおよびその下のサブサイト作成時に選択するテンプレートには以下のものがあります。
    ・チームサイト
    ・空のサイト
    ・ドキュメントワークスペース
    ・一般的な会議ワークスペース
    ・空の会議ワークスペース
    ・意思決定の会議ワークスペース
    ・イベントの会議ワークスペース
    ・複数ページの会議ワークスペース

  3. 個人用サイト
    各ユーザーは、自分専用の個人用サイト内にWebパーツやサブサイトを追加できます。
    個人用サイト内のサイトおよびワークスペース作成時に選択するテンプレートの種類は、チームWebサイトと同一です。


チームWebサイトと個人用サイト内では同名のテンプレートを選択しますが、使用可能なWebパーツは若干異なります。
テンプレート毎に使用可能なWebパーツの一覧表を提示しようと試みたのですが、約25×50の表形式になってしまってうまく表現できないため、今回は省略します。
詳細は「SharePoint Portal Server 2003 活用ガイド」の付録に掲載されています。
ここでは、活用ガイドに記載されてない部分(全部のサイトを作って実験しました)だけを紹介します。

チームサイト
チームWebサイト側にだけ、XML Webパーツが存在します。
個人用サイト側にだけ、個人の仕事、個人の予定表、個人用ワークスペースサイト、受信トレイ、個人用メールフォルダの各Webパーツが存在します。

空のサイト、ドキュメントワークスペース
チームWebサイト側にだけ、XML Webパーツ、フォームWebパーツ、メンバーが存在します。
個人用サイト側にだけ、チームサイトの場合と同じ各Webパーツが存在します。

一般的な会議ワークスペース
チームWebサイト側にだけ、一般的なディスカッションWebパーツが存在します。
個人用サイト側にだけ、ディスカッション掲示板Webパーツが存在します。
※一般的なディスカッションとディスカッション掲示板は機能的には同一です

その他のテンプレートはチームWebサイト側と個人用サイト側で同一でした。

主なテンプレートの画面構成
ホーム(コンテンツエリアテンプレート)
Webパーツを上下左右に配置できます。

通常画面 デザイン画面

※中央左列または中央右列だけにWebパーツを設定しても、ページ全体の横幅を一杯に占めることはできません

個人用サイト
Webパーツを上下左右に配置できます。

通常画面 デザイン画面

※中央左列または中央右列だけにWebパーツを設定しても、ページ全体の横幅を一杯に占めることはできません

チームサイト
Webパーツを左右に配置できます。
ページ構成に比較的制約があり、使いづらく感じることが多くなってきました(^^;

通常画面 デザイン画面

※左または右だけにWebパーツを設定すると、ページ全体の横幅を一杯に占めることが可能です

一般的な会議
Webパーツを左中右に配置できます。

通常画面 デザイン画面

※左、中央、右のいずれかだけにWebパーツを設定すると、ページ全体の横幅を一杯に占めることが可能です

私にとって資料が入手困難な2大 Microsoft 製品は、InfoPath 2003 と SharePoint Portal Server 2003(以下SPS) です。
InfoPath の方は今のところ実務で使う場面がないのですが、SPS は社内ポータルとして稼動しており、管理・開発両面で日々格闘しています。

何回かのトラブル解決やWebパーツ作成を経験して、少しは知恵がついてきましたので、備忘録がてらいろいろ書き溜めていこうと思います。
私と同様に資料不足で困っている方にとって、多少なりとも参考になれば幸いです(笑)。
まずは、日頃参照している資料の紹介です。

  • <書籍>
    SharePoint Portal Server 2003 活用ガイド
    SPS の機能、導入・管理方法が判りやすく書かれています。
    値段も手頃で、導入検討の時点では充分に役立ちます。
    Web パーツのカスタマイズに関して、FrontPage 2003 を使った方法が説明されています。
    Active Directory やネットワークの設計・運用に起因する障害に直面すると、別の資料が欲しくなります。

    SharePoint プロダクト&テクノロジ リソースキット(上
    最近になって存在を知り、慌てて購入しました。個人で購入するには高価です。注文ボタンを押すのに緊張しました。
    活用ガイドに較べて約3倍のページ数があり、詳しい説明が載っているようです。
    まだ読み始めたばかりなので、感想を書けません(^^;

  • <ホワイトペーパー>
    SharePoint 製品とテクノロジ 2003 ソフトウエア開発キット(SDK)
    プログラミングタスクに関しては日本語になっています。
    SharePoint Services のオブジェクトモデルに関してのリファレンスは英語のままです。

    SharePoint Portal Server 2003 Web パーツ開発ガイド
    Visual Stucio .NET を使って Web パーツを作成する手順が載っており、大変参考になりました。
    開発環境およびサンプルコードが VS.NET 2002 の C# で記載されているため、自分の環境(VS.NET 2003 の VB.NET)向けに手順をアレンジしました。

  • <講習会>
    mstep(Microsoft Training for Enterprise and Partnet)
    ユーザー登録は必要ですが無料セミナーを受講できます。
    SPS 管理者向けコースが幾つか開催されています。
    私が参加した時、講師の方は終了後に他受講者に占有されてしまい、質問できなかった記憶があります。
    聞ける時に聞いておかないと・・・という空気が充満していました。